@font-face{font-family:Sans;src:url(assets/sans.ttf)}@font-face{font-family:Mincho;src:url(assets/serif.ttf)}@font-face{font-family:Siddham;src:url(assets/siddham.ttf)}
:root{--ink:#122a3a;--paper:#f7f0df;--gold:#c89b3c;--teal:#247b7b;--red:#b64032}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--ink);font:18px/1.8 Sans,sans-serif}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;min-height:48px;border:1px solid #ccb991;border-radius:8px;padding:10px 16px;background:#fffcf5;color:var(--ink)}button:hover{border-color:var(--teal);background:#eee5ce}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #00a7b0;outline-offset:3px}button:disabled{opacity:.45;cursor:default}a{color:var(--teal)}h1,h2,h3{font-family:Mincho,serif;line-height:1.45}h1{font-size:clamp(30px,5vw,54px);margin:14px 0}h2{font-size:28px;margin:0 0 16px}h3{font-size:21px}p{margin:0 0 18px}small,.small{font-size:14px}.muted{color:#64645b}.eyebrow{letter-spacing:.16em;font-size:12px;color:var(--teal);font-weight:bold}.primary{background:var(--teal);color:white;border-color:var(--teal);font-weight:bold}.primary:hover{background:#185f5f;color:white}.dark{background:var(--ink);color:var(--paper)}.danger{color:var(--red)}.selected{outline:3px solid var(--teal);background:#e0eeea}.wide{width:100%}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.between{justify-content:space-between}.center{text-align:center}.stack{display:grid;gap:14px}.pill{display:inline-flex;font-size:13px;align-items:center;padding:3px 10px;border:1px solid #bfac7e;border-radius:30px}.shell{max-width:1100px;margin:auto;padding:0 24px 105px}.top{color:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:10px;padding:20px 0}.brand{font-family:Mincho;font-size:22px;letter-spacing:.13em}.top button{background:transparent;color:var(--paper);border-color:#52616a;font-size:13px;min-height:40px}.progress{display:flex;gap:7px;margin:0 0 22px}.progress span{height:4px;flex:1;background:#415260;border-radius:3px}.progress .done{background:var(--gold)}.paper{background:var(--paper);border:1px solid var(--gold);border-radius:14px;padding:32px;box-shadow:0 12px 60px #0002;position:relative}.paper:before{content:'';display:block;width:44px;height:4px;background:var(--gold);margin-bottom:22px}.lead{font-size:18px;max-width:680px}.introart{background:linear-gradient(#122a3a11,#122a3a00),url(assets/frame.webp) center/cover;min-height:180px;padding:40px 30px}.role{background:#e9e0ca;padding:13px 17px;font-size:15px;border-left:3px solid var(--gold);margin:22px 0}.two{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card{background:#fffcf5;border:1px solid #d8cbb0;border-radius:10px;padding:20px}.bottom{position:fixed;bottom:0;left:0;right:0;z-index:10;background:#122a3af2;backdrop-filter:blur(12px);display:flex;justify-content:center;gap:9px;padding:12px 14px max(12px,env(safe-area-inset-bottom));border-top:1px solid #546067}.bottom button{flex:1;max-width:240px;color:var(--paper);border-color:#6c736e;background:transparent;font-size:15px}.home{max-width:1100px;margin:40px auto;display:grid;grid-template-columns:minmax(300px,460px) 1fr;gap:55px;padding:24px;color:var(--paper);align-items:center}.cover{width:100%;display:block;max-height:80vh;object-fit:contain;filter:drop-shadow(0 20px 32px #0006)}.home h1{font-size:clamp(42px,7vw,72px)}.home .eyebrow{color:#d4b463}.home .primary{background:var(--gold);border-color:var(--gold);color:var(--ink)}.home .muted{color:#c2c9c6}.home .card{background:#ffffff08;border-color:#67706a;color:var(--paper)}.status{font-size:13px;color:#dbccaa}.home-actions{display:grid;gap:12px;margin:26px 0}.tiles,.slots{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:22px 0}.tile{width:56px;height:62px;font-family:Mincho;font-size:26px;padding:3px}.slots .tile{border-bottom:3px solid var(--gold)}.gridwrap{display:grid;place-items:center;min-width:0}.cross{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:min(100%,320px);aspect-ratio:5/7;border:1px solid var(--gold);background:var(--ink)}.cell{aspect-ratio:1;position:relative;border:1px solid #998659;background:#fffcf5;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1}.cell.black{background:var(--ink)}.cell.active{background:#dcebe5}.cell.conflict{background:#f3d4ce}.cell .start{position:absolute;top:3px;left:3px;font-size:10px;color:var(--teal)}.cell .extract{position:absolute;right:2px;bottom:2px;font-size:11px;color:var(--red)}.cluebtn{text-align:left;width:100%;font-size:15px}.words{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.words button{font-size:15px}.picture-choice{display:grid;grid-template-columns:1fr 1fr;gap:14px}.picture-choice button{padding:8px;min-width:0}.picture-choice img{width:100%;height:230px;object-fit:contain;background:#e5d8b9}.choice-label{font-size:16px;display:block;margin-top:8px}.condition{padding:14px;background:#e2e9df;margin-bottom:15px}.glyph{font-family:Siddham;font-size:66px;line-height:1.3;display:block;padding:12px}.glyph-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.glyph-row button{padding:8px 2px}.glyph-row .glyph{font-size:52px}.glyphsample{display:flex;align-items:center;justify-content:center;gap:40px}.sample{text-align:center}.finalsvg{width:100%;max-width:470px;display:block;margin:10px auto;background:#fffcf5;border:1px solid #bfa471;border-radius:8px}.maskbtn{flex:1;min-width:120px}.mask-status{text-align:center;font-size:14px;color:#576157}.answer{max-width:330px;display:flex;gap:8px;margin:20px auto}.answer input{width:100%;min-width:0;padding:12px;border:1px solid #998b70;border-radius:6px;background:white;font-size:23px;text-align:center}.success{background:#e0ece1;border-left:4px solid var(--teal);padding:20px;margin:20px 0}.error{color:#982e23;font-weight:bold;min-height:1.8em}.letter{font-family:Mincho;font-size:20px;line-height:2;max-width:650px;margin:20px auto}.navnext{margin-top:24px}.finish{text-align:center;padding:30px 10px}.finish .seal{display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;width:145px;height:145px;font:32px Mincho;margin:0 auto 25px;color:var(--teal)}dialog{border:1px solid var(--gold);border-radius:14px;background:var(--paper);color:var(--ink);width:min(90vw,680px);max-height:86dvh;padding:26px}dialog::backdrop{background:#061b29c9;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}.dialog-head h2{margin:0;font-size:25px}.dialog-head button{flex-shrink:0}.full-image{width:100%;height:auto}.hint{border-left:3px solid var(--gold);padding:12px 16px;margin:12px 0;background:#fff9ed}.term{margin:0 0 15px}.term strong{color:var(--teal)}#toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:#fff9e9;color:var(--ink);padding:10px 20px;z-index:100;border:1px solid var(--gold);border-radius:8px;opacity:0;pointer-events:none;max-width:90vw}#toast.show{opacity:1}.footnote{font-size:12px;margin-top:18px;opacity:.75}.guidegrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.newstart{background:transparent!important;color:inherit;border:0;text-decoration:underline}.version{font-size:12px;opacity:.7}.move{padding:25px;text-align:center;background:#e8e5d7;border:1px solid #b6b09d;margin-top:20px}.mascot{width:110px;height:125px;background:url(assets/mascots.webp) left center/300% auto no-repeat;margin:10px auto}.noprint{}@media(min-width:780px){.home .cover{position:sticky;top:30px}}@media(max-width:760px){.home{display:block;margin:0 auto;padding:0 20px 35px}.cover{max-height:46vh;object-fit:cover;object-position:50% 28%;border-radius:0 0 14px 14px;margin-bottom:28px}.home h1{font-size:40px}.home p{font-size:16px}.shell{padding:0 14px 105px}.paper{padding:23px 18px}.two{grid-template-columns:1fr;gap:20px}.top{padding:15px 0}.brand{font-size:19px}.picture-choice img{height:185px}.glyph-row{gap:6px}.glyph-row .glyph{font-size:43px}.tile{width:calc((100% - 28px)/4);max-width:62px;height:59px}.slots{gap:5px}.slots .tile{width:calc((100% - 35px)/8);font-size:21px;min-height:46px;height:49px}.lead{font-size:17px}h2{font-size:25px}.bottom{gap:6px}.bottom button{font-size:14px;padding:10px 8px}.cross{max-width:285px}.cell{font-size:21px}.letter{font-size:18px}dialog{padding:20px}}@media(prefers-reduced-motion:no-preference){.paper.page-enter{animation:appear .3s ease-out}@keyframes appear{from{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:none}}} @media print{.top,.bottom,button{display:none}body{background:white}.paper{border:0;box-shadow:none}}
.paper{border:10px solid transparent;background:linear-gradient(var(--paper),var(--paper)) padding-box,url(assets/frame.webp) center/cover border-box}.top{border-top:2px solid var(--gold)}.success{animation:appear .3s ease-out}@media(prefers-reduced-motion:reduce){.success{animation:none}}

/* Persistent controls and restrained mystery animation */
.experience-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px max(14px,calc((100vw - 1052px)/2));background:#0b202ef5;color:#f5dfab;border-bottom:1px solid #9f854b;backdrop-filter:blur(12px)}.experience-bar>div{display:flex;gap:6px}.experience-bar .utility{font-size:13px;background:transparent;color:#f5dfab;border-color:#7c755e;padding:6px 10px;min-height:44px}.clock{font-size:17px;font-variant-numeric:tabular-nums;white-space:nowrap}.time-low{color:#ffca8c}.dialog-clock{position:sticky;top:-26px;background:var(--paper);padding:8px 0;color:#805023;font-variant-numeric:tabular-nums;z-index:2}.timeup{background:#f4ddae;color:#3a2915;text-align:center;padding:12px;font-size:14px}.volume{display:flex;align-items:center;gap:18px;margin:20px 0}.volume input{flex:1;min-height:44px}.ambience{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.orbit{position:absolute;display:block;width:75vw;height:75vw;border:1px solid #c59c3c20;outline:1px solid #c59c3c14;outline-offset:24px;left:-32vw;top:5vh;transform:rotate(45deg)}.orbit.two{border-radius:50%;left:60vw;top:32vh}.mist{position:absolute;inset:-30%;background:radial-gradient(ellipse at 20% 60%,#417b802c,transparent 50%),radial-gradient(ellipse at 80% 20%,#b0934b18,transparent 45%)}.spark{position:absolute;width:3px;height:3px;background:#f4d690;border-radius:50%;left:calc(8% + var(--i)*11%);top:80%;opacity:.3}.paper{isolation:isolate}.words button{transition:background .18s,box-shadow .18s}.words button:active,.tile:active{box-shadow:inset 0 0 0 2px #b48d38}.home{position:relative}
@media(prefers-reduced-motion:no-preference){.orbit{animation:orbit 100s linear infinite}.mist{animation:mist 24s ease-in-out infinite alternate}.spark{animation:float 15s linear infinite;animation-delay:calc(var(--i)*-2s)}.finish .seal{animation:reveal .9s ease-out}.success{animation:reveal .45s ease-out}.finalsvg{animation:reveal .4s ease-out}@keyframes orbit{to{transform:rotate(405deg)}}@keyframes mist{to{transform:translate(8%,5%)}}@keyframes float{0%{transform:translateY(0);opacity:0}25%{opacity:.5}100%{transform:translateY(-85vh);opacity:0}}@keyframes reveal{from{opacity:0;transform:translateY(8px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}}
.motion-off *,.motion-off *:before,.motion-off *:after{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:420px){.clock{font-size:14px}.experience-bar{padding:6px 10px}.experience-bar .utility{font-size:12px;padding:6px 8px}}@media print{.experience-bar,.ambience{display:none}}

#app{position:relative;z-index:1}.ambience{contain:strict}

.route-map{margin:18px auto;max-width:560px}.route-map svg{width:100%;height:auto;display:block}.map-legend{background:#e9dfc8;padding:14px;border-left:3px solid var(--gold);font-size:14px}.destination{background:#fff8e8;padding:18px;border:1px solid #baa16d;border-radius:10px}.destination h3{margin:8px 0}.language-choice{display:flex;flex-wrap:wrap;gap:15px;margin:22px 0;align-items:center}.language-choice a{color:#f5d783;padding:8px 12px;border:1px solid #baa16d;border-radius:6px}.en-app h1,.en-app h2,.en-app h3{font-family:Georgia,Mincho,serif}.en-app .cross{width:100%;max-width:650px;grid-template-columns:repeat(11,minmax(0,1fr));aspect-ratio:11/7}.en-app .cell{font-size:18px}.en-app .cell .extract{font-size:10px}.en-app .widegrid{overflow-x:auto;padding:5px}.en-app .cross{min-width:300px}.en-app .slots .tile{width:42px}.en-app .lead{max-width:none}.en-app .clock{font-size:14px}.en-app .home{display:block;max-width:850px}.en-hero{background:linear-gradient(#122a3a44,#122a3ae0),url(assets/frame.webp) center/cover;border:1px solid var(--gold);padding:36px 28px;border-radius:14px}.en-hero .mascot{width:140px;height:150px;margin:0}.en-hero h1{font-size:clamp(36px,8vw,60px)}.answer-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.en-app .bottom button{font-size:13px}@media(max-width:420px){.en-app .experience-bar{flex-wrap:wrap}.en-app .cell{font-size:16px}}

.language-link{display:block;padding:14px;background:var(--teal);color:white;border-radius:8px;text-align:center}.experience-bar{flex-wrap:wrap}.experience-bar>div{flex-wrap:wrap}.en-app .experience-bar{gap:4px}.en-app .experience-bar .utility{padding:6px 8px;font-size:12px}@media(max-width:460px){.experience-bar .clock{flex-basis:100%}.experience-bar>div{margin-left:auto}.experience-bar{padding-top:4px;padding-bottom:4px}}
.tour-route{background:#122a3a;border:1px solid #c89b3c;border-radius:14px;padding:20px;margin:20px 0;color:#ede1bd}.tour-route>div{display:flex;gap:15px;align-items:center;padding:12px;border-left:2px solid #647b70;margin-left:18px}.tour-route span{display:grid;place-items:center;border:1px solid #b89953;width:30px;height:30px;flex-shrink:0;border-radius:50%}.tour-route .current{background:#28625f;border-color:#ffe3a0}.tour-route em{font-size:12px;margin-left:auto}.sequence{border:2px dashed #b79b5a;padding:15px;margin:20px 0;display:grid;gap:8px}.window-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:24px 0}.window-slots button{padding:10px 3px;min-width:0;font-size:13px;background:#193d43;color:#fff0c6;border:2px solid #b89b60}.window-slots span{display:block;font-size:30px;height:65px;padding-top:10px}.window-slots small{display:block}.tour-plan{width:100%;border-collapse:collapse;font-size:14px}.tour-plan td{padding:8px;border-bottom:1px solid #bdaa7a}.tour-plan td:last-child{white-space:nowrap;text-align:right}
.clue-sheet{padding:18px;border:1px solid #b99c60;border-radius:9px;background:#fffbef;margin:10px 0}.clue-sheet summary{cursor:pointer;min-height:44px;font-weight:bold}.triad-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.triad-slots button{padding:15px 5px}.triad-slots strong{display:block;font:42px Georgia;color:#8c6a22}.triad-slots span:last-child{display:block;font-size:14px}.triad-slots .eyebrow{font-size:10px}.column-picks{display:flex;gap:7px;flex-wrap:wrap}.column-picks button{min-width:42px;padding:8px 12px}.selected-columns{font-variant-numeric:tabular-nums;color:#725525;font-weight:bold;margin:12px 0}.cipher-scroll{overflow-x:auto;border:1px solid #bca374;border-radius:8px}.cipher-table{border-collapse:collapse;min-width:410px;width:100%;text-align:center;background:#fff9ed}.cipher-table th,.cipher-table td{border:1px solid #d9c8a7;padding:6px 2px}.cipher-table caption{font-size:12px;text-align:left;padding:8px}.cipher-table .picked{background:#d5e9df}.cipher-glyph{font-family:Siddham;font-size:34px;line-height:1.5;display:inline-block}.cipher-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.cipher-cards button{background:#153943;color:#f9e7bc;padding:12px 8px;border:2px solid #b79854}.cipher-cards button.selected{background:#276c65;outline-color:#c19330}.cipher-reading{display:flex;justify-content:space-evenly;gap:5px}.cipher-reading .cipher-glyph{font-size:40px}.cipher-cards b{display:block;letter-spacing:.1em}@media(max-width:420px){.cipher-reading .cipher-glyph{font-size:30px}.triad-slots span:last-child{font-size:12px}.triad-slots{gap:6px}}
.name-portraits{display:grid;gap:14px}.name-card{border:1px solid #baa578;border-radius:10px;padding:14px;background:#fffaee}.name-card.active{border:2px solid #277c79}.name-card p{margin:10px 0}.name-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.name-slots button{padding:8px 3px;font-size:18px;min-width:0}.world-puzzle{position:relative;background:#102c3b;border:1px solid #b69955;border-radius:12px;overflow:hidden;margin:18px 0}.world-puzzle img{display:block;width:100%;height:auto}.world-puzzle svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.world-puzzle .map-country{position:absolute;transform:translate(-50%,-50%);min-height:44px;min-width:44px;padding:6px;font-size:13px;background:#f8e4ad;color:#102c3b;border:2px solid #a7802e;z-index:1}.world-puzzle .map-country.selected{background:#37a39b;color:#fff;outline:2px solid #fff}.story-cards{margin:22px 0}.country-alternatives{justify-content:center}.en-app .name-slots button{font-size:15px}@media(max-width:430px){.world-puzzle .map-country{font-size:11px;padding:4px}.world-puzzle{margin-left:-8px;margin-right:-8px}}
