:root{--gold: #d9b45b;--gold-soft: #f2e3b6;--ink: #07070b;--panel: rgba(12, 13, 20, .86);--panel-line: rgba(217, 180, 91, .35);--text: #ece7da;--text-dim: #a9a390;--holo: #7fe3ff;--danger: #ff5d5d;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink)}body{font-family:Avenir Next,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;color:var(--text)}#app,#world-canvas{position:fixed;inset:0}#world-canvas{touch-action:none;display:block;width:100%;height:100%}button{font-family:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.ov{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center}.hidden{display:none!important}#fade-black{background:#000;z-index:90;opacity:0;pointer-events:none;transition:opacity 1.6s ease}#fade-black.show{opacity:1;pointer-events:auto}#fade-white{background:#fff;z-index:80;opacity:0;pointer-events:none;transition:opacity 1.4s ease}#fade-white.show{opacity:1;pointer-events:auto}#intro{background:#07070b;z-index:100}#intro canvas{image-rendering:pixelated;image-rendering:crisp-edges;width:min(92vw,860px);max-height:62vh;border-radius:6px}.intro-bottom{margin-top:26px;width:min(78vw,460px);text-align:center}.intro-title{letter-spacing:.42em;font-size:12px;color:var(--gold);text-transform:uppercase}.intro-bar{margin:14px auto 10px;height:4px;width:100%;background:#1b1b22;border-radius:2px;overflow:hidden}.intro-bar i{display:block;height:100%;width:0%;background:linear-gradient(90deg,#8a7134,var(--gold),var(--gold-soft));border-radius:2px;transition:width .25s ease}.intro-sub{font-size:12px;color:var(--text-dim);min-height:18px}.intro-quote{margin-top:16px;font-size:12.5px;color:#8f886f;font-style:italic}#lang{background:#fff;z-index:85;color:#17171b;text-align:center;opacity:0;transition:opacity .9s ease;pointer-events:none}#lang.show{opacity:1;pointer-events:auto}#lang h1{font-weight:500;font-size:clamp(19px,3.4vw,27px);letter-spacing:.06em;margin:0 0 6px}#lang h2{font-weight:400;font-size:clamp(13px,2vw,16px);color:#8b8b93;margin:0 0 34px;letter-spacing:.14em}.lang-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:640px;padding:0 18px}.lang-btn{border:1px solid #d8d4c6;background:#fff;color:#23232a;padding:13px 26px;border-radius:30px;font-size:15px;letter-spacing:.05em;cursor:pointer;transition:all .25s ease}.lang-btn:hover{border-color:#b3963f;color:#7c6519;transform:translateY(-1px);box-shadow:0 6px 18px #00000014}#hud{position:fixed;inset:0;z-index:30;pointer-events:none;opacity:0;transition:opacity .8s ease}#hud.show{opacity:1}#crosshair{position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px;border-radius:50%;background:#ffffffbf;box-shadow:0 0 6px #00000080}#topbar{position:absolute;top:calc(10px + var(--sat));right:calc(12px + var(--sar));display:flex;gap:10px;pointer-events:auto}.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--panel-line);background:var(--panel);color:var(--gold-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);transition:transform .2s ease,border-color .2s}.icon-btn:hover{transform:scale(1.06);border-color:var(--gold)}.icon-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}#hint{position:absolute;left:50%;bottom:calc(26px + var(--sab));transform:translate(-50%);background:var(--panel);border:1px solid var(--panel-line);color:var(--text);border-radius:24px;padding:9px 20px;font-size:13.5px;letter-spacing:.03em;backdrop-filter:blur(6px);opacity:0;transition:opacity .3s ease;white-space:nowrap;max-width:92vw;text-overflow:ellipsis;overflow:hidden}#hint.show{opacity:1}#hint b{color:var(--gold);font-weight:600}#collect-chip{position:absolute;top:calc(12px + var(--sat));left:calc(14px + var(--sal));background:var(--panel);border:1px solid var(--panel-line);border-radius:20px;padding:7px 14px;font-size:12.5px;color:var(--gold-soft);backdrop-filter:blur(6px);opacity:0;transition:opacity .4s}#collect-chip.show{opacity:1}#dialog{position:fixed;left:50%;bottom:calc(72px + var(--sab));transform:translate(-50%);width:min(92vw,640px);z-index:35;background:var(--panel);border:1px solid var(--panel-line);border-radius:16px;padding:14px 20px 15px;backdrop-filter:blur(8px);opacity:0;translate:0 8px;transition:opacity .35s ease,translate .35s ease;pointer-events:none}#dialog.show{opacity:1;translate:0 0;pointer-events:auto}#dialog .who{font-size:11px;letter-spacing:.28em;color:var(--holo);text-transform:uppercase;margin-bottom:5px}#dialog .txt{font-size:15px;line-height:1.55;min-height:24px}#dialog .choices{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.choice-btn{flex:1 1 150px;border:1px solid var(--panel-line);background:#d9b45b14;color:var(--gold-soft);padding:11px 16px;border-radius:10px;font-size:14px;cursor:pointer;transition:all .2s}.choice-btn:hover{background:#d9b45b33;border-color:var(--gold)}#name-panel{z-index:50;background:#02080c73;backdrop-filter:blur(2px)}.holo-card{width:min(90vw,400px);border:1px solid rgba(127,227,255,.55);border-radius:14px;background:linear-gradient(160deg,#091e26eb,#061018f0);box-shadow:0 0 34px #7fe3ff40,inset 0 0 24px #7fe3ff12;padding:26px 26px 22px;position:relative;overflow:hidden}.holo-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(127,227,255,.05) 0 1px,transparent 1px 4px)}.holo-card h3{margin:0 0 6px;font-weight:500;color:var(--holo);font-size:15px;letter-spacing:.12em}.holo-card p{margin:0 0 16px;font-size:12.5px;color:#9fc9d6}.holo-card input{width:100%;background:#7fe3ff12;border:1px solid rgba(127,227,255,.4);color:#e8fbff;border-radius:9px;padding:12px 14px;font-size:16px;letter-spacing:.04em}.holo-card .go{margin-top:16px;width:100%;padding:12px;border-radius:9px;border:none;cursor:pointer;background:linear-gradient(90deg,#47b8d8,#7fe3ff);color:#04222c;font-size:14.5px;font-weight:600;letter-spacing:.08em}.panel{position:fixed;z-index:55;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92vw,380px);max-height:min(86vh,640px);overflow-y:auto;background:var(--panel);border:1px solid var(--panel-line);border-radius:18px;padding:22px 24px;backdrop-filter:blur(10px)}.panel h3{margin:0 0 16px;font-size:15px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}.panel .row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:13px 0;font-size:14px}.panel .row>span{color:var(--text-dim)}.panel select,.panel input[type=text],.panel input[type=email],.panel textarea{background:#ffffff0f;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:var(--text);padding:9px 11px;font-size:14px;width:100%}.panel textarea{resize:vertical;min-height:88px}.panel input[type=range]{width:130px;accent-color:var(--gold)}.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{border:1px solid rgba(255,255,255,.16);background:transparent;color:var(--text-dim);border-radius:8px;padding:7px 12px;font-size:12.5px;cursor:pointer;transition:all .2s}.seg button.on{border-color:var(--gold);color:var(--gold-soft);background:#d9b45b1f}.panel .close-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:transparent;color:var(--text-dim);cursor:pointer;font-size:15px}.panel .close-x:hover{color:var(--text);border-color:var(--text-dim)}.panel .primary{width:100%;margin-top:14px;padding:12px;border:none;border-radius:10px;cursor:pointer;background:linear-gradient(90deg,#b3963f,var(--gold));color:#191305;font-weight:600;font-size:14.5px}.panel .note{font-size:12px;color:var(--text-dim);margin-top:10px;line-height:1.5}.panel .field{margin:10px 0}.panel .field label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:5px}.panel .err{color:var(--danger);font-size:12px;margin-top:8px;min-height:15px}.panel .ok-msg{color:#9fdf9f;font-size:12.5px;margin-top:8px}.hp-field{position:absolute;left:-4000px;top:-4000px;opacity:0;pointer-events:none}#dog-menu{width:min(88vw,320px)}#dog-menu .choices{display:flex;flex-direction:column;gap:9px}#toast{position:fixed;top:calc(64px + var(--sat));left:50%;transform:translate(-50%) translateY(-8px);z-index:60;background:var(--panel);border:1px solid var(--panel-line);color:var(--gold-soft);border-radius:12px;padding:11px 20px;font-size:13.5px;opacity:0;transition:all .4s ease;pointer-events:none;max-width:92vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}#photo-bar{position:fixed;bottom:calc(18px + var(--sab));left:50%;transform:translate(-50%);z-index:58;display:flex;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--panel-line);border-radius:30px;padding:10px 14px;backdrop-filter:blur(8px);flex-wrap:wrap;justify-content:center}#photo-bar .seg button{border-radius:20px}#photo-bar .shot{border:none;background:var(--gold);color:#191305;font-weight:600;border-radius:20px;padding:9px 18px;cursor:pointer;font-size:13px}body.photo #hud,body.photo #dialog{opacity:0!important;pointer-events:none!important}body.photo .joy{display:none!important}.joy{position:fixed;z-index:34;width:118px;height:118px;border-radius:50%;background:#ffffff0d;border:1px solid rgba(255,255,255,.16);bottom:calc(26px + var(--sab));touch-action:none;backdrop-filter:blur(3px)}.joy .knob{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px;border-radius:50%;background:#ffffff29;border:1px solid rgba(255,255,255,.3)}#joyL{left:calc(22px + var(--sal))}#joyR{right:calc(22px + var(--sar))}.fly-btns{position:fixed;z-index:34;right:calc(30px + var(--sar));bottom:calc(160px + var(--sab));display:flex;flex-direction:column;gap:10px}.fly-btns button{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:#fff;font-size:18px;touch-action:none}#galaxy-ui{position:fixed;inset:0;z-index:36;pointer-events:none;opacity:0;transition:opacity 1s ease}#galaxy-ui.show{opacity:1}#galaxy-ui .tel-hint{position:absolute;top:calc(20px + var(--sat));left:50%;transform:translate(-50%);color:#dce6ffa8;font-size:12.5px;letter-spacing:.1em;text-align:center;max-width:90vw}#galaxy-ui .tel-exit{position:absolute;bottom:calc(26px + var(--sab));left:50%;transform:translate(-50%);pointer-events:auto;background:#0a0e1ea6;border:1px solid rgba(150,170,255,.35);color:#cdd8ff;border-radius:22px;padding:10px 24px;font-size:13px;cursor:pointer;backdrop-filter:blur(4px)}#taurus-label{position:absolute;color:#ffdcaad9;font-size:12px;letter-spacing:.26em;text-transform:uppercase;text-shadow:0 0 8px rgba(255,200,120,.5);transition:opacity .6s}#gameover{background:radial-gradient(ellipse at center,#1a0505,#050203 70%);z-index:95;opacity:0;transition:opacity 1.2s ease;pointer-events:none}#gameover.show{opacity:1;pointer-events:auto}#gameover h1{font-family:Courier New,monospace;font-weight:700;color:#f44;font-size:clamp(38px,9vw,84px);letter-spacing:.18em;text-shadow:4px 4px 0 #560c0c,0 0 30px rgba(255,60,60,.5);margin:0 0 14px}#gameover p{color:#c99;font-size:14px;margin:0 0 30px;text-align:center;padding:0 20px}#gameover button{border:1px solid #a33;background:transparent;color:#ffb3b3;padding:12px 34px;border-radius:8px;font-size:14px;letter-spacing:.12em;cursor:pointer}#gameover button:hover{background:#ff50501f}#error-ov{background:#0a0a10;z-index:120;text-align:center;padding:24px}#error-ov h2{color:var(--gold);font-weight:500;letter-spacing:.1em}#error-ov p{color:var(--text-dim);max-width:480px;line-height:1.6;font-size:14px}#error-ov button{margin-top:18px;border:1px solid var(--panel-line);background:transparent;color:var(--gold-soft);padding:11px 30px;border-radius:24px;cursor:pointer;font-size:14px}#subtitle{position:fixed;bottom:calc(20px + var(--sab));left:50%;transform:translate(-50%);z-index:33;color:#fff;text-shadow:0 1px 3px #000;font-size:14px;background:#00000073;padding:6px 16px;border-radius:8px;opacity:0;transition:opacity .3s;pointer-events:none;max-width:90vw;text-align:center}#subtitle.show{opacity:1}@media(max-width:640px){#dialog{bottom:calc(150px + var(--sab))}.panel{padding:18px}#hint{bottom:calc(152px + var(--sab));font-size:12.5px}}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
