@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#18312d;--cream:#f5f1e8;--gold:#d8a663;--muted:#748078;--border:rgba(255,255,255,.2)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#bdc7b9;color:var(--cream);font-family:'DM Sans',Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible{outline:3px solid #edbd6a;outline-offset:4px}button{border:0}a{color:inherit}button{transition:background .18s,transform .18s}button:hover{transform:translateY(-1px)}[hidden]{display:none!important}#world{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(9,30,28,.72),rgba(9,30,28,.08) 57%,transparent 75%),linear-gradient(0deg,rgba(11,27,24,.25),transparent 30%);transition:opacity 1s}body.playing .vignette{opacity:.26}.topbar{position:absolute;z-index:4;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:28px 42px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;gap:12px;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:2.5px;align-items:center;text-shadow:0 1px 9px #243c36}.brand small{display:block;margin-top:5px;font-size:8px;font-weight:400;letter-spacing:2.2px;opacity:.7}.brand-icon{display:grid;place-content:center;border:1px solid rgba(255,255,255,.5);border-radius:10px;font-size:29px;width:43px;height:43px;font-weight:400}.top-actions{display:flex;gap:8px}.top-actions button{background:rgba(18,41,36,.5);backdrop-filter:blur(12px);color:#f6f3ea;border:1px solid rgba(255,255,255,.18);padding:11px 17px;border-radius:30px;font-size:11px;letter-spacing:.4px}.top-actions #help{width:38px;padding:10px}.welcome{position:absolute;z-index:2;left:7.5vw;top:22%;max-width:630px;transition:opacity .7s,transform .7s}.eyebrow,.tiny-label{font-size:9px;letter-spacing:2px;font-weight:600}.eyebrow{display:flex;align-items:center;gap:9px;opacity:.85}.status-dot{width:6px;height:6px;border-radius:50%;background:#dcb478;box-shadow:0 0 12px #eec788}h1{font-family:'Manrope',Arial,sans-serif;font-size:clamp(43px,5.5vw,86px);line-height:1.06;letter-spacing:-4px;font-weight:500;margin:28px 0 23px}h1 em{font-family:Georgia,serif;font-weight:400;color:#efc28b;letter-spacing:-2px}.welcome p{font-size:14px;line-height:1.9;color:#e0e6db;max-width:430px}.welcome-actions{display:flex;align-items:center;gap:25px;margin-top:32px}.primary{background:#ebbb7a;color:#172f2b;padding:18px 24px;border-radius:5px;display:flex;justify-content:space-between;gap:30px;font-size:12px;font-weight:700;min-width:185px}.primary:hover{background:#f9cc93}.text-button{background:none;color:inherit;padding:10px 0;font-size:11px;opacity:.8}.welcome-note{display:flex;justify-content:space-between;margin-top:58px;padding-top:18px;border-top:1px solid rgba(255,255,255,.22);font-size:8px;letter-spacing:1.6px;max-width:400px}.arrival{position:absolute;right:4vw;bottom:6vh;z-index:2;max-width:285px;padding:22px 26px;background:rgba(21,46,38,.72);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(14px);border-radius:8px}.arrival .tiny-label{font-size:7px;color:#d2b28a}.arrival strong{font-family:Georgia,serif;display:block;margin:12px 0 8px;font-size:24px;font-weight:400}.arrival p{font-size:10px;color:#d9dfd5;line-height:1.6}.arrival-line{display:block;height:1px;background:rgba(255,255,255,.2);margin:19px 0 15px}.arrival>div{display:flex;justify-content:space-between;gap:24px;font-size:9px;color:#dcc7a8}.loading{position:absolute;bottom:0;left:0;width:100%;height:3px;background:#3a554a;z-index:8}.loading span{display:block;width:20%;height:100%;background:#ecc18a;animation:loading 2s ease-in-out infinite}@keyframes loading{0%{transform:translateX(-100%)}100%{transform:translateX(500%)}}
.location{position:absolute;top:115px;left:42px;max-width:300px;text-shadow:0 1px 8px #294239}.location .tiny-label{color:#f2cc8e}.location h2{font-family:'Manrope',Arial,sans-serif;font-size:26px;font-weight:500;margin:8px 0 5px;letter-spacing:-1px}.location p{font-size:10px;line-height:1.5;opacity:.8;margin:0}.objectives{position:absolute;right:35px;top:108px;padding:18px;background:rgba(14,34,30,.69);backdrop-filter:blur(12px);border-radius:8px;border:1px solid var(--border);min-width:186px}.objectives .tiny-label{font-size:7px;opacity:.6}.objectives>div{display:flex;gap:12px;align-items:center;margin:14px 0;font-size:9px;color:#c7d1c9}.objectives strong{font-size:16px;color:#f0c58d;font-weight:500}.gold-button{background:#e6b97d;color:#1e3630;font-size:10px;font-weight:700;padding:11px 14px;border-radius:4px}.objectives button{width:100%;margin-top:3px}.minimap-wrap{position:absolute;bottom:69px;right:35px;width:166px;height:198px;border-radius:8px;background:rgba(15,35,30,.72);border:1px solid var(--border);padding:9px;backdrop-filter:blur(14px)}#minimap{width:146px;height:146px;display:block}.minimap-wrap>span{font-size:7px;display:block;text-align:center;letter-spacing:.7px;margin-top:3px;color:#c0cdc4}.minimap-wrap b{color:#ffe4b2}.minimap-wrap i{color:#5ee1c0;font-style:normal}#map-button{font-size:7px;color:#bdc9c1;background:transparent;letter-spacing:1px;width:100%;margin-top:6px}.controls{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:18px;white-space:nowrap;background:rgba(13,34,29,.62);padding:12px 21px;border:1px solid rgba(255,255,255,.13);border-radius:7px;backdrop-filter:blur(9px);font-size:9px;color:#d2d9d1}kbd{font-family:inherit;font-size:9px;font-weight:600;border:1px solid rgba(255,255,255,.3);border-radius:3px;padding:4px 6px;margin-right:3px;color:#fff}.interact{position:absolute;left:50%;bottom:96px;transform:translateX(-50%);padding:12px 22px;background:rgba(16,39,33,.9);backdrop-filter:blur(9px);border:1px solid rgba(236,194,133,.5);border-radius:30px;display:flex;align-items:center;gap:10px;font-size:11px;white-space:nowrap}.interact kbd{background:#e5b778;color:#243a30;border:0;padding:7px 9px}.dialogue{position:absolute;z-index:5;bottom:90px;left:35px;display:flex;gap:17px;width:min(540px,calc(100% - 245px));background:rgba(14,35,30,.95);backdrop-filter:blur(18px);border:1px solid rgba(240,198,137,.25);border-radius:9px;padding:23px}.avatar-mark{display:grid;place-content:center;width:39px;height:39px;flex-shrink:0;font-size:12px;border-radius:50%;background:#d4ad75;color:#203930}.dialogue-body .tiny-label{font-size:7px;color:#e3bd85}.dialogue p{font-size:12px;line-height:1.8;margin:9px 0 13px}.dialogue-actions{display:flex;align-items:center;gap:23px}.dialogue-actions .text-button{font-size:9px}.toast{position:absolute;top:94px;left:50%;transform:translateX(-50%);max-width:80vw;border:1px solid #d6ba82;background:#16362dec;color:#f1ddbb;border-radius:5px;padding:13px 21px;font-size:11px;z-index:12}.game-badge{position:absolute;left:42px;top:207px;background:#16392ddc;color:#eed0a0;padding:12px 18px;font-size:11px;border-radius:6px;border:1px solid #ddbc73}
.modal{position:absolute;inset:0;z-index:20;background:rgba(7,23,21,.63);backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;padding:25px}.modal-card{position:relative;width:min(720px,100%);max-height:90vh;overflow:auto;background:#f5f1e7;color:#243a32;padding:38px 42px;border-radius:13px;box-shadow:0 25px 100px #081c2860}.modal-card .tiny-label{color:#8a795f;font-size:8px}.modal-card h2{font-family:'Manrope',Arial,sans-serif;font-size:33px;letter-spacing:-1.3px;font-weight:500;margin:12px 0 22px}.modal-card h3{font-size:14px;font-weight:700;margin:20px 0 7px}.modal-card p,.modal-card li{font-size:13px;line-height:1.9;color:#56645c}.close{position:absolute;right:20px;top:16px;width:30px;height:30px;border-radius:50%;background:#e7e2d8;color:#415248;font-size:23px}.modal-card button{color:#243a32}.modal-card a{color:#476f55;text-underline-offset:4px}.modal-card .tags{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.tag{background:#e6e7dc;color:#48604f;font-size:9px;padding:6px 9px;border-radius:4px}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.content-block{padding:16px 20px;background:#eae8de;border-radius:6px}.content-block h3{margin-top:0}.content-block p{font-size:11px}.project-entry{border-top:1px solid #d9d8cc;padding:15px 0}.project-entry h3{margin-top:5px}.project-entry p{font-size:12px;margin-bottom:6px}.small-note{font-size:10px!important;color:#7d826f!important}.modal-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.modal-links a,.modal-links button{padding:12px 17px;border-radius:5px;background:#183c31;color:#f5eedf;text-decoration:none;font-size:11px}.setting-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #d4d6c6;padding:15px 0;font-size:12px}.setting-row button{padding:7px 11px;border-radius:4px;background:#dddccc;font-size:10px}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:20px 0}.memory-tile{height:70px;border:2px solid transparent;border-radius:6px;background:#1d4335;color:#efd8b7!important;font-size:24px}.memory-tile.revealed{background:#e3d4b6;color:#304334!important}.memory-tile.matched{background:#a7bf9f;color:#203a2c!important}.memory-status{display:flex;justify-content:space-between;font-size:11px}.map-layout{position:relative;width:100%;aspect-ratio:1.12;border:2px solid #66795d;background:#d8dcca;border-radius:8px;display:grid;grid-template-columns:1fr .25fr 1fr;grid-template-rows:1fr 1fr;gap:7px;padding:10px;margin:20px 0}.map-room{background:#f2ecdb;border:1px solid #c1c6b0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border-radius:5px;font-size:12px}.map-room span{font-size:9px;color:#809077}.map-hall{grid-column:2;grid-row:1/3;writing-mode:vertical-rl;font-size:10px;color:#66795d;display:flex;align-items:center;justify-content:center;letter-spacing:1.5px}.fatal{position:absolute;z-index:25;inset:0;background:#1c372e;padding:15vh 10vw;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.fatal h2{font-size:34px;max-width:600px}.fatal p{max-width:500px;line-height:1.8;color:#ddd9c7}.touch-controls{display:none}.cinematic .topbar,.cinematic #hud{opacity:0;pointer-events:none}.cinematic .vignette{background:linear-gradient(#102a2455,transparent 30%,transparent 70%,#102a2455);opacity:1}.cinematic:before,.cinematic:after{content:'';position:absolute;left:0;right:0;height:9vh;background:#142c27;z-index:3;pointer-events:none}.cinematic:before{top:0}.cinematic:after{bottom:0}
.fatal{z-index:15}
.objectives{max-width:235px}.visit-task{padding:12px 0 10px;border-bottom:1px solid rgba(255,255,255,.15)}.visit-task>span{display:block;font-size:7px;letter-spacing:1px;color:#bbcfbe}.visit-task strong{display:block;margin-top:7px;font-size:13px;color:#f0d4ac}.visit-task p{font-size:10px;line-height:1.6;color:#d3ded3;margin:7px 0 0}.objectives button:disabled{cursor:default;opacity:.5}.skip-greeting{position:absolute;z-index:7;left:50%;bottom:calc(9vh + 24px);transform:translateX(-50%);padding:11px 18px;border:1px solid #dcc29a88;border-radius:24px;color:#f3e2c6;background:#17362ded;font-size:11px;white-space:nowrap}.skip-greeting:hover{transform:translate(-50%,-1px);background:#25463cee}
@media(max-width:850px){.objectives{max-width:190px}.visit-task p{font-size:9px}.visit-task strong{font-size:12px}}
@media(max-width:600px){.objectives{width:145px;min-width:0}.visit-task{padding:3px 0 8px}.visit-task>span{font-size:6px;letter-spacing:.4px}.visit-task strong{font-size:11px}.visit-task p{font-size:8px;line-height:1.5}.skip-greeting{font-size:10px}}
@media(pointer:coarse){body:not(.cinematic) .skip-greeting{bottom:165px}}
@media(max-height:730px) and (min-width:701px){.welcome{top:20%}h1{font-size:60px;margin:20px 0}.welcome-note{margin-top:30px}.welcome p{font-size:12px}.welcome-actions{margin-top:20px}}
@media(max-width:850px){.topbar{padding:20px 24px}.brand{font-size:11px;letter-spacing:1.5px}.brand small{font-size:6px}.top-actions button{padding:9px 12px;font-size:9px}.welcome{left:7%;top:23%}h1{font-size:64px}.arrival{display:none}.objectives{right:20px;top:100px;min-width:150px;padding:12px}.objectives>div{gap:8px}.location{left:24px;top:105px}.minimap-wrap{right:20px;width:139px;height:169px}#minimap{width:119px;height:119px}.controls{gap:12px;font-size:8px;padding:12px}.controls span:last-child{display:none}.dialogue{left:20px;width:calc(100% - 190px);padding:17px}.dialogue p{font-size:11px}.game-badge{left:24px}}
@media(pointer:coarse){.controls{display:none}.touch-controls{display:flex;position:absolute;bottom:30px;left:25px;right:25px;justify-content:space-between;pointer-events:none}.touch-controls>*{pointer-events:auto}#joystick{width:105px;height:105px;background:#163a3450;border:1px solid #edf1dc66;border-radius:50%;position:relative;touch-action:none}#joystick-knob{position:absolute;left:32px;top:32px;width:40px;height:40px;border-radius:50%;background:#f0d4a3b0;border:1px solid #f0d4a3;pointer-events:none}.touch-buttons{display:flex;align-items:flex-end;gap:10px}.touch-buttons button{width:48px;height:48px;border-radius:50%;background:#173d2abf;color:#f9e7c5;border:1px solid #f6e1b1;font-size:13px;touch-action:none}.touch-buttons #touch-run{font-size:9px}.minimap-wrap{bottom:157px}.interact{bottom:160px}.dialogue{bottom:155px}}
@media(max-width:600px){.topbar{padding:16px}.brand-icon{width:32px;height:32px;font-size:22px}.brand{font-size:9px}.brand small{display:none}.top-actions{gap:5px}.top-actions button{padding:8px 10px}.welcome{top:25%;left:8%;right:8%}h1{font-size:57px;letter-spacing:-3px}.welcome p{font-size:12px;max-width:300px}.welcome-actions{gap:16px;flex-wrap:wrap}.welcome-note{margin-top:35px}.eyebrow{font-size:7px;letter-spacing:1px}.location{top:85px;left:17px;max-width:200px}.location h2{font-size:21px}.location .tiny-label{font-size:7px}.location p{max-width:150px;font-size:9px}.objectives{top:82px;right:12px;min-width:130px;padding:10px}.objectives .tiny-label{display:none}.objectives>div{font-size:7px;margin:8px 0}.objectives strong{font-size:13px}.objectives button{font-size:8px;padding:8px}.minimap-wrap{right:12px;width:108px;height:138px;padding:5px}#minimap{width:96px;height:96px}.minimap-wrap>span{font-size:5px}.dialogue{left:12px;width:calc(100% - 24px);bottom:155px;gap:10px;padding:13px}.avatar-mark{width:28px;height:28px;font-size:10px}.dialogue p{font-size:11px;line-height:1.6;margin:6px 0 10px}.dialogue .gold-button{font-size:9px;padding:8px 11px}.interact{bottom:276px;font-size:10px;padding:9px 14px}.dialogue[hidden]~.interact{bottom:150px}.game-badge{left:17px;top:168px;font-size:9px}.modal{padding:12px}.modal-card{padding:30px 23px}.modal-card h2{font-size:28px}.content-grid{grid-template-columns:1fr}.memory-tile{height:59px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.loading span{animation:none;width:100%}}
#mouse-mode{display:none}body.playing #mouse-mode{display:block}.game-badge{min-width:215px;max-width:300px}.game-badge .tiny-label{font-size:7px;display:block;opacity:.8;letter-spacing:1.6px}.game-badge strong{display:block;font-family:'Manrope',Arial,sans-serif;font-size:29px;font-weight:500;margin:8px 0;color:#f1d5a2}.game-badge small{font-family:'DM Sans',Arial,sans-serif;font-size:9px;font-weight:400;color:#d7dfcf}.activity-detail{display:block;line-height:1.8;margin-top:8px;font-size:10px;color:#d7dfcf}.throw-meter{height:5px;overflow:hidden;background:#60806c;border-radius:5px;margin:12px 0 8px}.throw-meter i{display:block;height:100%;background:#ebc17e;box-shadow:0 0 8px #f2c674}.reticle{position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#fff5df;transform:translate(-50%,-50%);box-shadow:0 0 3px #102d20;pointer-events:none}.reticle.aiming{width:22px;height:22px;background:transparent;border:1px solid #f5d090}.reticle i{position:absolute;left:50%;top:50%;width:3px;height:3px;border-radius:50%;background:#fff5df;transform:translate(-50%,-50%)}.mouse-captured .topbar{opacity:.4}.touch-buttons button[aria-pressed=true]{background:#ebbd7f;color:#263c32}.touch-buttons #touch-action{background:#d5ae70;color:#203d31}
@media(max-width:950px) and (pointer:fine){.controls{gap:8px;font-size:8px}.controls kbd{font-size:8px}.controls span:nth-child(3){display:none}.game-badge{min-width:190px;max-width:260px}}
@media(pointer:coarse){body.playing #mouse-mode{display:none}.touch-buttons{display:grid;grid-template-columns:repeat(3,48px);gap:8px}.touch-buttons #touch-use{background:#dfbb7e;color:#263c32}.touch-buttons #touch-aim,.touch-buttons #touch-drop,.touch-buttons #touch-action{font-size:9px}.touch-controls{align-items:flex-end}.game-badge{max-width:235px}.game-badge strong{font-size:24px}.activity-detail{font-size:9px}}
@media(max-width:600px){.game-badge{top:195px;min-width:170px;max-width:205px;padding:10px 12px}.game-badge strong{font-size:23px}.activity-detail{font-size:8px}.objectives{min-width:130px}.interact{max-width:calc(100% - 32px);white-space:normal;text-align:left}.touch-controls{left:16px;right:16px;bottom:22px}.touch-buttons{grid-template-columns:repeat(3,43px);gap:7px}.touch-buttons button{width:43px;height:43px}#joystick{width:95px;height:95px}#joystick-knob{left:27px;top:27px}}
@media(max-height:480px) and (pointer:coarse){.topbar{padding:10px 16px}.location{top:60px}.location h2{font-size:18px}.location p,.objectives{display:none}.game-badge{top:108px;padding:8px 11px;min-width:170px;max-width:230px}.game-badge strong{font-size:22px;margin:5px 0}.minimap-wrap{right:16px;bottom:133px;width:98px;height:118px;padding:4px}#minimap{width:88px;height:88px}.minimap-wrap>span{display:none}.touch-controls{bottom:16px}.dialogue{bottom:126px;left:16px;width:calc(100% - 150px);padding:12px}.dialogue p{font-size:10px;margin:5px 0}.dialogue .tiny-label{font-size:6px}.interact{bottom:25px;max-width:calc(100% - 330px);font-size:9px}}
.gesture-fields{display:grid;grid-template-columns:1fr 1.5fr;gap:16px;margin:24px 0}.gesture-fields label{font-size:11px;letter-spacing:.4px;font-weight:600}.gesture-fields select{display:block;width:100%;font:inherit;margin-top:9px;padding:13px 12px;border-radius:6px;border:1px solid #b2c0af;background:#fffdf5;color:#243a32}.gesture-fields select:focus-visible{outline:3px solid #d9b270;outline-offset:3px}
@media(max-width:600px){.top-actions #gestures{display:none}body.playing #mouse-mode{display:none}.top-actions button{font-size:9px;padding:8px}.gesture-fields{grid-template-columns:1fr}.top-actions #help{width:30px}}
.dialogue{max-height:55svh;overflow:auto}.dialogue-body{min-width:0;flex:1}.dialogue-choices{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 17px}.question-button{background:#ffffff0b;color:#e8d9ba;border:1px solid #ead5a744;border-radius:5px;padding:9px 11px;min-height:36px;text-align:left;font-size:10px;line-height:1.5}.question-button:hover{background:#ffffff18}.dialogue-actions{flex-wrap:wrap;gap:12px}.dialogue-open .interact{display:none}.portfolio-back{color:#365343;margin-top:23px;font-size:12px}.modal-links{flex-wrap:wrap}.volume-setting{gap:20px;flex-wrap:wrap}.volume-setting label{font-size:12px}.volume-setting output{display:inline-block;margin-left:12px;color:#56645b;min-width:37px}.volume-setting input{width:210px;max-width:100%;accent-color:#3e6953;cursor:pointer}.volume-setting input:focus-visible{outline:3px solid #d9b270;outline-offset:5px}#replay-entry{display:block;margin-top:14px}.invitation{position:absolute;z-index:6;left:42px;bottom:8vh;width:min(440px,calc(100% - 295px));max-height:65svh;overflow:auto;border:1px solid #ebc58d66;border-radius:12px;padding:26px;background:#102c25f5;backdrop-filter:blur(18px)}.invitation .tiny-label{color:#e5be85;font-size:8px;letter-spacing:1.4px}.invitation h2{font-family:'Manrope',Arial,sans-serif;font-size:25px;font-weight:500;margin:17px 0 12px}.invitation p{white-space:pre-line;font-size:13px;line-height:1.9;color:#e3e8dc;margin:0 0 18px}.invitation-actions{display:flex;flex-wrap:wrap;gap:20px;align-items:center}.invitation small{display:block;font-size:9px;color:#b4c6b5;margin-top:18px}body.reduced-motion *{transition:none!important;animation:none!important;scroll-behavior:auto!important}body.reduced-motion button:hover{transform:none}.objectives .visit-task strong{font-size:13px}.objectives .visit-task>span{display:block}.touch-buttons button{min-height:43px}
@media(max-width:600px){.invitation{left:12px;bottom:22px;width:calc(100% - 24px);max-height:62svh;padding:22px}.invitation h2{font-size:23px}.invitation p{font-size:12px}.invitation .gold-button,.question-button{min-height:44px}.location{max-width:calc(100% - 185px)}.location h2{font-size:19px}.objectives .visit-task strong{font-size:11px}.dialogue{max-height:53svh}.dialogue-choices{margin:10px 0}.question-button{font-size:10px;padding:8px 10px}body:not(.dialogue-open) .interact{bottom:146px}}
@media(max-height:480px) and (pointer:coarse){.invitation{left:16px;bottom:16px;width:min(430px,calc(100% - 32px));max-height:78svh;padding:18px}.invitation h2{font-size:20px;margin:10px 0}.invitation p{font-size:11px;line-height:1.6}.invitation small{margin-top:10px}.dialogue{max-height:65svh}.dialogue p{font-size:11px}.question-button{min-height:40px}.location{max-width:300px}body:not(.dialogue-open) .interact{bottom:25px}}

/* Keep the visit usable in the shorter viewport above a phone's browser bars. */
body{position:relative;height:100dvh}
.welcome{bottom:calc(24px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;padding-bottom:12px}
.visit-loading{max-width:430px;margin-top:16px}
.welcome .visit-loading p{font-size:11px;line-height:1.6;margin:0;color:#ecd8b8}
.visit-loading .text-button{font-size:11px;text-align:left;text-decoration:underline;text-underline-offset:4px}
.activity-panel{position:absolute;left:42px;top:207px;max-width:300px}
.activity-panel .game-badge{position:static}
#gesture-stop{margin-top:8px;min-height:44px;width:100%;text-align:left}
.interact:hover{transform:translate(-50%,-1px);background:#244c3f}
body.reduced-motion .interact:hover,body.reduced-motion .skip-greeting:hover{transform:translateX(-50%)}
.dialogue,.modal-card,.invitation{overscroll-behavior:contain;touch-action:pan-y}
.modal-card{max-height:calc(100dvh - 50px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
.topbar{padding-top:calc(28px + env(safe-area-inset-top))}
@media(max-width:850px){
  .activity-panel{left:24px}
  .topbar{padding-top:calc(20px + env(safe-area-inset-top))}
}
@media(pointer:coarse){
  button{min-height:44px}
  .top-actions button,.text-button,.gold-button,.setting-row button,.close{min-height:44px}
  .top-actions #help,.close{min-width:44px}
  .touch-buttons{grid-template-columns:repeat(3,48px)}
  .touch-buttons button{min-width:44px;min-height:44px}
  .touch-buttons button:disabled{opacity:.45;cursor:default}
  .touch-controls{bottom:calc(30px + env(safe-area-inset-bottom));left:calc(25px + env(safe-area-inset-left));right:calc(25px + env(safe-area-inset-right))}
  #world,.touch-controls{user-select:none;-webkit-user-select:none}
}
@media(max-width:600px){
  .topbar{padding-top:calc(12px + env(safe-area-inset-top))}
  .location,.objectives{top:calc(82px + env(safe-area-inset-top))}
  .welcome{top:calc(90px + env(safe-area-inset-top));bottom:calc(16px + env(safe-area-inset-bottom))}
  .welcome-note{margin-top:22px}
  .activity-panel{left:17px;top:calc(195px + env(safe-area-inset-top));max-width:205px}
  .touch-controls{left:calc(16px + env(safe-area-inset-left));right:calc(16px + env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom))}
  .touch-buttons{grid-template-columns:repeat(3,44px);gap:8px}
  .touch-buttons button{width:44px;height:44px}
  .dialogue{bottom:calc(140px + env(safe-area-inset-bottom));max-height:min(53svh,calc(100dvh - 220px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}
  body:not(.dialogue-open) .interact{bottom:calc(140px + env(safe-area-inset-bottom))}
  .dialogue-open .objectives,.dialogue-open .minimap-wrap{display:none}
  .modal{padding:calc(12px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom))}
  .modal-card{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
}
@media(max-width:420px){.brand>span:last-child{display:none}.topbar .brand-icon{width:36px;height:44px}}
@media(max-height:680px) and (pointer:coarse){
  .minimap-wrap{height:auto;bottom:calc(140px + env(safe-area-inset-bottom))}
  .minimap-wrap #minimap,.minimap-wrap>span{display:none}
  #map-button{min-height:44px;font-size:10px;margin:0}
}
@media(max-height:480px) and (pointer:coarse){
  .topbar{padding-top:calc(8px + env(safe-area-inset-top))}
  .welcome{top:calc(70px + env(safe-area-inset-top));left:7%;right:7%;bottom:calc(12px + env(safe-area-inset-bottom))}
  .welcome h1{font-size:42px;margin:14px 0;letter-spacing:-2px}
  .welcome-actions{margin-top:16px}.welcome-note{margin-top:18px}
  .activity-panel{top:calc(108px + env(safe-area-inset-top));left:16px;max-width:230px}
  .touch-controls{bottom:calc(16px + env(safe-area-inset-bottom))}
  .dialogue{bottom:calc(126px + env(safe-area-inset-bottom));max-height:calc(100dvh - 200px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
  body:not(.dialogue-open) .interact{bottom:calc(20px + env(safe-area-inset-bottom));max-width:calc(100% - 330px)}
  .dialogue-open .minimap-wrap{display:none}
}

/* A quiet typographic opening with genuine model preparation states. */
.loading{position:fixed;inset:0;z-index:7;width:100%;height:100dvh;background:#e8e9dc;color:#233b32;display:flex;flex-direction:column;justify-content:space-between;padding:32px 42px;overflow:auto;clip-path:circle(150% at 50% 45%);transition:clip-path .7s cubic-bezier(.7,0,.2,1)}
.loading.is-ready{clip-path:circle(0 at 50% 45%);pointer-events:none}
.loading span{border:0;animation:none;width:auto;height:auto;border-radius:0;display:block;background:transparent}
body.preparing .topbar,body.preparing #welcome,body.preparing #arrival{visibility:hidden}
.load-top{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:1.8px;position:relative;z-index:1}
.load-name{position:relative;z-index:1;align-self:center;display:flex;gap:.035em;align-items:baseline;font-family:'Manrope',Arial,sans-serif;font-weight:500;font-size:clamp(74px,19vw,270px);line-height:1;letter-spacing:-.085em;margin:8vh 0 4vh}
.load-name em{font-family:'DM Sans',Arial,sans-serif;font-weight:400;font-style:normal;font-size:.08em;letter-spacing:1px;margin-left:18px;white-space:nowrap}
.load-orbit{position:absolute;left:50%;top:42%;width:min(70vw,680px);height:min(70vw,680px);border:1px solid #49655222;border-radius:47% 53% 55% 45%;transform:translate(-50%,-50%);animation:load-drift 12s linear infinite;pointer-events:none}
@keyframes load-drift{to{transform:translate(-50%,-50%) rotate(360deg)}}
.load-bottom{position:relative;z-index:1;width:min(640px,100%);align-self:center;padding-bottom:env(safe-area-inset-bottom)}
.load-counter{display:flex;align-items:baseline;gap:12px}.load-counter strong{font-size:48px;font-weight:400;letter-spacing:-2px}.load-counter>span{font-size:16px;color:#647267}.load-counter small{margin-left:auto;font-size:9px;letter-spacing:1.6px}
.load-line{height:1px;margin:14px 0 18px;background:#233b3230}.load-line i{display:block;width:100%;height:100%;background:#233b32;transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.load-assets{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;font-size:11px}.load-assets span{display:flex;justify-content:space-between;gap:8px}.load-assets b{font-size:10px;font-weight:400;color:#607866}.loading #loading-status{font-size:11px;line-height:1.6;color:#657265;margin:22px 0 10px}.load-actions{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px}.loading .text-button{color:#233b32;font-size:11px;min-height:44px;text-align:left}
.journey{position:absolute;left:42px;bottom:106px;max-width:290px;padding:18px 22px;background:#14352ce8;border:1px solid #e6c68b55;border-radius:10px;backdrop-filter:blur(15px)}
.journey>div{display:flex;align-items:center;gap:14px;margin-top:12px}.journey i{font-size:28px;font-style:normal;color:#edc98b;line-height:1;transition:transform .25s}.journey strong{font-weight:500;font-size:16px}.journey p{font-size:10px;color:#d3dbcc;margin:10px 0 0;line-height:1.6}.journey .text-button{font-size:10px;min-height:44px;padding:12px 0 0;color:#e2c58e}body.arriving .objectives{display:none}
@media(max-width:600px){.loading{padding:22px 20px}.load-top{font-size:8px;letter-spacing:1px}.load-top span:last-child{max-width:100px;text-align:right}.load-name{font-size:24vw;margin:12vh 0 8vh}.load-name em{font-size:9px;letter-spacing:.5px;margin-left:12px}.load-assets{grid-template-columns:1fr;gap:12px}.load-counter strong{font-size:40px}.load-counter small{font-size:7px;letter-spacing:1px}.load-actions{gap:0;flex-direction:column}.load-orbit{width:88vw;height:88vw}.journey{left:auto;right:14px;top:104px;bottom:auto;max-width:190px;padding:13px}.journey .tiny-label{font-size:6px}.journey strong{font-size:12px}.journey i{font-size:24px}.journey p{font-size:9px}.journey>div{gap:8px}body.arriving .location{max-width:calc(100% - 30px)}body.arriving .location p{display:none}}
@media(max-height:480px){.load-name{font-size:clamp(56px,14vw,150px);margin:1vh 0}.loading{padding:16px 24px}.load-counter strong{font-size:26px}.load-assets{grid-template-columns:1fr 1fr}.loading #loading-status{margin:12px 0 0}.load-line{margin:9px 0}.load-actions{flex-direction:row}.journey{top:66px;bottom:auto;right:16px;left:auto;max-width:220px}.journey>div{margin-top:8px}.journey p{margin-top:6px}}

body.in-invitation .touch-controls,body.in-invitation .controls{display:none}
#welcome-basic-house{display:block;margin-top:8px;font-size:11px;max-width:330px;line-height:1.6}
