:root{--ink:#162c44;--muted:#435970;--paper:#f4f7fb;--accent-soft:#c5e0ff;--line:#cbd6e2;--gold:#ecbb70}*{box-sizing:border-box}body{margin:0;background:#a9bed3;color:var(--ink);font:16px/1.5 'Segoe UI',Arial,sans-serif;overflow:hidden}button,a,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:11px 17px;min-height:46px;transition:background .15s,transform .15s}button:hover{background:#eaf0f7}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #2863ae;outline-offset:3px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--ink);color:var(--accent-soft);border-color:var(--ink);font-weight:650}button.primary:hover{background:#254765}button.secondary{background:var(--accent-soft);border-color:var(--accent-soft)}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:none}header{position:fixed;left:30px;right:30px;top:max(20px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:none;z-index:5}header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-weight:850;letter-spacing:1.6px;font-size:16px}.brand small{display:block;letter-spacing:2.5px;font-size:9px;font-weight:600;margin-top:1px}.brand-icon{background:var(--ink);color:var(--paper);width:43px;height:43px;border-radius:10px;display:grid;place-items:center;font-size:26px;position:relative}.brand-icon span{position:absolute;right:0;top:-10px;color:var(--accent-soft);font-size:23px}.header-right{display:flex;align-items:center;gap:8px}.header-right button{background:#f4f7fbef;border:0;font-size:13px}#clock{background:var(--ink);color:var(--paper);font-variant-numeric:tabular-nums;font-weight:700;padding:11px 19px;border-radius:10px;margin-right:4px}#mission{position:fixed;left:30px;top:102px;width:295px;padding:23px;background:#f4f7fbed;border:1px solid #ffffffa0;border-radius:16px;box-shadow:0 12px 40px #162c4410;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:#435970}h2{font-size:24px;line-height:1.2;margin:12px 0}#mission h2{font-size:21px;margin:11px 0}#mission p{font-size:13px;color:var(--muted);margin:0 0 18px}.progress{height:4px;background:#cbd6e2;border-radius:8px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:#426d9d;transition:width .3s}#stepCount{display:block;margin-top:8px;font-size:10px;color:var(--muted);letter-spacing:1px}#location{position:fixed;bottom:76px;left:30px;display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;letter-spacing:1px;background:#f4f7fbe8;padding:10px 15px;border-radius:30px}.dot{width:7px;height:7px;border-radius:50%;background:#426d9d}#saveStatus{font-size:10px;letter-spacing:0;font-weight:400;border-left:1px solid #cbd6e2;padding-left:10px;color:var(--muted)}#compass{position:fixed;right:30px;top:108px;width:67px;height:90px;display:flex;align-items:center;flex-direction:column;font-size:10px;color:var(--ink)}#compass b{font-size:28px;line-height:34px}#distance{white-space:nowrap;background:#f4f7fbdf;border-radius:20px;padding:3px 8px}#interact{position:fixed;bottom:94px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--accent-soft);box-shadow:0 8px 30px #0003;border:1px solid #7798bb;max-width:55%;font-weight:650}footer{position:fixed;left:30px;bottom:20px;right:30px;display:flex;align-items:center;gap:24px;color:#254765;font-size:11px}footer button{margin-left:auto;background:#f4f7fbd9;min-height:32px;padding:5px 13px;font-size:11px}#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden}.world-label{position:absolute;transform:translate(-50%,-100%);background:#f4f7fbef;color:var(--ink);border-radius:7px;padding:4px 10px;font-size:11px;font-weight:650;white-space:nowrap;box-shadow:0 3px 12px #0001}.world-label.target{background:var(--accent-soft);padding:7px 13px}.world-label.target:after{content:'';display:block;position:absolute;bottom:-6px;left:calc(50% - 6px);border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--accent-soft)}#toast{position:fixed;top:90px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:10px;padding:12px 20px;max-width:75%;opacity:0;pointer-events:none;transition:opacity .2s;font-size:14px;z-index:25}.veil{position:fixed;inset:0;z-index:10;background:#162c4440;display:flex;align-items:center;justify-content:center;padding:28px;backdrop-filter:blur(7px)}#screen{justify-content:flex-start;background:linear-gradient(90deg,#f4f7fbfc 0%,#f4f7fbf5 38%,#f4f7fb55 76%,#f4f7fb10 100%);backdrop-filter:none}.intro{margin-left:5vw;max-width:650px}.intro h1{font-size:clamp(38px,4.8vw,70px);line-height:1.06;letter-spacing:-2.5px;font-weight:750;margin:23px 0}.intro h1 em{font-style:normal;color:#435970}.intro>p{color:var(--muted);font-size:17px}.chapter-cards{display:flex;gap:20px;margin:32px 0}.chapter-cards>div{display:flex;gap:10px;border-top:1px solid #a8bfd7;padding-top:14px;flex:1}.chapter-cards b{color:#7798bb;font-size:12px}.chapter-cards span{font-size:13px;font-weight:700}.chapter-cards small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:4px}.intro-actions{display:flex;gap:10px}.intro .fine{font-size:11px;line-height:1.8;margin-top:22px}.intro-badge{position:absolute;right:8vw;bottom:19vh;transform:rotate(-6deg);border:2px solid #f4f7fbc9;color:#f4f7fb;padding:22px;letter-spacing:3px;font-size:11px;text-align:center;background:#162c4466}.intro-badge strong{display:block;font-size:23px;letter-spacing:1px}.intro-badge span{font-size:7px;letter-spacing:1px}#modal{z-index:20}#modal>section{background:var(--paper);border-radius:20px;box-shadow:0 30px 90px #132a4555;width:min(700px,100%);max-height:90dvh;overflow-y:auto;padding:30px 34px}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-top button{border:0;background:transparent;padding:3px;min-height:32px;width:32px}#dialogTitle{font-size:30px;margin:12px 0 20px;letter-spacing:-.6px}#dialogBody p{color:#435970;margin:12px 0 18px}.speech{border-left:3px solid #7798bb;padding:13px 18px;background:#eaf0f7;border-radius:0 10px 10px 0}.choices{display:grid;gap:10px;margin:20px 0}.choices button{text-align:left;display:flex;gap:12px;align-items:center;padding:15px 18px;background:#fff;line-height:1.4}.choices button .number{border-radius:50%;width:25px;height:25px;flex-shrink:0;background:#eaf0f7;color:#7798bb;display:grid;place-items:center;font-size:11px;font-weight:bold}.note{padding:13px 16px;background:#e4edf7;border-radius:10px;font-size:13px}.warning{background:#fff0d7;color:#674b21!important}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.ledger{border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin:12px 0}.ledger h3{font-size:16px;margin:0 0 6px}.ledger p{font-size:14px;margin:6px 0!important}.tag{font-size:10px;background:#e4edf7;border-radius:20px;padding:4px 9px;display:inline-block;color:#435970;letter-spacing:.5px}input[type=time],textarea{font:inherit;border:1px solid #a8bfd7;border-radius:10px;padding:12px;background:white;color:var(--ink);width:100%}textarea{min-height:100px;resize:vertical}.audio{font-size:12px;padding:6px 12px;min-height:34px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0}.stat{background:#e4edf7;padding:12px 8px;border-radius:10px;font-size:11px;text-align:center}.stat b{display:block;font-size:20px}.checklist{display:grid;gap:8px}.checklist label{background:white;border:1px solid var(--line);padding:12px;border-radius:8px;display:flex;gap:10px}.checklist input{width:20px;height:20px;accent-color:#435970}.mini-map{position:relative;height:230px;background:#e4edf7;border-radius:12px;overflow:hidden}.mini-map .room{position:absolute;border:1px solid #fff8;background:#a8bfd7;border-radius:4px;padding:10px;font-size:11px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}#touch{display:none;position:fixed;bottom:90px;left:30px;right:30px;pointer-events:none}#joystick{width:116px;height:116px;border-radius:50%;border:2px solid #f4f7fbaa;background:#162c441a;position:relative;pointer-events:auto;touch-action:none}#joystick i{position:absolute;width:48px;height:48px;left:32px;top:32px;background:#f4f7fbbb;border:1px solid #fff;border-radius:50%}#touchAction{position:absolute;right:5px;bottom:10px;width:67px;height:67px;border-radius:50%;pointer-events:auto;background:var(--ink);color:var(--accent-soft);border:2px solid #f4f7fbaa;font-weight:bold;font-size:20px;touch-action:none}@media(pointer:coarse){#touch{display:block}footer>span{display:none}#interact{bottom:85px}#location{bottom:27px}footer{bottom:25px}#mission{width:260px}}@media(max-width:700px){header{left:15px;right:15px;top:15px}.brand{font-size:12px;gap:8px}.brand small{font-size:7px;letter-spacing:1.3px}.brand-icon{width:32px;height:32px;font-size:21px}.header-right button{padding:8px 12px}.header-right button span{display:none}#clock{padding:10px;font-size:13px}#mission{left:15px;top:82px;width:220px;padding:16px}#mission h2{font-size:17px}#mission p{font-size:12px;margin-bottom:10px}#compass{right:15px;top:83px}#location{left:15px;font-size:9px}#saveStatus{display:none}.veil{padding:12px}#modal>section{padding:20px;max-height:94dvh}#dialogTitle{font-size:25px}.intro{margin-left:10px;max-width:95%}.intro h1{letter-spacing:-1.5px}.intro>p{font-size:14px}.chapter-cards{gap:12px;margin:22px 0}.chapter-cards>div{display:block}.chapter-cards small{font-size:10px}.intro-badge{display:none}.intro .eyebrow{font-size:8px}.intro-actions button{font-size:13px;padding:10px}.stats{grid-template-columns:1fr 1fr}#toast{font-size:12px;max-width:90%;width:max-content;top:74px}footer{left:15px;right:15px;gap:12px}footer span{font-size:9px}#touch{left:20px;right:20px}#interact{font-size:12px;max-width:65%;bottom:93px}}@media(max-height:600px){.intro h1{font-size:38px;margin:12px 0}.intro>p{font-size:13px}.chapter-cards{margin:16px 0}.intro .fine{margin-top:10px}.intro-badge{display:none}#mission{top:78px;padding:14px}#mission h2{font-size:17px}#mission p{margin-bottom:8px}#touch{bottom:55px}#interact{bottom:50px}#location{bottom:15px}footer{bottom:12px}#screen{overflow:auto}.intro{padding:15px 0}}

