@font-face{font-family:Galmuri11;src:url(../assets/fonts/Galmuri11.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Galmuri11;src:url(../assets/fonts/Galmuri11-Bold.woff2)format("woff2");font-weight:700;font-display:swap}:root{--bg:#2a2030;--panel:#fdf6e8;--panel-2:#f3e6cc;--ink:#3b2a30;--ink-2:#6e5a60;--coral:#e8806b;--coral-d:#c9604f;--teal:#5fa8b8;--teal-d:#4a8e9e;--gold:#f2d16b;--line:#3b2a30;--px:"Galmuri11", "Malgun Gothic", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--read:"Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior:none;font-family:var(--read);margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}#app{height:100dvh;padding:var(--safe-t) var(--safe-r) 0 var(--safe-l);-webkit-user-select:none;user-select:none;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid;position:fixed;top:0;bottom:0;left:0;right:0}#hud{font-family:var(--px);background:#1f1826;border-bottom:2px solid #000;align-items:center;gap:8px;padding:6px 10px;display:flex}.pill{background:var(--gold);color:var(--ink);border:2px solid var(--line);white-space:nowrap;border-radius:4px;padding:3px 8px;font-size:12px}.quest{color:#fff;text-align:left;min-width:0;font-size:12px;font-family:var(--px);background:#3a2f46;border:2px solid #5a4a6a;border-radius:4px;flex:1;align-items:center;gap:6px;padding:5px 8px;display:flex}.quest .q-label{color:var(--gold);flex:none}.quest #hud-hint{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-btn{background:var(--teal);color:#fff;border:2px solid var(--line);font-family:var(--px);border-radius:4px;min-height:34px;padding:5px 10px;font-size:12px}#stage{touch-action:none;background:#1a1420;position:relative;overflow:hidden}#game{position:absolute;top:0;bottom:0;left:0;right:0}#game canvas{image-rendering:pixelated;touch-action:none;display:block}#tint,#vignette{pointer-events:none;transition:opacity .8s,background-color .8s;position:absolute;top:0;bottom:0;left:0;right:0}#tint{mix-blend-mode:multiply;opacity:0}#vignette{opacity:0;background:radial-gradient(#0000 45%,#281e46bf 100%)}#toast{color:#fff;max-width:90%;font-family:var(--px);opacity:0;pointer-events:none;text-align:center;background:#1f1826eb;border:2px solid #5a4a6a;border-radius:6px;padding:8px 12px;font-size:13px;transition:opacity .3s;position:absolute;top:10px;left:50%;transform:translate(-50%)}#toast.show{opacity:1}#controls{padding:10px 18px calc(10px + var(--safe-b));touch-action:none;background:#1f1826;border-top:2px solid #000;justify-content:space-between;align-items:center;min-height:168px;display:flex}#joy{touch-action:none;background:radial-gradient(circle,#3a2f46 0 55%,#2c2336 56% 100%);border:3px solid #5a4a6a;border-radius:50%;width:132px;height:132px;position:relative}#joy-knob{background:var(--teal);border:3px solid var(--line);will-change:transform;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:inset 0 -4px #00000040}#act{background:var(--coral);border:4px solid var(--line);color:#fff;width:112px;height:112px;font-family:var(--px);touch-action:none;border-radius:50%;padding:6px;font-size:15px;line-height:1.25;box-shadow:inset 0 -6px #00000040}#act:active,#act.on{background:var(--coral-d);transform:translateY(2px)}#act:disabled{color:#b8aebd;background:#6a5a6e}body.no-touch #controls,#side{display:none}@media (min-width:1000px) and (pointer:fine){#app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 280px}#hud{grid-column:1/3}#side{color:#e8dff0;background:#1f1826;border-left:2px solid #000;grid-area:2/2;padding:18px;font-size:14px;line-height:1.7;display:block}#side h2{font-family:var(--px);color:var(--gold);margin:0 0 10px;font-size:16px}#side .muted{color:#a898b4;font-size:12px}kbd{font-family:var(--px);background:#3a2f46;border:1px solid #5a4a6a;border-radius:4px;padding:1px 6px;font-size:12px}#controls{display:none}}@media (orientation:landscape) and (max-height:520px){#app{grid-template-rows:auto minmax(0,1fr)}#hud{padding:3px 8px}#controls{min-height:0;padding:0 calc(16px + var(--safe-r)) calc(10px + var(--safe-b)) calc(16px + var(--safe-l));pointer-events:none;background:0 0;border:0;position:absolute;bottom:0;left:0;right:0}#joy,#act{pointer-events:auto;opacity:.82}#joy{width:112px;height:112px}#joy-knob{width:48px;height:48px;margin:-24px 0 0 -24px}#act{width:92px;height:92px;font-size:13px}}#dialogue{z-index:20;left:50%;bottom:calc(10px + var(--safe-b));background:var(--panel);border:4px solid var(--line);width:calc(100% - 20px);max-width:760px;max-height:70dvh;box-shadow:0 4px 0 #0006, inset 0 0 0 3px var(--panel-2);cursor:pointer;border-radius:12px;flex-direction:column;padding:10px 14px 12px;display:flex;position:absolute;overflow-y:auto;transform:translate(-50%)}.d-top{justify-content:space-between;align-items:center;gap:8px;display:flex}#d-speaker{font-family:var(--px);color:var(--coral-d);border:2px solid var(--line);background:#fff;border-radius:4px;min-height:26px;padding:1px 8px;font-size:15px;font-weight:700}#d-speaker:empty{visibility:hidden}.d-tools{gap:6px;display:flex}.d-tools button{font-family:var(--px);border:2px solid var(--ink-2);color:var(--ink-2);background:0 0;border-radius:4px;min-height:32px;padding:4px 9px;font-size:12px}#d-text{word-break:keep-all;overflow-wrap:anywhere;white-space:pre-wrap;min-height:54px;margin:6px 0 4px;font-size:17px;line-height:1.6}#d-text.narr{color:#4a3a52}#d-next{color:var(--coral-d);align-self:flex-end;font-size:14px;animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:0}}#d-choices{flex-direction:column;gap:8px;margin-top:6px;display:flex}.choice{text-align:left;border:3px solid var(--line);word-break:keep-all;background:#fff;border-radius:8px;min-height:48px;padding:11px 14px;font-size:16px;line-height:1.4;box-shadow:0 3px #00000040}.choice:hover{background:#fff0cf;outline:none}.choice:focus-visible{background:#fff0cf;outline:none}.choice:active{box-shadow:none;transform:translateY(2px)}@media (orientation:landscape) and (max-height:520px){#d-text{min-height:36px;font-size:15px}.choice{min-height:40px;padding:7px 12px;font-size:14px}}#overlay{z-index:40;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}#overlay>*{pointer-events:auto}.screen{padding:calc(var(--safe-t) + 14px) 14px calc(var(--safe-b) + 14px);background:#1a1224f0;flex-direction:column;align-items:center;animation:.25s fade;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.screen.solid{background:linear-gradient(#3a2f56 0%,#2a2030 60%,#1c1424 100%)}@keyframes fade{0%{opacity:0}}.card{background:var(--panel);border:4px solid var(--line);border-radius:12px;width:100%;max-width:560px;margin:auto 0;padding:16px 16px 18px;box-shadow:0 5px #00000059}.card h1,.card h2{font-family:var(--px);margin:0 0 8px;line-height:1.35}.card h2{color:var(--coral-d);font-size:20px}.card p{word-break:keep-all;margin:8px 0;font-size:15px;line-height:1.65}.card .sub{color:var(--ink-2);font-size:13px}.row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.row.end{justify-content:flex-end}.btn{font-family:var(--px);background:var(--teal);color:#fff;border:3px solid var(--line);border-radius:8px;min-height:46px;padding:10px 16px;font-size:15px;box-shadow:0 3px #0000004d}.btn:active{box-shadow:none;transform:translateY(2px)}.btn.coral{background:var(--coral)}.btn.ghost{color:var(--ink);background:#fff}.btn:disabled{color:#fff;box-shadow:none;cursor:not-allowed;background:#b9b0bc}.btn.full{width:100%}.chips{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.chip{border:3px solid var(--line);background:#fff;border-radius:999px;min-height:42px;padding:8px 14px;font-size:15px}.chip.on{background:var(--gold);font-weight:700;box-shadow:inset 0 0 0 2px #fff}.note{color:var(--ink-2);background:var(--panel-2);border-radius:6px;margin-top:10px;padding:8px 10px;font-size:12.5px;line-height:1.55}.title-wrap{text-align:center;color:#fff;width:100%;max-width:460px;margin:auto 0}.title-wrap .logo{font-family:var(--px);color:var(--gold);text-shadow:3px 3px #000,-1px -1px #000,1px -1px #000,-1px 1px #000;margin:8px 0 4px;font-size:clamp(34px,11vw,52px);font-weight:700;line-height:1.15}.title-wrap .sub{font-family:var(--px);color:#ffd9cf;margin-bottom:14px;font-size:16px}.title-wrap .tag{color:#c8b8d8;margin:0 0 18px;font-size:13px;line-height:1.6}.title-art{justify-content:center;gap:8px;margin:12px 0 18px;display:flex}.sprite{width:64px;height:96px;image-rendering:pixelated;background-position:-64px 0;background-size:192px 384px;animation:1.6s steps(2,end) infinite bob}.sprite:nth-child(2){animation-delay:.4s}.sprite:nth-child(3){animation-delay:.8s}.sprite:nth-child(4){animation-delay:1.2s}@keyframes bob{50%{transform:translateY(-4px)}}.title-btns{flex-direction:column;gap:10px;display:flex}.title-btns .btn{width:100%;padding:13px;font-size:17px}.ver{color:#9b8aab;margin-top:14px;font-size:12px;line-height:1.6}.name-input{width:100%;font-family:var(--px);border:3px solid var(--line);color:var(--ink);text-align:center;background:#fff;border-radius:8px;padding:10px 12px;font-size:18px}.sns{border:3px solid var(--line);background:#fff;border-radius:12px;margin:8px 0;overflow:hidden}.sns-head{color:#fff;font-family:var(--px);background:linear-gradient(90deg,#6c8cf0,#9b7bd4);padding:8px 12px;font-size:14px}.sns-post{padding:12px}.sns-author{align-items:center;gap:10px;margin-bottom:8px;display:flex}.avatar{border:2px solid var(--line);width:44px;height:44px;image-rendering:pixelated;background-color:#cfe3f5;background-position:-74px -2px;background-size:192px 384px;border-radius:50%;flex:none}.sns-author b{font-size:15px;display:block}.sns-author span{color:#8a8a96;font-size:12px}.sns-text{font-size:15.5px;line-height:1.55}.sns-meta{color:#6a6a7a;border-top:1px solid #e6e6ee;margin-top:10px;padding-top:8px;font-size:13px}.cmt{border-top:1px solid #f0f0f6;padding:6px 12px;font-size:13.5px}.cmt b{margin-right:6px}.cloud-field{height:270px;margin:6px 0;position:relative}.cloud{color:#3c4260;background:#dfe3f3;border:3px solid #6a708c;border-radius:40px;width:62%;min-height:76px;padding:14px 18px;font-size:15px;line-height:1.4;transition:background .4s,transform .5s,opacity .5s,width .4s;animation:5s ease-in-out infinite alternate drift;position:absolute;box-shadow:0 4px #3c426059}.cloud:first-child{top:4px;left:0}.cloud:nth-child(2){animation-delay:-1.5s;top:96px;right:0}.cloud:nth-child(3){animation-delay:-3s;top:188px;left:8%}.cloud.done{border-color:var(--coral-d);color:var(--ink);background:#fff7d6;animation:none}@keyframes drift{to{transform:translate(10px)translateY(-5px)}}.breath{background:radial-gradient(circle,#bfeaff,#5fa8b8);border-radius:50%;width:54px;height:54px;margin:10px auto;animation:6s ease-in-out infinite breathe}@keyframes breathe{0%,to{transform:scale(.7)}50%{transform:scale(1.15)}}.pcard{border:3px solid var(--line);background:#fff;border-radius:10px;margin:8px 0;padding:10px 12px}.pcard.ok{background:#e9f6e4}.pcard.hint{background:#fff4e0}.pcard .t{font-size:15.5px;font-weight:600;line-height:1.45}.pcard .opts{gap:6px;margin-top:8px;display:flex}.pcard .opts button{border:3px solid var(--line);background:var(--panel-2);min-height:42px;font-family:var(--px);border-radius:8px;flex:1;font-size:14px}.pcard .opts button.picked{background:var(--teal);color:#fff}.pcard .why{color:#3d5a3a;margin-top:8px;font-size:13.5px;line-height:1.5}.pcard.hint .why{color:#7a5420}.prog{font-family:var(--px);color:var(--ink-2);font-size:12px}.pathcard{text-align:left;border:3px solid var(--line);background:#fff;border-radius:10px;width:100%;margin:8px 0;padding:12px 14px;display:block;box-shadow:0 3px #00000040}.pathcard:active{box-shadow:none;transform:translateY(2px)}.pathcard b{font-family:var(--px);color:var(--teal-d);margin-bottom:2px;font-size:16px;display:block}.pathcard em{background:var(--gold);border:2px solid var(--line);border-radius:4px;margin-left:6px;padding:0 6px;font-size:12px;font-style:normal}.pathcard span{color:var(--ink-2);font-size:14px;line-height:1.5}.slot{border-left:5px solid var(--coral);margin:10px 0;padding:2px 0 2px 10px}.slot h3{font-family:var(--px);color:var(--teal-d);margin:0;font-size:14px}.slot p{margin:4px 0 0}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.menu-list{flex-direction:column;gap:8px;display:flex}.q-item{border:3px solid var(--line);background:#fff;border-radius:8px;margin:8px 0;padding:10px 12px}.q-item b{font-size:15px}.q-item .tag{float:right;font-family:var(--px);background:var(--gold);border:2px solid var(--line);border-radius:4px;padding:0 6px;font-size:11px}.q-item.done{opacity:.7}.q-item.done .tag{background:#bfe3b4}.q-item.soon{opacity:.55}.log-line{margin:6px 0;font-size:14px;line-height:1.55}.log-line b{color:var(--coral-d);font-family:var(--px)}textarea.fb{width:100%;height:220px;font-family:var(--read);border:3px solid var(--line);color:var(--ink);resize:none;-webkit-user-select:text;user-select:text;background:#fff;border-radius:8px;padding:8px;font-size:13px;line-height:1.5}.banner{z-index:60;color:var(--ink);padding:calc(var(--safe-t) + 8px) 12px 8px;background:#ffe28a;align-items:center;gap:8px;font-size:13px;line-height:1.5;display:flex;position:absolute;top:0;left:0;right:0}.banner button{background:var(--ink);color:#fff;border:0;border-radius:4px;flex:none;padding:6px 10px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (orientation:landscape) and (max-height:520px){#dialogue{left:auto;right:calc(10px + var(--safe-r));border-width:3px;width:min(58%,560px);max-height:46dvh;padding:6px 10px 8px;transform:none}#d-speaker{min-height:22px;font-size:13px}.d-tools button{min-height:28px;padding:2px 8px}#d-text{min-height:0;margin:4px 0 2px;font-size:14px;line-height:1.5}#d-next{display:none}.choice{min-height:36px;padding:6px 10px;font-size:13.5px}.screen{padding-top:calc(var(--safe-t) + 8px)}}
