@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Space+Mono:wght@400;700&display=swap";:root{font-family:IBM Plex Mono,Courier New,monospace;color:#d5e5dc;background:#031018;font-synthesis:none;--void: #031018;--navy: #061a24;--panel: #0a2631;--panel-2: #0d303b;--edge-light: #60757a;--edge-mid: #26424a;--edge-dark: #001018;--text: #d5e5dc;--muted: #89a5a4;--cyan: #57bfc4;--amber: #efbb4d;--green: #9bd94e;--red: #e56b55;--shadow: 0 12px 42px rgba(0, 0, 0, .48);--type-utility: 12px;--type-control: 13px;--type-body: 14px;--type-body-large: clamp(14px, 1.35vw, 17px);--type-heading: clamp(18px, 2.1vw, 27px)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh;overflow-x:hidden;font-size:var(--type-body);-webkit-font-smoothing:antialiased}button,select{font:inherit}.app-root{min-height:100%}.audio-control{position:fixed;z-index:70;top:12px;right:14px;color:#d9eee9;font-family:IBM Plex Mono,Courier New,monospace;font-size:var(--type-utility)}.audio-toggle{min-width:104px;height:27px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 10px;color:#dcefeb;background:#173638;border:1px solid #071718;border-top-color:#5c817d;border-left-color:#5c817d;box-shadow:1px 1px #020909;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.audio-toggle:focus-visible,.audio-panel button:focus-visible,.audio-panel input:focus-visible{outline:2px solid #f5b75c;outline-offset:2px}.audio-toggle svg{width:14px;height:14px;color:#f5b75c}.audio-panel{position:absolute;top:34px;right:0;width:258px;padding:8px;background:#10282a;box-shadow:5px 6px 18px #00000080}.audio-panel .panel-title{margin:-3px -2px 8px}.audio-panel .panel-title span:last-child{color:#86c7b9}.audio-mute,.audio-test{width:100%;min-height:30px;display:flex;align-items:center;gap:8px;padding:5px 8px;color:#d9eee9;background:#24494a;border:1px solid #061415;border-top-color:#6c918c;border-left-color:#6c918c;cursor:pointer}.audio-test{margin-top:6px;background:#315f5f}.audio-mute svg,.audio-test svg{width:15px;color:#f5b75c}.audio-output{display:flex;justify-content:space-between;gap:8px;margin-top:7px;padding:5px 7px;color:#8aa4a3;background:#091d1f;border:1px solid #254143;font-size:var(--type-utility)}.audio-output strong{color:#b7c5c1}.audio-output.is-live strong{color:#9bd94e}.audio-level{display:grid;grid-template-columns:51px 1fr 34px;align-items:center;gap:7px;margin-top:9px;text-transform:uppercase}.audio-level input{width:100%;accent-color:#e7a94f;cursor:pointer}.audio-level output{color:#9bc8c1;text-align:right;font-variant-numeric:tabular-nums}@media(max-width:640px){.audio-control{top:7px;right:8px}.audio-toggle{min-width:32px;width:32px;padding:0}.audio-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.audio-panel{width:min(258px,calc(100vw - 16px))}}button{color:inherit}.app-shell{min-height:100vh;padding:clamp(10px,2vw,26px);display:grid;place-items:center;background:#031018}.app-window{width:min(1500px,100%);background:var(--navy);border:2px solid #729096;border-right-color:#001018;border-bottom-color:#001018;box-shadow:var(--shadow),inset 0 0 0 2px #173943;color:var(--text)}.window-bar{min-height:32px;display:flex;align-items:center;justify-content:space-between;padding:4px 7px 4px 10px;background:#0c2f3b;border-bottom:2px solid #001018;color:#d9e8e2;font:500 12px/1.25 Space Mono,monospace;letter-spacing:.02em}.window-bar>span{min-width:0;overflow-wrap:anywhere}.window-controls{display:flex;gap:3px}.window-controls i,.window-controls button{width:20px;height:20px;display:grid;place-items:center;margin:0;border:1px solid #789198;border-right-color:#001018;border-bottom-color:#001018;background:#163b45;color:#c4d5d1;font:normal var(--type-utility)/1 "IBM Plex Mono","Courier New",monospace}.window-controls button{padding:3px;cursor:pointer}.raised-panel,.inset-panel{border:2px solid var(--edge-dark);box-shadow:inset 1px 1px 0 var(--edge-light),inset -1px -1px #001018}.inset-panel{box-shadow:inset 2px 2px 5px #000,1px 1px #35515a}.bevel-button{min-height:40px;padding:0 20px;border:2px solid #70858b;border-right-color:#001018;border-bottom-color:#001018;box-shadow:inset 1px 1px #9ba9ab,2px 2px #001018;background:#163947;color:#f1f5ed;cursor:pointer;font-size:12px;font-weight:600}.bevel-button:hover{background:#1b4b59;color:#fff}.bevel-button:active{border-color:#001018 #70858b #70858b #001018;box-shadow:inset 1px 1px 3px #000;transform:translate(1px,1px)}.bevel-button:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.bevel-button.secondary{background:#0d2731;color:var(--muted)}.boot-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:#020b11;cursor:pointer}.boot-box{width:min(640px,100%);min-height:min(76vh,720px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px;background:#051923;position:relative}.boot-fish{width:62px;height:62px;color:#d9e4d9;margin-bottom:12px;filter:drop-shadow(3px 3px 0 #27606b)}.boot-box h1{margin:0;text-align:center;font:700 clamp(34px,7vw,68px)/1.25 "Space Mono",monospace;letter-spacing:-.08em;color:#d5ded3;text-shadow:3px 3px 0 #205c68}.boot-box h1 strong{color:#f0f3e9;font-size:1.25em}.boot-progress{width:min(340px,80%);height:17px;padding:3px;margin:48px 0 16px;border:2px solid #536d74;background:#031018;box-shadow:inset 2px 2px 4px #000;overflow:hidden}.boot-progress span{display:block;height:100%;width:34%;background:#55b8c4;animation:boot 2.1s steps(6,end) forwards}.boot-box p{margin:0;color:#a7c1bd;font-size:12px}.boot-box small{position:absolute;bottom:22px;color:#4e6b70;font-size:var(--type-utility)}@keyframes boot{to{width:100%}}.welcome-shell{padding:clamp(8px,1.4vw,18px)}.welcome-window{width:min(1180px,100%)}.welcome-content{min-height:calc(100vh - 80px);display:grid;place-items:center;padding:12px;background:var(--navy)}.welcome-hero{width:min(920px,100%);min-height:calc(100vh - 106px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(22px,3vw,40px) clamp(18px,5vw,64px);background:#051923;border:2px solid #001018;box-shadow:inset 1px 1px #36545d}.welcome-logo-frame{width:min(340px,72vw);flex:0 0 auto;aspect-ratio:1 / 1;display:grid;place-items:center;padding:14px;background:#03131c;border:3px solid #001018}.welcome-logo-frame img{width:100%;height:100%;object-fit:contain}.welcome-hero>h1{max-width:68ch;margin:clamp(20px,3vh,32px) 0 0;color:#dce7df;text-align:center;font:500 var(--type-body-large)/1.7 "IBM Plex Mono","Courier New",monospace;letter-spacing:-.018em}.welcome-divider{width:min(700px,100%);height:1px;margin:clamp(18px,2.5vh,26px) 0;background:#4b5651}.welcome-inspiration{width:min(700px,100%)}.welcome-inspiration h2{margin:0 0 10px;color:var(--cyan);text-align:center;font-size:var(--type-utility);letter-spacing:.12em;text-transform:uppercase}.welcome-reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.welcome-reference-grid figure{min-width:0;margin:0;padding:5px;background:#08212a;border:2px solid #001018;box-shadow:inset 1px 1px #49636a}.welcome-reference-grid img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border:1px solid #38535b;filter:saturate(.72) brightness(.82) contrast(1.06)}.welcome-reference-grid figcaption{padding:7px 3px 2px;color:#89a5a4;font-size:var(--type-utility);text-align:center;line-height:1.35}.welcome-hero .bevel-button{width:min(420px,100%);min-height:56px;margin-top:clamp(20px,3vh,30px);font-size:14px}.app-root[data-audio-scene=welcome] .audio-control{top:22px;right:88px}.app-root[data-audio-scene=welcome] .audio-toggle{min-width:32px;width:32px;height:22px;padding:0}.app-root[data-audio-scene=welcome] .audio-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.setup-content{padding:18px}.section-heading{display:flex;gap:13px;align-items:flex-start;margin:2px 0 15px}.section-heading>span{display:grid;place-items:center;width:36px;height:36px;background:var(--amber);color:#102028;font-weight:700}.section-heading h1{margin:0 0 4px;color:#e4ede6;font:600 var(--type-heading)/1.4 "Space Mono",monospace}.section-heading p{margin:0;color:var(--muted);font-size:var(--type-body)}.setup-workspace{display:grid;grid-template-columns:minmax(480px,1.18fr) minmax(360px,.82fr);gap:12px;align-items:stretch}.setup-choices{min-width:0;padding:10px;background:#08222c}.setup-block-title,.preview-heading{min-height:25px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#7d9a9b;font-size:var(--type-utility);letter-spacing:.08em}.setup-block-title small{color:#6f8e90;font-size:var(--type-utility);letter-spacing:0}.preview-heading strong{color:var(--amber);font-size:var(--type-control);letter-spacing:0}.setup-preview{min-width:0;display:flex;flex-direction:column}.setup-preview .aquarium-scene{flex:1;min-height:330px;aspect-ratio:16 / 9}.aquarium-scene{position:relative;min-height:360px;aspect-ratio:16 / 7.2;overflow:hidden;background:#031018;border:3px solid #001018;box-shadow:inset 0 0 0 1px #58727a,0 0 0 1px #527078;isolation:isolate;container:aquarium / size}.aquarium-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transform:scale(1.008);transition:filter .9s ease,transform 10s ease}.aquarium-scene:hover .aquarium-photo{transform:scale(1.025)}.water-state{position:absolute;top:0;right:0;bottom:0;left:0;background:#15382d00;transition:background .9s ease;z-index:1;pointer-events:none}.state-early .aquarium-photo{filter:saturate(.82) brightness(.86) contrast(.94)}.state-early .water-state{background:#37452226}.state-severe .aquarium-photo{filter:saturate(.58) brightness(.68) contrast(.86) blur(.7px)}.state-severe .water-state{background:#3f48264d}.aquarium-atmosphere{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.plant-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.plant-layer-mid{z-index:2;filter:saturate(.88) brightness(.88) blur(.18px);opacity:.48}.plant-layer-front{z-index:4;filter:saturate(.96) brightness(.92);opacity:.62}.swaying-plant{position:absolute;left:var(--plant-x);bottom:-2.5%;width:var(--plant-width);max-height:64%;object-fit:contain;object-position:center bottom;transform-origin:50% 98%;animation:plant-current var(--plant-duration) ease-in-out var(--plant-delay) infinite alternate;will-change:transform;filter:drop-shadow(0 5px 7px rgba(0,12,11,.32))}.plant-layer-mid .swaying-plant{bottom:5%;transform-origin:50% 96%}.plants-watch .plant-layer{opacity:.5;filter:saturate(.72) brightness(.78)}.plants-struggling .plant-layer{opacity:.36;filter:saturate(.48) brightness(.68)}@keyframes plant-current{0%{transform:translate3d(-2px,0,0) rotate(calc(var(--plant-sway) * -1.15deg)) skew(calc(var(--plant-sway) * -.22deg))}48%{transform:translate3d(1px,.2px,0) rotate(calc(var(--plant-sway) * .25deg)) skew(calc(var(--plant-sway) * .08deg))}to{transform:translate3d(3px,0,0) rotate(calc(var(--plant-sway) * 1deg)) skew(calc(var(--plant-sway) * .18deg))}}.atmosphere-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;width:100%;height:100%;pointer-events:none}.atmosphere-early .atmosphere-canvas{opacity:.82}.atmosphere-severe .atmosphere-canvas{opacity:.62}.fish-community,.fish-school{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.fish-agent{--scene-scale: 1;--state-opacity: 1;--state-saturation: 1;position:absolute;display:block;left:0;top:0;transform:translate3d(-50%,-50%,0) rotate(0) scale(calc(var(--fish-scale, 1) * var(--scene-scale)));transform-origin:center;opacity:var(--fish-opacity, 1);filter:blur(var(--fish-blur, 0)) brightness(var(--fish-brightness, 1)) saturate(var(--fish-saturation, 1)) hue-rotate(var(--fish-tint, var(--fish-hue, 0deg))) drop-shadow(0 3px 5px rgba(0,0,0,.62));will-change:transform;contain:layout paint style}.fish-facing{position:absolute;top:0;right:0;bottom:0;left:0;display:block;transform:perspective(180px) rotateY(calc((1 - var(--fish-turn, 1)) * 90deg)) rotate(calc(var(--fish-turning, 0) * -7deg)) translate3d(0,calc(var(--fish-turning, 0) * -2px),0) scaleY(calc(1 + var(--fish-turning, 0) * .08));transform-origin:center;opacity:var(--state-opacity);filter:saturate(var(--state-saturation));backface-visibility:visible;will-change:transform}.fish-identity-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;opacity:.12;pointer-events:none;transition:opacity .14s linear}.fish-motion-frame{position:absolute;top:0;right:0;bottom:0;left:0;display:block;background-image:var(--motion-atlas);background-repeat:no-repeat;filter:drop-shadow(0 1px 1px rgba(0,0,0,.16));opacity:1;pointer-events:none;transition:opacity .14s linear;will-change:background-position}.fish-agent[data-visual-pose-frame="0"] .fish-identity-layer{opacity:.62}.fish-agent[data-visual-pose-frame="0"] .fish-motion-frame{opacity:.55}.motion-layout-horizontal{background-size:400% auto;background-position:var(--pose-position, 0%) center}.motion-layout-vertical{top:-18%;right:-16%;bottom:-18%;left:-16%;background-size:auto 400%;background-position:center var(--pose-position, 0%);filter:brightness(1.08) saturate(1.04) drop-shadow(0 1px 2px rgba(0,0,0,.28))}.fish-agent-honey .fish-motion-frame{top:-8%;right:-5%;bottom:-8%;left:-5%}.fish-agent-pygmy-cory .fish-motion-frame{top:-5%;right:-4%;bottom:-5%;left:-4%}.fish-agent-bronze-cory .fish-motion-frame{top:-4%;right:-3%;bottom:-4%;left:-3%}.fish-agent-neon{width:72px;height:40px}.fish-agent-ember{width:56px;height:32px}.fish-agent-chili{width:44px;height:22px}.fish-agent-honey{width:120px;height:78px}.fish-agent-pygmy-cory{width:72px;height:42px}.fish-agent-bronze-cory{width:145px;height:72px}.fish-agent-kuhli-loach{width:190px;height:30px}.resident-helper-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;overflow:hidden;pointer-events:none}.resident-helper{position:absolute;display:block;left:var(--helper-left);bottom:var(--helper-bottom);width:clamp(48px,var(--helper-width),82px);opacity:var(--helper-opacity);contain:layout paint style;transform-origin:50% 76%;animation:resident-forage var(--helper-duration) ease-in-out var(--helper-delay) infinite alternate;will-change:transform}.resident-helper img{display:block;width:100%;height:auto;transform:scaleX(var(--helper-facing));filter:brightness(1.26) contrast(1.1) saturate(.78) drop-shadow(0 0 2px rgba(188,225,215,.3)) drop-shadow(0 2px 4px rgba(0,9,11,.72))}.resident-snail-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:none;overflow:hidden;pointer-events:none}.resident-snail{position:absolute;right:7%;bottom:10%;display:block;width:clamp(58px,18cqw,108px);opacity:.96;contain:layout paint style}.resident-snail img{display:block;width:100%;height:auto;filter:brightness(1.04) contrast(1.05) saturate(.9) drop-shadow(0 2px 4px rgba(0,9,11,.72))}@container aquarium (max-aspect-ratio: 1 / 1){.aquarium-scene[data-theme=midnight] .aquarium-photo{object-position:46% center}.aquarium-scene[data-theme=midnight] .resident-snail-layer,.aquarium-scene[data-theme=riverbank] .resident-snail-layer{display:block}}@container aquarium (max-aspect-ratio: 3 / 4){.aquarium-scene[data-theme=sunlit] .resident-snail-layer{display:block}}.state-early .resident-helper{opacity:calc(var(--helper-opacity) * .8);filter:saturate(.78)}.state-severe .resident-helper{opacity:calc(var(--helper-opacity) * .58);filter:saturate(.56) brightness(.74)}.state-early .resident-snail{opacity:.8;filter:saturate(.78)}.state-severe .resident-snail{opacity:.62;filter:saturate(.6) brightness(.78)}@keyframes resident-forage{0%{transform:translate3d(-2px,0,0) rotate(-1.2deg)}46%{transform:translate3d(1px,-1px,0) rotate(.4deg)}to{transform:translate3d(4px,0,0) rotate(1.3deg)}}.state-early .fish-agent{--state-opacity: .78;--state-saturation: .82}.state-severe .fish-agent{--state-opacity: .54;--state-saturation: .62}.is-ambient .fish-agent{--scene-scale: 1.28}.tank-action-effect{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;overflow:hidden;pointer-events:none}.care-effect-label{position:absolute;z-index:8;top:11px;right:11px;display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid rgba(137,207,200,.58);background:#021319d1;color:#d9ebe4;font:var(--type-utility)/1.3 "IBM Plex Mono","Courier New",monospace;box-shadow:0 3px 14px #0000005c;animation:care-label-cycle 3.15s ease both}.care-effect-label svg{width:17px;height:17px;color:var(--amber)}@keyframes care-label-cycle{0%{opacity:0;transform:translateY(-6px)}10%,78%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-3px)}}.food-morsel-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;overflow:hidden;pointer-events:none}.food-morsel-layer i{position:absolute;left:0;top:0;display:block;width:8px;height:7px;background:url(/assets/fish-motion/food-flake.png) center / contain no-repeat;opacity:0;filter:brightness(.96) saturate(.88) drop-shadow(0 0 2px rgba(244,190,86,.62));transition:opacity .1s linear;will-change:transform,opacity}.food-morsel-layer i:nth-child(3n+1){width:6px;height:6px}.food-morsel-layer i:nth-child(3n+2){width:7px;height:6px}.test-water-animation{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#4dd3d705,#21a2b014);animation:test-tint 3.1s ease both}.test-scan-line{position:absolute;z-index:2;left:3%;right:3%;top:8%;height:2px;background:linear-gradient(90deg,transparent,rgba(137,245,240,.9),transparent);box-shadow:0 0 13px #5ededbcc;animation:water-scan 2.45s ease-in-out .2s both}.test-probe{position:absolute;z-index:3;right:11%;top:-14%;display:grid;place-items:center;width:42px;height:68px;border:1px solid rgba(136,226,221,.55);background:#042026ad;color:#a9e7df;transform-origin:top center;animation:dip-probe 2.8s ease-in-out both}.test-probe svg{width:27px;height:27px}.test-water-animation>i{position:absolute;right:calc(13% + var(--drop, 0) * 12px);top:48%;width:5px;height:5px;border:1px solid #94e6df;border-radius:50%;opacity:0;animation:sample-ripple 1.15s ease-out 1.15s both}.test-water-animation>i:nth-of-type(2){--drop: 1;animation-delay:1.32s}.test-water-animation>i:nth-of-type(3){--drop: 2;animation-delay:1.5s}@keyframes test-tint{0%,to{opacity:0}12%,82%{opacity:1}}@keyframes water-scan{0%{opacity:0;transform:translateY(0)}12%{opacity:1}85%{opacity:.8}to{opacity:0;transform:translateY(280px)}}@keyframes dip-probe{0%{transform:translateY(0) rotate(3deg)}28%,68%{transform:translateY(54%) rotate(-2deg)}to{transform:translateY(0) rotate(3deg)}}@keyframes sample-ripple{0%{opacity:.9;transform:scale(.5)}to{opacity:0;transform:scale(5)}}.water-change-animation{position:absolute;top:0;right:0;bottom:0;left:0}.water-change-level{position:absolute;top:0;right:0;bottom:0;left:0;border-top:3px solid rgba(164,238,231,.75);background:linear-gradient(180deg,#43aeb20f,#0d536433);box-shadow:inset 0 12px 18px -14px #a9eee7e6;animation:water-level-cycle 3.05s ease-in-out both}.water-change-animation i{position:absolute;bottom:-12px;left:var(--bubble-x);width:7px;height:7px;border:1px solid rgba(198,246,240,.75);border-radius:50%;animation:refill-bubbles 1.45s ease-out var(--bubble-delay) both}@keyframes water-level-cycle{0%{opacity:0;transform:translateY(0)}10%{opacity:1}35%,58%{opacity:.9;transform:translateY(19%)}88%{opacity:.75;transform:translateY(0)}to{opacity:0;transform:translateY(0)}}@keyframes refill-bubbles{0%{opacity:0;transform:translateY(0) scale(.5)}15%{opacity:.9}to{opacity:0;transform:translateY(-250px) scale(1.25)}}.clean-glass-animation{position:absolute;top:0;right:0;bottom:0;left:0}.cleaning-wipe{position:absolute;top:0;bottom:0;left:-26%;width:24%;display:grid;place-items:center;border-right:2px solid rgba(209,247,236,.8);background:linear-gradient(90deg,transparent,rgba(187,238,224,.13));-webkit-backdrop-filter:brightness(1.18) saturate(1.08);backdrop-filter:brightness(1.18) saturate(1.08);box-shadow:10px 0 24px #aff0e01f;animation:clean-sweep 2.75s cubic-bezier(.65,.02,.28,1) both}.cleaning-wipe svg{width:34px;height:34px;color:#def7ece6;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));transform:rotate(-14deg)}.clean-glass-animation>i{position:absolute;top:13%;left:8%;width:2px;height:76%;background:linear-gradient(180deg,transparent,rgba(225,255,244,.68),transparent);opacity:0;transform:rotate(18deg);animation:clean-glint 1.45s ease 1.35s both}.clean-glass-animation>i:last-child{left:67%;animation-delay:1.72s}@keyframes clean-sweep{0%{transform:translate(0)}47%{transform:translate(310%)}55%{transform:translate(310%)}to{transform:translate(525%)}}@keyframes clean-glint{0%,to{opacity:0}45%{opacity:.85}}.theme-grid{display:grid;grid-template-columns:1fr;gap:8px}.theme-choice{min-width:0;min-height:88px;display:grid;grid-template-columns:124px 1fr;align-items:center;gap:10px;padding:7px;text-align:left;background:#0a202a;border:2px solid #25434b;border-right-color:#001018;border-bottom-color:#001018;cursor:pointer}.theme-choice img{width:124px;height:70px;object-fit:cover;border:2px solid #001018}.theme-choice span{min-width:0;display:grid;gap:4px}.theme-choice strong{font-size:var(--type-body);color:#dfe9e2}.theme-choice small{font-size:var(--type-utility);color:var(--muted);line-height:1.4}.theme-choice.selected{border-color:#5eb8c2;background:#103543;box-shadow:inset 0 0 0 1px #2b6570}.theme-choice.selected strong{color:var(--amber)}.setup-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;color:var(--muted);font-size:var(--type-utility)}.setup-footer{justify-content:space-between}.footer-actions{display:flex;gap:8px}.fish-setup-shell .app-window{max-width:1280px}.fish-workspace{display:grid;gap:12px}.fish-choices{min-width:0;padding:10px;background:#08222c}.fish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.fish-choice{min-width:0;display:grid;grid-template-columns:116px minmax(0,1fr);align-items:center;gap:10px;min-height:104px;padding:8px;text-align:left;background:#0a202a;border:2px solid #25434b;border-right-color:#001018;border-bottom-color:#001018;cursor:pointer}.fish-choice>img{width:116px;height:78px;object-fit:contain;filter:drop-shadow(0 4px 5px rgba(0,0,0,.65))}.fish-choice>span{min-width:0;display:grid;gap:5px}.fish-choice strong{color:#dfe9e2;font-size:var(--type-body)}.fish-choice small{color:var(--muted);font-size:var(--type-utility);line-height:1.45}.fish-choice.selected{border-color:#5eb8c2;background:#103543;box-shadow:inset 0 0 0 1px #2b6570}.fish-choice.selected strong{color:var(--amber)}.fish-preview{min-width:0}.fish-preview .aquarium-scene{min-height:390px;aspect-ratio:16 / 7}.fish-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:16px}.led{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;box-shadow:inset 1px 1px 1px #ffffff80,0 0 5px currentColor;vertical-align:1px}.led.good{color:var(--green);background:var(--green)}.led.warn{color:var(--amber);background:var(--amber)}.led.bad{color:var(--red);background:var(--red)}.dialog-icon{width:64px;height:64px;display:grid;place-items:center;color:#7fd7db;background:#0d3340;border:2px solid #517078;box-shadow:inset 2px 2px 5px #001018}.dialog-icon svg{width:36px;height:36px}.step-label{display:block;margin-bottom:6px;color:var(--amber);font-size:var(--type-utility);font-weight:600;letter-spacing:.1em}.dialog-body h2,.away-body h2{margin:0 0 7px;font:600 clamp(18px,2vw,24px)/1.45 "Space Mono",monospace;color:#e7eee8}.dialog-body p,.away-body p{max-width:64ch;margin:0;color:#a7bfba;font-size:var(--type-body);line-height:1.6}.main-window{max-width:1500px}.tank-monitor{margin:9px 10px 0;padding:7px;background:#071d27}.monitor-label{min-height:20px;display:flex;align-items:center;color:var(--cyan);font-size:var(--type-utility);letter-spacing:.08em}.monitor-grid{display:grid;grid-template-columns:1.25fr repeat(6,minmax(0,1fr));background:#061a23;border:2px solid #001018;box-shadow:inset 1px 1px #3f5960}.monitor-summary{min-width:0;display:grid;align-content:center;gap:5px;padding:9px 12px;border-right:1px solid #355058;text-transform:uppercase}.monitor-summary strong{display:flex;align-items:center;color:var(--green);font-size:13px;font-weight:500}.monitor-summary span{color:var(--green);font-size:var(--type-utility);letter-spacing:.02em;line-height:1.3}.monitor-summary.tone-warn strong,.monitor-summary.tone-warn span{color:var(--amber)}.monitor-summary.tone-bad strong,.monitor-summary.tone-bad span{color:var(--red)}.tank-stage{position:relative;min-height:0;padding:7px 10px 0;overflow:hidden}.tank-stage .aquarium-scene{min-height:400px;aspect-ratio:16 / 6.8}.status-item{min-width:0;display:grid;grid-template-columns:19px minmax(0,1fr);align-content:center;align-items:center;column-gap:7px;padding:8px 10px;border-right:1px solid #355058}.status-item:last-child{border-right:0}.status-item>svg{grid-row:1 / 3;width:19px;height:19px;color:#b5d0cc}.status-item>span{color:#89a5a4;font-size:var(--type-utility);text-transform:uppercase}.status-item strong{display:flex;align-items:center;min-width:0;white-space:nowrap;color:#d7e5dd;font-size:var(--type-control);font-weight:500}.control-deck{display:grid;grid-template-columns:minmax(0,1fr) clamp(150px,17vw,220px);gap:8px;padding:8px 10px 10px}.care-actions,.utility-panel{padding:8px;background:#08222c}.panel-title{min-height:21px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;color:#8aa5a6;font-size:var(--type-utility);letter-spacing:.08em}.panel-title span:last-child{color:#567578;letter-spacing:0}.action-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.action-row button,.utility-panel>button{min-height:70px;display:grid;place-items:center;align-content:center;gap:7px;padding:7px 5px;background:#0d303b;border:2px solid #5b7177;border-right-color:#001018;border-bottom-color:#001018;cursor:pointer;color:#d5e2dc;font-size:var(--type-control)}.action-row button svg,.utility-panel button svg{width:24px;height:24px;color:#bcd9d3}.action-row button:hover,.utility-panel button:hover{background:#16424d}.action-row button.recommended{color:#fff3c7;border-top-color:var(--amber);border-left-color:var(--amber)}.action-row button.recommended svg{color:var(--amber)}.event-log{min-height:114px;padding:8px;background:#04151d}.event-list{max-height:82px;overflow:auto}.event-row{display:grid;grid-template-columns:78px 1fr;gap:8px;padding:5px 0;border-top:1px solid #18333c}.event-row:first-child{border-top:0}.event-row time{color:#789899;font-size:var(--type-utility)}.event-row p{margin:0;color:#a9bfba;font-size:var(--type-utility);line-height:1.4}.utility-panel{display:grid;grid-template-columns:1fr;gap:5px}.utility-panel>button{min-height:0;grid-template-columns:19px 1fr;justify-items:start;align-content:center;padding-inline:11px}.utility-panel>button svg{width:19px;height:19px}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:18px;background:#00070bc7}.care-dialog,.away-dialog{width:min(600px,100%);box-shadow:0 18px 70px #000}.history-dialog{width:min(720px,100%);box-shadow:0 18px 70px #000}.history-dialog-body{padding:16px}.history-dialog-body h2{margin:0;color:var(--cyan);font:500 13px/1.35 Space Mono,monospace;letter-spacing:.08em}.history-dialog-body>p{margin:6px 0 13px;color:var(--muted);font-size:var(--type-body)}.history-dialog .event-log{min-height:250px}.history-dialog .event-list{max-height:min(46vh,360px)}.history-dialog .event-row{grid-template-columns:110px 1fr;padding:9px 0}.history-dialog .event-row time,.history-dialog .event-row p{font-size:var(--type-body)}.history-dialog footer{display:flex;justify-content:flex-end;padding:12px;border-top:1px solid #294650;background:#071c25}.dialog-body{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;padding:22px}.dialog-body h2{font-size:20px}.care-dialog footer,.away-dialog footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px;border-top:1px solid #294650;background:#071c25}.test-result{display:grid;gap:4px;margin-top:16px;padding:12px;background:#04151c;border:1px solid #38535a}.test-result span,.test-result small{color:#829fa0;font-size:var(--type-utility)}.test-result strong{color:var(--green);font-size:14px}.away-dialog{width:min(520px,100%)}.away-body{padding:25px 26px 21px;text-align:center}.away-icon{width:48px;height:48px;color:#78ced4;margin-bottom:8px}.away-body p{margin-inline:auto}.recommendation{display:grid;gap:5px;margin-top:18px;padding:13px;text-align:left;background:#04151c;border:1px solid #48626a}.recommendation span{color:var(--amber);font-size:var(--type-utility);letter-spacing:.1em}.recommendation strong{color:#e5eee7;font-size:13px}.recommendation small{color:#8da7a5;font-size:var(--type-utility);line-height:1.5}.text-button{border:0;background:transparent;color:#8da7a5;cursor:pointer;font-size:var(--type-utility);text-decoration:underline}.ambient-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000;overflow:hidden;cursor:none}.ambient-screen .aquarium-scene{width:100vw;height:100vh;min-height:100vh;aspect-ratio:auto;border:0;box-shadow:none}.ambient-screen .aquarium-photo{object-fit:cover}.ambient-hint{position:fixed;left:50%;bottom:24px;z-index:52;transform:translate(-50%);padding:8px 12px;border:0;background:#01080cad;color:#dae6dfc7;font-size:var(--type-utility);opacity:0;transition:opacity .25s ease;cursor:pointer}.ambient-hint.visible{opacity:1}@media(max-width:980px){.app-shell{padding:8px;place-items:start center}.welcome-shell{min-height:calc(100vh - 2px)}.welcome-window{min-height:calc(100vh - 16px)}.welcome-content{min-height:calc(100vh - 52px);padding:8px}.welcome-hero{min-height:calc(100vh - 70px)}.aquarium-scene,.tank-stage .aquarium-scene{min-height:340px;aspect-ratio:4 / 3}.setup-workspace{grid-template-columns:1fr}.setup-choices{order:1}.setup-preview{order:2}.theme-grid{grid-template-columns:repeat(3,1fr)}.theme-choice{min-height:0;grid-template-columns:1fr;align-content:start}.theme-choice img{width:100%;height:76px}.setup-preview .aquarium-scene{min-height:180px;aspect-ratio:16 / 4.6}.fish-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fish-choice{grid-template-columns:1fr;align-content:start}.fish-choice>img{width:100%;height:76px}.fish-preview .aquarium-scene{min-height:320px;aspect-ratio:16 / 8}.monitor-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.monitor-summary{grid-column:span 2}.control-deck{grid-template-columns:minmax(0,1fr) 170px}}@media(max-height:800px)and (min-width:621px){.welcome-hero{padding-block:16px}.welcome-logo-frame{width:min(240px,34vh);padding:8px}.welcome-hero>h1{margin-top:14px;font-size:12px;line-height:1.5}.welcome-divider{margin:12px 0}.welcome-inspiration h2{margin-bottom:5px;font-size:var(--type-utility)}.welcome-reference-grid img{max-height:86px}.welcome-reference-grid figcaption{padding-top:4px;font-size:var(--type-utility)}.welcome-hero .bevel-button{min-height:44px;margin-top:14px;font-size:12px}}@media(min-width:621px){html,body,#root,.app-root{width:100%;height:100%;min-height:0}body{overflow:hidden}.app-shell{width:100%;height:100dvh;min-height:0;padding:clamp(6px,1.4dvh,18px);overflow:hidden}.app-window{max-height:100%}.window-bar{min-height:clamp(25px,4.3dvh,32px);font-size:var(--type-utility)}.window-controls i,.window-controls button{width:clamp(17px,2.7dvh,20px);height:clamp(17px,2.7dvh,20px)}.setup-shell>.app-window,.fish-setup-shell>.app-window,.main-window,.welcome-window{height:100%;min-height:0}.setup-content{height:calc(100% - clamp(25px,4.3dvh,32px));min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:clamp(8px,1.8dvh,18px);overflow:hidden}.section-heading{margin:0 0 clamp(7px,1.5dvh,15px);gap:clamp(8px,1.5dvh,13px)}.section-heading>span{width:clamp(28px,4.8dvh,36px);height:clamp(28px,4.8dvh,36px);font-size:var(--type-control)}.section-heading h1{font-size:var(--type-heading)}.section-heading p{font-size:var(--type-body)}.setup-workspace{min-height:0;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:clamp(7px,1.4dvh,12px)}.setup-choices{order:initial;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:clamp(6px,1.25dvh,10px)}.setup-preview{order:initial;min-height:0}.setup-preview .aquarium-scene{flex:1;width:100%;height:auto;min-height:0;aspect-ratio:auto}.setup-block-title,.preview-heading{min-height:clamp(19px,3.3dvh,25px);font-size:var(--type-utility)}.theme-grid{min-height:0;grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:clamp(5px,1.05dvh,8px)}.theme-choice{min-height:0;grid-template-columns:clamp(82px,12vw,124px) minmax(0,1fr);align-content:center;padding:clamp(5px,1dvh,7px)}.theme-choice img{width:100%;height:min(70px,10.5dvh)}.theme-choice strong{font-size:var(--type-body)}.theme-choice small{font-size:var(--type-utility)}.setup-footer,.fish-footer{min-height:0;margin-top:clamp(7px,1.6dvh,16px)}.bevel-button{min-height:clamp(32px,5.3dvh,40px);padding-inline:clamp(12px,2vw,20px);font-size:var(--type-control)}.fish-workspace{min-height:0;grid-template-rows:auto minmax(0,1fr);gap:clamp(6px,1.3dvh,12px)}.fish-choices{padding:clamp(6px,1.25dvh,10px)}.fish-grid{gap:clamp(5px,1dvh,8px)}.fish-choice{min-height:clamp(76px,14dvh,104px);grid-template-columns:clamp(70px,8.5vw,116px) minmax(0,1fr);gap:clamp(6px,1vw,10px);padding:clamp(5px,1dvh,8px)}.fish-choice>img{width:100%;height:min(78px,10.5dvh)}.fish-choice strong{font-size:var(--type-body)}.fish-choice small{font-size:var(--type-utility);line-height:1.35}.fish-preview{min-height:0;display:flex;flex-direction:column}.fish-preview .aquarium-scene{flex:1;width:100%;height:auto;min-height:0;aspect-ratio:auto}.main-window{display:grid;grid-template-rows:auto auto minmax(160px,1fr) auto;overflow:hidden}.tank-stage{min-height:0;padding:clamp(6px,1.4dvh,10px) clamp(6px,1.4dvh,10px) 0;overflow:hidden}.tank-stage .aquarium-scene{width:100%;height:100%;min-height:0;aspect-ratio:auto}.tank-monitor{margin:clamp(5px,1dvh,9px) clamp(6px,1.4dvh,10px) 0;padding:clamp(4px,.85dvh,7px)}.monitor-label{min-height:clamp(18px,2.8dvh,22px);font-size:var(--type-utility)}.monitor-summary{padding:clamp(5px,1.05dvh,9px) clamp(7px,1vw,12px);gap:clamp(2px,.6dvh,5px)}.monitor-summary strong{font-size:var(--type-control)}.monitor-summary span{font-size:var(--type-utility)}.status-item{padding:clamp(4px,.9dvh,8px) clamp(5px,.8vw,10px);column-gap:clamp(4px,.7vw,7px)}.status-item>svg{width:clamp(14px,2.5dvh,19px);height:clamp(14px,2.5dvh,19px)}.status-item>span{font-size:var(--type-utility)}.status-item strong{font-size:var(--type-control)}.control-deck{height:clamp(122px,20dvh,154px);min-height:0;grid-template-columns:minmax(0,1fr) clamp(145px,17vw,220px);gap:clamp(5px,1.15dvh,9px);padding:clamp(5px,1.15dvh,9px) clamp(6px,1.4dvh,10px)}.care-actions,.utility-panel{min-height:0;padding:clamp(5px,1.05dvh,8px);overflow:hidden}.panel-title{min-height:clamp(20px,3dvh,24px);margin-bottom:clamp(3px,.8dvh,6px);font-size:var(--type-utility)}.action-row{height:calc(100% - clamp(18px,3.5dvh,27px));gap:clamp(3px,.8dvh,6px)}.action-row button,.utility-panel>button{min-height:0;gap:clamp(3px,.9dvh,7px);padding:clamp(3px,.9dvh,7px) 4px;font-size:var(--type-control)}.action-row button svg{width:clamp(22px,4dvh,30px);height:clamp(22px,4dvh,30px)}.utility-panel button svg{width:clamp(17px,3dvh,22px);height:clamp(17px,3dvh,22px)}.utility-panel{grid-template-columns:1fr}.utility-panel>button{min-height:0}.welcome-content{height:calc(100% - clamp(25px,4.3dvh,32px));min-height:0;padding:clamp(6px,1.4dvh,12px);overflow:hidden}.welcome-hero{height:100%;min-height:0;padding:clamp(12px,2.8dvh,40px) clamp(18px,5vw,64px)}.welcome-logo-frame{width:min(340px,34dvh);padding:clamp(7px,1.5dvh,14px)}.welcome-hero>h1{margin-top:clamp(10px,2.6dvh,32px);font-size:var(--type-body-large);line-height:clamp(1.4,1.6,1.7)}.welcome-divider{margin-block:clamp(8px,2.2dvh,26px)}.welcome-inspiration h2{margin-bottom:clamp(5px,1.1dvh,10px);font-size:var(--type-utility)}.welcome-reference-grid{gap:clamp(5px,1.2dvh,10px)}.welcome-reference-grid figure{padding:clamp(3px,.8dvh,5px)}.welcome-reference-grid img{max-height:11.5dvh}.welcome-reference-grid figcaption{padding-top:clamp(3px,.8dvh,7px);font-size:var(--type-utility)}.welcome-hero .bevel-button{min-height:clamp(38px,6.2dvh,56px);margin-top:clamp(10px,2.4dvh,30px);font-size:var(--type-body)}}@media(max-width:620px){.app-shell{width:100%}.app-window{min-width:0}.window-bar{font-size:var(--type-utility)}.window-controls i{display:none}.welcome-content{padding:6px}.welcome-hero{min-height:calc(100vh - 62px);justify-content:flex-start;padding:18px 12px}.welcome-logo-frame{width:250px;max-width:72vw;padding:8px}.welcome-hero>h1{margin-top:16px;font-size:var(--type-body);line-height:1.55}.welcome-divider{margin:14px 0}.welcome-inspiration h2{margin-bottom:7px;font-size:var(--type-utility)}.welcome-reference-grid{gap:5px}.welcome-reference-grid figure{padding:3px}.welcome-reference-grid figcaption{padding-top:5px;font-size:var(--type-utility)}.welcome-hero .bevel-button{min-height:44px;margin-top:16px;font-size:var(--type-body)}.app-root[data-audio-scene=welcome] .audio-control{top:14px;right:43px}.setup-content{padding:10px}.section-heading>span{display:none}.section-heading h1{font-size:var(--type-heading)}.theme-grid{grid-template-columns:1fr}.setup-preview{order:1}.setup-choices{order:2}.theme-choice{grid-template-columns:96px 1fr}.theme-choice img{width:96px;height:56px}.setup-preview .aquarium-scene{min-height:180px;aspect-ratio:16 / 8}.fish-grid{grid-template-columns:1fr}.fish-preview{order:1}.fish-choices{order:2}.fish-choice{grid-template-columns:110px 1fr;min-height:82px}.fish-choice>img{width:110px;height:64px}.fish-preview .aquarium-scene{width:100%;min-height:0;aspect-ratio:1.45 / 1}.fish-footer{display:grid;grid-template-columns:1fr 1fr}.aquarium-scene,.tank-stage .aquarium-scene{min-height:270px;margin-inline:0;aspect-ratio:1 / 1}.tank-stage{padding:6px 6px 0}.tank-monitor{margin:6px 6px 0;padding:6px}.monitor-summary{grid-column:1 / -1;border-right:0;border-bottom:1px solid #355058}.status-item:nth-child(odd){border-right:0}.status-item:nth-child(-n+5){border-bottom:1px solid #355058}.status-item>svg{width:17px;height:17px}.footer-actions{display:grid;grid-template-columns:1fr}.setup-footer{align-items:stretch;flex-direction:column}.tank-monitor{margin:6px 6px 0}.monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-summary{grid-column:1 / -1}.control-deck{grid-template-columns:1fr;padding-inline:6px}.action-row{grid-template-columns:repeat(2,1fr)}.utility-panel{grid-template-columns:repeat(3,1fr)}.utility-panel>button{grid-template-columns:1fr;justify-items:center;min-height:58px;padding:6px 4px}.dialog-body{grid-template-columns:1fr;padding:16px}.dialog-icon{width:48px;height:48px}.fish-agent{--scene-scale: .74}.is-ambient .fish-agent{--scene-scale: .94}.care-effect-label{top:8px;right:8px;max-width:calc(100% - 16px);font-size:var(--type-utility)}.test-probe{right:8%;transform:scale(.8)}.plant-layer-mid{display:none}.plant-layer-front{opacity:.52}.resident-helper{width:clamp(30px,var(--helper-width),52px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.swaying-plant{transform:none!important}.resident-helper{animation:none!important;transform:none!important}.care-effect-label{animation:none!important;opacity:1;transform:none}.food-morsel-layer i{transition:none!important}.test-water-animation{animation:none!important;opacity:.5}.test-scan-line{animation:none!important;top:45%;opacity:.7;transform:none}.test-probe{animation:none!important;top:8%;opacity:.92;transform:none}.test-water-animation>i{animation:none!important;opacity:.3}.water-change-level{animation:none!important;opacity:.5;transform:translateY(8%)}.water-change-animation i{animation:none!important;opacity:.42;transform:translateY(-80px)}.cleaning-wipe{animation:none!important;left:38%;opacity:.5;transform:none}.clean-glass-animation>i{animation:none!important;opacity:.48}}
