:root{--ink:#ecf2ed;--muted:#95a69e;--faint:#63746c;--line:#bfdbcb24;--line-strong:#bfdbcb3d;--panel:#07100dad;--panel-solid:#0a1511;--gold:#c9b184;--green:#89b797;--cyan:#6ee8ea;--danger:#ec6d70;--sans:"Avenir Next", "Segoe UI", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--serif:"Iowan Old Style", "Palatino Linotype", "Songti SC", "Noto Serif SC", serif}*{box-sizing:border-box}html,body{width:100%;height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;background:#05070a;margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit}button:focus{outline:none}button:focus-visible{outline-offset:2px;outline:1px solid #c9b184b8}#app{isolation:isolate;background:radial-gradient(90% 80% at 50% 20%,#26344085,#0000 62%),linear-gradient(#0a1014 0%,#030507 100%);width:100%;height:100%;min-height:620px;position:relative}#app:before{content:"";z-index:5;pointer-events:none;background:radial-gradient(at 50% 44%,#0000 33%,#0003053b 72%,#00020499 100%),linear-gradient(#00030529,#0000 18% 76%,#00020447);position:fixed;inset:0}#app:after{content:"";z-index:6;pointer-events:none;opacity:.14;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");position:fixed;inset:0}#scene{z-index:0;cursor:grab;position:absolute;inset:0}#scene:active{cursor:grabbing}#scene canvas{outline:none;width:100%;height:100%;display:block}.glass-panel{background:linear-gradient(145deg, #15261f8f, #050c09bd), var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(22px)saturate(125%);box-shadow:0 24px 80px #00000061,inset 0 1px #ffffff0b}.topbar{z-index:20;pointer-events:none;justify-content:space-between;align-items:center;height:92px;padding:22px 30px 0;display:flex;position:fixed;top:0;left:0;right:0}.brand,.top-actions{pointer-events:auto}.brand{align-items:center;gap:13px;display:flex}.brand-mark{width:42px;height:42px;color:var(--gold);background:radial-gradient(circle at 40% 35%,#c9b1841f,#0000 68%);border:1px solid #c9b18461;border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 18px #c9b18412}.brand-mark svg{width:30px;height:30px}.brand-copy h1{font-family:var(--serif);letter-spacing:.16em;margin:0;font-size:23px;font-weight:500;line-height:1.05}.brand-copy p{letter-spacing:.15em;color:var(--faint);margin:5px 0 0;font-size:10px}.top-actions{align-items:center;gap:9px;display:flex}.light-switch{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);background:#050d0a8f;border-radius:999px;gap:2px;padding:4px;display:flex}.light-btn{height:34px;color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;padding:0 13px;transition:color .22s,background .22s;display:flex;position:relative}.light-btn span{letter-spacing:.12em;font-size:11px}.light-btn:hover{color:#d9e5dc}.light-btn.is-active{color:#f3eee2;background:linear-gradient(135deg,#c9b18430,#ffffff0b);box-shadow:inset 0 0 0 1px #c9b1842e}.sun-icon{background:#f4c77e;border-radius:50%;width:11px;height:11px;display:inline-block;box-shadow:0 0 8px #f4c77eb8}.sun-icon.noon{background:#fff7da;box-shadow:0 0 9px #fff6d2d9}.sun-icon.dusk{background:#ef8c66;box-shadow:0 0 8px #ef8c66ad}.sun-icon.moon{background:#9ac6ec;box-shadow:0 0 8px #9ac6eca8}.icon-btn{border:1px solid var(--line);width:42px;height:42px;color:var(--muted);-webkit-backdrop-filter:blur(16px);cursor:pointer;background:#050d0a8a;border-radius:50%;place-items:center;transition:color .18s,border-color .18s,transform .18s;display:grid}.icon-btn:hover{color:var(--gold);border-color:#c9b18461;transform:translateY(-1px)}.icon-btn svg{width:17px;height:17px}.plant-panel{z-index:20;border-radius:20px;width:270px;padding:18px 14px 12px;position:fixed;top:112px;left:28px}.placement-tip{color:var(--faint);letter-spacing:.025em;margin:-6px 4px 10px;font-size:8px;line-height:1.4}.plant-tools{background:linear-gradient(120deg,#5d8f6914,#ffffff05);border:1px solid #94bda01f;border-radius:12px;margin:0 2px 10px;padding:8px 8px 7px}.plant-tools-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.plant-tool-count{color:var(--faint);letter-spacing:.06em;font-size:8.5px}.plant-tool-count strong{color:var(--green);font-variant-numeric:tabular-nums;margin:0 1px;font-size:13px;font-weight:400}.plant-edit-btn{color:#c8dad0;letter-spacing:.05em;cursor:pointer;background:#ffffff09;border:1px solid #bfdbcb29;border-radius:7px;align-items:center;gap:4px;height:23px;padding:0 8px;font-size:8.5px;transition:background .16s,border-color .16s,color .16s,box-shadow .16s;display:flex}.plant-edit-btn svg{opacity:.8;width:11px;height:11px}.plant-edit-btn:hover{background:#ffffff12;border-color:#bfdbcb52}.plant-edit-btn.is-active{color:#f0ddb3;background:#be9e5c1f;border-color:#f4d79b73;box-shadow:0 0 14px #ceae681a}.plant-status{min-height:12px;color:var(--faint);letter-spacing:.035em;margin:6px 0 0;font-size:8px;line-height:1.4}.plant-selected{margin-top:7px}.plant-height{background:#62aa870b;border:1px solid #8ad3b224;border-radius:8px;align-items:center;gap:7px;margin-top:7px;padding:5px 7px;display:flex}.plant-height[hidden]{display:none}.plant-height>span{color:var(--faint);letter-spacing:.08em;flex:none;font-size:8px}.plant-height input[type=range]{flex:1;min-width:0;height:12px;margin:0}.plant-height output{color:var(--green);text-align:right;font-variant-numeric:tabular-nums;flex:0 0 30px;font-size:8px}#delete-plant{color:#eb9a92cc}#delete-plant:hover{background:#be464117;border-color:#eb786e4d}.panel-heading{justify-content:space-between;align-items:flex-start;gap:10px;padding:2px 4px 14px;display:flex}.eyebrow{letter-spacing:.25em;color:var(--gold);opacity:.82;margin:0 0 5px;font-size:8px}.panel-heading h2{font-family:var(--serif);letter-spacing:.12em;margin:0;font-size:21px;font-weight:500}.selection-count{color:var(--faint);letter-spacing:.05em;align-items:baseline;gap:3px;padding-top:17px;font-size:10px;display:flex}.selection-count strong{color:var(--green);font-variant-numeric:tabular-nums;font-size:18px;font-weight:400}.plant-list{scrollbar-width:thin;scrollbar-color:#89b79738 transparent;flex-direction:column;gap:6px;min-height:150px;max-height:calc(100vh - 575px);padding-right:3px;display:flex;overflow-y:auto}.plant-list::-webkit-scrollbar{width:4px}.plant-list::-webkit-scrollbar-thumb{background:#89b7973d;border-radius:8px}.plant-card{text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;flex:none;align-items:center;width:100%;transition:background .18s,border-color .18s,transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.plant-place-target{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:11px;padding:5px 2px 5px 9px;display:flex}.plant-card:after{content:"";opacity:0;background:linear-gradient(100deg, var(--plant-glow,#75aa852e), transparent 76%);pointer-events:none;transition:opacity .22s;position:absolute;inset:0}.plant-card:hover{background:#ffffff09;transform:translate(2px)}.plant-card.is-selected{background:#7eab8b13;border-color:#94bda02e}.plant-card.is-selected:after{opacity:1}.plant-card.is-planting{border-color:var(--plant-color,#89b797);background:linear-gradient(100deg, var(--plant-glow,#78b47833), #ffffff06);box-shadow:0 0 0 1px #ffffff09, 0 0 20px var(--plant-glow,#78b47829)}.plant-card.is-planting:after{opacity:.8}.plant-thumb{z-index:1;height:41px;color:var(--plant-color,#78a984);background:radial-gradient(circle at 68% 22%,#ffffff1c,#0000 34%),linear-gradient(145deg,#1e3229eb,#070f0cf2);border-radius:10px;flex:0 0 41px;place-items:center;display:grid;position:relative;box-shadow:inset 0 0 0 1px #ffffff0b}.plant-thumb svg{filter:drop-shadow(0 3px 5px #00000047);width:34px;height:34px;overflow:visible}.plant-meta{z-index:1;flex:1;min-width:0;position:relative}.plant-name{letter-spacing:.06em;color:#dbe5dd;white-space:nowrap;align-items:center;gap:6px;min-width:0;font-size:12px;display:flex}.plant-name-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.plant-name em{letter-spacing:.12em;color:var(--faint);text-transform:uppercase;font-size:8px;font-style:normal}.plant-latin{font-family:var(--serif);letter-spacing:.02em;color:var(--faint);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:9px;font-style:italic;display:block;overflow:hidden}.plant-check{z-index:1;appearance:none;color:#0000;cursor:pointer;background:0 0;border:1px solid #a6bfaf29;border-radius:50%;flex:0 0 19px;place-items:center;width:19px;height:19px;margin:0 8px 0 3px;padding:0;transition:border-color .18s,background .18s,box-shadow .18s;display:grid;position:relative}.plant-check:hover{background:#85c29512;border-color:#a6d6b570}.plant-check svg{width:10px;height:10px}.plant-card.is-selected .plant-check{color:#a9d6b3;background:#85c2951f;border-color:#85c29594;box-shadow:0 0 12px #68ae7b29}.plant-card.is-disabled{opacity:.42}.plant-card.is-disabled:hover{background:0 0;transform:none}.plant-card.is-disabled .plant-place-target,.plant-card.is-disabled .plant-check{cursor:not-allowed}.plant-card.is-disabled .plant-check{border-style:dashed}.hardscape-tools{border-top:1px solid #bfdbcb17;border-bottom:1px solid #bfdbcb17;margin:0 2px 10px;padding:10px 3px}.hardscape-head{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.hardscape-head .eyebrow{margin:0}.hardscape-count{letter-spacing:.08em;color:var(--faint);font-size:9px}.hardscape-count strong{color:var(--gold);font-variant-numeric:tabular-nums;margin-right:2px;font-weight:500}.hardscape-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;display:grid}.hardscape-btn{min-width:0;height:42px;color:var(--muted);cursor:pointer;background:#ffffff05;border:1px solid #bfdbcb1f;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0 2px;transition:color .16s,background .16s,border-color .16s,transform .16s;display:flex}.hardscape-btn svg{width:16px;height:16px}.hardscape-btn span{letter-spacing:.1em;white-space:nowrap;font-size:8px}.hardscape-btn:hover{color:#dbe8df;background:#ffffff0b;border-color:#bfdbcb3d;transform:translateY(-1px)}.hardscape-btn.is-active{color:#f1e7ce;background:linear-gradient(145deg,#c9b18433,#c9b1840f);border-color:#c9b18485;box-shadow:inset 0 0 12px #c9b1840f}.hardscape-btn.is-danger{color:#d78b849e}.hardscape-btn.is-danger:hover{color:#f0a49b;background:#be464114;border-color:#eb786e47}.hardscape-status{min-height:12px;color:var(--faint);letter-spacing:.05em;margin:7px 2px 0;font-size:8.5px;line-height:1.4}.hardscape-selected{background:#62aa8712;border:1px solid #8ad3b233;border-radius:8px;justify-content:space-between;align-items:center;gap:6px;margin-top:7px;padding:4px 4px 4px 8px;display:flex}.hardscape-selected[hidden]{display:none}.selected-label{letter-spacing:.06em;color:#bcd5c6;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:8.5px;overflow:hidden}.selected-actions{flex:none;gap:4px;display:flex}.selected-actions button{color:#c8dad0;letter-spacing:.04em;cursor:pointer;background:#ffffff09;border:1px solid #bfdbcb29;border-radius:6px;height:22px;padding:0 6px;font-size:8.5px;transition:background .15s,border-color .15s,color .15s}.selected-actions button:hover{background:#ffffff12;border-color:#bfdbcb52}#flat-hardscape[aria-pressed=true]{color:var(--green);background:#62aa871f;border-color:#8ad3b257}.hardscape-height{margin-top:5px}#delete-hardscape{color:#eb9a92cc}#delete-hardscape:hover{background:#be464117;border-color:#eb786e4d}.toast{z-index:40;color:#d3e3d8;letter-spacing:.1em;text-align:center;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;-webkit-backdrop-filter:blur(16px);background:#07110dd1;border:1px solid #bfdbcb24;border-radius:999px;max-width:min(360px,100vw - 32px);padding:8px 14px;font-size:9px;transition:opacity .22s,transform .22s,visibility .22s;position:fixed;top:98px;left:50%;transform:translate(-50%,-7px);box-shadow:0 10px 30px #00000047}.toast.is-visible{opacity:1;visibility:visible;transform:translate(-50%)}.view-controls{z-index:35;opacity:0;visibility:hidden;pointer-events:none;align-items:center;gap:8px;transition:opacity .36s,transform .36s,visibility .36s;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%,12px)}body.is-viewing .view-controls{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)}.view-exit{color:#d6e4da;letter-spacing:.1em;cursor:pointer;-webkit-backdrop-filter:blur(16px);background:#07100dad;border:1px solid #c9b1843d;border-radius:999px;align-items:center;gap:7px;padding:9px 13px;font-size:9px;transition:opacity .18s,border-color .18s;display:flex}.view-exit svg{opacity:.78;width:14px;height:14px}.view-exit em{color:var(--faint);letter-spacing:.04em;border:1px solid #bfdbcb24;border-radius:4px;padding:2px 4px;font-size:7px;font-style:normal}.view-exit:hover{border-color:#c9b1847a}.view-sound{color:#c4d4ca;cursor:pointer;-webkit-backdrop-filter:blur(16px);background:#07100dad;border:1px solid #c9b18433;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;transition:color .18s,border-color .18s,opacity .18s;display:grid}.view-sound svg{width:15px;height:15px}.view-sound:hover{color:#e3c993;border-color:#c9b18475}.view-sound.is-muted{color:var(--faint)}.view-watermark{z-index:34;color:#d3e3d866;font-family:var(--serif);letter-spacing:.18em;pointer-events:none;align-items:baseline;gap:5px;font-size:9px;display:none;position:fixed;bottom:30px;right:28px}body.is-viewing .view-watermark{display:flex}.view-watermark i{opacity:.5;font-style:normal}.view-watermark em{font-family:var(--sans);letter-spacing:.06em;opacity:.72;margin-left:1px;font-size:7px;font-style:normal}.icon-btn.is-muted{color:#94a69c8c}.icon-btn.lang-btn{font-family:var(--serif);letter-spacing:.06em;color:var(--muted);font-size:11px}html[lang=en] .text-btn{letter-spacing:.02em;font-size:10.5px}html[lang=ja] .text-btn{letter-spacing:.03em;font-size:10.5px}.topbar,.plant-panel,.fish-panel,.tank-stats,.tank-caption,.hint{transition:opacity .38s,visibility .38s}body.is-viewing .topbar,body.is-viewing .plant-panel,body.is-viewing .fish-panel,body.is-viewing .tank-stats,body.is-viewing .tank-caption,body.is-viewing .hint{opacity:0;visibility:hidden;pointer-events:none}.panel-footer{border-top:1px solid #bfdbcb14;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:5px;margin-top:10px;padding:8px 4px 0;display:grid}.text-btn{min-height:28px;color:var(--gold);letter-spacing:.04em;white-space:nowrap;cursor:pointer;background:#ffffff09;border:1px solid #bfdbcb24;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:11px;transition:background .18s,border-color .18s,color .18s,opacity .18s;display:flex}.text-btn:hover{opacity:1;background:#ffffff13;border-color:#c9b18457}.text-btn.muted{color:var(--muted);background:#ffffff05;border-color:#bfdbcb1a}.text-btn.muted:hover{color:#c7d8cd;border-color:#bfdbcb38}.text-btn[hidden]{display:none}.plant-done{color:var(--green);background:linear-gradient(120deg,#62aa872e,#62aa8712);border-color:#8ad3b24d;font-weight:500}.plant-done:hover{background:linear-gradient(120deg,#62aa8745,#62aa871a);border-color:#8ad3b280}.spark{background:var(--gold);border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #c9b184b8}.fish-panel{z-index:20;border-radius:18px;width:300px;padding:16px;position:fixed;bottom:28px;right:28px}.fish-title-row{align-items:center;gap:10px;display:flex}.fish-icon{background:radial-gradient(circle at 38% 45%,#3facb32e,#05100d40 70%);border-radius:9px;flex:0 0 55px;place-items:center;height:34px;display:grid}.fish-icon svg{filter:drop-shadow(0 0 7px #44d6e026);width:52px}.fish-title-row h3{font-family:var(--serif);letter-spacing:.06em;white-space:nowrap;margin:0;font-size:14px;font-weight:500}.fish-title-row h3 em{font-family:var(--serif);letter-spacing:.02em;color:var(--faint);margin-top:3px;font-size:8px;font-weight:400;display:block}.fish-species{gap:5px;margin-top:11px;display:flex}.fish-species-btn{min-width:0;height:28px;color:var(--faint);letter-spacing:.02em;cursor:pointer;background:#ffffff06;border:1px solid #bfdbcb1f;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:4px;padding:0 4px;font-size:8px;transition:background .16s,border-color .16s,color .16s,box-shadow .16s;display:flex}.fish-species-btn i{background:linear-gradient(135deg, var(--fish-a,#6ee8ea), var(--fish-b,#89b797));width:6px;height:6px;box-shadow:0 0 6px var(--fish-a,#6ee8ea80);border-radius:50%;flex:0 0 6px}.fish-species-btn span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.fish-species-btn:hover{color:#d8e6de;background:#ffffff0d;border-color:#bfdbcb40}.fish-species-btn.is-active{color:#e6f2ec;border-color:var(--fish-a,#6ee8ea80);background:linear-gradient(120deg,#ffffff13,#ffffff06);box-shadow:0 0 12px #6ee8ea14}.fish-species-hint{color:var(--faint);letter-spacing:.06em;text-align:right;margin:5px 1px 0;font-size:7.5px;line-height:1.3}.fish-control{margin-top:13px}.fish-count-row{color:var(--muted);letter-spacing:.12em;justify-content:space-between;align-items:baseline;font-size:10px;display:flex}.fish-count-row output{font-family:var(--serif);color:var(--cyan);font-variant-numeric:tabular-nums;font-size:18px}input[type=range]{--track:#c2dccc26;appearance:none;cursor:pointer;background:0 0;width:100%;height:14px;margin:6px 0 1px}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, #6ee8eab3 var(--progress,60%), var(--track) var(--progress,60%));border-radius:4px;height:2px}input[type=range]::-moz-range-track{background:linear-gradient(90deg, #6ee8eab3 var(--progress,60%), var(--track) var(--progress,60%));border-radius:4px;height:2px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#7bc8c5;border:1px solid #e5fffbbf;border-radius:50%;width:11px;height:11px;margin-top:-4.5px;box-shadow:0 0 0 3px #6ee8ea17,0 0 12px #6ee8ea59}input[type=range]::-moz-range-thumb{background:#7bc8c5;border:1px solid #e5fffbbf;border-radius:50%;width:11px;height:11px;box-shadow:0 0 0 3px #6ee8ea17,0 0 12px #6ee8ea59}.fish-actions{gap:7px;margin-top:10px;display:flex}.feed-btn,.tiny-btn{color:#a9e1df;letter-spacing:.1em;cursor:pointer;background:#6ee8ea0e;border:1px solid #6ee8ea2b;border-radius:9px;height:32px;font-size:10px;transition:background .18s,border-color .18s,transform .18s}.feed-btn{flex:1;justify-content:center;align-items:center;gap:7px;display:flex}.feed-btn:hover,.tiny-btn:hover{background:#6ee8ea1a;border-color:#6ee8ea52;transform:translateY(-1px)}.feed-btn:active{transform:translateY(0)}.feed-dot{background:var(--gold);border-radius:50%;width:5px;height:5px;box-shadow:0 0 7px #c9b184d9}.tiny-btn{color:var(--faint);flex:0 0 57px}.tiny-btn[aria-pressed=true]{color:#a9e1df;background:#6ee8ea1a;border-color:#6ee8ea52}.tank-stats{z-index:20;border-radius:14px;gap:24px;padding:11px 17px;display:flex;position:fixed;bottom:28px;left:28px}.tank-stats div{flex-direction:column;gap:3px;display:flex}.tank-stats span{letter-spacing:.16em;color:var(--faint);font-size:8px}.tank-stats strong{font-family:var(--serif);color:#c9d8cf;font-variant-numeric:tabular-nums;font-size:13px;font-weight:400}.tank-stats small{font-family:var(--sans);color:var(--faint);margin-left:2px;font-size:7px}.tank-caption{z-index:20;pointer-events:none;opacity:.72;align-items:center;gap:11px;display:flex;position:fixed;bottom:29px;left:50%;transform:translate(-50%)}.tank-caption p{font-family:var(--serif);letter-spacing:.2em;color:#aabbb0;white-space:nowrap;margin:0;font-size:10px}.tank-caption em{font-family:var(--sans);letter-spacing:.1em;color:var(--faint);margin-left:7px;font-size:8px;font-style:normal}.rule{background:linear-gradient(90deg,#0000,#c9b1847a);width:28px;height:1px;display:block}.rule:last-child{transform:scaleX(-1)}.hint{z-index:20;color:#bfd2c68a;letter-spacing:.12em;pointer-events:none;-webkit-backdrop-filter:blur(10px);background:#050d0a52;border:1px solid #bfdbcb17;border-radius:999px;align-items:center;gap:8px;padding:7px 13px;font-size:9px;display:flex;position:fixed;bottom:65px;left:50%;transform:translate(-50%)}.mouse{border:1px solid #bfd2c670;border-radius:6px;width:10px;height:14px;position:relative}.mouse:after{content:"";background:#bfd2c69e;width:1px;height:3px;position:absolute;top:3px;left:50%;transform:translate(-50%)}.loading{z-index:100;background:radial-gradient(circle at 50% 44%,#193328b3,#0000 45%),#040a08;place-items:center;transition:opacity .9s cubic-bezier(.22,1,.36,1),visibility .9s;display:grid;position:fixed;inset:0}.loading.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-inner{text-align:center;width:190px}.loading-mark{width:52px;height:52px;color:var(--gold);border:1px solid #c9b1845c;border-radius:50%;place-items:center;margin:0 auto 18px;animation:2.8s ease-in-out infinite breathe;display:grid}.loading-mark svg{width:34px;height:34px}.loading p{font-family:var(--serif);letter-spacing:.3em;color:#b5c6bb;margin:0 0 13px;font-size:11px}.load-track{background:#bfdbcb1f;width:100%;height:1px;overflow:hidden}.load-fill{background:linear-gradient(90deg, #c9b18433, var(--gold));width:0;height:100%;transition:width .26s;box-shadow:0 0 9px #c9b18480}@keyframes breathe{0%,to{opacity:.74;transform:scale(1);box-shadow:0 0 #c9b18400}50%{opacity:1;transform:scale(1.05);box-shadow:0 0 26px #c9b1841c}}.webgl-error[hidden]{display:none!important}.webgl-error{z-index:110;text-align:center;background:#040a08;place-content:center;padding:30px;display:grid;position:fixed;inset:0}.webgl-error h2{font-family:var(--serif);letter-spacing:.12em;font-weight:400}.webgl-error p{color:var(--muted);font-size:12px}@media (width<=1120px){.plant-panel{border-radius:19px;width:auto;padding:13px 13px 10px;inset:auto 16px 16px}.placement-tip{color:var(--faint);letter-spacing:.025em;margin:-6px 4px 10px;font-size:8px;line-height:1.4}.panel-heading{align-items:center;padding:0 4px 9px}.panel-heading h2{font-size:16px}.eyebrow{display:none}.selection-count{padding-top:0}.hardscape-tools{border-top:0;align-items:center;gap:8px;margin:0 0 8px;padding:0 0 8px;display:flex}.hardscape-head,.hardscape-status{display:none}.hardscape-actions{flex:none;gap:5px;display:flex}.hardscape-btn{flex-direction:row;gap:5px;width:auto;min-width:48px;height:32px;padding:0 8px}.hardscape-btn svg{width:14px;height:14px}.hardscape-selected{flex:0 auto;margin:0 0 0 auto;padding:4px 4px 4px 7px}.plant-list{scrollbar-width:none;flex-direction:row;gap:7px;min-height:0;max-height:none;padding:0 0 5px;overflow:auto hidden}.plant-list::-webkit-scrollbar{display:none}.plant-card{flex:0 0 156px;padding:6px 7px}.plant-thumb{flex-basis:36px;height:36px}.plant-thumb svg{width:29px;height:29px}.plant-name em,.plant-latin{display:none}.panel-footer{margin-top:4px;padding-top:7px}.fish-panel{width:278px;bottom:300px;right:16px}body.is-plant-editing .fish-panel{opacity:0;visibility:hidden;pointer-events:none}.tank-stats,.tank-caption,.hint{display:none}}@media (width<=600px){.brand-copy{display:none}.top-actions{margin-left:auto}}@media (width<=720px){#app{min-height:520px}.topbar{height:72px;padding:14px 14px 0}.brand-mark{width:34px;height:34px}.brand-mark svg{width:25px;height:25px}.brand-copy h1{font-size:18px}.brand-copy p{display:none}.light-switch{padding:3px}.light-btn{justify-content:center;width:30px;height:30px;padding:0}.light-btn span{display:none}.icon-btn{width:36px;height:36px}.fish-panel{border-radius:15px;width:220px;padding:11px 13px;bottom:296px;right:10px}.fish-icon{display:none}.fish-title-row h3{font-size:12px}.fish-control{margin-top:7px}.fish-count-row output{font-size:15px}.fish-actions{margin-top:6px}.feed-btn,.tiny-btn{height:28px}.plant-panel{border-radius:16px;padding:10px;bottom:10px;left:10px;right:10px}.placement-tip{color:var(--faint);letter-spacing:.025em;margin:-6px 4px 10px;font-size:8px;line-height:1.4}.panel-heading{padding-bottom:6px}.panel-heading h2{font-size:14px}.selection-count{font-size:9px}.selection-count strong{font-size:15px}.hardscape-tools{gap:5px}.hardscape-btn{gap:4px;width:auto;min-width:46px;height:30px;padding:0 6px}.hardscape-btn span{font-size:7.5px}.hardscape-selected{margin-left:auto}.selected-label{display:none}.plant-card{flex-basis:138px}.plant-name{font-size:11px}.panel-footer{padding-top:6px}.text-btn{font-size:10.5px}}@media (width<=380px){.topbar{height:64px;padding:8px 10px 0}.brand{gap:8px}.brand-mark{width:30px;height:30px}.brand-mark svg{width:22px;height:22px}.top-actions{gap:5px}.light-switch{gap:1px;padding:2px}.light-btn{width:25px;height:25px}.icon-btn{width:30px;height:30px}.icon-btn svg{width:14px;height:14px}.icon-btn.lang-btn{font-size:10px}}@media (width>=1121px){body.is-plant-selected .tank-stats{opacity:0;visibility:hidden;pointer-events:none}body.is-hardscape-active .tank-stats{display:none}}@media (height<=740px) and (width>=1121px){.plant-panel{top:94px}.plant-panel .plant-list{min-height:100px;max-height:calc(100vh - 557px)}.tank-stats,.tank-caption,.hint{display:none}}@media (height<=540px) and (width>=1121px){.plant-panel .plant-list{min-height:40px;max-height:40px}}@media (height<=480px) and (width>=1121px){.plant-panel{max-height:calc(100vh - 106px);overflow-y:auto}}.rotate-overlay{z-index:95;background:radial-gradient(circle at 50% 40%,#233f34d1,#0000 48%),#040a08;place-items:center;padding:24px;display:none;position:fixed;inset:0}.rotate-card{text-align:center;-webkit-backdrop-filter:blur(18px);background:#07100dd1;border:1px solid #bfdbcb24;border-radius:20px;width:min(320px,100%);padding:26px 24px 22px;box-shadow:0 28px 80px #0000006b}.rotate-phone{width:52px;height:52px;color:var(--gold);border:1px solid #c9b18452;border-radius:50%;place-items:center;margin:0 auto 14px;display:grid}.rotate-phone svg{width:34px;height:34px;animation:3.2s ease-in-out infinite rotate-device}@keyframes rotate-device{0%,24%{transform:rotate(0)}62%,to{transform:rotate(90deg)}}.rotate-card h2{font-family:var(--serif);letter-spacing:.1em;margin:4px 0 8px;font-size:21px;font-weight:500}.rotate-message{color:var(--muted);letter-spacing:.05em;margin:0 0 18px;font-size:10px;line-height:1.7}.rotate-actions{flex-direction:column;gap:7px;display:flex}.rotate-primary,.rotate-secondary{letter-spacing:.12em;cursor:pointer;border-radius:9px;height:36px;font-size:10px}.rotate-primary{color:#f0dcb4;background:linear-gradient(135deg,#c9b18433,#c9b18412);border:1px solid #c9b18466}.rotate-secondary{color:var(--faint);background:0 0;border:1px solid #bfdbcb1f}.rotate-secondary:hover{color:var(--muted)}@media (orientation:portrait) and (pointer:coarse){.rotate-overlay{display:grid}}body.portrait-dismissed .rotate-overlay{display:none}@media (orientation:landscape) and (height<=560px) and (width<=1100px){.topbar{height:54px;padding:7px 12px 0}.brand-mark{width:31px;height:31px}.brand-mark svg{width:23px;height:23px}.brand-copy h1{font-size:17px}.brand-copy p{display:none}.light-switch{padding:2px}.light-btn{justify-content:center;width:28px;height:28px;padding:0}.light-btn span{display:none}.icon-btn{width:32px;height:32px}.icon-btn svg{width:15px;height:15px}.plant-panel{border-radius:14px;flex-direction:column;width:244px;padding:9px 9px 7px;display:flex;inset:58px auto 6px 10px;overflow:hidden}.panel-heading{align-items:center;padding:0 2px 6px}.panel-heading h2{font-size:15px}.eyebrow{display:none}.selection-count{padding-top:0;font-size:9px}.selection-count strong{font-size:15px}.hardscape-tools{margin:0 0 6px;padding:0 0 6px;display:block}.hardscape-head,.hardscape-status,.placement-tip{display:none}.hardscape-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;display:grid}.hardscape-btn{border-radius:6px;flex-direction:column;gap:1px;width:auto;min-width:0;height:34px;padding:0 1px}.hardscape-btn svg{width:12px;height:12px}.hardscape-btn span{letter-spacing:.02em;font-size:7px}.hardscape-selected{border-radius:6px;margin-top:4px;padding:3px 4px}.selected-label{display:none}.selected-actions button{height:20px;padding:0 6px;font-size:8px}.plant-tools{border-radius:9px;margin:0 0 4px;padding:5px}.plant-tools-row{gap:5px}.plant-tool-count{font-size:8px}.plant-tool-count strong{font-size:11px}.plant-edit-btn{height:21px;padding:0 6px;font-size:8px}.plant-status{display:none}.plant-height{margin-top:4px;padding:4px 5px}.plant-height>span,.plant-height output{font-size:7.5px}.plant-height output{flex-basis:26px}.plant-list{flex-direction:column;flex:1;gap:3px;min-height:0;max-height:none;padding:0 2px 0 0;overflow:hidden auto}.plant-list::-webkit-scrollbar{width:3px;display:block}.plant-card{flex:none;padding:0}.plant-place-target{gap:6px;padding:3px 2px 3px 5px}.plant-thumb{border-radius:7px;flex-basis:30px;height:30px}.plant-thumb svg{width:25px;height:25px}.plant-name{font-size:10px}.plant-name em{font-size:7px}.plant-latin{display:none}.plant-check{flex-basis:16px;width:16px;height:16px;margin:0 4px 0 2px}.panel-footer{gap:4px;margin-top:4px;padding:5px 2px 0}.text-btn{gap:4px;min-height:24px;padding:0 4px;font-size:9.5px}.spark{width:4px;height:4px}.fish-panel{border-radius:13px;width:206px;padding:8px 10px;bottom:10px;right:10px}.fish-icon{display:none}.fish-title-row h3{font-size:12px}.fish-title-row h3 em{font-size:7px}.fish-species{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin-top:6px;display:grid}.fish-species-btn{border-radius:6px;gap:3px;height:24px;padding:0 2px;font-size:7px}.fish-species-btn i{flex-basis:5px;width:5px;height:5px}.fish-species-hint{display:none}.fish-control{margin-top:6px}.fish-count-row{font-size:9px}.fish-count-row output{font-size:15px}.fish-actions{gap:5px;margin-top:5px}.feed-btn,.tiny-btn{height:26px;font-size:9px}.tank-stats,.tank-caption,.hint{display:none}.view-watermark{letter-spacing:.12em;font-size:7.5px;bottom:12px;right:12px}body.is-plant-editing .fish-panel{opacity:1;visibility:visible;pointer-events:auto}}
