:root{color:#effcff;font-synthesis:none;-webkit-tap-highlight-color:transparent;background:#062b3d;font-family:Manrope,system-ui,sans-serif}*{box-sizing:border-box}html,body,main{width:100%;height:100%;margin:0;overflow:hidden}main{height:100dvh}body{min-width:320px}#aquarium{--safe-top:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-bottom);background:#062b3d;position:relative}button{color:inherit;font:inherit}button:focus-visible{outline-offset:3px;outline:2px solid #75e5e9}[hidden]{display:none!important}.scene{cursor:crosshair;background:#0a4861;display:block;position:absolute;inset:0}.scene canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.scene canvas.is-context-lost{visibility:hidden}.hud{top:calc(1rem + var(--safe-top));left:calc(4.75rem + env(safe-area-inset-left));z-index:3;width:min(22rem, calc(100% - 10rem - env(safe-area-inset-left) - env(safe-area-inset-right)));pointer-events:none;position:absolute}.run-status{grid-template:"glow meters""objective objective""controls controls"/auto minmax(8rem,1fr);align-items:center;gap:.4rem .8rem;min-width:0;display:grid}.reef-meters{gap:.45rem;display:grid}.glow-count{text-transform:uppercase;text-shadow:0 1px 8px #001822e6;grid-area:glow;align-items:center;gap:.35rem;font:.7rem DM Mono,monospace;display:flex}.glow-count i{background:#7ff8e4;border-radius:50%;width:.55rem;height:.55rem;box-shadow:0 0 12px #7ff8e4}.glow-count strong{color:#a8fff0;text-align:right;min-width:1.5rem;font-size:.95rem}.coral-status{color:#effcffc7;text-shadow:0 1px 8px #001822e6;text-transform:uppercase;grid-template-columns:auto minmax(70px,1fr) 2rem;align-items:center;gap:.5rem;font:.62rem DM Mono,monospace;display:grid}.algae-status{color:#c8ef9f;text-shadow:0 1px 8px #001822e6;text-transform:uppercase;grid-template-columns:auto minmax(70px,1fr) 2rem;align-items:center;gap:.5rem;font:.62rem DM Mono,monospace;display:none}.algae-status.is-visible{display:grid}.algae-status .progress i{background:#8ccf62;box-shadow:0 0 10px #8ccf62}.reef-meters{grid-area:meters}.objective-status{text-shadow:0 1px 8px #001822e6;grid-area:objective;min-width:0}.reef-needs{color:#a8fff0;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.28rem;font:.64rem DM Mono,monospace}.hint{color:#effcffd1;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.76rem;line-height:1.35;transition:opacity .3s;overflow:hidden}.hint.is-hidden{opacity:0}.release-controls{pointer-events:none;grid-area:controls;align-items:center;gap:.5rem;min-width:0;display:flex}.release-toggle{cursor:pointer;pointer-events:auto;white-space:nowrap;background:#6fe0e626;border:1px solid #a8fff0;border-radius:999px;min-height:44px;padding:.55rem .85rem;font-size:.72rem;font-weight:600}.release-toggle:disabled{cursor:not-allowed;opacity:.5}.release-speed{cursor:pointer;pointer-events:auto;background:#041f2cd1;border:1px solid #a8fff099;border-radius:999px;min-width:72px;min-height:44px;padding:.5rem;font:.65rem DM Mono,monospace}.progress{background:#effcff2e;height:3px;display:block}.progress i{background:#ff8b70;width:0;height:100%;transition:width .4s;display:block;box-shadow:0 0 10px #ff8b70}.message{top:calc(10rem + var(--safe-top));z-index:6;opacity:0;pointer-events:none;white-space:nowrap;background:#041f2ce6;border:1px solid #d2f8fa38;border-radius:999px;max-width:calc(100% - 2rem);margin:0;padding:.6rem .9rem;font-size:.7rem;transition:all .2s;position:absolute;left:50%;transform:translate(-50%,-8px)}.message.is-visible{opacity:1;transform:translate(-50%)}.habitat-dock{right:0;bottom:calc(.5rem + var(--safe-bottom));z-index:3;padding-inline:max(.75rem, env(safe-area-inset-left)) max(.75rem, env(safe-area-inset-right));pointer-events:none;position:absolute;left:0}.habitat-shell{width:min(48rem,100%);margin:0 auto}.habitat-info-toggle{top:calc(1rem + var(--safe-top));right:calc(1rem + env(safe-area-inset-right));z-index:10;color:#a8fff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#041f2cc2;border:1px solid #a8fff06b;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;font:600 .75rem DM Mono,monospace;display:grid;position:absolute;box-shadow:0 .35rem 1.2rem #000f1740}.habitat-info-toggle:hover,.habitat-info-toggle:focus-visible{background:#6fe0e61f}.habitat-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.4rem,1.2vw,.75rem);display:grid}.buy-creature{cursor:pointer;pointer-events:auto;text-align:center;background:linear-gradient(155deg,#265b63e6,#0d3743f0);border:1px solid #bee5e152;border-radius:1.1rem 1.1rem .7rem .7rem;grid-template:32px auto auto/minmax(0,1fr);align-content:center;justify-items:center;gap:.12rem;min-width:0;min-height:82px;padding:.45rem;display:grid;position:relative;box-shadow:inset 0 1px #e2fff91f,0 .4rem 1rem #00192033}.buy-creature:hover:not(:disabled),.buy-creature:focus-visible:not(:disabled){background:#6fe0e629;border-color:#75e5e9}.buy-creature:active:not(:disabled){background:#6fe0e642}.buy-creature:disabled{cursor:not-allowed}.buy-creature:disabled .species-copy>span{color:#effcff6b}.buy-creature:disabled .species-icon{opacity:.52}.species-icon{fill:#7ff8e42e;stroke:#9cefe5;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:38px;height:32px;overflow:visible}.species-copy{justify-items:center;gap:.14rem;min-width:0;display:grid}.species-copy strong{white-space:nowrap;font-size:.78rem;line-height:1.1}.species-copy>span{color:#b8fff3;white-space:nowrap;background:#21a7ad3d;border-radius:.3rem;width:-moz-fit-content;width:fit-content;padding:.1rem .25rem;font:.62rem DM Mono,monospace}.species-copy b{font-weight:500}.buy-creature small{color:#effcffb8;font:.66rem DM Mono,monospace;position:absolute;top:.35rem;right:.45rem}.habitat-info{width:min(28rem, calc(100% - 2rem - env(safe-area-inset-left) - env(safe-area-inset-right)));max-height:calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));color:#effcff;background:#041b27fa;border:1px solid #cdf5f847;border-radius:1rem;padding:1.1rem;overflow:auto;box-shadow:0 1rem 3rem #000a1080}.habitat-info::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000e16ad}.habitat-info-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.habitat-info-heading span{color:#a8fff0;letter-spacing:.08em;text-transform:uppercase;font:.58rem DM Mono,monospace}.habitat-info-heading h2{margin:.2rem 0 0;font-size:1.35rem}.habitat-info-heading button{cursor:pointer;background:0 0;border:1px solid #cdf5f840;border-radius:50%;flex:none;width:44px;height:44px;padding:0;font-size:1.4rem}.habitat-info>p{color:#effcffc2;border-top:1px solid #cdf5f824;margin:1rem 0 0;padding-top:1rem;font-size:.86rem;line-height:1.55}.habitat-info dl{gap:0;margin:1rem 0 0;display:grid}.habitat-info dl div{border-top:1px solid #cdf5f824;grid-template-columns:48px minmax(0,1fr);column-gap:.8rem;padding:.85rem 0;display:grid}.habitat-info dl div:first-child{border-top:0}.habitat-info dl .species-icon{grid-row:1/span 2;align-self:center}.habitat-info dt{grid-column:2;font-size:.88rem;font-weight:650}.habitat-info dd{color:#effcffb8;grid-column:2;margin:.25rem 0 0;font-size:.84rem;line-height:1.5}.start-screen,.draft-screen,.end-screen{z-index:9;padding:calc(1.5rem + env(safe-area-inset-top)) calc(1.5rem + env(safe-area-inset-right)) calc(1.5rem + env(safe-area-inset-bottom)) calc(1.5rem + env(safe-area-inset-left));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);text-align:center;background:#02141e57;place-items:center;display:grid;position:absolute;inset:0;overflow:auto}.start-screen{-webkit-backdrop-filter:none;backdrop-filter:none;background:#02141e1f}.start-screen[hidden]{display:none}#aquarium:has(#start-screen:not([hidden])) :is(.hud,.hint,.habitat-dock,.habitat-info-toggle){visibility:hidden}.start-card{background:#041f2ce6;border:1px solid #75e5e96b;border-radius:1.1rem;width:min(26rem,100%);padding:clamp(1.5rem,5vw,2.5rem);box-shadow:0 1.5rem 5rem #000a106b}.start-kicker{color:#a8fff0;letter-spacing:.22em;margin:0 0 .5rem;font:.65rem DM Mono,monospace}.start-card h2{letter-spacing:-.07em;margin:0;font-size:clamp(2.5rem,7vw,4rem);font-weight:500;line-height:1}.start-status{color:#effcffc2;min-height:1.1rem;margin:1.2rem 0;font:.68rem DM Mono,monospace}.start-status span,.start-actions button{display:none}.start-screen[data-update=checking] [data-start-state=checking],.start-screen[data-update=downloading] [data-start-state=downloading],.start-screen[data-update=current] [data-start-state=current],.start-screen[data-update=waiting] [data-start-state=waiting],.start-screen[data-update=restarting] [data-start-state=restarting],.start-screen[data-update=failed] [data-start-state=failed],.start-screen[data-update=current] #play,.start-screen[data-update=waiting] #start-update,.start-screen[data-update=failed] #retry-update,.start-screen[data-update=failed] #play-current{display:inline-block}.start-actions{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.start-actions button{cursor:pointer;background:#6fe0e62e;border:1px solid #75e5e9ad;border-radius:999px;min-width:9rem;min-height:44px;padding:.7rem 1rem;font-weight:600}.start-actions #play,.start-actions #start-update{color:#052c3a;background:#75e5e9}.update-notice{top:calc(5.5rem + env(safe-area-inset-top));right:calc(1rem + env(safe-area-inset-right));z-index:8;background:#041f2cf0;border:1px solid #75e5e97a;border-radius:999px;align-items:center;gap:.6rem;max-width:calc(100% - 2rem);padding:.45rem .5rem .45rem .8rem;font-size:.7rem;display:flex;position:absolute;box-shadow:0 .8rem 2rem #000a1059}.update-notice button{cursor:pointer;background:#6fe0e624;border:1px solid #75e5e973;border-radius:999px;min-height:44px;padding:.4rem .7rem;font-size:.68rem}.update-notice #notice-dismiss{border-color:#0000;width:44px;padding:0;font-size:1.1rem}.draft-screen,.end-screen{opacity:0;pointer-events:none;visibility:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#02141ec2;transition:opacity .5s,visibility .5s}.draft-screen.is-visible,.end-screen.is-visible{opacity:1;pointer-events:auto;visibility:visible}#aquarium:has(.draft-screen.is-visible,.end-screen.is-visible) :is(.habitat-dock,.habitat-info-toggle){visibility:hidden}.draft-screen>div,.end-screen>div{max-width:48rem}.draft-screen>div{width:100%;max-width:64rem;margin-block:auto}.draft-screen h2,.end-screen h2{letter-spacing:-.07em;margin:0 0 .75rem;font-size:clamp(2.5rem,7vw,5rem);font-weight:500;line-height:.95}.draft-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1.5rem;display:grid}.draft-options button{cursor:pointer;text-align:left;background:#0f4552d1;border:1px solid #75e5e99e;border-radius:.8rem;flex-direction:column;min-width:0;padding:1.1rem;display:flex}.draft-options button:hover,.draft-options button:focus-visible{background:#1d5b65eb;border-color:#9cffff}.draft-options button:active{background:#286f75f5}.draft-track{color:#a8fff0;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.4rem;font:.62rem DM Mono,monospace}.draft-name{font-size:1.1rem}.draft-effects{gap:.8rem;width:100%;margin-block:1rem;display:grid}.draft-effect{grid-template-columns:1.1rem 1fr;align-items:center;column-gap:.5rem;display:grid}.draft-effect svg{color:#a8fff0;width:1.1rem;height:1.1rem}.effect-label{font-size:.75rem;line-height:1.4}.effect-value{grid-column:2;margin-top:.2rem;font:.95rem DM Mono,monospace}.effect-value b{color:#a8fff0;font-weight:500}.effect-before{color:#b1c9cf}.draft-note{color:#cee0e5;border-top:1px solid #cdf5f833;width:100%;margin-top:auto;padding-top:.8rem;font-size:.75rem;line-height:1.5;display:block}.end-screen #end-summary{color:#effcffc7;font-size:.85rem}.end-screen button{cursor:pointer;background:#75e5e92e;border:1px solid #effcffb3;border-radius:999px;margin-top:1rem;padding:.8rem 1.2rem}.settings-toggle{top:calc(1rem + env(safe-area-inset-top));left:calc(1rem + env(safe-area-inset-left));z-index:10;color:#effcffd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#041f2cd1;border:1px solid #a8fff06b;border-radius:50%;place-items:center;width:44px;height:44px;padding:10px;transition:border-color .15s,color .15s,background .15s,opacity .15s,visibility .15s;display:grid;position:absolute;box-shadow:0 .35rem 1.2rem #000f1740}.settings-toggle:hover,.settings-toggle[aria-expanded=true]{color:#a8fff0;background:#093544f0;border-color:#75e5e9}.settings-toggle svg{width:100%;height:100%;display:block}.settings-panel{width:min(20rem, calc(100% - 2rem - env(safe-area-inset-left) - env(safe-area-inset-right)));max-height:calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));color:#effcff;background:#041b27f7;border:1px solid #cdf5f847;border-radius:.9rem;padding:1rem;overflow:auto;box-shadow:0 1rem 3rem #000a1080}.settings-panel::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000e16a3}.settings-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.settings-heading h2{margin:0;font-size:1rem}.settings-heading button{cursor:pointer;background:0 0;border:0;width:44px;height:44px;padding:0;font-size:1.4rem}.settings-panel>button{cursor:pointer;background:#6fe0e624;border:1px solid #75e5e980;border-radius:.6rem;width:100%;min-height:44px;margin-top:.65rem}.settings-panel>button:disabled{cursor:not-allowed;opacity:.55}.settings-panel p{color:#effcffb8;margin:.75rem 0 0;font-size:.7rem;line-height:1.45}.settings-panel p:empty,#pwa-status [data-pwa-state]{display:none}#pwa-status[data-update=checking] [data-pwa-state=checking],#pwa-status[data-update=downloading] [data-pwa-state=downloading],#pwa-status[data-update=current] [data-pwa-state=current],#pwa-status[data-update=restarting] [data-pwa-state=restarting],#pwa-status[data-update=failed] [data-pwa-state=failed],#pwa-status[data-update=waiting][data-run=preplay] [data-pwa-state=waiting-preplay],#pwa-status[data-update=waiting][data-run=active] [data-pwa-state=waiting-active],#pwa-status[data-update=waiting][data-run=ended] [data-pwa-state=waiting-ended]{display:inline}#pwa-status:has(#pwa-message:not(:empty)) [data-pwa-state]{display:none}.secondary-links{color:#effcff9e;text-align:center;flex-wrap:wrap;justify-content:center;gap:.45rem .8rem;margin-top:.85rem;font-size:.68rem;display:flex}.secondary-links a{color:inherit;text-underline-offset:.18em}.secondary-links a:hover,.secondary-links a:focus-visible{color:#effcffd1}.install-dialog{color:#effcff;background:#082f40;border:1px solid #75e5e973;border-radius:1rem;width:min(28rem,100% - 2rem);padding:1.5rem;box-shadow:0 1.5rem 5rem #000a1080}.install-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000e16b8}.install-dialog h2{margin:0;font-size:1.45rem}.install-dialog p{color:#effcffc7;font-size:.85rem;line-height:1.5}.install-dialog>div{flex-wrap:wrap;gap:.6rem;display:flex}.install-dialog button{cursor:pointer;background:#6fe0e624;border:1px solid #75e5e980;border-radius:999px;min-height:44px;padding:.65rem .9rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (max-width:600px){.hud{top:calc(4.9rem + var(--safe-top));left:calc(1rem + env(safe-area-inset-left));width:min(18rem, calc(100% - 2rem - env(safe-area-inset-left) - env(safe-area-inset-right)))}.run-status{grid-template:"glow""meters""objective""controls"/minmax(0,1fr);gap:.35rem}.coral-status,.algae-status{grid-template-columns:auto minmax(70px,1fr) 2rem}.reef-needs{margin-bottom:.18rem}.hint{white-space:normal;font-size:.68rem}.habitat-dock{padding-inline:max(.5rem, env(safe-area-inset-left)) max(.5rem, env(safe-area-inset-right))}.habitat-actions{gap:.35rem}.buy-creature{grid-template-rows:28px auto auto;min-height:88px;padding:.35rem .15rem}.species-icon{width:33px;height:28px}.species-copy strong{font-size:.7rem}.species-copy>span{padding:.08rem .16rem;font-size:.54rem}.buy-creature small{font-size:.58rem;position:absolute;top:.3rem;right:.35rem}.message{top:calc(13rem + var(--safe-top));white-space:normal;text-align:center}#aquarium:has(#release-toggle:not([hidden])) .message{top:calc(15rem + var(--safe-top))}.draft-screen{padding:calc(1.25rem + env(safe-area-inset-top)) calc(1rem + env(safe-area-inset-right)) calc(1.25rem + env(safe-area-inset-bottom)) calc(1rem + env(safe-area-inset-left))}.draft-screen h2{font-size:2.5rem}.draft-options{grid-template-columns:1fr;gap:.65rem;margin-top:1rem}.draft-options button{padding:.85rem}.draft-effects{gap:.55rem;margin-block:.7rem}.draft-effect{grid-template-columns:1.1rem minmax(0,1fr) auto}.effect-value{grid-column:3;margin:0;font-size:.85rem}.draft-note{padding-top:.6rem}}@media (max-height:500px) and (orientation:landscape){.settings-toggle{top:calc(.6rem + env(safe-area-inset-top));left:calc(.6rem + env(safe-area-inset-left))}.habitat-info-toggle{top:calc(.6rem + var(--safe-top));right:calc(.6rem + env(safe-area-inset-right))}.hud{top:calc(.6rem + var(--safe-top));left:calc(4rem + env(safe-area-inset-left));width:min(23rem, calc(100% - 8rem - env(safe-area-inset-left) - env(safe-area-inset-right)))}.run-status{grid-template:"glow meters""objective objective""controls controls"/auto minmax(8rem,1fr);gap:.25rem .6rem}.reef-meters{gap:.2rem}.coral-status,.algae-status{grid-template-columns:auto 70px 1.8rem;gap:.35rem}.reef-needs{margin-bottom:.1rem}.hint{white-space:nowrap;font-size:.6rem}.habitat-dock{bottom:calc(.35rem + var(--safe-bottom))}.habitat-shell{width:100%}.habitat-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem}.buy-creature{grid-template:24px auto auto/minmax(0,1fr);min-height:66px;padding:.25rem .2rem}.buy-creature:first-child{grid-column:1}.buy-creature:nth-child(2){grid-column:4}.buy-creature:nth-child(3){grid-column:5}.species-icon{width:30px;height:24px}.species-copy strong{font-size:.66rem}.species-copy>span,.buy-creature small{font-size:.52rem}.message{padding-block:.45rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important}}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-400-normal-4GdczIuU.woff2)format("woff2"),url(/assets/dm-mono-latin-400-normal--0xN8mdc.woff)format("woff")}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2)format("woff2"),url(/assets/dm-mono-latin-500-normal-CN8Miw6E.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-latin-400-normal-PaqtzbVb.woff2)format("woff2"),url(/assets/manrope-latin-400-normal-8tf8FM3T.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/manrope-latin-500-normal-BYYD-dBL.woff2)format("woff2"),url(/assets/manrope-latin-500-normal-DMZssgOp.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-latin-600-normal-4f0koTD-.woff2)format("woff2"),url(/assets/manrope-latin-600-normal-BqgrALkZ.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/manrope-latin-700-normal-BZp_XxE4.woff2)format("woff2"),url(/assets/manrope-latin-700-normal-DGRFkw-m.woff)format("woff")}
