:root{--ui-scale: 1;--character-scale: 1;--character-y-offset: 0vh;color:#fffaf0;background:#0b1321;font-family:Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-weight:700;font-synthesis:none}*{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button{font:inherit}.novel{position:relative;width:100%;height:100%;min-height:0;isolation:isolate;overflow:hidden;background:#122034}.novel.interaction-guard{user-select:none;-webkit-user-select:none}.backdrop{position:absolute;z-index:-4;inset:-2%;background-position:center;background-size:cover}.backdrop:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 38%,#fff2c724 0%,#99dfff12 30%,transparent 62%);mix-blend-mode:screen;filter:blur(14px)}.backdrop.scene-transition{animation:scene-in 1.4s cubic-bezier(.2,.7,.2,1) both}.backdrop.video-pending{opacity:0;scale:1.01;transition:opacity 1s ease,scale 1.2s ease}.backdrop.video-pending.video-revealed{opacity:1;scale:1}.background-video{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;transition:opacity .8s ease}.background-video.video-finished{opacity:0}.cutscene-video{position:absolute;z-index:3;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;transition:opacity .65s ease}.cutscene-video.cutscene-playing{opacity:1}.cutscene-video.cutscene-finished{opacity:0}.cinematic-shade{position:absolute;z-index:-2;inset:0;background:linear-gradient(180deg,#07111e8c 0%,transparent 25%,transparent 52%,#07101fbf 76%,#050a12f5 100%),linear-gradient(90deg,#08101d75,transparent 28%,transparent 76%,#08101d57)}.novel:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;box-shadow:inset 0 0 150px #02081491}.story-header{position:absolute;z-index:5;top:clamp(18px,3vw,42px);right:clamp(20px,4vw,70px);left:clamp(20px,4vw,70px);display:flex;align-items:center;justify-content:space-between;color:#fff;text-shadow:0 2px 14px #000a;zoom:var(--ui-scale)}.chapter-mark{display:grid;gap:4px;padding-left:17px;border-left:2px solid #e7c679}.chapter-mark span{color:#e7c679;font:500 .66rem/1 Georgia,serif;letter-spacing:.28em}.chapter-mark strong{font:500 clamp(1.1rem,2vw,1.45rem)/1.2 Georgia,"Noto Serif KR",serif;letter-spacing:.08em;transform-origin:left center;transition:color .3s ease,text-shadow .3s ease}.header-actions{display:flex;align-items:center;gap:10px}.history-trigger,.history-close,.options-trigger,.options-close,.dev-copy-trigger,.restart-trigger,.header-toggle,.tts-quick-stop,.tts-controls button,.dev-page-jump{border:1px solid #fff4;color:#fff8e7;background:#07142580;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s ease,background .2s ease,color .2s ease,opacity .2s ease}.header-toggle,.tts-quick-stop,.rotate-notice{display:none}.rotate-notice[hidden]{display:none!important}.history-trigger,.tts-controls button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;font-size:.75rem;letter-spacing:.08em}.history-trigger{border-radius:999px}.options-trigger,.dev-copy-trigger,.restart-trigger{position:relative;display:inline-grid;width:38px;height:38px;flex:none;place-items:center;padding:0;border-radius:50%;cursor:pointer}.options-trigger .control-icon,.dev-copy-trigger .control-icon,.restart-trigger .control-icon{width:18px;height:18px}.dev-copy-trigger.copied{border-color:#e7c679cc;color:#ffe9ad;background:#5c4a1dbd}.restart-trigger[data-countdown]:after{content:attr(data-countdown);position:absolute;inset:0;display:grid;place-items:center;color:#ffe9ad;font:500 .78rem/1 Georgia,serif}.restart-trigger[data-countdown] .control-icon{opacity:.18}.restart-trigger:disabled{cursor:wait}.dev-page-jump{display:flex;align-items:center;min-height:34px;overflow:hidden;border-radius:999px;font-size:.7rem;letter-spacing:.08em}.dev-page-jump label{padding-left:12px;color:#d9ba72;font:500 .58rem/1 Georgia,serif;letter-spacing:.15em}.dev-page-jump input{width:50px;margin-left:7px;padding:8px 5px;border:0;border-left:1px solid #ffffff21;border-right:1px solid #ffffff21;outline:0;color:#fff8e7;background:#ffffff08;font:500 .72rem/1 Georgia,serif;text-align:center;appearance:textfield}.dev-page-jump input::-webkit-inner-spin-button,.dev-page-jump input::-webkit-outer-spin-button{margin:0;appearance:none}.dev-page-jump input:focus{background:#d9ba721c;box-shadow:inset 0 0 0 1px #e7c67980}.dev-page-jump span{padding:0 8px;color:#aeb7c4;white-space:nowrap}.dev-page-jump button{align-self:stretch;padding:0 12px;border:0;border-left:1px solid #ffffff21;color:#fff3cb;background:transparent;cursor:pointer}.dev-page-jump button:hover,.dev-page-jump button:focus-visible{color:#ffe9ad;background:#d9ba721c;outline:0}.control-icon{width:14px;height:14px;flex:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.control-icon.stop-icon{fill:currentColor;stroke:none}.tts-reading-tools{display:flex;align-items:center;gap:8px}.tts-controls{display:flex}.tts-controls button:first-child{border-radius:999px 0 0 999px}.tts-controls button:last-child{margin-left:-1px;border-radius:0 999px 999px 0}.history-trigger:hover,.history-trigger:focus-visible,.history-close:hover,.history-close:focus-visible,.options-trigger:hover,.options-trigger:focus-visible,.options-close:hover,.options-close:focus-visible,.dev-copy-trigger:hover,.dev-copy-trigger:focus-visible,.restart-trigger:hover:not(:disabled),.restart-trigger:focus-visible,.tts-controls button:hover:not(:disabled),.tts-controls button:focus-visible{border-color:#e7c679aa;color:#ffe9ad;background:#16253bbd;outline:none}.tts-controls button:disabled{opacity:.38;cursor:default}.tts-speed-controls{display:flex;overflow:hidden;border:1px solid #ffffff38;border-radius:999px;background:#07142599;box-shadow:0 8px 24px #0006,0 0 20px #d9ba7214;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tts-speed-controls[hidden]{display:none}.tts-speed-controls button{min-width:48px;padding:10px 7px;border:0;border-right:1px solid #ffffff1c;color:#c8d0dc;background:transparent;font:500 .67rem/1 Georgia,serif;cursor:pointer;transition:color .18s ease,background .18s ease}.tts-speed-controls button:last-child{border-right:0}.tts-speed-controls button:hover,.tts-speed-controls button:focus-visible{color:#fff0bd;background:#d9ba7218;outline:none}.tts-speed-controls button[aria-pressed=true]{color:#fff1bd;background:#d9ba722b;box-shadow:inset 0 -3px #e7c679}.location{display:flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid #fff4;border-radius:999px;background:#07142566;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.78rem;letter-spacing:.08em}.location i{width:6px;height:6px;border-radius:50%;background:#f1d58e;box-shadow:0 0 10px #ffd773}.progress{position:absolute;z-index:5;top:0;right:0;left:0;height:2px;background:#ffffff1c;zoom:var(--ui-scale)}.progress span{display:block;height:100%;background:linear-gradient(90deg,#d3a84c,#fff0b5);box-shadow:0 0 10px #ffe6a6;transition:width .35s ease}.character{position:absolute;bottom:calc(var(--character-baseline, clamp(16px, 4vh, 42px)) + var(--character-y-offset));width:min(44vw,520px);height:min(76vh,770px,max(64px,calc(100% - var(--character-baseline, clamp(16px, 4vh, 42px)) - clamp(18px,4vh,48px))));margin:0;pointer-events:none;zoom:var(--character-scale)}.character.left{left:clamp(2%,7vw,10%);scale:-1 1}.character.right{right:clamp(2%,7vw,10%)}.character.active{z-index:2;opacity:1;filter:drop-shadow(0 18px 22px #06101abb)}.character.inactive{z-index:1;opacity:1;filter:brightness(.68) saturate(.75) drop-shadow(0 14px 18px #02070dbb)}.character.character-enter{animation-duration:.58s;animation-timing-function:cubic-bezier(.2,.75,.2,1);animation-fill-mode:both}.character.left.character-enter{animation-name:character-in-left}.character.right.character-enter{animation-name:character-in-right}.character img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center bottom}.character img.portrait-loading{opacity:0}.character-glow{position:absolute;inset:20% 8% 3%;border-radius:50%;background:radial-gradient(circle,#f9e7ae52 0%,#8cbbe21a 48%,transparent 70%);filter:blur(20px)}.character.inactive .character-glow{opacity:.12}.story-popup-image{position:absolute;z-index:2;top:40%;left:50%;width:clamp(160px,22vw,360px);max-height:calc(100% - 240px);margin:0;translate:-50% -50%;pointer-events:none;filter:drop-shadow(0 0 18px #8ee9ff70) drop-shadow(0 0 42px #d8b86645);zoom:var(--ui-scale)}.story-popup-image>img,.story-popup-image>video{display:block;width:100%;height:auto;object-fit:contain}.magic-effect{position:absolute;z-index:1;top:29%;left:50%;width:min(42vw,520px);aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle,#fffbd9 0 1%,#fff5a7a8 4%,#85d9ff4f 18%,transparent 62%);animation:magic-bloom 1.5s ease-in-out infinite alternate;zoom:var(--ui-scale)}.magic-effect i{position:absolute;inset:20%;border:1px solid #fff7c985;border-radius:50%;box-shadow:0 0 20px #9edfff80;animation:orbit 7s linear infinite}.magic-effect i:nth-child(2){inset:32%;border-color:#ff9ecb8f;animation-duration:5s;animation-direction:reverse}.magic-effect i:nth-child(3){inset:44%;border-color:#b8ffcf9c;animation-duration:3s}.advance{position:absolute;z-index:3;inset:0;width:100%;border:0;outline:0;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.edge-hint{position:absolute;z-index:3;top:0;bottom:0;width:25%;display:none;place-items:center;pointer-events:none;opacity:0;transition:opacity .5s ease}.edge-hint.left{left:0;background:linear-gradient(90deg,#ffffff2e,#ffffff10 45%,transparent)}.edge-hint.right{right:0;background:linear-gradient(270deg,#ffffff2e,#ffffff10 45%,transparent)}.edge-hint svg{width:clamp(26px,8vw,40px);height:clamp(26px,8vw,40px);stroke:#fff8e7;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 10px #0009)}.edge-hint.visible{opacity:1;transition-duration:.1s}.dialogue-panel{--panel-visible-opacity: 1;position:absolute;z-index:4;right:clamp(16px,6vw,92px);bottom:clamp(16px,4vh,42px);left:clamp(16px,6vw,92px);height:calc(180px * var(--panel-height-scale, 1));padding:36px clamp(28px,5vw,76px) 30px;overflow:visible;border:1px solid #f4db9f80;border-radius:3px 24px;background:linear-gradient(115deg,#081221e6,#101c30e0 48%,#0a1525e6);box-shadow:0 24px 55px #0009,inset 0 1px #ffffff17;opacity:var(--panel-visible-opacity);-webkit-backdrop-filter:blur(24px) saturate(125%);backdrop-filter:blur(24px) saturate(125%);pointer-events:none;zoom:var(--ui-scale)}.dialogue-panel:before,.dialogue-panel:after{content:"";position:absolute;width:42px;height:42px;border-color:#e7c679;opacity:.82}.dialogue-panel:before{top:9px;left:9px;border-top:1px solid;border-left:1px solid}.dialogue-panel:after{right:9px;bottom:9px;border-right:1px solid;border-bottom:1px solid}.panel-ornament{position:absolute;top:0;left:50%;width:min(42%,340px);height:1px;translate:-50%;background:linear-gradient(90deg,transparent,#f6de9b,transparent)}.event-label{position:absolute;top:18px;right:clamp(26px,4vw,58px);color:#d8c89f;font:500 .61rem/1 Georgia,serif;letter-spacing:.24em;opacity:.7}.speaker{position:absolute;top:-24px;left:clamp(30px,6vw,80px);min-width:205px;margin:0;padding:13px 28px 12px;border:1px solid #f6dda2a8;border-radius:2px 14px;background:linear-gradient(135deg,#20365aef,#0e1b30f5);box-shadow:0 9px 24px #0006,inset 0 1px #ffffff1f;color:#fff3cb;font:500 1.17rem/1.1 Georgia,"Noto Serif KR",serif;letter-spacing:.1em}.speaker small{display:block;margin-top:5px;color:#c4ac79;font:700 .54rem/1 sans-serif;letter-spacing:.24em}.dialogue-panel p{max-width:100%;max-height:calc(100% - 18px);margin:8px 0 0;padding-right:8px;overflow-y:auto;pointer-events:auto;color:#fffdf7;font:700 clamp(1.03rem,1.7vw,1.28rem)/1.3 "Noto Sans KR",sans-serif;letter-spacing:.015em;text-shadow:0 1px 4px #0009;white-space:pre-line;scrollbar-width:none}.dialogue-panel p::-webkit-scrollbar{display:none}.dialogue-panel.is-typing p:after{content:"";display:inline-block;width:2px;height:1em;margin-left:4px;translate:0 .14em;background:#f4d993;animation:typing-caret .55s steps(1,end) infinite alternate}.dialogue-panel.narration{padding-right:clamp(36px,10vw,155px);padding-left:clamp(36px,10vw,155px);background:linear-gradient(100deg,#07111ee3,#172030de 50%,#07111ee3)}.dialogue-panel.narration p{color:#f3eee4;text-align:center}.dialogue-panel.effect p{color:#fff1b5;font-family:Georgia,"Noto Serif KR",serif;font-style:italic;text-align:center}.dialogue-panel footer{position:absolute;right:clamp(26px,4vw,58px);bottom:17px;left:clamp(26px,4vw,58px);display:flex;align-items:center;gap:16px;color:#aeb7c4;font-size:.66rem;letter-spacing:.08em}.counter{font-family:Georgia,serif;color:#e6ce94}.counter i{padding:0 3px;color:#788496;font-style:normal}.hint{margin-left:auto;opacity:.7}.next-mark{width:8px;height:8px;rotate:45deg;border-right:1px solid #f7dea0;border-bottom:1px solid #f7dea0;animation:next-pulse .8s ease-in-out infinite alternate}.dialogue-panel.is-typing .next-mark{visibility:hidden;animation:none}.text-mark{font-style:normal;color:var(--mark-hi, #ffd873)}.mark-hi{color:var(--mark-hi, #ffd873)}.mark-warn{color:var(--mark-warn, #ff9d7a)}.mark-code{color:var(--mark-code, #9fe4ff);font-family:Cascadia Code,Consolas,D2Coding,monospace}.mark-soft{color:var(--mark-soft, #a9b6c8)}.dialogue-panel.narration .text-mark,.dialogue-panel.effect .text-mark{color:inherit}.dialogue-panel.narration .mark-hi,.dialogue-panel.effect .mark-hi{color:var(--mark-hi, #ffd873)}.dialogue-panel.narration .mark-warn,.dialogue-panel.effect .mark-warn{color:var(--mark-warn, #ff9d7a)}.dialogue-panel.narration .mark-code,.dialogue-panel.effect .mark-code{color:var(--mark-code, #9fe4ff)}.dialogue-panel.narration .mark-soft,.dialogue-panel.effect .mark-soft{color:var(--mark-soft, #a9b6c8)}.chapter-mark{transition:border-color .3s ease}.slide-title.title-focus{animation:title-focus-pulse .52s ease-out 3}@keyframes title-focus-pulse{0%{scale:1;color:#fff6df;text-shadow:0 0 calc(var(--slide-unit) * 1.6) #e7c67955}40%{scale:1.035;color:#fff8e6;text-shadow:0 0 calc(var(--slide-unit) * 2.6) #ffd873,0 0 calc(var(--slide-unit) * 5) #ffd87366}to{scale:1;color:#fff6df;text-shadow:0 0 calc(var(--slide-unit) * 1.6) #e7c67955}}.chrome-hidden .header-actions{opacity:0;pointer-events:none}.chrome-hidden .dialogue-panel footer .hint,.chrome-hidden .dialogue-panel footer .counter,.chrome-hidden .dialogue-panel .event-label{opacity:0}.chrome-hidden .cutscene-replay{opacity:0;pointer-events:none}.header-actions,.cutscene-replay,.event-label,.hint,.counter{transition:opacity .25s ease}.panel-warning{position:absolute;z-index:5;right:clamp(16px,6vw,92px);bottom:calc(clamp(16px,4vh,42px) + 180px * var(--panel-height-scale, 1) + 10px);left:clamp(16px,6vw,92px);display:grid;gap:4px;padding:9px 14px;border:1px solid #ff9d7a80;border-radius:3px 14px;background:#2a1410f2;box-shadow:0 10px 26px #0008;pointer-events:none;zoom:var(--ui-scale)}.panel-warning p{max-width:100%;max-height:none;margin:0;overflow:visible;color:#ffd9c8;font:500 .74rem/1.45 Noto Sans KR,sans-serif;letter-spacing:.01em;text-align:left;text-shadow:none;white-space:normal;overflow-wrap:anywhere}.panel-warning p:before{content:"⚠ ";color:#ff9d7a}.warning-copy{margin-left:10px;padding:3px 10px;border:1px solid #ff9d7a80;border-radius:999px;background:#3d1d17;color:#ffd9c8;font:600 .68rem/1 Noto Sans KR,sans-serif;letter-spacing:.02em;white-space:nowrap;cursor:pointer;pointer-events:auto;transition:border-color .2s ease,background .2s ease}.warning-copy:hover{border-color:#ffb79a;background:#52251c}.chrome-hidden .panel-warning{display:none}.load-error{position:fixed;inset:50% auto auto 50%;translate:-50% -50%;color:#fff}.event-code .dialogue-panel{display:none}.code-panel{position:absolute;z-index:4;right:clamp(16px,6vw,92px);bottom:clamp(16px,4vh,42px);left:clamp(16px,6vw,92px);display:flex;flex-direction:column;height:min(52%,470px);overflow:hidden;border:1px solid #f4db9f80;border-radius:3px 24px;background:linear-gradient(115deg,#081221f2,#101c30ef 48%,#0a1525f2);box-shadow:0 24px 55px #0009,inset 0 1px #ffffff17;-webkit-backdrop-filter:blur(24px) saturate(125%);backdrop-filter:blur(24px) saturate(125%);zoom:var(--ui-scale)}.code-panel[hidden]{display:none}.code-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;border-bottom:1px solid #ffffff14}.code-file{overflow:hidden;color:#e7c679;font:600 .72rem/1 Cascadia Code,Consolas,monospace;letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap}.code-copy{padding:5px 13px;border:1px solid #fff4;border-radius:999px;color:#fff8e7;background:#07142580;font:600 .62rem/1 inherit;letter-spacing:.08em;cursor:pointer;transition:border-color .2s ease,background .2s ease}.code-copy:hover{border-color:#e7c679;background:#12233c}.code-caption{margin:0;padding:11px 16px 0;color:#fffdf7;font:500 .86rem/1.45 Noto Sans KR,sans-serif;letter-spacing:.01em;white-space:pre-line}.code-caption[hidden]{display:none}.code-lines{flex:1;margin:0;padding:10px 0 14px;overflow:auto;color:#dbe7f5;font:400 .74rem/1.55 Cascadia Code,Consolas,D2Coding,monospace;tab-size:4;scrollbar-width:thin;scrollbar-color:#d9ba7280 transparent}.code-line{display:block;padding:0 16px 0 8px;white-space:pre;transition:opacity .25s ease,background-color .25s ease}.code-line:before{content:attr(data-ln);display:inline-block;margin-right:14px;color:#8fa3bd;font-variant-numeric:tabular-nums;text-align:right;opacity:.55;-webkit-user-select:none;user-select:none}.code-lines.has-focus .code-line:not(.hl){opacity:.38}.code-line.hl{background:#f4db9f1c;box-shadow:inset 3px 0 #e7c679;opacity:1}.lecture-slide{--slide-unit: clamp(9px, 1.05vw, 15px);position:absolute;z-index:-3;inset:0;display:flex;flex-direction:column;gap:calc(var(--slide-unit) * 1.1);padding:clamp(88px,12vh,124px) calc(var(--slide-unit) * 1.5) calc(230px * var(--panel-height-scale, 1) + var(--slide-unit) + 5cqh);overflow:hidden;container-type:size;background:radial-gradient(ellipse at 50% -10%,#24406b66 0%,transparent 58%),radial-gradient(ellipse at 8% 108%,#4a2f6b55 0%,transparent 52%),radial-gradient(ellipse at 94% 96%,#1f5b6b4d 0%,transparent 50%),linear-gradient(178deg,#070b14,#0a0f1c 46%,#060911);color:#f3f6fb;font-size:var(--slide-unit)}.lecture-slide:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(1.5px 1.5px at 12% 22%,#ffe9adcc,transparent),radial-gradient(1.5px 1.5px at 82% 14%,#bfe6ffcc,transparent),radial-gradient(1.5px 1.5px at 32% 78%,#ffe9ad99,transparent),radial-gradient(1.5px 1.5px at 66% 86%,#d8c2ffaa,transparent),radial-gradient(1.5px 1.5px at 91% 62%,#ffe9ad88,transparent),radial-gradient(1.5px 1.5px at 6% 58%,#bfe6ff88,transparent)}.novel:has(.lecture-slide:not([hidden])) .cinematic-shade{display:none}.novel:has(.lecture-slide:not([hidden])):before{display:none}.lecture-slide[hidden]{display:none}.slide-title{display:flex;align-items:center;justify-content:center;gap:calc(var(--slide-unit) * .6);flex:none;margin:0;overflow:hidden;color:#fff6df;font:700 calc(var(--slide-unit) * var(--title-scale, 1.85))/1.25 "Noto Sans KR",sans-serif;letter-spacing:-.015em;text-align:center;text-shadow:0 0 calc(var(--slide-unit) * 1.6) #e7c67955;white-space:nowrap}.slide-title>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.slide-title .slide-icon{width:calc(var(--slide-unit) * 1.55);height:calc(var(--slide-unit) * 1.55);flex:none;color:#e7c679}.slide-title.wrapped{text-wrap:balance;white-space:normal}.slide-columns{display:grid;flex:1;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:calc(var(--slide-unit) * 1.2);min-height:0}.slide-columns:not(:has(.slide-center)){grid-template-columns:1fr 1fr}.slide-panel{display:flex;flex-direction:column;min-width:0;min-height:0}.slide-panel>.slide-head,.slide-panel>.slide-question,.slide-panel>.slide-note{flex:none}.slide-head{position:relative;display:flex;align-items:center;justify-content:center;gap:calc(var(--slide-unit) * .55);padding:calc(var(--slide-unit) * .75) calc(var(--slide-unit) * 1.2);border:1px solid #e7c67966;border-bottom:0;border-radius:calc(var(--slide-unit) * .35) calc(var(--slide-unit) * 1.4) 0 0;font:700 calc(var(--slide-unit) * 1.35)/1.2 "Noto Sans KR",sans-serif;letter-spacing:.02em}.slide-head .slide-icon{width:calc(var(--slide-unit) * 1.4);height:calc(var(--slide-unit) * 1.4);flex:none}.slide-head.plain{color:#1a2333;background:linear-gradient(150deg,#e9ecf1,#c9d0da)}.slide-head.accent{color:#04202f;background:linear-gradient(150deg,#6fd6f7,#17a7e6)}.slide-icon{stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.slide-head-image{height:calc(var(--slide-unit) * 4.6);margin:calc(var(--slide-unit) * -2.6) calc(var(--slide-unit) * -.4) calc(var(--slide-unit) * -1.4) 0;object-fit:contain}.slide-body{position:relative;display:grid;flex:1 1 auto;align-content:center;min-height:0;padding:calc(var(--slide-unit) * .85) calc(var(--slide-unit) * 1.1);overflow:hidden;border:1px solid #e7c67955;border-top:0;border-radius:0 0 calc(var(--slide-unit) * 1.4) calc(var(--slide-unit) * .35);background:linear-gradient(180deg,#fffdf8,#f4f6fa);box-shadow:0 calc(var(--slide-unit) * 1.1) calc(var(--slide-unit) * 2.6) #00000059,inset 0 0 0 1px #fffc}.slide-copy{position:absolute;top:50%;right:calc(var(--slide-unit) * .7);padding:calc(var(--slide-unit) * .26) calc(var(--slide-unit) * .8);translate:0 -50%;border:1px solid currentColor;border-radius:999px;color:inherit;background:#ffffff5c;font:700 calc(var(--slide-unit) * .78)/1.3 "Noto Sans KR",sans-serif;cursor:pointer;pointer-events:auto;opacity:.82;transition:background .2s ease,opacity .2s ease}.slide-copy:hover,.slide-copy:focus-visible{background:#ffffffb8;opacity:1;outline:none}.slide-head:has(.slide-head-image) .slide-copy{right:calc(var(--slide-unit) * 5.2)}.slide-badge{position:absolute;top:calc(var(--slide-unit) * .6);right:calc(var(--slide-unit) * .6);z-index:1;padding:calc(var(--slide-unit) * .3) calc(var(--slide-unit) * .8);border-radius:calc(var(--slide-unit) * .35);color:#fff;background:#10151d;font:700 calc(var(--slide-unit) * .82)/1.3 "Cascadia Code",Consolas,monospace}.slide-code{margin:0;max-height:100%;overflow:auto;overscroll-behavior:contain;color:#1d2a3a;font:400 calc(var(--slide-unit) * 1.02)/1.45 "Cascadia Code",Consolas,"D2Coding",monospace;tab-size:4}.slide-code,.slide-diagram{scrollbar-width:thin;scrollbar-color:#d8ae4f #e7ebf1}.slide-code::-webkit-scrollbar,.slide-diagram::-webkit-scrollbar{width:calc(var(--slide-unit) * .7);height:calc(var(--slide-unit) * .7)}.slide-code::-webkit-scrollbar-track,.slide-diagram::-webkit-scrollbar-track{border-radius:999px;background:#e7ebf1}.slide-code::-webkit-scrollbar-thumb,.slide-diagram::-webkit-scrollbar-thumb{border-radius:999px;background:#d8ae4f}.slide-code::-webkit-scrollbar-thumb:hover,.slide-diagram::-webkit-scrollbar-thumb:hover{background:#c2952f}.slide-code .tk-keyword{color:#0b57d0}.slide-code .tk-type{color:#b3261e}.slide-code .tk-function{color:#7b1fa2}.slide-code .tk-property{color:#0b6b62}.slide-code .tk-string{color:#a9420b}.slide-code .tk-number{color:#8a5300}.slide-code .tk-comment{color:#4f7a3f;font-style:italic}.slide-code .tk-punctuation{color:#6b7684}.slide-code.reveal-on-focus .code-line:not(.seen){visibility:hidden}.slide-bubble[hidden]{display:none}.slide-bubble:not([hidden]){animation:slide-bubble-in .28s ease-out both}.slide-bubble.typing:after{content:"";display:inline-block;width:calc(var(--slide-unit) * .12);height:calc(var(--slide-unit) * .95);margin-left:calc(var(--slide-unit) * .18);translate:0 calc(var(--slide-unit) * .14);background:#1b2430;animation:slide-bubble-caret .6s steps(1,end) infinite}@keyframes slide-bubble-in{0%{opacity:0;translate:0 calc(var(--slide-unit) * .5)}to{opacity:1;translate:0 0}}@keyframes slide-bubble-caret{0%{opacity:1}50%{opacity:0}to{opacity:1}}.code-lines .tk-keyword{color:#7fb2ff}.code-lines .tk-type{color:#ff9d8a}.code-lines .tk-function{color:#d6a8ff}.code-lines .tk-property{color:#6fd8c8}.code-lines .tk-string{color:#ffb877}.code-lines .tk-number{color:#ffd479}.code-lines .tk-comment{color:#8fbf7f;font-style:italic}.code-lines .tk-punctuation{color:#93a1b3}.slide-code .code-line:before{color:#9aa7b8}.slide-code.has-focus .code-line:not(.hl){opacity:.34}.slide-code .code-line.hl{background:#ffe9a836;box-shadow:inset .25em 0 #f0a500}.slide-diagram{display:grid;align-content:center;justify-items:center;min-height:0;max-height:100%;overflow:auto;overscroll-behavior:contain;color:#1d2a3a}.slide-diagram svg{width:100%;height:auto;max-width:100%}.slide-question{margin:calc(var(--slide-unit) * .9) 0 0;color:#fff4d8;font:700 calc(var(--slide-unit) * 1.35)/1.3 "Noto Sans KR",sans-serif;text-align:center;text-shadow:0 0 calc(var(--slide-unit) * 1.3) #e7c67966}.slide-note{display:flex;align-items:center;justify-content:center;gap:calc(var(--slide-unit) * .4);margin:calc(var(--slide-unit) * .4) 0 0;color:#f0a500;font:500 calc(var(--slide-unit) * .95)/1.3 "Noto Sans KR",sans-serif;text-align:center}.slide-note[hidden],.slide-question[hidden]{display:none}.slide-note:before{content:"!";display:grid;width:calc(var(--slide-unit) * 1.25);height:calc(var(--slide-unit) * 1.25);flex:none;place-items:center;border-radius:50%;color:#1b1300;background:#f0a500;font-size:calc(var(--slide-unit) * .85)}.slide-center{display:grid;align-content:center;justify-items:center;gap:calc(var(--slide-unit) * .8);padding:0 calc(var(--slide-unit) * .5)}.slide-flow{display:flex;align-items:center;gap:calc(var(--slide-unit) * .5)}.slide-arrow{width:calc(var(--slide-unit) * 1.7);height:calc(var(--slide-unit) * 1.7);flex:none;color:#f0a500;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.slide-badge-round{display:grid;width:calc(var(--slide-unit) * 5.2);height:calc(var(--slide-unit) * 5.2);flex:none;place-items:center;border:calc(var(--slide-unit) * .2) solid #f0a500;border-radius:50%;color:#2a1e00;background:radial-gradient(circle at 50% 34%,#fff8e2,#ffe6ab);box-shadow:0 0 calc(var(--slide-unit) * 1.6) #f0a50077,inset 0 0 calc(var(--slide-unit) * .8) #fff;font:700 calc(var(--slide-unit) * 1.02)/1.25 "Noto Sans KR",sans-serif;text-align:center;white-space:pre-line}.slide-bubble{position:relative;max-width:calc(var(--slide-unit) * 11);margin-top:calc(var(--slide-unit) * .2);padding:calc(var(--slide-unit) * .7) calc(var(--slide-unit) * .95);border-radius:calc(var(--slide-unit) * .8);color:#1b2430;background:#e9edf2;font:500 calc(var(--slide-unit) * .98)/1.35 "Noto Sans KR",sans-serif;text-align:center}.slide-bubble:before{content:"";position:absolute;top:calc(var(--slide-unit) * -.55);left:50%;border:calc(var(--slide-unit) * .45) solid transparent;border-bottom-color:#e9edf2;translate:-50% 0}.slide-free{width:100%;height:100%;overflow:auto}.slide-panel.flash .slide-head{animation:slide-panel-flash-head .52s ease-out 3}.slide-panel.flash .slide-body{animation:slide-panel-flash-body .52s ease-out 3}@keyframes slide-panel-flash-head{0%{filter:brightness(1)}40%{filter:brightness(1.5) saturate(1.25)}to{filter:brightness(1)}}@keyframes slide-panel-flash-body{0%{box-shadow:0 0 #ffd87300}40%{box-shadow:0 0 0 calc(var(--slide-unit) * .5) #ffd873cc,0 0 calc(var(--slide-unit) * 2.4) #ffd87377}to{box-shadow:0 0 #ffd87300}}.cutin{--cutin-unit: clamp(10px, 1.15vw, 17px);position:absolute;z-index:4;right:clamp(16px,5vw,76px);bottom:calc(clamp(16px,4vh,42px) + 180px * var(--panel-height-scale, 1) + 12px);left:clamp(16px,5vw,76px);display:flex;align-items:flex-end;justify-content:flex-end;gap:calc(var(--cutin-unit) * .8);pointer-events:none;zoom:var(--ui-scale)}.cutin[hidden]{display:none}.cutin.left{flex-direction:row-reverse;justify-content:flex-end}.cutin-portrait{width:auto;max-width:34%;height:clamp(180px,34vh,380px);flex:none;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 18px 26px #030812cc)}.cutin.enter .cutin-portrait{animation:cutin-portrait-in .42s cubic-bezier(.2,.7,.2,1) both}.cutin.left.enter .cutin-portrait{animation-name:cutin-portrait-in-left}@keyframes cutin-portrait-in{0%{opacity:0;translate:calc(var(--cutin-unit) * 2.2) 0}to{opacity:1;translate:0 0}}@keyframes cutin-portrait-in-left{0%{opacity:0;translate:calc(var(--cutin-unit) * -2.2) 0}to{opacity:1;translate:0 0}}.cutin-bubble{position:relative;max-width:min(58%,620px);margin:0 0 calc(var(--cutin-unit) * 3.5);padding:calc(var(--cutin-unit) * .95) calc(var(--cutin-unit) * 1.3);border:1px solid #f4db9f8c;border-radius:calc(var(--cutin-unit) * 1.2) calc(var(--cutin-unit) * 1.2) calc(var(--cutin-unit) * .3) calc(var(--cutin-unit) * 1.2);color:#fffdf7;background:linear-gradient(120deg,#10203bf5,#0a1526f2);box-shadow:0 16px 38px #0009,inset 0 1px #ffffff1f;font:700 calc(var(--cutin-unit) * 1.02)/1.45 "Noto Sans KR",sans-serif;letter-spacing:.01em;white-space:pre-line;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cutin-bubble[hidden]{display:none}.cutin.left .cutin-bubble{border-radius:calc(var(--cutin-unit) * 1.2) calc(var(--cutin-unit) * 1.2) calc(var(--cutin-unit) * 1.2) calc(var(--cutin-unit) * .3)}.cutin-bubble:after{content:"";position:absolute;right:calc(var(--cutin-unit) * -.62);bottom:calc(var(--cutin-unit) * .9);border:calc(var(--cutin-unit) * .5) solid transparent;border-left-color:#10203bf5}.cutin.left .cutin-bubble:after{right:auto;left:calc(var(--cutin-unit) * -.62);border-left-color:transparent;border-right-color:#10203bf5}.cutin.enter .cutin-bubble{animation:cutin-bubble-in .34s ease-out .1s both}.cutin-bubble.typing:after{animation:none}@keyframes cutin-bubble-in{0%{opacity:0;scale:.96;translate:0 calc(var(--cutin-unit) * .5)}to{opacity:1;scale:1;translate:0 0}}.popup-zoom-overlay{position:absolute;z-index:8;inset:0;display:grid;place-items:center;padding:clamp(10px,3vw,40px);background:#020711e6;cursor:zoom-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.popup-zoom-overlay[hidden]{display:none}.popup-zoom-overlay img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 12px 40px #000c)}.popup-zoom-overlay svg{width:100%;height:100%;max-width:none!important}.story-popup-image:has(img),.story-popup-image.diagram{cursor:zoom-in}.story-popup-image.maximized{top:var(--stage-band-top, 96px);right:clamp(20px,4vw,70px);bottom:var(--stage-band-bottom, 236px);left:clamp(20px,4vw,70px);display:block;width:auto;max-height:none;padding:0;translate:0;zoom:1}.story-popup-image.maximized>img,.story-popup-image.maximized>video,.story-popup-image.maximized>svg{position:absolute;inset:0;width:auto;height:auto;max-width:100%;max-height:100%;margin:auto}.story-popup-image.maximized.diagram{width:auto;max-height:none;overflow:visible}.story-popup-image.maximized.diagram>svg{height:100%}.story-popup-image.diagram{display:grid;place-items:center;width:clamp(200px,34vw,520px);max-height:calc(100% - 240px);padding:12px;overflow:hidden;border:1px solid #f4db9f66;border-radius:3px 16px;background:#0b1321d9;box-shadow:0 18px 50px #0009;color:#dbe7f5;font-size:.7rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.story-popup-image.diagram svg{width:100%;height:auto;max-height:100%}.cutscene-skip{position:absolute;z-index:6;right:clamp(20px,5vw,60px);bottom:clamp(24px,6vh,60px);padding:9px 18px;border:1px solid #fff5;border-radius:999px;color:#fff8e7;background:#07142599;font:600 .72rem/1 inherit;letter-spacing:.1em;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s ease,background .2s ease;zoom:var(--ui-scale)}.cutscene-skip:hover{border-color:#e7c679;background:#12233c}.cutscene-replay{position:absolute;z-index:5;top:calc(clamp(18px,3vw,42px) + 48px);right:clamp(20px,4vw,70px);display:inline-grid;width:36px;height:36px;place-items:center;padding:0;border:1px solid #fff4;border-radius:50%;color:#fff8e7;background:#07142580;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s ease,background .2s ease;zoom:var(--ui-scale)}.cutscene-replay[hidden]{display:none}.cutscene-replay:hover{border-color:#e7c679;background:#12233c}.cutscene-replay .control-icon{width:16px;height:16px}.theater-video{position:absolute;z-index:3;top:var(--stage-band-top, 96px);right:0;bottom:var(--theater-band-bottom, 120px);left:0;width:auto;height:auto;max-width:calc(100% - (2*clamp(20px,4vw,70px)));max-height:calc(100% - var(--stage-band-top, 96px) - var(--theater-band-bottom, 120px));margin:auto;border-radius:3px 16px;background:#05080f;box-shadow:0 18px 50px #000a}.theater-active .dialogue-panel,.theater-active .cutin,.theater-active .character{opacity:0;pointer-events:none}.theater-controls{position:absolute;z-index:6;right:clamp(16px,6vw,92px);bottom:clamp(8px,1.2vh,14px);left:clamp(16px,6vw,92px);display:flex;align-items:center;gap:clamp(12px,1.6vw,22px);padding:14px clamp(18px,2.4vw,30px);border:1px solid #f4db9f66;border-radius:3px 20px;background:linear-gradient(115deg,#081221f2,#101c30ee 48%,#0a1525f2);box-shadow:0 20px 46px #000a,inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(20px) saturate(125%);backdrop-filter:blur(20px) saturate(125%);zoom:var(--ui-scale)}.theater-controls[hidden]{display:none}.theater-controls button{display:inline-flex;align-items:center;gap:7px;padding:0;border:1px solid #fff3;border-radius:999px;background:#0d1a2d99;color:#fff8e7;font:600 .74rem/1 inherit;letter-spacing:.08em;cursor:pointer;transition:border-color .2s ease,background .2s ease}.theater-controls button:hover{border-color:#e7c679;background:#16273f}.tv-icon{width:20px;height:20px;fill:currentColor}.tv-play{width:44px;height:44px;flex:none;justify-content:center}.tv-play .pause,.tv-play[data-state=playing] .play{display:none}.tv-play[data-state=playing] .pause{display:block}.tv-body{display:grid;flex:1;gap:6px;min-width:0}.tv-title{overflow:hidden;color:#fff3cb;font:600 .82rem/1.2 Noto Sans KR,sans-serif;letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis}.tv-title:empty{display:none}.tv-time{flex:none;color:#e6ce94;font:400 .72rem/1 Georgia,serif;letter-spacing:.06em;font-variant-numeric:tabular-nums}.tv-sound{display:flex;flex:none;align-items:center;gap:8px}.tv-mute{width:38px;height:38px;flex:none;justify-content:center}.tv-mute .tv-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tv-mute .sound-off{display:none}.tv-mute[data-state=off]{color:#ff9d7a;border-color:#ff9d7a66}.tv-mute[data-state=off] .sound-on{display:none}.tv-mute[data-state=off] .sound-off{display:block}.tv-sound .tv-volume{width:104px}.tv-level{min-width:38px;color:#e6ce94;font:400 .68rem/1 Georgia,serif;letter-spacing:.04em;text-align:right;font-variant-numeric:tabular-nums}.theater-controls.boosted .tv-level{color:#ffb066}.theater-controls.boosted .tv-volume::-webkit-slider-thumb{background:#ffb066}.theater-controls.boosted .tv-volume::-moz-range-thumb{background:#ffb066}.tv-next{width:44px;height:44px;flex:none;justify-content:center}.tv-next .tv-icon{width:24px;height:24px}.theater-controls.ended .tv-next{border-color:#e7c679;background:#1b2f4c;animation:next-pulse .9s ease-in-out infinite alternate}.theater-controls.failed .tv-title:after{content:" — 영상을 불러오지 못했습니다";color:#ff9d7a}.tv-seek,.tv-volume{width:100%;height:16px;margin:0;padding:0;background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none}.tv-seek:disabled,.tv-volume:disabled{cursor:default;opacity:.45}.tv-seek::-webkit-slider-runnable-track,.tv-volume::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:#ffffff2e}.tv-seek::-moz-range-track,.tv-volume::-moz-range-track{height:4px;border-radius:999px;background:#ffffff2e}.tv-seek::-webkit-slider-thumb,.tv-volume::-webkit-slider-thumb{width:14px;height:14px;margin-top:-5px;border:0;border-radius:50%;background:#f4d993;box-shadow:0 2px 6px #0008;appearance:none;-webkit-appearance:none}.tv-seek::-moz-range-thumb,.tv-volume::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:#f4d993;box-shadow:0 2px 6px #0008}.tv-seek:focus-visible,.tv-volume:focus-visible{outline:1px solid #f4d993;outline-offset:4px}.history-overlay{position:fixed;z-index:200;inset:0;display:grid;place-items:center;padding:clamp(14px,4vw,50px);background:#020711d9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:history-overlay-in .25s ease both}.options-overlay{position:fixed;z-index:220;inset:0;display:grid;place-items:center;padding:clamp(14px,4vw,50px);background:#020711d9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:history-overlay-in .25s ease both}.options-overlay[hidden]{display:none}.options-window{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(520px,100%);max-height:100%;overflow:hidden;border:1px solid #e7c67970;border-radius:5px 28px;background:linear-gradient(145deg,#101c30f7,#07111ef5);box-shadow:0 30px 100px #000d,inset 0 1px #ffffff17}.options-window>header{display:flex;align-items:center;justify-content:space-between;padding:24px 30px;border-bottom:1px solid #ffffff1c}.options-window>header span{color:#d9ba72;font:500 .58rem/1 Georgia,serif;letter-spacing:.28em}.options-window h2{margin:7px 0 0;color:#fff8e7;font:500 1.65rem/1.1 Georgia,"Noto Serif KR",serif;letter-spacing:.08em}.options-close{padding:9px 15px;border-radius:999px;font-size:.75rem;cursor:pointer}.options-content{display:grid;gap:26px;overflow-y:auto;padding:30px;scrollbar-width:none}.options-content::-webkit-scrollbar{display:none}.display-scale-option{display:grid;gap:10px}.display-scale-option>span{display:flex;align-items:center;justify-content:space-between;gap:18px}.display-scale-option strong{color:#f5eee0;font-size:.9rem;font-weight:700;letter-spacing:.06em}.display-scale-option output{min-width:44px;color:#e7c679;font:500 .76rem/1 Georgia,serif;text-align:right}.display-scale-option small{color:#929dac;font-size:.7rem;letter-spacing:.04em}.display-scale-option input{width:100%;accent-color:#e7c679;cursor:pointer}.volume-option{display:grid;gap:12px}.volume-option>span,.playback-option,.auto-read-option{display:flex;align-items:center;justify-content:space-between;gap:18px}.volume-option strong,.playback-option>strong,.auto-read-option strong{color:#f5eee0;font-size:.9rem;font-weight:700;letter-spacing:.06em}.volume-option output{min-width:44px;color:#e7c679;font:500 .76rem/1 Georgia,serif;text-align:right}.volume-option input{width:100%;accent-color:#e7c679;cursor:pointer}.playback-option{align-items:flex-start}.options-speed-controls{flex:none}.auto-read-option{position:relative;cursor:pointer}.auto-read-option>span{display:grid;gap:6px}.auto-read-option small{color:#929dac;font-size:.7rem;letter-spacing:.04em}.switch-toggle{position:absolute;width:1px;height:1px;opacity:0}.auto-read-option>i{position:relative;width:46px;height:25px;flex:none;border:1px solid #ffffff38;border-radius:999px;background:#07142599;transition:border-color .18s ease,background .18s ease}.auto-read-option>i:after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#9aa5b4;transition:translate .18s ease,background .18s ease}.switch-toggle:checked+i{border-color:#e7c679aa;background:#d9ba7238}.switch-toggle:checked+i:after{translate:21px 0;background:#ffe9ad}.switch-toggle:focus-visible+i{outline:2px solid #e7c679;outline-offset:3px}.autoplay-unlock-prompt{position:fixed;z-index:230;top:clamp(74px,10vh,120px);left:50%;display:grid;gap:4px;min-width:min(360px,calc(100vw - 32px));padding:13px 22px;translate:-50% 0;border:1px solid #e7c679aa;border-radius:999px;color:#fff8e7;background:#071425eb;box-shadow:0 12px 38px #000b;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.autoplay-unlock-prompt strong{color:#ffe9ad;font-size:.8rem;font-weight:700;letter-spacing:.08em}.autoplay-unlock-prompt span{font-size:.72rem;letter-spacing:.03em}.autoplay-unlock-prompt:hover,.autoplay-unlock-prompt:focus-visible{border-color:#ffe9ad;background:#16253bf2;outline:none}.history-window{display:grid;grid-template-rows:auto auto minmax(0,1fr);width:min(940px,100%);height:min(100%,900px);overflow:hidden;border:1px solid #e7c67970;border-radius:5px 28px;background:linear-gradient(145deg,#101c30f7,#07111ef5);box-shadow:0 30px 100px #000d,inset 0 1px #ffffff17;zoom:var(--ui-scale)}.history-window>header{display:flex;align-items:center;justify-content:space-between;padding:24px clamp(22px,4vw,42px);border-bottom:1px solid #ffffff1c}.history-window>header span{color:#d9ba72;font:500 .6rem/1 Georgia,serif;letter-spacing:.3em}.history-window h2{margin:7px 0 0;color:#fff8e7;font:500 clamp(1.35rem,3vw,2rem)/1.1 Georgia,"Noto Serif KR",serif;letter-spacing:.08em}.history-close{padding:9px 15px;border-radius:999px;font-size:.75rem}.history-tabs{display:flex;gap:8px;overflow-x:auto;padding:14px clamp(14px,3vw,32px);border-bottom:1px solid #ffffff14;scrollbar-width:thin;scrollbar-color:#d9ba7280 transparent}.history-tabs button{min-width:max-content;padding:9px 18px;border:1px solid #ffffff24;border-radius:999px;color:#aeb7c4;background:#07142580;font-size:.74rem;cursor:pointer}.history-tabs button:hover,.history-tabs button:focus-visible{border-color:#d9ba7280;color:#fff0bd;outline:none}.history-tabs button[aria-selected=true]{border-color:#e7c67999;color:#fff1bd;background:#d9ba7224;box-shadow:inset 0 -2px #e7c679}.history-list{overflow-y:auto;padding:20px clamp(14px,3vw,32px) 34px;scrollbar-color:#d9ba7280 transparent}.history-chapter{display:grid;align-content:start;gap:10px}.history-chapter[hidden]{display:none}.history-episode{height:max-content;overflow:hidden;border:1px solid #ffffff18;border-radius:3px 15px;background:#ffffff05}.history-episode.open{border-color:#d9ba7255;background:#d9ba7208}.history-episode.current{border-color:#e7c67970}.history-episode-toggle{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 18px;width:100%;padding:17px 54px 17px 20px;border:0;color:#f5f1e9;background:transparent;text-align:left;cursor:pointer}.history-episode-toggle:hover,.history-episode-toggle:focus-visible{background:#d9ba7210;outline:none}.history-episode-toggle span{color:#d0b66f;font:700 .64rem/1 sans-serif;letter-spacing:.14em}.history-episode-toggle strong{grid-column:1;color:#f6f2e9;font:500 1.04rem/1.35 Georgia,"Noto Serif KR",serif}.history-episode-toggle small{grid-row:1 / span 2;grid-column:2;align-self:center;color:#8f9bac;font-size:.7rem}.history-episode-toggle i{position:absolute;top:50%;right:22px;width:9px;height:9px;translate:0 -65%;rotate:45deg;border-right:1px solid #d9ba72;border-bottom:1px solid #d9ba72;transition:rotate .2s ease,translate .2s ease}.history-episode.open .history-episode-toggle i{translate:0 -30%;rotate:225deg}.history-episode-scenes{display:grid;gap:9px;padding:4px 12px 13px;border-top:1px solid #ffffff12}.history-episode-scenes[hidden]{display:none}.history-item{display:grid;gap:9px;width:100%;padding:19px 21px;border:1px solid #ffffff14;border-radius:3px 13px;color:#f5f1e9;background:#ffffff08;text-align:left;cursor:pointer;transition:translate .18s ease,border-color .18s ease,background .18s ease}.history-item:hover,.history-item:focus-visible{translate:4px 0;border-color:#e7c67970;background:#d9ba7212;outline:none}.history-item.current{border-color:#e7c67990;background:#d9ba7219}.history-item span{color:#bba873;font:700 .62rem/1 sans-serif;letter-spacing:.12em}.history-item strong{color:#f6f2e9;font:500 1rem/1.45 Georgia,"Noto Serif KR",serif}.history-item small{color:#929dac;font-size:.7rem}.episode-transition{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:#02050a;opacity:0;transition:opacity .65s ease,background 1.1s ease;pointer-events:auto}.episode-transition.novel-title-visible{background:radial-gradient(ellipse at 50% 46%,var(--title-scene-tint, #241a4a) 0%,#0e0a1e 44%,#02050a 76%)}.title-scene-backdrop{position:absolute;z-index:0;inset:0;opacity:0;background-image:var(--title-scene-image);background-position:center;background-size:cover;transition:opacity .9s ease,scale 1.6s ease;scale:1.06}.title-scene-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#02050a 0%,transparent 26%,transparent 62%,#02050af2 100%),#02050a;opacity:var(--title-scene-dim, .55)}.episode-transition.novel-title-visible .title-scene-backdrop{opacity:1;scale:1}.title-scene-character{position:absolute;z-index:1;bottom:0;height:min(78%,640px);opacity:0;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 22px 34px #01040acc);transition:opacity .8s ease,translate .9s cubic-bezier(.2,.72,.16,1);zoom:var(--ui-scale)}.title-scene-character.right{right:clamp(12px,6vw,120px);translate:calc(var(--title-scene-shift, 40px)) 0}.title-scene-character.left{left:clamp(12px,6vw,120px);translate:calc(var(--title-scene-shift, 40px) * -1) 0}.episode-transition.novel-title-visible .title-scene-character{opacity:1;translate:0 0}.novel-title,.episode-title{position:relative;z-index:2}.episode-transition.blackout{opacity:1}.episode-transition.no-background-fade{transition:none}.episode-transition.reveal{opacity:0}.novel-title,.episode-title{grid-area:1 / 1;display:grid;justify-items:center;gap:15px;padding:40px;opacity:0;text-align:center;zoom:var(--ui-scale)}.episode-title{translate:0 18px;transition:opacity .5s ease,translate .5s ease}.episode-transition.title-visible .episode-title{opacity:1;translate:0}.novel-title{position:relative;transition:opacity .5s ease}.episode-transition.novel-title-visible .novel-title{opacity:1}.novel-title strong{color:#fff8e7;font:500 clamp(2rem,5.4vw,4.6rem)/1.25 Georgia,"Noto Serif KR",serif;letter-spacing:.09em;text-shadow:0 0 32px #d8b96a4a}.episode-transition.novel-title-visible .novel-title strong{animation:novel-title-imprint 1.15s cubic-bezier(.2,.72,.16,1) both}@keyframes novel-title-imprint{0%{opacity:0;scale:1.16;filter:blur(11px);letter-spacing:.34em;text-shadow:0 0 60px #d8b96a}55%{opacity:1;filter:blur(0)}to{opacity:1;scale:1;filter:blur(0);letter-spacing:.09em;text-shadow:0 0 32px #d8b96a4a}}.novel-title .title-rule{width:min(300px,46vw);height:1px;background:linear-gradient(90deg,transparent,#d9ba72,transparent)}.episode-transition.novel-title-visible .novel-title .title-rule{animation:novel-title-rule 1.05s cubic-bezier(.2,.72,.16,1) both}@keyframes novel-title-rule{0%{opacity:0;scale:.3 1}to{opacity:1;scale:1 1}}.novel-title .title-sigil{position:absolute;top:50%;left:50%;width:min(560px,76vw);aspect-ratio:1;translate:-50% -50%;border:1px solid #d9ba7233;border-radius:50%;opacity:0;pointer-events:none}.novel-title .title-sigil:before,.novel-title .title-sigil:after{content:"";position:absolute;border:1px solid #d9ba7226;border-radius:50%}.novel-title .title-sigil:before{inset:9%;border-style:dashed}.novel-title .title-sigil:after{inset:24%;border-color:#9fd8ff1f}.episode-transition.novel-title-visible .novel-title .title-sigil{animation:novel-title-sigil 1s ease-out both,novel-title-spin 46s linear infinite}@keyframes novel-title-sigil{0%{opacity:0;scale:.82}to{opacity:1;scale:1}}@keyframes novel-title-spin{0%{rotate:0deg}to{rotate:360deg}}.episode-title span{color:#d9ba72;font:500 clamp(.72rem,1.3vw,.95rem)/1 Georgia,serif;letter-spacing:.38em}.episode-title strong{color:#fff8e7;font:500 clamp(1.8rem,5vw,4.2rem)/1.25 Georgia,"Noto Serif KR",serif;letter-spacing:.08em;text-shadow:0 0 28px #d8b96a38}.ending-title p{margin:0;color:#c8c1b2;font-size:clamp(.85rem,1.8vw,1.1rem);letter-spacing:.08em}.episode-title i{width:min(220px,38vw);height:1px;margin-top:10px;background:linear-gradient(90deg,transparent,#d9ba72,transparent)}@keyframes scene-in{0%{scale:1.04;filter:brightness(.78) blur(3px);opacity:.55}to{scale:1;filter:brightness(1) blur(0);opacity:1}}@keyframes panel-in{0%{translate:0 18px;opacity:0}to{translate:0;opacity:var(--panel-visible-opacity)}}@keyframes character-in-left{0%{translate:-44px 12px;opacity:0}to{translate:0;opacity:1}}@keyframes character-in-right{0%{translate:44px 12px;opacity:0}to{translate:0;opacity:1}}@keyframes magic-bloom{0%{scale:.88;opacity:.65}to{scale:1.08;opacity:1}}@keyframes orbit{to{rotate:360deg}}@keyframes next-pulse{to{translate:0 3px;opacity:.45}}@keyframes typing-caret{to{opacity:.15}}@keyframes history-overlay-in{0%{opacity:0}to{opacity:1}}:root{--stage-width: var(--frame-width, 100%);--stage-height: min(var(--frame-height, 100%), calc(var(--frame-width, 100vw) * 16 / 9))}#app{display:grid;place-items:center;align-items:var(--stage-align, center);justify-items:var(--stage-justify, center);padding-top:var(--stage-offset-y, 0px);background:#000;touch-action:manipulation}.novel,.episode-transition,.history-overlay,.options-overlay{width:var(--stage-width);height:var(--stage-height)}.episode-transition,.history-overlay,.options-overlay{inset:var(--stage-offset-y, 0px) 0 0 0;margin:var(--stage-margin, auto)}@supports (height: 100dvh){html,body,#app{height:100dvh}}@media(max-width:760px),(pointer:coarse)and (orientation:landscape)and (max-height:560px){.history-trigger{display:none}.location{cursor:pointer}.backdrop{background-position:var(--scene-pan, 50%) center}.background-video,.cutscene-video{object-position:var(--scene-pan, 50%) center}.advance{touch-action:none}.edge-hint{display:grid}.story-header{top:12px;right:calc(12px + env(safe-area-inset-right,0px));left:calc(12px + env(safe-area-inset-left,0px));align-items:flex-start}.chapter-mark{flex:1 1 auto;min-width:0;gap:2px;padding-left:11px}.header-actions{align-items:center;flex:0 1 auto;max-width:100%;min-width:0;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;gap:6px}.header-actions[data-expanded=false]{flex-wrap:nowrap}.tts-reading-tools{gap:5px}.tts-speed-controls button{min-width:40px;padding:8px 4px;font-size:.58rem}.tts-controls button:disabled{display:none}.tts-controls button:first-child,.tts-controls button:last-child{margin-left:0;border-radius:999px}.history-trigger,.tts-controls button{padding:7px 10px;font-size:.67rem}.dev-page-jump label{display:none}.dev-page-jump input{width:42px;margin-left:0;padding:7px 4px;border-left:0}.dev-page-jump button{padding:0 9px}.location{order:1;flex:0 1 auto;min-width:0;max-width:min(34vw,132px);overflow-wrap:anywhere;padding:7px 10px;border-radius:14px;font-size:.67rem;line-height:1.25;text-align:left}.location i{align-self:flex-start;margin-top:3px}.header-toggle{order:3;display:inline-grid;width:34px;height:34px;flex:none;place-items:center;padding:0;border-radius:50%;cursor:pointer;touch-action:none}.header-toggle .control-icon{width:16px;height:16px;transition:rotate .2s ease}.header-toggle[aria-expanded=true] .control-icon{rotate:180deg}.header-actions[data-expanded=false]>*:not(.header-toggle):not(.tts-quick-stop){display:none}.tts-quick-stop[data-reading=true]{order:2;display:inline-grid;width:34px;height:34px;flex:none;place-items:center;padding:0;border-radius:50%;cursor:pointer}.tts-quick-stop .control-icon{width:16px;height:16px}.header-actions[data-expanded=true]>.tts-quick-stop{display:none}.header-actions{transition:transform .22s ease,opacity .22s ease}.story-header[data-stowed=true] .header-actions{opacity:0;transform:translate(calc(100% + 24px));pointer-events:none}.story-popup-image{z-index:0;left:clamp(12px,4vw,24px);translate:0 -50%}.character{bottom:calc(var(--character-baseline, 12px) + var(--character-y-offset));width:min(66vw,380px);height:min(62vh,380px,max(64px,calc(100% - var(--character-baseline, 12px) - 18px)))}.character.left,.character.right{right:-6%;left:auto;scale:1 1}.character.left.character-enter,.character.right.character-enter{animation-name:character-in-right}.novel:has(.character.active) .character.inactive{display:none}.novel:not(:has(.character.active)) .character.left:has(~.character.right){display:none}.dialogue-panel{display:flex;flex-direction:column;justify-content:center;right:calc(12px + env(safe-area-inset-right,0px));bottom:12px;left:calc(12px + env(safe-area-inset-left,0px));height:calc(180px * var(--panel-height-scale, 1));padding:16px 24px 30px;border-radius:2px 18px}.theater-controls{right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px));left:calc(12px + env(safe-area-inset-left,0px));padding:10px 14px;gap:10px}.tv-play,.tv-next{width:38px;height:38px}.tv-next .tv-icon{width:20px;height:20px}.tv-mute{width:34px;height:34px}.tv-sound .tv-volume,.tv-level{display:none}.theater-video{max-width:calc(100% - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))}.lecture-slide{--slide-unit: clamp(8px, 2.5vw, 12px);padding-top:clamp(58px,9vh,84px);padding-bottom:calc(200px * var(--panel-height-scale, 1) + var(--slide-unit) + 5cqh)}.slide-columns{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.slide-columns:has(.slide-center){grid-template-rows:minmax(0,1fr) auto minmax(0,1fr)}.slide-center{grid-auto-flow:column;align-items:center;padding:calc(var(--slide-unit) * .2) 0}.slide-badge-round{width:calc(var(--slide-unit) * 3.9);height:calc(var(--slide-unit) * 3.9);font-size:calc(var(--slide-unit) * .88)}.slide-bubble{max-width:calc(var(--slide-unit) * 9);padding:calc(var(--slide-unit) * .5) calc(var(--slide-unit) * .7);font-size:calc(var(--slide-unit) * .85)}.slide-center .slide-arrow{rotate:90deg}.slide-bubble{margin-top:0}.slide-bubble:before{top:50%;left:calc(var(--slide-unit) * -.55);border-bottom-color:transparent;border-right-color:#e9edf2;translate:0 -50%}.cutin{--cutin-unit: clamp(9px, 2.6vw, 13px);right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + 180px * var(--panel-height-scale, 1) + 10px);left:calc(12px + env(safe-area-inset-left,0px))}.cutin-portrait{max-width:40%;height:clamp(140px,26vh,240px)}.cutin-bubble{max-width:60%;margin-bottom:calc(var(--cutin-unit) * 2.4)}.panel-warning{right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + 180px * var(--panel-height-scale, 1) + 8px);left:calc(12px + env(safe-area-inset-left,0px))}.code-panel{right:calc(12px + env(safe-area-inset-right,0px));bottom:12px;left:calc(12px + env(safe-area-inset-left,0px));height:min(56%,470px);border-radius:2px 18px}.dialogue-panel.dialogue{padding-top:28px}.dialogue-panel p,.dialogue-panel.narration p{max-height:100%;margin-top:0;font-size:.98rem;line-height:1.16}.dialogue-panel.narration{padding-right:25px;padding-left:25px}.speaker{top:-20px;left:22px;min-width:140px;padding:7px 18px;font-size:1.053rem}.speaker small,.event-label,.hint{display:none}.history-overlay,.options-overlay{padding:8px}.options-window>header{padding:19px 18px}.options-content{gap:22px;padding:22px 18px}.playback-option{align-items:stretch;flex-direction:column}.options-speed-controls{width:100%}.options-speed-controls button{min-width:0;flex:1}.history-window{height:100%;border-radius:3px 18px}.history-window>header{padding:19px 18px}.history-tabs,.history-list{padding-right:10px;padding-left:10px}}@media(orientation:landscape)and (max-height:560px){.story-popup-image{top:39%;width:clamp(120px,22vw,190px);max-height:calc(100% - 150px)}.history-overlay{padding:6px}.history-window{width:min(940px,100%);height:100%;border-radius:3px 16px}.history-window>header{padding:9px 14px}.history-window>header span{font-size:.48rem}.history-window h2{margin-top:3px;font-size:.95rem}.history-close{padding:6px 11px;font-size:.62rem}.history-tabs{gap:5px;padding:6px 8px}.history-tabs button{padding:6px 10px;font-size:.58rem}.history-list{padding:7px 8px 10px}.history-chapter{gap:5px}.history-episode-toggle{gap:3px 10px;min-height:42px;padding:7px 40px 7px 12px}.history-episode-toggle span{font-size:.5rem}.history-episode-toggle strong{font-size:.78rem;line-height:1.15}.history-episode-toggle small{font-size:.55rem}.history-episode-toggle i{right:16px;width:7px;height:7px}.history-episode-scenes{gap:4px;padding:3px 5px 6px}.history-item{gap:3px;min-height:42px;padding:7px 10px}.history-item span{font-size:.48rem}.history-item strong{font-size:.72rem;line-height:1.15}.history-item small{font-size:.55rem}.dialogue-panel{height:clamp(96px,27dvh,120px);padding:22px 22px 17px}.dialogue-panel.narration{padding-right:24px;padding-left:24px}.dialogue-panel p,.dialogue-panel.narration p{margin-top:5px;font-size:.86rem;line-height:1.08}.speaker{top:-19px;min-width:145px;padding:8px 16px 7px;font-size:.95rem}.speaker small{margin-top:3px;font-size:.47rem}.dialogue-panel footer{bottom:7px;font-size:.58rem}}@media(pointer:coarse)and (orientation:landscape)and (max-height:560px){.dialogue-panel{padding:10px 22px 20px}.dialogue-panel.dialogue{padding-top:22px}.dialogue-panel p,.dialogue-panel.narration p{max-height:100%;margin-top:0}}@media(pointer:coarse)and (orientation:landscape)and (max-height:560px)and (min-aspect-ratio:13/9){.rotate-notice{position:fixed;z-index:300;inset:0;display:grid;gap:10px;align-content:center;justify-items:center;padding:24px;text-align:center;background:#070f1c;cursor:pointer}.rotate-notice strong{color:#fff8e7;font:500 1.05rem/1.4 Georgia,"Noto Serif KR",serif;letter-spacing:.06em}.rotate-notice span{color:#aeb7c4;font-size:.78rem;letter-spacing:.04em}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.episode-transition{transition-duration:.65s!important}.novel-title,.episode-title{transition-duration:.5s!important}.novel-title strong,.novel-title .title-rule,.novel-title .title-sigil{animation-duration:.5s!important;animation-iteration-count:1!important}}.popup-point{position:absolute;z-index:3;width:0;height:0;pointer-events:none}.point-ring{position:absolute;top:calc(var(--point-radius) * -1);left:calc(var(--point-radius) * -1);width:calc(var(--point-radius) * 2);height:calc(var(--point-radius) * 2);border:max(4px,calc(var(--point-radius) * .14)) solid #ffb066;border-radius:50%;box-shadow:0 0 0 2px #0b1321aa,inset 0 0 0 2px #0b132166,0 0 22px #ffb06670;animation:popup-point-pulse 1.5s ease-in-out infinite}.point-hand{position:absolute;top:calc(var(--point-reach-y) - var(--point-hand) * var(--point-tip-y));left:calc(var(--point-reach-x) - var(--point-hand) * var(--point-tip-x));width:var(--point-hand);height:auto;filter:drop-shadow(0 6px 14px #000a);animation:popup-point-nudge 1.5s ease-in-out infinite}@keyframes popup-point-pulse{0%,to{opacity:1;scale:1}50%{opacity:.78;scale:1.06}}@keyframes popup-point-nudge{0%,to{translate:0 0}50%{translate:0 calc(var(--point-hand) * .07)}}@media(prefers-reduced-motion:reduce){.point-ring,.point-hand{animation:none}}
