@font-face{font-family:Journey Serif;src:url('./fonts/cormorant-garamond-latin.5d618c462b7a.woff2')}@font-face{font-family:Journey Sans;src:url('./fonts/dm-sans-latin.468d56b6b25b.woff2')}@font-face{font-family:Devanagari;src:url('./fonts/noto-serif-devanagari-devanagari.7548aaa2bf4a.woff2')}
:root{color-scheme:dark;--cream:#f7ecd1;--gold:#efc879;--ink:#123c3e;--muted:#cfdbcd}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font:14px Journey Sans,sans-serif;background:var(--ink);color:var(--cream)}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #fff2bb;outline-offset:4px}[hidden]{display:none!important}#game,#scene{position:absolute;inset:0;width:100%;height:100%}#scene{touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(9,36,39,.69),transparent 68%),linear-gradient(0deg,rgba(9,36,39,.6),transparent 32%,transparent 84%,rgba(9,36,39,.28))}header{position:absolute;top:0;left:0;right:0;height:100px;padding:26px 40px;display:flex;justify-content:space-between;align-items:center;z-index:5}.brand{display:flex;align-items:center;gap:15px;color:var(--cream);text-decoration:none;font-size:14px;letter-spacing:2px}.brand>span:first-child{font:35px Devanagari;color:var(--gold)}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:5px}.header-actions{display:flex;gap:9px}.header-actions button{min-height:44px;min-width:44px;border:1px solid #e5e6bf40;border-radius:40px;background:#103c3b70;color:var(--cream);padding:10px 16px;backdrop-filter:blur(14px)}.header-actions #pause{font-size:18px;padding:8px}.opening{position:absolute;left:7vw;top:25%;max-width:600px}.eyebrow{font-size:10px;letter-spacing:3px;font-weight:600;color:var(--gold)}h1,h2,p{margin:0}h1{font:clamp(52px,6.2vw,92px)/.98 Journey Serif,serif;font-weight:400;margin:23px 0 25px;letter-spacing:-1.4px}h1 em{font-weight:400;color:#f3ce8b}p{line-height:1.65}.opening>p{font-size:16px;color:#e3e5d4}.opening-actions{display:flex;flex-wrap:wrap;gap:10px;margin:27px 0 23px}.primary{min-height:52px;padding:15px 25px;border:0;border-radius:4px;background:var(--gold);color:#193c35;font-weight:600;letter-spacing:.2px;box-shadow:0 5px 30px #061e2029}.primary:hover{background:#ffdfa1}.primary:active{transform:translateY(1px)}.primary[aria-pressed=true]{background:#ffe6ad}.secondary{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:1px solid #e3e0c64f;border-radius:4px;background:#183e3c80;color:var(--cream);padding:12px 20px;text-decoration:none}.level-label{display:block;font-size:9px;letter-spacing:2px;color:var(--muted);margin-bottom:8px}select{max-width:100%;border:0;border-bottom:1px solid #e5e6bf40;background:#183b37b0;color:var(--cream);padding:9px 28px 9px 0;border-radius:0}select option{background:#183b37}.fine{font-size:11px!important;color:#d5dac7;letter-spacing:.2px}#load-detail{margin-top:13px}footer{position:absolute;bottom:25px;left:40px;right:40px;display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:2px;color:#d1d8c5}footer>span:first-child{font:22px Devanagari;color:var(--gold)}footer>span:last-child{margin-left:auto}#progress{position:absolute;top:0;left:0;right:0;height:3px;background:#ffffff15;z-index:8}#progress-fill{height:100%;background:var(--gold);transition:width 1s}#chapter{position:absolute;top:130px;left:40px;width:300px;pointer-events:none}#chapter h2{font:40px/1.02 Journey Serif;margin:13px 0}#chapter p{color:#e3e6d9;font-size:13px}#count{display:block;color:var(--gold);font-size:10px;letter-spacing:1.4px;margin-top:18px}#dock{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(480px,calc(100% - 36px));text-align:center;z-index:3}#feedback{font-size:12px;min-height:32px;margin-bottom:9px;text-shadow:0 1px 8px #092c2e}#dock>.primary{min-width:250px;width:100%;max-width:360px}#control-hint{display:block;margin-top:10px}#shapes{display:flex;justify-content:center;gap:8px;margin:0 0 12px}#shapes button,#aim-controls button{color:var(--cream);border:1px solid #e8e3c940;background:#113d3dde;backdrop-filter:blur(12px);border-radius:5px;min-height:48px;min-width:58px;padding:9px 14px}#shapes button{display:flex;align-items:center;gap:8px}#shapes button>span{color:#c3c2a5;font-size:24px;line-height:1}#shapes button[aria-pressed=true]{border-color:var(--gold);background:#416059}#shapes #rotate{font-size:24px;gap:5px}#rotate small{font-size:10px}#aim-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}#aim-controls span{font-size:11px;min-width:160px}#aim-controls button{font-size:20px;touch-action:none}#charge{height:5px;border-radius:4px;background:#ffffff2b;max-width:360px;margin:0 auto 13px;overflow:hidden}#charge span{display:block;height:100%;background:var(--gold);width:0}#writing-guide{position:absolute;bottom:158px;left:50%;transform:translateX(-50%);width:280px;text-align:center;background:#143a3cd9;border:1px solid #e6d4a634;border-radius:8px;padding:14px 12px 9px;backdrop-filter:blur(12px);z-index:3}#writing-guide .eyebrow{font-size:8px;letter-spacing:2px}#ink-pad{display:block;width:256px;height:128px;max-width:100%;touch-action:none;cursor:crosshair}#writing-guide p{font-size:10px;color:#d6ddcd}#writing-guide p span{font-family:Devanagari}.modal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0d3038a6;backdrop-filter:blur(9px);padding:20px;z-index:10}.paper{width:440px;max-height:100%;overflow:auto;background:#153f3ef2;border:1px solid #e5d5a947;border-radius:9px;padding:40px;text-align:center;box-shadow:0 25px 100px #021e3150}.paper h2{font:48px/1.05 Journey Serif;margin:20px 0}.paper p{color:#d7dfcf;margin-bottom:20px}.paper .primary,.paper .secondary{display:flex;justify-content:center;width:100%;margin-top:12px}.paper .fine{margin:20px 0 0}.quiet{display:inline-block;font-size:12px;color:var(--cream);margin-top:20px}.volume-label{display:flex;align-items:center;justify-content:space-between;margin:25px 0;font-size:12px}.volume-label input{width:150px;accent-color:var(--gold)}.devanagari{font:38px Devanagari;color:var(--gold);margin-top:26px}.ending{background:#0c30364f}.playing .vignette{background:linear-gradient(0deg,#072f37d9,transparent 32%,transparent 75%,#143f4455),linear-gradient(90deg,#0e34394f,transparent 45%)}#action{touch-action:none}.cinematic #chapter{width:310px}.cinematic #dock{bottom:35px}
@media(max-width:700px){header{height:80px;padding:18px 20px}.brand{font-size:11px;gap:9px;letter-spacing:1.5px}.brand>span:first-child{font-size:29px}.brand small{font-size:7px;letter-spacing:1.2px}.header-actions button{padding:8px 11px;font-size:11px}.opening{left:25px;right:25px;top:24%;max-width:450px}h1{font-size:63px}.opening>p{font-size:14px}.opening-actions{margin:23px 0 18px}.opening-actions .primary{width:100%}.opening-actions .secondary{width:100%}.opening .fine{font-size:10px!important}footer{left:22px;right:22px;bottom:max(18px,env(safe-area-inset-bottom));font-size:8px;letter-spacing:1px}footer>span:last-child{display:none}#chapter{top:96px;left:22px;right:22px;width:auto;max-width:340px}#chapter h2{font-size:32px;margin:8px 0}#chapter p{font-size:12px;max-width:295px}#chapter .eyebrow{font-size:8px;letter-spacing:2px}#count{margin-top:9px;font-size:9px}#dock{bottom:max(18px,env(safe-area-inset-bottom));width:calc(100% - 36px)}#shapes{gap:6px}#shapes button{min-width:48px;padding:8px 10px;font-size:11px}#shapes button>span{font-size:20px}#writing-guide{width:244px;bottom:155px;padding:10px 12px 7px}#ink-pad{width:218px;height:109px}#feedback{font-size:11px;line-height:1.45}#dock>.primary{min-height:50px}.paper{padding:30px 23px}.paper h2{font-size:40px}.cinematic #chapter{width:auto}.playing .vignette{background:linear-gradient(0deg,#072f37ed,transparent 46%,transparent 65%,#123c3eb0)}.fine{font-size:10px!important}}
@media(max-height:650px) and (min-width:701px){.opening{top:20%}h1{font-size:62px;margin:14px 0}.opening-actions{margin:17px 0}.opening>p{font-size:13px}footer{bottom:15px}header{height:75px;padding:18px 30px}#chapter{top:92px;left:28px;width:240px}#chapter h2{font-size:32px}#writing-guide{left:auto;right:25px;transform:none;bottom:165px;width:230px}#ink-pad{width:205px;height:102px}#dock{width:380px}#chapter p{font-size:12px}}
@media(max-height:500px){header{height:65px;padding:10px 20px}.opening{top:86px;left:30px}.opening h1{font-size:44px;margin:10px 0}.opening>p{font-size:12px}.opening-actions{margin:12px 0;max-width:360px}.opening .primary{min-height:42px;padding:10px 18px}.level-label,#load-detail,footer{display:none!important}#chapter{top:78px;left:22px;width:240px}#chapter h2{font-size:27px}#chapter p{font-size:11px}#count{margin-top:8px}#dock{left:auto;right:20px;transform:none;width:310px;bottom:15px}#writing-guide{left:auto;right:65px;transform:none;bottom:125px;width:205px;padding:7px 10px}#ink-pad{width:180px;height:90px}#writing-guide p{font-size:9px}#dock>.primary{min-height:44px}#feedback{min-height:20px;margin-bottom:5px}#control-hint{margin-top:5px}#shapes{margin-bottom:6px}#aim-controls{margin-bottom:7px}#shapes button{padding:6px 9px;font-size:10px;min-height:44px}#aim-controls button{min-height:44px;padding:6px 9px}.paper{padding:22px;max-width:520px}.paper h2{font-size:34px;margin:12px 0}.paper p{margin-bottom:10px}.devanagari{font-size:30px;margin-top:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
#puzzle-next{display:flex;justify-content:center;gap:12px;margin-bottom:9px}#puzzle-next>div{display:grid;grid-template-columns:40px auto;grid-template-rows:18px 25px;gap:0 8px;align-items:center;background:#153e3eed;border:1px solid #ecd59e44;border-radius:5px;padding:7px 10px;min-width:106px}#puzzle-next small{font-size:9px;color:var(--gold);text-align:left}#puzzle-next span{font-size:10px;text-align:left;grid-column:2}#puzzle-next svg{grid-column:1;grid-row:1/3;width:36px;height:40px;fill:#c8b584;stroke:#e8d298;stroke-width:.6}#puzzle-tools,#puzzle-arrows{display:flex;gap:8px;justify-content:center;margin-bottom:9px}#puzzle-tools button,#puzzle-arrows button{background:#153e3eed;color:var(--cream);border:1px solid #ead6aa66;border-radius:5px;min-height:44px;padding:8px 15px}#puzzle-arrows button{min-width:56px;font-size:21px;touch-action:none}#puzzle-tools button:disabled{cursor:default;opacity:.4}@media(max-width:700px){#puzzle-next{gap:6px}#puzzle-next>div{min-width:0;flex:1;padding:6px;grid-template-columns:30px auto;gap:0 5px}#puzzle-next svg{width:28px;height:35px}#puzzle-next span{font-size:9px}}@media(max-height:500px){#puzzle-next{margin-bottom:5px}#puzzle-next>div{padding:3px 5px;grid-template-rows:14px 20px}#puzzle-tools,#puzzle-arrows{margin-bottom:5px}}

.writing-undo #writing-guide{bottom:208px}@media(max-height:500px){.writing-undo #writing-guide{bottom:175px}}

.ending .paper{width:520px;--line:#e5d5a947;touch-action:pan-y;overscroll-behavior:contain}.ending .music-card p{margin:5px 0 0;color:#d4ded3}.ending .music-card h3{font-family:Journey Serif,serif}.ending .next-story-copy{text-align:left}.ending .next-story-copy strong{font-family:Journey Serif,serif}

/* Gameplay holds belong to the game; completion links retain browser behavior. */
#scene,#dock,#dock *,#writing-guide,#writing-guide *,#chapter,#chapter *,header button,header button *,.paper button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#scene:focus-visible{outline:2px solid #efc879;outline-offset:-3px}
#piece-current{display:none!important}
.placing #dock{width:min(380px,calc(100% - 36px))}.placing #feedback{min-height:20px}.placing #control-hint{line-height:1.5}
.ending #choose-level.quiet{border:0;background:none;padding:10px;min-height:44px;cursor:pointer;text-decoration:underline}
.ending #end-level-status{margin:12px 0}

@media(max-width:700px) and (max-height:700px){.placing #chapter p{display:none}.placing #chapter h2{font-size:28px;margin:5px 0}.placing #count{margin-top:6px}}
