:root{font-family:Manrope,PingFang SC,sans-serif;color:#d8e8e2;background:#071c23;font-synthesis:none;--muted: #89a3a2;--line: #bedbd426;--mint: #d0e6c6;--panel: rgba(10, 32, 37, .88)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,input,select{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #dbefbe;outline-offset:5px}button{transition:background .2s,color .2s,transform .2s}button:hover{color:#fff}button:active{transform:scale(.96)}[hidden]{display:none!important}#scene{position:fixed;inset:0;touch-action:none}#scene canvas{display:block;outline:none}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(3,15,21,.5),transparent 32%,transparent 78%,rgba(3,15,21,.13)),linear-gradient(0deg,rgba(3,15,21,.75),transparent 19%,transparent 84%,rgba(3,15,21,.3))}header{position:fixed;top:32px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#e1eadb}.brand svg{width:40px;height:40px}.brand span{font-family:Songti SC,STSong,serif;font-size:23px;letter-spacing:5px;line-height:1.25}.brand small{display:block;font-family:Manrope,sans-serif;font-size:8px;letter-spacing:4px;margin-top:7px}.top-right{display:flex;align-items:center;gap:28px}.live{font-size:10px;color:#a1bab7;letter-spacing:1px;display:flex;align-items:center;gap:9px}.live i,.following i{width:5px;height:5px;border-radius:50%;background:#adce94;box-shadow:0 0 8px #9dcc8750}.icon-button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%}svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.intro{position:fixed;left:46px;top:23%;pointer-events:none;transition:opacity .6s,transform .6s}.intro button{pointer-events:auto}.eyebrow{font-size:8px;letter-spacing:2px;color:#9fb6ad}.eyebrow span{display:block;margin-top:14px;font-size:9px;letter-spacing:3px;color:#6e9692}h1{font-family:Songti SC,STSong,serif;font-weight:400;font-size:42px;line-height:1.6;letter-spacing:5px;margin:26px 0 20px}h1 em{font-style:normal;color:#bcdbce}.intro p{font-size:11px;line-height:2.15;color:#8faaa5;letter-spacing:1px}.text-button{margin-top:22px;border-bottom:1px solid #8eafa755;padding:0 0 12px;font-size:11px;letter-spacing:2px;color:#cbdccc}.text-button span{margin-left:20px;font-size:20px}.immersed .intro{opacity:0;transform:translate(-20px);pointer-events:none}.immersed .intro button{pointer-events:none}.habitat-label{position:fixed;right:44px;bottom:158px;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:9px;pointer-events:none}.coordinate{font-size:8px;letter-spacing:2px;color:#91b5ac}.habitat-name{font-family:Songti SC,STSong,serif;font-size:20px;letter-spacing:3px}.habitat-rule{width:36px;height:1px;background:#8aaba36b;margin:5px 0}.caption{font-size:9px;color:#87a59d;letter-spacing:1px}.dock{position:fixed;bottom:58px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;border:1px solid #b7d9c92d;border-radius:50px;padding:8px 14px;background:#091e23d1;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:0 16px 50px #0004;white-space:nowrap}.view-switch{display:flex;gap:2px}.view-switch button{font-size:11px;padding:11px 19px;border-radius:25px;color:#96ada8;letter-spacing:1px}.view-switch button.active{background:#c9ddc4;color:#173b35}.divider{width:1px;height:23px;background:var(--line);margin:0 7px}.tool{display:flex;align-items:center;gap:7px;padding:10px 11px;border-radius:20px;font-size:10px;color:#abc2b8}.tool:hover{background:#c3e0d210}.tool svg{width:17px;height:17px}.tool.active{color:#e3d7a6}footer{position:fixed;left:44px;right:44px;bottom:22px;display:flex;justify-content:space-between;align-items:center;font-size:8px;color:#5f8784;letter-spacing:1.5px}footer button{font-size:9px;color:#7d9f99;letter-spacing:1px}#performance{font-variant-numeric:tabular-nums}.panel{position:fixed;right:34px;top:100px;width:290px;border:1px solid #c7e6d72b;border-radius:18px;background:var(--panel);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);padding:22px;box-shadow:0 20px 70px #0004;z-index:5;animation:panel-in .25s ease}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px;font-size:14px;letter-spacing:2px}.panel-heading small{font-size:8px;letter-spacing:2px;color:var(--muted);display:block;margin-bottom:9px}.close{font-size:23px;color:#86a6a0;padding:0 4px}.panel label{display:block;font-size:11px;margin:20px 0 26px;color:#c5d6cd}.panel label>span{float:right;font-size:9px;color:#70938c}input[type=range]{display:block;width:100%;margin:16px 0 0;accent-color:#bdd3ae;height:3px;cursor:pointer}.select-label{display:flex!important;justify-content:space-between;align-items:center}select{color:#c9d8ce;background:#16383d;border:1px solid var(--line);padding:5px 8px;border-radius:6px;font-size:10px}.wide-button{width:100%;border:1px solid var(--line);font-size:10px;padding:11px;border-radius:8px}.guide-panel{width:330px;max-height:calc(100dvh - 230px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#345851 transparent}.guide-note{font-size:10px;color:var(--muted);line-height:1.8;margin-top:-7px}.species-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 0;border-bottom:1px solid #bedbd414}.species-icon{width:40px;height:32px;display:flex;align-items:center;justify-content:center}.species-icon svg{width:38px;height:28px;stroke-width:1.2}.species-item strong{font-size:11px;font-weight:400;letter-spacing:1px;display:block}.species-item small{font-size:8px;color:#7a9d96;margin-top:5px;display:block}.species-item b{font-size:8px;color:#547d76;font-weight:400;margin-left:auto}.specimen{right:35px;top:24%;width:280px}.specimen h2{font-family:Songti SC,STSong,serif;font-weight:400;letter-spacing:2px;font-size:24px;margin:12px 0 7px}.latin{font-size:9px;letter-spacing:1px;color:#84a6a0}.specimen p{font-size:11px;color:#a4bbb3;line-height:2.1;margin:22px 0}.habitat-pill{font-size:9px;color:#b7cbb9;padding:6px 10px;background:#b8d7bf0e;border-radius:12px}.following{display:flex;gap:6px;align-items:center;border-top:1px solid var(--line);margin-top:22px;padding-top:16px;font-size:8px;color:#7b9e95}.following button{margin-left:auto;font-size:8px;text-decoration:underline}#specimen-symbol{height:58px;display:flex;justify-content:center}#specimen-symbol svg{width:100px;height:58px;stroke-width:.7}#toast{position:fixed;left:50%;bottom:135px;transform:translate(-50%,8px);padding:12px 22px;background:#163b3ce8;border:1px solid #bddbcc33;border-radius:20px;font-size:11px;letter-spacing:1px;opacity:0;pointer-events:none;transition:.3s;z-index:10}#toast.visible{opacity:1;transform:translate(-50%)}#loading{position:fixed;inset:0;background:#071c23;z-index:20;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;transition:opacity .6s}#loading span{font-family:Songti SC,STSong,serif;font-size:17px;letter-spacing:6px}#loading small{font-size:9px;color:#688e86;letter-spacing:2px}.loader-orbit{width:55px;height:55px;border:1px solid #9cc9b32b;border-top-color:#c7dec0;border-radius:50%;animation:spin 2s linear infinite}#fallback{position:fixed;inset:0;background:#0c2228;z-index:15;display:grid;place-items:center}#fallback img{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.42}#fallback div{position:relative;max-width:440px;padding:30px;background:#0c2228de;border:1px solid var(--line);border-radius:18px}#fallback p{font-size:13px;line-height:1.9;color:#9ebbb3}#fallback button{padding:10px 20px;border:1px solid var(--line);border-radius:8px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){header{top:23px;left:22px;right:22px}.brand span{font-size:20px}.brand svg{width:33px}.top-right{gap:12px}.live{display:none}.intro{left:24px;top:16%}.eyebrow{font-size:7px}.eyebrow span{display:none}h1{font-size:28px;letter-spacing:4px;line-height:1.6;margin:17px 0 10px}.intro p{font-size:9px;line-height:1.9}.text-button{font-size:10px;margin-top:13px}.habitat-label{right:24px;bottom:177px;gap:6px}.coordinate{font-size:7px}.habitat-name{font-size:17px}.caption{font-size:8px}.dock{bottom:63px;gap:0;padding:7px 8px;border-radius:22px;width:calc(100% - 40px);max-width:390px;flex-wrap:wrap;justify-content:center;row-gap:4px}.view-switch{width:100%;justify-content:center}.view-switch button{padding:8px 25px;font-size:10px}.divider{display:none}.tool{padding:8px 12px;font-size:9px}.tool svg{width:15px;height:15px}footer{left:20px;right:20px;bottom:24px;font-size:6px;letter-spacing:.7px}footer button{font-size:8px}footer>span:first-child{display:none}.panel,.specimen{right:16px;top:87px;width:calc(100% - 32px);max-width:330px;padding:20px}.guide-panel{max-height:calc(100dvh - 265px)}.specimen{top:100px;width:255px}.specimen p{font-size:10px;margin:14px 0}.specimen h2{font-size:21px}#toast{bottom:189px;max-width:90%;white-space:nowrap;font-size:9px}.immersed .habitat-label{bottom:185px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.adventure-entry{position:fixed;top:112px;right:40px;display:flex;gap:20px;align-items:center;padding:12px 18px;border:1px solid #c0dac752;border-radius:30px;background:#113239d9;font-size:10px;z-index:4}.adventure-entry span{font-family:Songti SC,serif;font-size:15px;letter-spacing:2px}.adventure-entry b{font-weight:400;color:#b9d5bc}.playing .intro,.playing .dock,.playing .habitat-label,.playing footer,.playing .top-right,.playing .adventure-entry{display:none!important}.playing header{z-index:8}.playing .brand{opacity:.6;transform:scale(.8);transform-origin:top left}.playing .vignette{background:radial-gradient(ellipse at center,transparent 40%,#061f2766)}.game-overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#071d25a8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:20px}.game-card{width:560px;max-width:100%;background:linear-gradient(145deg,#14323ae8,#09252de8);border:1px solid #b4cdb52b;border-radius:22px;padding:36px 42px;box-shadow:0 30px 100px #0005}.game-card>small{font-size:8px;letter-spacing:2.5px;color:#a2c2b3}.game-card h2{font-family:Songti SC,STSong,serif;font-weight:400;font-size:34px;letter-spacing:4px;line-height:1.55;margin:21px 0 15px;color:#e2ebd9}.game-card p{font-size:11px;color:#98b3aa;line-height:2;margin:0 0 23px}.tutorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid #bedbd426;border-bottom:1px solid #bedbd426;padding:20px 0;margin:20px 0}.tutorial-grid b{display:block;font-size:11px;letter-spacing:2px;color:#ccddc7;font-weight:400;margin-bottom:10px}.tutorial-grid span{font-size:10px;line-height:2;color:#8ea89d}.game-card p.input-status{font-size:9px;margin:0 0 12px;color:#72988f;line-height:1.7}.game-preferences{display:flex;gap:20px;align-items:center;margin:22px 0}.game-preferences label{font-size:9px;color:#9bb5a9;flex:1}.game-preferences input{margin-top:12px}.game-preferences button{font-size:9px;border:1px solid #a9c9b62c;border-radius:8px;padding:10px;white-space:nowrap}.game-primary{display:block;width:100%;border-radius:8px;background:#c6ddbc;color:#19382b;font-size:12px;letter-spacing:2px;padding:15px;text-align:center}.game-primary:hover{background:#deedc8;color:#163729}.game-secondary{display:block;width:100%;padding:15px 0 0;font-size:10px;color:#96afa2;letter-spacing:1px}.game-reset{display:block;margin:18px auto 0;font-size:8px;color:#6d9386;text-decoration:underline}.game-card.result-card{max-width:470px}.game-card.result-card h2{font-size:29px}.game-card.result-card p{font-size:12px;line-height:2.1;margin-bottom:30px}#game-hud{position:fixed;inset:0;pointer-events:none;z-index:7}.journey{position:absolute;left:38px;top:118px;max-width:240px}.journey>small{display:block;font-size:8px;color:#91b5a5;letter-spacing:2px}.journey strong{font-family:Songti SC,serif;font-weight:400;font-size:17px;letter-spacing:2px;display:block;margin-top:12px;text-shadow:0 2px 8px #001a1e}.seed-progress{display:flex;align-items:center;gap:9px;margin-top:17px}.seed-progress i{width:9px;height:9px;border:1px solid #a9c6a5;transform:rotate(45deg)}.seed-progress i.found{background:#cee3b5;box-shadow:0 0 15px #d1e9a54a}.seed-progress span{font-size:9px;margin-left:10px;color:#9db9ab}.game-compass{position:absolute;left:50%;top:35px;transform:translate(-50%);display:flex;align-items:center;gap:11px;white-space:nowrap;color:#c2d7c8;text-shadow:0 2px 8px #001921}.game-compass>span:first-child{font-size:23px;display:inline-block}.game-compass>span:nth-child(2){font-size:11px;letter-spacing:2px}.game-compass b{font-weight:400;font-size:10px;font-variant-numeric:tabular-nums}.game-compass small{position:absolute;top:36px;left:50%;transform:translate(-50%);font-size:9px;color:#91b9a9;letter-spacing:1px}.game-map{position:absolute;right:28px;top:29px;width:160px;background:#082a3266;border-radius:10px;padding:8px 8px 10px;border:1px solid #a4cbb515}.game-map canvas{display:block;width:144px;height:91px}.game-map>small{font-size:7px;color:#83a89b;letter-spacing:2px;display:block;padding:0 9px}.game-map>small span{float:right;letter-spacing:0}#danger{position:absolute;left:50%;top:104px;transform:translate(-50%);display:flex;gap:9px;align-items:center;max-width:450px;color:#aac5b8;font-size:10px;letter-spacing:1px;text-shadow:0 2px 8px #001921}#danger i{width:4px;height:4px;border-radius:50%;background:currentColor}#danger[data-level=safe]{color:#a5d5b3}#danger[data-level=alert]{color:#efd39e}#danger[data-level=chase]{color:#ffb190;animation:threat-pulse 1.2s ease-in-out infinite}.crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:23px;opacity:.5;color:#e8f1d3}#game-interact{position:absolute;left:50%;top:60%;transform:translate(-50%);padding:12px 19px;border:1px solid #d9e6b75c;background:#183f38bf;border-radius:7px;font-size:13px;color:#dceaca;letter-spacing:2px}#discovery{position:absolute;left:50%;bottom:155px;transform:translate(-50%);font-family:Songti SC,serif;font-size:18px;letter-spacing:2px;color:#d4e2c4;text-shadow:0 3px 12px #001819;background:#092c315c;padding:10px 20px;border-radius:8px;max-width:70%;text-align:center}.fish-vitals{position:absolute;left:38px;bottom:40px;width:180px}.fish-vitals>div{display:flex;align-items:center;gap:9px;margin-top:12px}.fish-vitals>div>span{font-size:9px;letter-spacing:1px;width:25px;color:#adc3b3}.fish-vitals b{font-size:9px;font-weight:400;font-variant-numeric:tabular-nums;color:#b6c9b7;min-width:22px}.meter{width:112px;height:3px;background:#aacbb529;border-radius:2px;overflow:hidden}.meter i{display:block;height:100%;width:100%;background:#b9dcb4;transition:width .12s linear}.meter.stamina i{background:#83bac6}.fish-vitals>small{display:block;margin-top:17px;font-size:8px;color:#7fa897;letter-spacing:1px}.game-keys{position:absolute;right:36px;bottom:36px;display:flex;flex-direction:column;gap:9px;color:#80a599;font-size:9px;line-height:1.8;letter-spacing:.3px;text-align:right}kbd{font-family:inherit;color:#b1c4b8;font-size:8px;border:1px solid #c7e1d331;border-radius:3px;padding:2px 5px;margin:0 3px}.game-keys span:first-child{color:#a8c6b3}#game-pause-button{pointer-events:auto;position:absolute;right:32px;top:165px;width:33px;height:33px;border:1px solid #a8cdb33a;border-radius:50%;font-size:12px;background:#0a2a3155}#damage-overlay{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,#dba76c99);opacity:0;transition:opacity .08s}.playing #toast{display:none}.playing .panel{display:none!important}@keyframes threat-pulse{50%{opacity:.5}}@media(max-height:720px){.game-card{padding:25px 36px}.game-card h2{font-size:28px;margin:15px 0 12px}.tutorial-grid{padding:13px 0;margin:15px 0}.game-preferences{margin:15px 0}.game-card p{margin-bottom:12px}.game-reset{margin-top:13px}}@media(max-width:700px){.adventure-entry{top:85px;right:20px;padding:9px 13px;font-size:8px}.adventure-entry span{font-size:11px}.game-card{padding:25px;max-height:calc(100dvh - 40px);overflow:auto}.game-card h2{font-size:27px}.tutorial-grid{gap:10px}.tutorial-grid span{font-size:9px}.game-preferences{flex-wrap:wrap}.game-preferences button{width:100%}}.journey>p{font-size:9px;line-height:1.8;color:#8eaea0;margin:12px 0 0;max-width:220px;text-shadow:0 2px 8px #001a1e}.game-journal{font-size:10px;color:#a5c2af;margin:13px 0}.game-journal summary{cursor:pointer;letter-spacing:1px}.game-journal>div{max-height:150px;overflow:auto;border:1px solid #b2d4bd25;padding:13px;margin-top:10px;border-radius:8px}.game-journal p{font-size:9px;line-height:1.8;margin:0 0 12px}.game-journal b{font-weight:500;color:#d0dec4}.game-card{max-height:calc(100dvh - 40px);overflow:auto;scrollbar-width:thin;scrollbar-color:#4f7160 transparent}.game-card{width:min(560px,calc(100vw - 40px));min-width:0}.tutorial-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.game-preferences label,.game-preferences input{min-width:0}.game-card.result-card{width:min(470px,calc(100vw - 40px))}
