:root{--glass: rgba(255, 255, 255, .58);--glass-strong: rgba(255, 252, 247, .88);--glass-line: rgba(255, 255, 255, .8);--ink: #3b2c27;--ink-soft: rgba(59, 44, 39, .68);--accent: #d27493;--glass-blur: blur(16px) saturate(1.4);font-family:system-ui,-apple-system,sans-serif;color:#14252d;background:#263940}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button{font:inherit;cursor:pointer;min-width:44px;min-height:44px;border:1px solid #b3c2c5;color:#263a42;background:#f0f3f0;border-radius:11px}button:hover{background:#dbe9e9}button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}#view{width:100%;height:100%;display:block;touch-action:none}.hud{position:fixed;inset:14px 16px auto;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;gap:20px}.brand,.hint,.run-button,.hud-actions button{pointer-events:auto;background:var(--glass);border:1px solid var(--glass-line);color:var(--ink);box-shadow:0 4px 18px #00000029;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.brand{display:flex;flex-direction:column;border-radius:16px;padding:10px 16px;max-width:315px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.18em;color:var(--ink-soft)}.brand strong{font-size:19px}#zone-name{font-size:13px;color:var(--ink-soft);margin-top:2px}.hud-actions{display:flex;gap:8px;pointer-events:auto;align-items:center}.hud-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 16px;border-radius:999px}.hud-actions .icon-button{width:48px;padding:0}.hud-actions button:hover{background:#fffc}.hud-actions svg{width:21px;height:21px;flex:none}.island-button span{font-size:13px;font-weight:650}.hint{position:fixed;left:16px;bottom:16px;padding:9px 13px;border-radius:11px;font-size:13px;max-width:calc(100vw - 130px)}.run-button{position:fixed;right:18px;bottom:18px;display:none;padding:0 15px}.map-cover{position:fixed;inset:0;background:#1e1a1842;display:grid;place-items:center;padding:16px}.map-cover[hidden]{display:none}.map-dialog{width:min(1180px,100%);height:min(800px,100%);min-height:300px;display:flex;flex-direction:column;background:var(--glass-strong);border:1px solid var(--glass-line);color:var(--ink);-webkit-backdrop-filter:blur(20px) saturate(1.3);backdrop-filter:blur(20px) saturate(1.3);box-shadow:0 24px 60px #281c1847;border-radius:24px;overflow:hidden}.map-head{display:flex;align-items:start;justify-content:space-between;gap:15px;padding:16px 22px 11px}.map-head h1{margin:2px 0;font-size:clamp(22px,3vw,32px)}.map-head p{margin:0;font-size:13px;color:#526970}.map-head button{padding:0 15px}.map-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.map-head-actions button.selected{background:var(--accent);border-color:transparent;color:#fff}.map-body{display:grid;grid-template-columns:minmax(0,1fr) 270px;min-height:0;flex:1;gap:15px;padding:0 17px 17px}.map-frame{position:relative;display:grid;place-items:center;min-width:0;min-height:0;border-radius:15px;border:1px solid #c7d2d2;background:#ffffff8c;overflow:hidden}#map-svg{display:block;width:100%;height:100%;max-height:100%}.grid{fill:none;stroke:#d1dadd;stroke-width:.16}.link{fill:none;stroke:#a1acaf;stroke-linecap:round;stroke-linejoin:round;opacity:.95}.link.ramp{stroke:#9b8f86;stroke-dasharray:2 1}.link.tunnel{stroke:#79aeb9}.zone{fill:#bcc6c7;stroke:#6e7d80;stroke-width:.55}.lower-zone{fill:#81909366;stroke:#445b62;stroke-dasharray:1.5 1}.zone-label,.zone-size,.north,.player-label{font-family:system-ui,sans-serif;fill:#213940;text-anchor:middle;paint-order:stroke;stroke:#e9eeed;stroke-width:.7}.zone-label{font-size:3.5px;font-weight:800}.zone-size{font-size:2.5px}.player-dot{fill:#d96248;stroke:#fff;stroke-width:.9}.player-label{text-anchor:start;font-size:3px;font-weight:700}.north{font-size:4px;text-anchor:start;font-weight:900}.scale{position:absolute;bottom:11px;left:13px;padding:4px 7px;border-radius:5px;background:#f4f6f3c9;font-size:12px;font-weight:700}.map-side{overflow:auto;padding:0 3px 5px}.map-side p{font-size:12px;line-height:1.4;margin:1px 0 10px;color:#5a7075}.destination{display:flex;justify-content:space-between;align-items:center;gap:5px;padding:7px 0;border-top:1px solid #d4dcda}.destination strong{display:block;font-size:12px}.destination small{display:block;margin-top:2px;font-size:10px;color:#63777b}.destination button{min-height:38px;min-width:70px;flex:none;padding:3px 8px;font-size:10px;background:#fff9;border-color:#d2749355;color:#723b50}@media(pointer:coarse){.run-button{display:block}}@media(max-width:800px){.map-body{grid-template-columns:minmax(0,1fr) 190px}.destination{flex-wrap:wrap}.destination button{min-height:34px}}@media(max-width:600px){.brand{max-width:220px;padding:7px 10px}.brand strong{font-size:15px}.map-body{display:flex;flex-direction:column}.map-frame{flex:1 1 56%}.map-side{flex:1 1 30%}}.shot-mode .hud,.shot-mode .hint,.shot-mode .run-button,.shot-mode .map-cover{display:none!important}.shot-caption{position:fixed;left:28px;bottom:26px;z-index:5;padding:14px 20px;border-radius:7px;background:#10232bd9;color:#f0f5f3;font:700 20px/1.35 system-ui,sans-serif;letter-spacing:.02em;box-shadow:0 10px 34px #0005}.tank-rect{fill:#3f9fbf;opacity:.85}.tank-label{font:600 3px system-ui;fill:#fff;text-anchor:middle}.species-strip{position:fixed;z-index:12;left:16px;bottom:16px;width:min(1050px,calc(100vw - 32px));padding:10px;border:1px solid #ffffffb8;border-radius:18px;background:#f4f8f3e8;box-shadow:0 16px 48px #071c2870;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.species-strip[hidden],.animal-cover[hidden],.animal-card__disclosure[hidden]{display:none}body:has(.species-strip:not([hidden])) .hint{display:none}.species-strip__heading{display:flex;justify-content:space-between;gap:12px;padding:0 6px 8px;color:#51696e;font-size:12px}.species-strip__heading span{font-weight:800}.species-strip__heading strong{color:#29454a;font-weight:700}.species-strip__row{display:flex;gap:8px;overflow-x:auto;padding:1px 2px 5px;scrollbar-color:#d27493 #dbe7e4;scrollbar-width:thin}.species-strip__item{display:flex;align-items:center;gap:9px;flex:0 0 195px;min-width:0;min-height:64px;padding:5px 8px 5px 5px;text-align:left;border:1px solid #d4dedc;border-radius:12px;background:#fffdf8dc;color:#1d3239}.species-strip__item:focus-visible,.species-strip__item:hover{outline:2px solid #d27493;outline-offset:-2px}.species-strip__item img{width:65px;height:48px;flex:none;object-fit:cover;border-radius:8px;background:#132333}.species-strip__item span{min-width:0;flex:1}.species-strip__item strong,.species-strip__item em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.species-strip__item strong{font-size:13px}.species-strip__item em{color:#60777b;font-size:10px}.animal-cover{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:18px;background:#091820ad;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.animal-card{--animal-accent: #d27493;width:min(1090px,100%);max-height:100%;overflow:auto;border:1px solid #ffffffd9;border-radius:25px;background:linear-gradient(140deg,#f9faf4ee,#e8f0ebee);box-shadow:0 30px 100px #030f19b8;color:#1d3239}.animal-card__header{display:flex;align-items:start;justify-content:space-between;gap:18px;padding:19px 25px 17px;border-top:7px solid var(--animal-accent);border-bottom:1px solid #cddad8}.animal-card__family{color:#61777b;font-size:11px;font-weight:900;letter-spacing:.14em}.animal-card__header h1{margin:1px 0;font-size:clamp(29px,3vw,40px);line-height:1.08}.animal-card__latin{color:#60777c;font-size:14px}.animal-card__close{flex:none;min-height:44px;padding:0 18px;border-color:#c6d6d5;background:#fff9}.animal-card__body{display:grid;grid-template-columns:minmax(0,.96fr) minmax(0,1fr);gap:23px;padding:20px 25px 23px}.animal-card__visuals,.animal-card__story{min-width:0}.animal-card__still{position:relative;height:260px;margin:0 0 12px;overflow:hidden;border-radius:15px;background:#12263a}.animal-card__still img{width:100%;height:100%;object-fit:cover}.animal-card--whole-still .animal-card__still img{object-fit:contain}.animal-card__still figcaption{position:absolute;left:10px;bottom:9px;padding:5px 9px;border-radius:7px;background:#091d2aaa;color:#f1f7f5;font-size:11px}.animal-card__model{height:236px;overflow:hidden;border:1px solid #c2d4d5;border-radius:15px;background:radial-gradient(ellipse at 52% 45%,#47758c,#102b3d 75%)}.animal-card__model-head{display:flex;align-items:baseline;justify-content:space-between;gap:9px;padding:9px 13px 0;color:#f3faf6}.animal-card__model-head strong{font-size:13px}.animal-card__model-head small{font-size:10px}.animal-card__model canvas{display:block;width:100%;height:200px;touch-action:none;cursor:grab}.animal-card__model canvas:active{cursor:grabbing}.animal-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.animal-card__tags span{padding:5px 9px;border-radius:20px;background:#f1dce5;color:#63404e;font-size:11px;font-weight:750}.animal-card__sentence{margin:7px 0;font-size:14px;line-height:1.42}.animal-card__facts-title{margin:15px 0 7px;font-size:16px}.animal-card__facts{display:grid;grid-template-columns:95px 1fr;gap:6px 0;margin:0;padding:11px 0;border-block:1px solid #d3dfdc;font-size:12px}.animal-card__facts dt{color:#5e777c}.animal-card__facts dd{margin:0;font-weight:750}.animal-card__region{margin:12px 0;font-size:12px}.animal-card__region span{display:block;color:#5e777c}.animal-card__region strong:before{content:"◉";margin-right:7px;color:var(--animal-accent)}.animal-card__disclosure{padding:8px 12px;border-left:3px solid var(--animal-accent);border-radius:0 7px 7px 0;background:#fff9;font-size:11px}.animal-card__disclosure p{margin:3px 0 0}.animal-card__source{display:inline-block;margin-top:9px;color:#4e6574;font-size:11px}.animal-card--deep{background:linear-gradient(145deg,#17242ddd,#202f3bdd);border-color:#547386;color:#edf4f3}.animal-card--deep .animal-card__header{border-bottom-color:#53646d}.animal-card--deep .animal-card__close{border-color:#9eb9c5;background:#354c5a;color:#f7fbfc}.animal-card--deep .animal-card__family,.animal-card--deep .animal-card__latin,.animal-card--deep .animal-card__facts dt,.animal-card--deep .animal-card__region span{color:#b8cbd0}.animal-card--deep .animal-card__tags span{background:#5f3b56;color:#f8edf3}.animal-card--deep .animal-card__facts{border-color:#53646d}.animal-card--deep .animal-card__disclosure{background:#2e4350}.animal-card--deep .animal-card__source{color:#a8d9e6}@media(max-width:760px){.animal-cover{padding:6px}.animal-card__header{padding:13px}.animal-card__body{grid-template-columns:1fr;padding:12px}.animal-card__still{height:140px}.species-strip__item{flex-basis:175px}}.settings-cover{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px;background:#1e1a1842}.settings-cover[hidden]{display:none}.settings-dialog{width:min(680px,100%);max-height:calc(100dvh - 36px);overflow:auto;padding:22px 28px;border:1px solid var(--glass-line);border-radius:24px;background:var(--glass-strong);color:var(--ink);-webkit-backdrop-filter:blur(20px) saturate(1.3);backdrop-filter:blur(20px) saturate(1.3);box-shadow:0 24px 60px #281c1847}.settings-dialog header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:6px;padding-bottom:14px;border-bottom:1px solid rgba(59,44,39,.08)}.settings-dialog h1{margin:0;font-size:27px}.exit-dialog{width:min(560px,100%)}.exit-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.exit-actions button{padding:0 16px}.exit-actions [data-exit-continue]{background:#3b2c270d;border-color:#3b2c271f;color:var(--ink)}.settings-dialog header button,.map-head-actions button{padding:0 16px;background:#3b2c270d;border-color:#3b2c271f;color:var(--ink)}.settings-fields{display:grid}.settings-row{display:flex;flex-wrap:wrap;min-height:62px;padding:9px 0;align-items:center;justify-content:space-between;gap:8px 18px;border-bottom:1px solid rgba(59,44,39,.08);font-size:14px}.settings-row>strong{font-weight:650}.settings-toggle{flex-wrap:nowrap}.settings-choices{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:11px;background:#3b2c270b}.settings-choices button{border:0;min-height:44px;padding:0 12px;border-radius:8px;background:transparent;color:var(--ink-soft);font-size:12px;font-weight:650}.settings-choices button[aria-pressed=true]{color:#fff;background:var(--accent)}.settings-choices button:hover:not([aria-pressed=true]){background:#ffffff85;color:var(--ink)}.settings-switch{position:relative;flex:none;width:54px;height:44px;min-height:44px;padding:0;border:0;border-radius:999px;background:transparent}.settings-switch:before{content:"";position:absolute;inset:7px 0;border-radius:inherit;background:#d6cbc9;box-shadow:inset 0 1px 2px #3b2c271c}.settings-switch>span{position:absolute;top:10px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 3px #3b2c2726;transition:transform .16s ease}.settings-switch[aria-checked=true]:before{background:var(--accent)}.settings-switch[aria-checked=true]>span{transform:translate(24px)}.settings-switch:hover{background:transparent}.settings-fields input[type=range]{width:45%;min-height:44px;accent-color:var(--accent)}.settings-fields p{margin:5px 0 2px;color:var(--ink-soft);font-size:12px;line-height:1.45}@media(max-width:600px){.settings-dialog{padding:16px}.settings-row{padding:10px 0}}:root[data-control-side=right] .run-button{left:18px;right:auto}:root[data-control-size=large] .run-button{min-width:78px;min-height:58px}:root[data-reduced-motion] *,:root[data-reduced-motion] *:before,:root[data-reduced-motion] *:after{scroll-behavior:auto!important;transition:none!important}.travel-fade{animation:aquarium-fade .24s ease-out}@keyframes aquarium-fade{0%{opacity:0}to{opacity:1}}@media(max-width:600px){.hud{gap:8px;inset:10px}.brand{padding:8px 10px;max-width:44vw}.brand strong{font-size:15px}.hud-actions{gap:3px}.hud-actions button{padding:0 8px;font-size:12px}}.life-loading{position:fixed;left:50%;top:45%;transform:translate(-50%,-50%);padding:15px 22px;border-radius:14px;background:var(--glass-strong);border:1px solid var(--glass-line);color:var(--ink);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:0 4px 18px #00000029;font-size:16px;z-index:12}.life-loading[hidden]{display:none}.life-waiting{opacity:0}body:has(.species-strip:not([hidden])) .run-button{bottom:142px}.life-loading:before{content:"";display:inline-block;width:9px;height:9px;margin-right:10px;border-radius:50%;background:var(--accent)}.run-button[aria-pressed=true]{background:var(--accent);color:#fff;border-color:transparent}.tank-info-hint{position:fixed;z-index:14;bottom:24px;left:50%;transform:translate(-50%);padding:0 18px;border:1px solid var(--glass-line);border-radius:999px;color:var(--ink);background:var(--glass-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:0 4px 18px #0003;font-size:13px;font-weight:650}.tank-info-cover{position:fixed;inset:0;z-index:24;display:flex;align-items:center;justify-content:flex-end;padding:24px;background:#141b1d33}.tank-info-hint[hidden],.tank-info-cover[hidden]{display:none}.tank-info-dialog{width:min(680px,100%);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;padding:24px;border:1px solid var(--glass-line);border-radius:24px;background:var(--glass-strong);color:var(--ink);-webkit-backdrop-filter:blur(20px) saturate(1.3);backdrop-filter:blur(20px) saturate(1.3);box-shadow:0 24px 60px #281c1847}.tank-info-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.tank-info-dialog h1{margin:5px 0 0;font-size:clamp(24px,2.5vw,32px);line-height:1.15}.tank-info-dialog [data-tank-close]{flex:none;padding:0 16px;background:#3b2c270d;border-color:#3b2c271f;color:var(--ink)}.tank-info-story{font-size:13px;line-height:1.55;color:var(--ink-soft);margin:16px 0}.tank-info-species-title{font-size:14px;margin:0 0 12px}.tank-info-species{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;overflow:auto;min-height:0;padding:3px 3px 8px;scrollbar-color:var(--accent) transparent;scrollbar-width:thin}.tank-info-animal{display:flex;flex-direction:column;align-items:stretch;min-width:0;padding:8px;border:1px solid #3b2c2714;border-radius:15px;background:#ffffffa6;color:var(--ink);text-align:left}.tank-info-animal:hover{background:#fff;border-color:var(--accent)}.tank-info-animal img{display:block;width:100%;aspect-ratio:1.6;object-fit:cover;border-radius:9px;background:#173346}.tank-info-animal strong{margin:9px 2px 4px;font-size:13px}.tank-info-animal i{margin:0 2px 4px;color:var(--ink-soft);font-size:10px;overflow-wrap:anywhere}body:has(.tank-info-hint:not([hidden])) .hint{display:none}@media(max-width:700px){.tank-info-cover{padding:12px}.tank-info-dialog{max-height:calc(100dvh - 24px);padding:16px}.tank-info-species{grid-template-columns:repeat(2,minmax(0,1fr))}}body:has(.tank-info-cover:not([hidden])) .hint,body:has(.tank-info-cover:not([hidden])) .run-button{display:none}.tank-video{flex:none;margin:0 0 18px;overflow:hidden;border:1px solid #ffffffa6;border-radius:16px;background:#183744}.tank-video-trigger{display:flex;align-items:center;justify-content:center;gap:20px;width:100%;min-height:145px;padding:20px;border:0;border-radius:0;background:radial-gradient(ellipse at 25% 10%,#4e7a88,#203e4c 75%);color:#fff;text-align:left}.tank-video-trigger:hover:not(:disabled){background:radial-gradient(ellipse at 25% 10%,#658f9c,#294958 75%)}.tank-video-trigger:disabled{cursor:default;opacity:.65;color:#e7eeed}.tank-video-play{display:grid;place-items:center;flex:none;width:60px;height:60px;border:1px solid #ffffff59;border-radius:50%;background:#ffffff1a}.tank-video-play svg{width:28px;height:28px}.tank-video-trigger strong,.tank-video-trigger small{display:block}.tank-video-trigger strong{font-size:19px}.tank-video-trigger small{margin-top:6px;color:#d4e0e0;font-size:13px}.tank-video video{display:block;width:100%;max-height:280px;aspect-ratio:16 / 9;object-fit:contain;background:#071a23}.tank-video-error{margin:0;padding:10px 14px;color:#f4e4e9;font-size:12px}.tank-video [hidden]{display:none}.tank-rect{opacity:.92;stroke:#ffffffb3;stroke-width:.4}.tank-label,.on-colour{fill:#fff;paint-order:stroke;stroke:#0000004d;stroke-width:.5;font-weight:800;text-anchor:middle}.zone-label{font-weight:800}.zone-label.on-colour{stroke:#0000004d}.link{stroke:#cdd5d6}.link.ramp{stroke:#cbbfb5}.link.tunnel{stroke:#a9cfd6}.route-line{fill:none;stroke:#d96248;stroke-width:.8;stroke-dasharray:2.4 1.6;stroke-linecap:round;stroke-linejoin:round}.arrow{fill:#d96248;stroke:#fff;stroke-width:.5;stroke-linejoin:round}.badge{fill:#fff;stroke:#d96248;stroke-width:1.1}.badge-label{font:800 4px system-ui,sans-serif;fill:#8d3a2a;text-anchor:middle}.flag-label{font:800 4.2px system-ui,sans-serif;fill:#fff;text-anchor:middle;letter-spacing:.3px}.tag{fill:#fff;stroke:#9fb0b3;stroke-width:.6}.tag-label{font:800 3.6px system-ui,sans-serif;fill:#35545b;text-anchor:middle}.player-ring{fill:#d9624833;stroke:#d96248;stroke-width:.5}.player-label{text-anchor:middle;font-size:4.2px;font-weight:900;fill:#8d3a2a}.destination{justify-content:flex-start}.destination>div{flex:1;min-width:0}.dest-mark{display:grid;place-items:center;flex:none;width:24px;height:24px;margin-right:8px;border-radius:50%;color:#fff;font-size:12px;font-weight:800}
