:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#fff;background:#6e9bae;color-scheme:dark}
*{box-sizing:border-box}html,body,#app,.game-shell{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none;touch-action:none;user-select:none;background:#6e9bae}button{font:inherit}#game-canvas{display:block;width:100%;height:100%;outline:none}.game-shell{position:relative;isolation:isolate;background:linear-gradient(#80bbd2,#d4d6bd)}
.cinematic-vignette{pointer-events:none;position:absolute;inset:0;z-index:2;background:radial-gradient(ellipse at 50% 46%,transparent 45%,rgba(9,24,25,.06) 70%,rgba(5,16,18,.22) 110%);mix-blend-mode:multiply}.sun-wash{display:none}
.hud{position:absolute;z-index:30;inset:0 0 auto;padding:max(18px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left));display:flex;justify-content:space-between;align-items:center;pointer-events:none}.counter,.sound-btn{border:1px solid rgba(255,255,255,.24);background:linear-gradient(180deg,rgba(23,37,35,.29),rgba(15,30,30,.17));backdrop-filter:blur(18px) saturate(130%);box-shadow:0 10px 35px rgba(9,25,25,.12),inset 0 1px rgba(255,255,255,.08);text-shadow:0 2px 9px rgba(0,0,0,.26)}.counter{height:44px;border-radius:999px;padding:0 15px;display:flex;align-items:center;gap:8px;font-size:15px}.counter strong{font-size:17px}.counter>span:last-child{opacity:.74}.star-icon{font-size:22px;color:#ffe07b;filter:drop-shadow(0 0 8px rgba(255,209,73,.75))}.hud-right{display:flex;align-items:center;gap:8px}.sound-btn{pointer-events:auto;height:34px;min-width:126px;border-radius:99px;padding:0 14px;color:#fff;cursor:pointer;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.world-status{position:absolute;z-index:31;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%,8px);height:28px;display:flex;align-items:center;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(20,37,35,.22);backdrop-filter:blur(14px) saturate(130%);padding:0 12px;color:rgba(255,255,255,.78);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;opacity:0;transition:opacity .35s ease,transform .35s ease;pointer-events:none}.world-status.show{opacity:1;transform:translate(-50%,0)}
.rocket-confirm{position:absolute;z-index:38;left:50%;bottom:max(68px,calc(env(safe-area-inset-bottom) + 68px));width:min(430px,calc(100vw - 28px));transform:translate(-50%,24px) scale(.94);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .22s cubic-bezier(.2,.9,.2,1.2),visibility .18s}.rocket-confirm.show{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scale(1)}.rocket-confirm-inner{border:3px solid rgba(255,232,111,.95);border-radius:8px;background:linear-gradient(180deg,rgba(8,19,24,.92),rgba(24,34,39,.88));box-shadow:0 0 0 3px rgba(0,0,0,.35),0 18px 70px rgba(0,0,0,.38),0 0 38px rgba(255,166,43,.3);padding:18px 18px 16px;text-align:center}.rocket-confirm span{display:block;color:#ffe070;font-size:12px;font-weight:900;letter-spacing:.2em;margin-bottom:7px}.rocket-confirm strong{display:block;font-size:clamp(24px,6vw,42px);line-height:1;font-weight:950;letter-spacing:0;text-shadow:0 4px 18px rgba(255,116,32,.45)}.rocket-confirm div div,.rocket-confirm-inner>div{display:flex;gap:12px;justify-content:center;margin-top:16px}.rocket-confirm button{min-width:118px;height:48px;border:2px solid rgba(255,255,255,.55);border-radius:7px;color:#10181d;background:#ffe070;box-shadow:0 6px 0 #9f6d18;font-size:18px;font-weight:950;letter-spacing:.08em;cursor:pointer}.rocket-confirm button+button{background:#d8e5ef;box-shadow:0 6px 0 #637786}.rocket-confirm button:active{transform:translateY(4px);box-shadow:0 2px 0 #9f6d18}
.launch-countdown{pointer-events:none;position:absolute;z-index:42;inset:0;display:grid;place-items:center;opacity:0;visibility:hidden;color:#fff;font:900 min(34vw,240px)/1 Inter,system-ui,sans-serif;letter-spacing:0;text-shadow:0 0 30px rgba(255,136,38,.8),0 14px 60px rgba(0,0,0,.55);background:radial-gradient(circle at 50% 52%,rgba(255,115,25,.18),rgba(6,17,20,.04) 36%,rgba(6,17,20,.18));transform:scale(.86);transition:opacity .12s ease,visibility .12s ease,transform .24s cubic-bezier(.18,.9,.25,1.25)}.launch-countdown.show{opacity:1;visibility:visible;transform:scale(1)}
.space-game{position:absolute;z-index:48;inset:0;display:none;background:#030712;color:#fff;overflow:hidden}.space-game.show{display:block}.space-game canvas{width:100%;height:100%;display:block;touch-action:none}.space-hud{position:absolute;z-index:2;left:0;right:0;top:max(14px,env(safe-area-inset-top));display:flex;justify-content:center;gap:8px;align-items:center;padding:0 max(18px,env(safe-area-inset-right)) 0 max(18px,env(safe-area-inset-left));pointer-events:none}.space-hud strong,.space-hud span{min-width:86px;height:36px;border:2px solid rgba(255,255,255,.24);border-radius:7px;background:rgba(255,255,255,.08);backdrop-filter:blur(12px);display:grid;grid-template-columns:auto auto;gap:6px;place-content:center;font-size:10px;font-weight:900;letter-spacing:.08em}.space-hud b{color:#ffe070;font-size:15px;line-height:1}.space-help{position:absolute;z-index:2;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(680px,calc(100vw - 24px));height:32px;display:grid;place-items:center;border:2px solid rgba(255,224,112,.35);border-radius:7px;background:rgba(4,12,27,.44);backdrop-filter:blur(10px);color:#ffe070;font-size:10px;font-weight:950;letter-spacing:.1em;text-align:center;pointer-events:none}.space-title{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%) scale(.9);opacity:0;pointer-events:none;font:900 min(13vw,96px)/1 Inter,system-ui,sans-serif;letter-spacing:.08em;text-shadow:0 0 28px rgba(106,185,255,.7),0 12px 50px rgba(0,0,0,.55);transition:opacity .22s ease,transform .28s ease}.space-title.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.intro{position:absolute;inset:0;z-index:8;display:flex;align-items:flex-end;justify-content:center;padding:0 20px max(7vh,50px);opacity:0;visibility:hidden;background:linear-gradient(180deg,rgba(5,19,22,0),rgba(5,19,22,.08) 55%,rgba(5,18,20,.28));transition:opacity .75s ease,visibility .75s}.intro.visible{opacity:1;visibility:visible}.intro.hidden{opacity:0;visibility:hidden;pointer-events:none}.intro-card{text-align:center;text-shadow:0 4px 28px rgba(5,15,18,.44)}.eyebrow{font-size:9px;font-weight:700;letter-spacing:.34em;opacity:.75;margin-bottom:9px}.intro h1{font:400 clamp(55px,8vw,91px)/.9 Georgia,"Times New Roman",serif;letter-spacing:-.045em;margin:0 0 15px}.intro p{margin:0 0 19px;font-size:11px;letter-spacing:.075em;opacity:.78}.intro button{border:1px solid rgba(255,255,255,.38);border-radius:999px;color:#1e3434;background:rgba(255,251,237,.9);padding:12px 13px 12px 20px;cursor:pointer;display:inline-flex;align-items:center;gap:15px;box-shadow:0 14px 40px rgba(7,23,24,.2);font-size:12px;font-weight:700;transition:transform .2s,background .2s}.intro button:hover{transform:translateY(-2px);background:#fff}.intro button b{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:rgba(34,55,54,.1);font-size:15px}.mobile-hint{display:none}
.orientation{display:none;position:absolute;z-index:12;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);padding:9px 13px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(10,27,28,.42);backdrop-filter:blur(12px);font-size:10px;white-space:nowrap}
.finish{pointer-events:none;position:absolute;inset:0;z-index:10;display:grid;place-items:center;opacity:0;visibility:hidden;background:radial-gradient(circle at 50% 48%,rgba(255,211,117,.19),rgba(5,20,21,.03) 48%,rgba(4,17,18,.16));transition:opacity 1.1s,visibility 1.1s}.finish.show{opacity:1;visibility:visible}.finish-inner{text-align:center;text-shadow:0 5px 35px rgba(5,17,18,.4);animation:finishRise 1.2s cubic-bezier(.2,.8,.2,1) both}.finish-inner>span{font-size:38px;color:#ffe07a;filter:drop-shadow(0 0 18px rgba(255,214,100,.9))}.finish h2{font:400 clamp(40px,7vw,78px)/1 Georgia,serif;letter-spacing:-.035em;margin:10px 0 7px}.finish p{margin:0;font:italic 18px Georgia,serif;opacity:.82}.pickup-flash{pointer-events:none;position:absolute;z-index:9;inset:0;opacity:0;background:radial-gradient(circle,rgba(255,231,159,.18),transparent 58%)}.pickup-flash.go{animation:pickup .65s ease-out}.reset{position:absolute;z-index:7;right:max(17px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));border:0;color:#fff;background:transparent;opacity:.36;font-size:9px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-shadow:0 2px 8px rgba(0,0,0,.4)}.reset:hover{opacity:.8}
.touch-ui{display:none}.game-shell.playing .touch-ui.is-active{display:block}.joystick-zone{position:absolute;z-index:11;left:0;bottom:0;width:48%;height:50%;touch-action:none}.joystick-ring{position:absolute;left:max(27px,calc(env(safe-area-inset-left) + 19px));bottom:max(25px,calc(env(safe-area-inset-bottom) + 17px));width:116px;height:116px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:radial-gradient(circle,rgba(255,255,255,.07),rgba(20,41,40,.11));backdrop-filter:blur(7px);box-shadow:0 12px 38px rgba(8,22,23,.12),inset 0 0 28px rgba(255,255,255,.03)}.joystick-thumb{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:49px;height:49px;border-radius:50%;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.15);box-shadow:0 7px 20px rgba(7,22,22,.14)}.look-zone{position:absolute;z-index:10;right:0;top:8%;width:52%;height:74%;touch-action:none}.jump-button{position:absolute;z-index:12;right:max(29px,calc(env(safe-area-inset-right) + 20px));bottom:max(31px,calc(env(safe-area-inset-bottom) + 22px));width:67px;height:67px;border-radius:50%;border:1px solid rgba(255,255,255,.23);background:rgba(17,37,37,.14);backdrop-filter:blur(9px);color:#fff;font-size:24px;box-shadow:0 10px 32px rgba(8,23,24,.11);touch-action:none}.jump-button span{display:block;transform:translateY(-1px)}.jump-button.pressed{transform:scale(.92);background:rgba(255,255,255,.2)}
@keyframes pickup{0%{opacity:0}20%{opacity:1}100%{opacity:0}}@keyframes finishRise{from{transform:translateY(22px) scale(.98);opacity:0}to{transform:none;opacity:1}}
@media(pointer:coarse),(max-width:760px){.desktop-hint{display:none}.mobile-hint{display:block}.intro{padding-bottom:max(10vh,55px)}.intro h1{font-size:57px}.reset{display:none}.hud{padding-top:max(13px,env(safe-area-inset-top))}.loading-copy{bottom:max(8vh,42px)}.sound-btn{height:36px;min-width:132px;font-size:9px;padding:0 12px}}
@media(orientation:portrait) and (pointer:coarse){.orientation{display:block;top:max(68px,calc(env(safe-area-inset-top) + 58px))}.intro-card{transform:translateY(20px)}}
@media(max-height:540px){.intro{padding-bottom:28px}.intro h1{font-size:48px;margin-bottom:11px}.intro p{margin-bottom:12px}.joystick-ring{width:100px;height:100px}.jump-button{width:58px;height:58px}.loading-copy{bottom:26px}.loading-title{font-size:21px;margin-bottom:11px}}

/* V2.1 mobile input hardening */
.touch-ui{position:absolute;inset:0;z-index:10;pointer-events:none}
.touch-ui .joystick-zone,.touch-ui .look-zone,.touch-ui .jump-button{pointer-events:auto}
.game-shell.playing .touch-ui.is-active{display:block}
.jump-button span{font-size:28px;filter:drop-shadow(0 2px 7px rgba(0,0,0,.35))}
@media(pointer:coarse),(max-width:760px){
  .joystick-zone{width:52%;height:58%}
  .look-zone{right:0;top:0;width:52%;height:82%}
  .jump-button{right:max(24px,calc(env(safe-area-inset-right) + 18px));bottom:max(25px,calc(env(safe-area-inset-bottom) + 20px));width:72px;height:72px}
}

.fatal-error{position:fixed;z-index:99999;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 32px));max-height:80vh;overflow:auto;padding:22px 24px;border-radius:18px;background:rgba(14,25,29,.94);border:1px solid rgba(255,255,255,.18);box-shadow:0 24px 80px rgba(0,0,0,.38);color:#fff;font:14px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:normal}.fatal-error strong{display:block;font:600 18px/1.3 system-ui,sans-serif;margin-bottom:12px}.fatal-error pre{white-space:pre-wrap;word-break:break-word;margin:0 0 14px;color:#ffd7bd}.fatal-error span{display:block;opacity:.72;font:12px/1.4 system-ui,sans-serif}

.dev-object-manager,.dev-object-viewer{position:absolute;z-index:60;color:#ecf7f5;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;pointer-events:auto}.dev-object-manager{left:16px;top:76px;width:260px;max-height:calc(100% - 96px);overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(10,23,25,.78);backdrop-filter:blur(18px) saturate(130%);box-shadow:0 18px 60px rgba(0,0,0,.24);display:flex;flex-direction:column}.dev-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid rgba(255,255,255,.12)}.dev-head strong,.dev-viewer-top strong{display:block;font-size:13px;line-height:1.2}.dev-head span,.dev-viewer-top span{display:block;margin-top:2px;font-size:10px;color:rgba(236,247,245,.62)}.dev-head button,.dev-viewer-top button{border:1px solid rgba(255,255,255,.18);border-radius:99px;background:rgba(255,255,255,.08);color:#fff;padding:7px 10px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.dev-object-list{overflow:auto;padding:10px 10px 12px}.dev-object-group+ .dev-object-group{margin-top:14px}.dev-object-group h3{margin:0 0 7px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:rgba(236,247,245,.54)}.dev-object-group button{width:100%;display:block;text-align:left;border:1px solid rgba(255,255,255,.1);border-radius:7px;background:rgba(255,255,255,.045);color:#fff;padding:9px 10px;cursor:pointer}.dev-object-group button+button{margin-top:6px}.dev-object-group button:hover,.dev-object-group button.is-active{border-color:rgba(255,226,149,.58);background:rgba(255,226,149,.13)}.dev-object-group button strong{display:block;font-size:12px;line-height:1.2}.dev-object-group button span{display:block;margin-top:3px;font-size:10px;color:rgba(236,247,245,.56)}
.dev-object-viewer{right:16px;top:76px;width:min(520px,calc(100% - 316px));height:min(720px,calc(100% - 96px));display:none;grid-template-rows:auto minmax(260px,1fr) auto auto;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(9,20,22,.86);backdrop-filter:blur(18px) saturate(130%);box-shadow:0 22px 70px rgba(0,0,0,.3);overflow:hidden}.dev-object-viewer.is-open{display:grid}.dev-viewer-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid rgba(255,255,255,.12)}.dev-viewer-canvas{width:100%;height:100%;display:block;touch-action:none;background:#0e1a1c}.dev-axis-legend{display:flex;flex-wrap:wrap;gap:8px;padding:9px 12px;border-top:1px solid rgba(255,255,255,.1);font-size:10px;color:rgba(236,247,245,.72)}.dev-axis-legend span{display:inline-flex;align-items:center;gap:5px}.dev-axis-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.dev-axis-legend .x{background:#ff5a5f}.dev-axis-legend .y{background:#65d66e}.dev-axis-legend .z{background:#5f9cff}.dev-object-meta{margin:0;padding:11px 12px 13px;max-height:190px;overflow:auto;border-top:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.18);color:rgba(236,247,245,.78);font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}
@media(max-width:860px){.dev-object-manager{left:10px;right:10px;top:64px;width:auto;max-height:34%;}.dev-object-viewer{left:10px;right:10px;top:calc(34% + 76px);width:auto;height:calc(66% - 92px)}.dev-object-list{display:flex;gap:8px;overflow:auto}.dev-object-group{min-width:180px}.dev-object-group+ .dev-object-group{margin-top:0}}
.house-confirm .rocket-confirm-inner{border-color:rgba(255,214,122,.95);background:linear-gradient(180deg,rgba(34,24,15,.94),rgba(77,49,28,.9));box-shadow:0 0 0 3px rgba(0,0,0,.34),0 18px 70px rgba(0,0,0,.36),0 0 42px rgba(255,202,106,.26)}.house-confirm span{color:#ffd67a}.house-confirm strong{text-shadow:0 4px 18px rgba(255,179,74,.42)}
.herb-confirm .rocket-confirm-inner{border-color:rgba(191,255,128,.92);background:linear-gradient(180deg,rgba(17,38,24,.95),rgba(48,82,40,.9));box-shadow:0 0 0 3px rgba(0,0,0,.32),0 18px 70px rgba(0,0,0,.34),0 0 42px rgba(157,255,98,.22)}.herb-confirm span{color:#cfff89}.herb-confirm strong{text-shadow:0 4px 18px rgba(124,255,79,.32)}
.herb-hud{position:absolute;z-index:32;left:50%;top:max(72px,calc(env(safe-area-inset-top) + 62px));transform:translate(-50%,-12px);height:38px;display:flex;align-items:center;gap:10px;border:2px solid rgba(204,255,147,.36);border-radius:999px;background:rgba(19,49,28,.42);backdrop-filter:blur(14px) saturate(130%);box-shadow:0 14px 42px rgba(12,31,19,.22),inset 0 1px rgba(255,255,255,.08);padding:0 15px;color:#efffdc;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,transform .24s ease,visibility .22s}.herb-hud.show{opacity:1;visibility:visible;transform:translate(-50%,0)}.herb-hud span{font-size:10px;font-weight:950;letter-spacing:.14em;color:#cfff89}.herb-hud strong{font-size:15px;font-weight:950;letter-spacing:.04em}
.family-game{position:absolute;z-index:50;inset:0;display:none;place-items:center;padding:20px;background:radial-gradient(circle at 50% 44%,rgba(255,222,142,.18),rgba(8,15,18,.54));backdrop-filter:blur(7px);color:#fff}.family-game.show{display:grid}.family-inner{width:min(430px,calc(100vw - 28px));border:3px solid rgba(255,214,122,.95);border-radius:8px;background:linear-gradient(180deg,rgba(43,28,16,.96),rgba(99,62,32,.94));box-shadow:0 0 0 3px rgba(0,0,0,.34),0 22px 80px rgba(0,0,0,.42);padding:18px;text-align:center}.family-inner span{display:block;color:#ffd67a;font-size:12px;font-weight:950;letter-spacing:.2em;margin-bottom:7px}.family-inner strong{display:block;font-size:clamp(24px,6vw,38px);line-height:1;font-weight:950;letter-spacing:0}.family-inner p{margin:10px 0 14px;color:rgba(255,247,220,.82);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.family-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.family-grid button{aspect-ratio:1;border:2px solid rgba(255,255,255,.42);border-radius:7px;background:#ffe070;color:#3b2412;box-shadow:0 6px 0 #9f6d18;font-size:clamp(32px,11vw,54px);font-weight:950;cursor:pointer}.family-grid button.is-open{background:#fff4bd}.family-inner>button{margin-top:15px;min-width:138px;height:44px;border:2px solid rgba(255,255,255,.48);border-radius:7px;background:#d8e5ef;color:#10181d;box-shadow:0 6px 0 #637786;font-size:14px;font-weight:950;letter-spacing:.1em;cursor:pointer}.family-grid button:active,.family-inner>button:active{transform:translateY(4px);box-shadow:0 2px 0 #9f6d18}
.name-gate{position:absolute;z-index:56;inset:0;display:none;place-items:center;padding:20px;background:radial-gradient(circle at 50% 47%,rgba(255,235,171,.12),rgba(7,18,20,.42));backdrop-filter:blur(5px);pointer-events:auto}.name-gate.show{display:grid}.name-card{width:min(390px,calc(100vw - 30px));border:2px solid rgba(255,255,255,.35);border-radius:8px;background:linear-gradient(180deg,rgba(13,29,32,.9),rgba(32,55,52,.86));box-shadow:0 18px 70px rgba(0,0,0,.38);padding:18px;text-align:center}.name-card span{display:block;color:#ffe070;font-size:11px;font-weight:900;letter-spacing:.17em;margin-bottom:8px}.name-card strong{display:block;font-size:clamp(28px,7vw,42px);line-height:1;font-weight:950;margin-bottom:16px}.name-card input{width:100%;height:50px;border:2px solid rgba(255,255,255,.38);border-radius:7px;background:rgba(255,255,255,.94);color:#152225;text-align:center;font-size:22px;font-weight:850;outline:none}.name-card input:focus{border-color:#ffe070;box-shadow:0 0 0 4px rgba(255,224,112,.18)}.name-card button{margin-top:13px;min-width:132px;height:48px;border:2px solid rgba(255,255,255,.55);border-radius:7px;background:#ffe070;color:#10181d;box-shadow:0 6px 0 #9f6d18;font-size:18px;font-weight:950;letter-spacing:.1em;cursor:pointer}.name-card button:active{transform:translateY(4px);box-shadow:0 2px 0 #9f6d18}
