:root{--ink:#e9f9fb;--muted:#7d9da5;--cyan:#5de6ef;--cyan-soft:#5de6ef29;--line:#99e2ea29;--panel:#030e14e0;--panel-deep:#020a0ff5;--amber:#ffbd64;--font-display:"Arial Narrow", "Roboto Condensed", "Segoe UI", sans-serif;--font-body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;color:var(--ink);font-family:var(--font-body);background:#02080d;margin:0;overflow:hidden}button,input,select{font:inherit}button{color:inherit}.aquarium-app{isolation:isolate;background:radial-gradient(circle at 45% 34%,#0b4c6033,#0000 42%),#02080d;width:100vw;height:100dvh;position:relative;overflow:hidden}.aquarium-app:before{content:"";z-index:4;pointer-events:none;background-color:#0000;background-image:linear-gradient(90deg,#ffffff05 1px,#0000 1px),linear-gradient(#ffffff04 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:72px 72px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#00000073,#0000 45%);mask-image:linear-gradient(#00000073,#0000 45%)}.aquarium-viewport{position:absolute;inset:0}.aquarium-viewport:after{content:"";pointer-events:none;background:linear-gradient(90deg,#00070bbf,#0000 17% 75%,#00060a7a),linear-gradient(#00050852,#0000 17% 82%,#000508bd);position:absolute;inset:0}.aquarium-canvas{outline:none;width:100%;height:100%;display:block}.lab-header{z-index:10;pointer-events:none;align-items:center;gap:14px;display:flex;position:absolute;top:24px;left:28px}.brand-mark{color:#d9feff;width:48px;height:48px;font-family:var(--font-display);letter-spacing:-2px;background:#021219bd;border:1px solid #5de6ef94;place-items:center;font-size:18px;font-weight:300;display:grid;box-shadow:inset 0 0 22px #5de6ef1f,0 0 24px #0ec2d914}.brand-mark span{color:var(--cyan)}.eyebrow{color:#78c6ce;font-family:var(--font-display);letter-spacing:.18em;font-size:10px;font-weight:700;line-height:1.2;display:block}.brand-copy h1,.panel-head h2{font-family:var(--font-display);letter-spacing:.035em;margin:4px 0 0;font-weight:300}.brand-copy h1{font-size:clamp(22px,2vw,34px);line-height:1}.water-status{border-left:1px solid var(--line);align-items:center;gap:9px;height:36px;margin-left:14px;padding-left:18px;display:flex}.status-dot{background:#68efb1;border-radius:50%;width:7px;height:7px;animation:2.3s ease-in-out infinite statusPulse;box-shadow:0 0 12px #68efb1}.water-status small,.water-status strong{font-family:var(--font-display);letter-spacing:.15em;display:block}.water-status small{color:#53777e;font-size:8px}.water-status strong{color:#9fe7ce;margin-top:2px;font-size:10px}.telemetry{z-index:10;border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;background:#030f15b3;display:flex;position:absolute;top:22px;left:50%;transform:translate(-50%)}.telemetry>div{border-right:1px solid var(--line);min-width:74px;padding:8px 11px 7px}.telemetry>div:last-child{border-right:0}.telemetry span,.fish-readings span,.depth-row span{color:#57777f;font-family:var(--font-display);letter-spacing:.16em;font-size:8px;font-weight:700;display:block}.telemetry strong{color:#b7e6ea;font-family:var(--font-display);letter-spacing:.03em;margin-top:3px;font-size:13px;font-weight:500;display:block}.telemetry strong small{color:#68858b;font-size:8px}.fish-inspector{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,0 100%);pointer-events:auto;background:linear-gradient(135deg,#04141cc9,#020b1099);border:1px solid #77d0da24;width:248px;min-height:118px;padding:16px;transition:border-color .18s,background .18s;position:absolute;top:50%;left:28px;transform:translateY(-45%)}.fish-inspector.has-selection{background:linear-gradient(135deg,#051d26e6,#020c12c7);border-color:#5de6ef57}.inspector-top{align-items:center;gap:10px;display:flex}.scan-line{background:linear-gradient(90deg,#5de6ef8c,#0000);flex:1;height:1px}.fish-inspector h2{font-family:var(--font-display);letter-spacing:.02em;margin:10px 0 13px;font-size:19px;font-weight:400}.inspector-empty{color:#76949a;margin:12px 0 0;font-size:12px;line-height:1.55}.fish-readings{grid-template-columns:1fr 1fr;gap:8px;display:grid}.fish-readings>div{background:#030d1280;border:1px solid #7bc8d01a;padding:8px 9px}.fish-readings strong,.depth-row strong{color:#cff5f3;font-family:var(--font-display);margin-top:4px;font-size:12px;font-weight:500;display:block}.depth-row{justify-content:space-between;align-items:center;margin-top:9px;padding:9px 0 3px;display:flex}.depth-row strong{color:#81ced5;margin:0}.follow-button{color:#9bdddf;cursor:pointer;letter-spacing:.06em;text-align:left;background:#22b1bf14;border:1px solid #5de6ef38;width:100%;margin-top:10px;padding:9px 10px;font-size:11px;transition:all .16s}.follow-button:hover{background:#22b1bf29;border-color:#5de6ef7a}.follow-button span{width:24px;color:var(--cyan);display:inline-block}.tool-dock{z-index:12;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#020d13d6;border:1px solid #7ad3dd30;align-items:stretch;gap:2px;padding:5px;display:flex;position:absolute;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 18px 50px #0000005c}.tool-dock button{color:#76969d;cursor:pointer;min-width:68px;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;padding:7px 10px 6px;font-size:9px;font-weight:700;transition:background .15s,color .15s}.tool-dock button span{color:#8cbfc4;height:22px;font-size:17px;font-weight:300;line-height:18px;display:block}.tool-dock button:hover{color:#c4eaec;background:#58c5cf14}.tool-dock button.active{color:#c8f9fa;background:linear-gradient(#47dde82b,#47dde80d);box-shadow:inset 0 -2px #5de6efb8}.tool-dock button.active span{color:var(--cyan)}.tool-dock button.amber{box-shadow:inset 0 -2px 0 var(--amber)}.tool-dock button.amber span{color:var(--amber)}.tool-dock i{background:var(--line);width:1px;margin:5px 3px}.quick-actions{z-index:11;flex-direction:column;align-items:flex-end;gap:5px;display:flex;position:absolute;bottom:102px;right:402px}.quick-actions>button{color:#6f9298;cursor:pointer;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#030e14a6;border:1px solid #82cad31f;padding:7px 10px;font-size:9px;transition:all .15s}.quick-actions>button:hover{color:#bcebef;border-color:#5de6ef61}.quick-actions .feed-cta{color:#dbfbfc;text-align:left;background:linear-gradient(135deg,#14758459,#06232dcc);border-color:#5de6ef52;align-items:center;gap:10px;min-width:150px;margin-bottom:3px;padding:10px 12px;display:flex}.feed-icon{width:27px;color:var(--amber);letter-spacing:1px;font-size:18px}.feed-cta small{color:#6fa3aa;letter-spacing:.17em;margin-bottom:2px;font-size:7px;display:block}.interaction-hint{z-index:10;color:#718f95;letter-spacing:.035em;pointer-events:none;background:#020b108c;border-left:1px solid #5de6ef59;padding:6px 10px;font-size:10px;position:absolute;bottom:94px;left:50%;transform:translate(-50%)}.interaction-hint span{color:var(--cyan);margin-right:8px}.control-panel{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#030e14e3,#020a0ff5),repeating-linear-gradient(0deg,#0000 0 3px,#ffffff02 3px 4px);border-left:1px solid #75cdd630;width:390px;height:100%;transition:width .18s;position:absolute;top:0;right:0;box-shadow:-20px 0 80px #0000004d}.control-panel.is-minimized{width:54px}.control-panel>[hidden]{display:none!important}.panel-head{border-bottom:1px solid var(--line);background:#071b236b;justify-content:space-between;align-items:center;height:78px;padding:0 15px 0 18px;display:flex}.panel-head h2{font-size:20px}.panel-toggle{color:#75a5ab;cursor:pointer;background:#08222b73;border:1px solid #71c9d32e;width:30px;height:30px;font-size:20px;font-weight:200;line-height:1;transition:all .15s}.panel-toggle:hover{color:var(--cyan);border-color:#5de6ef7a}.is-minimized .panel-head{border:0;align-items:flex-start;height:100%;padding:24px 11px}.is-minimized .panel-head>div{display:none}.control-search{background:#00070b85;border:1px solid #75cdd626;align-items:center;gap:9px;height:48px;margin:11px 13px 8px;padding:0 11px;display:flex}.control-search>span{color:#5f9299;font-size:18px}.control-search input{color:#c8e9eb;background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:12px}.control-search input::placeholder{color:#516e74}.control-search button{color:#65878d;cursor:pointer;background:0 0;border:0;font-size:17px}.gui-scroll{scrollbar-color:#5de6ef47 transparent;scrollbar-width:thin;height:calc(100% - 145px);overflow:hidden auto}.gui-scroll::-webkit-scrollbar{width:7px}.gui-scroll::-webkit-scrollbar-thumb{background:#5de6ef33}.lab-gui.lil-gui.root{--background-color:transparent;--widget-color:#113039c2;--hover-color:#1e4e57bf;--focus-color:#1e5c67db;--text-color:#a9cdd1;--number-color:#71e1e8;--string-color:#a6dfe1;--font-size:12px;--input-font-size:12px;--font-family:var(--font-body);--widget-height:24px;--name-width:52%;border:0;font-size:12px;width:100%!important}.lab-gui>.title{display:none}.lab-gui .folder{border-bottom:1px solid #7ccfd81c}.lab-gui .folder>.title{color:#bdd9dc;height:36px;font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;background:#091f2747;border:0;padding:0 18px;font-size:10px;font-weight:700;line-height:36px}.lab-gui .folder>.title:before{color:#62bdc5}.lab-gui .children{border-left:0}.lab-gui .controller{border-top:1px solid #7ccfd80b;min-height:32px;padding:4px 13px 4px 18px}.lab-gui .controller .name{color:#789ba1;font-size:11px}.lab-gui .controller:hover .name{color:#c1e5e8}.lab-gui input{color:#bff7f7;font-variant-numeric:tabular-nums}.lab-gui .slider{background:#224e5759;border-radius:0}.lab-gui .slider-fg{background:linear-gradient(90deg,#229cac,#65e9ec);border-radius:0}.lab-gui button{color:#9dc3c8;font-family:var(--font-display);letter-spacing:.045em;border-radius:0;font-size:10px}.lab-gui .controller.function button{text-align:left;text-transform:uppercase;border-left:2px solid #5de6ef59;min-height:26px}.lab-gui .controller-reset{z-index:3;color:#5f8d93;cursor:pointer;text-align:center;background:#020d12e6;border:0;width:19px;height:19px;padding:0;font-size:12px;line-height:19px;position:absolute;top:7px;right:6px}.lab-gui .controller-reset:hover{color:var(--cyan)}.lab-gui .search-hidden,.lab-gui .search-folder-hidden{display:none!important}.lab-gui.lil-root{--background-color:transparent;--title-background-color:#081f2785;--title-text-color:#bdd9dc;--widget-color:#113039c2;--hover-color:#1e4e57bf;--focus-color:#1e5c67db;--text-color:#a9cdd1;--number-color:#71e1e8;--string-color:#a6dfe1;--font-size:12px;--input-font-size:12px;--font-family:var(--font-body);--widget-height:24px;--name-width:52%;--padding:12px;--spacing:4px;--widget-border-radius:0;width:100%!important}.lab-gui.lil-root>.lil-title{display:none!important}.lab-gui.lil-root>.lil-children{overflow:visible}.lab-gui .lil-gui{border-bottom:1px solid #7ccfd81c}.lab-gui .lil-gui>.lil-title{color:#bdd9dc;height:36px;font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;background:#091f2747;padding:0 16px;font-size:10px;font-weight:700;line-height:36px;border-color:#7ccfd814!important}.lab-gui .lil-gui>.lil-title:before{color:#62bdc5}.lab-gui .lil-controller{border-top:1px solid #7ccfd80b;min-height:34px;margin:0;padding:5px 13px 5px 18px;position:relative}.lab-gui .lil-controller>.lil-name{color:#789ba1;font-size:11px}.lab-gui .lil-controller:hover>.lil-name{color:#c1e5e8}.lab-gui .lil-controller input{font-variant-numeric:tabular-nums;background:#113039c2;border:0;border-radius:0}.lab-gui .lil-controller .lil-slider{background:#224e5759;border-radius:0}.lab-gui .lil-controller .lil-fill{background:linear-gradient(90deg,#229cacb3,#65e9ec4d);border-color:#65e9ec}.lab-gui .lil-controller.lil-function button{color:#9dc3c8;min-height:26px;font-family:var(--font-display);letter-spacing:.045em;text-align:left;text-transform:uppercase;background:#113039b8;border:0;border-left:2px solid #5de6ef59;border-radius:0;padding:0 8px;font-size:10px}.toast{z-index:30;color:#bfeaed;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);letter-spacing:.04em;background:#03151ce0;border:1px solid #5de6ef47;padding:10px 14px;font-size:11px;animation:.18s ease-out toastIn;position:absolute;top:84px;left:50%;transform:translate(-50%);box-shadow:0 12px 38px #00000057}.corner-label{z-index:8;color:#6a969d80;font-family:var(--font-display);letter-spacing:.16em;pointer-events:none;font-size:7px;position:absolute;bottom:7px}.corner-label.left{left:12px}.corner-label.right{right:402px}.boot-screen,.webgl-error{z-index:25;background:#02080d;place-content:center;justify-items:center;display:grid;position:absolute;inset:0}.boot-screen p{color:#68979d;font-family:var(--font-display);letter-spacing:.24em;margin-top:20px;font-size:9px;font-weight:700}.boot-orbit{border:1px solid #5de6ef3d;border-radius:50%;place-items:center;width:58px;height:58px;animation:2.6s linear infinite bootSpin;display:grid}.boot-orbit:before{content:"";border:1px solid #5de6ef70;border-radius:50%;width:34px;height:34px}.boot-orbit span{background:var(--cyan);width:7px;height:7px;box-shadow:0 0 14px var(--cyan);border-radius:50%;position:absolute;transform:translate(25px)}.webgl-error{text-align:center;padding:32px}.webgl-error span{color:#df846f;letter-spacing:.2em;font-size:10px;font-weight:700}.webgl-error h1{font-family:var(--font-display);margin:14px 0 8px;font-size:32px;font-weight:300}.webgl-error p{color:#789197;max-width:480px;line-height:1.6}.visually-hidden{clip:rect(0 0 0 0)!important;white-space:nowrap!important;width:1px!important;height:1px!important;position:absolute!important;overflow:hidden!important}@keyframes statusPulse{0%,to{opacity:.65;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@keyframes bootSpin{to{transform:rotate(360deg)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-8px)}}@media (width<=1280px){.telemetry>div:nth-child(4),.telemetry>div:nth-child(5){display:none}.quick-actions{right:380px}.control-panel{width:366px}.corner-label.right{right:378px}}@media (width<=980px){.lab-header{top:16px;left:18px}.brand-copy h1{font-size:22px}.water-status,.telemetry{display:none}.fish-inspector{width:220px;top:auto;bottom:98px;left:18px;transform:none}.control-panel{width:min(366px,46vw)}.tool-dock{bottom:18px;left:12px;right:64px;overflow-x:auto;transform:none}.tool-dock button{min-width:62px}.quick-actions,.interaction-hint,.corner-label{display:none}}@media (width<=720px){.brand-copy .eyebrow{display:none}.brand-mark{width:40px;height:40px}.fish-inspector{display:none}.control-panel{width:min(86vw,360px)}.control-panel.is-minimized{width:48px}.tool-dock{right:52px}}@media (prefers-reduced-motion:reduce){.status-dot,.boot-orbit{animation:none}}
