:root{color-scheme:light;--ink: #173c34;--ink-soft: #5f746c;--ink-faint: #85968f;--accent: #2c765d;--accent-strong: #1e5c49;--accent-warm: #d9775d;--surface: rgba(249, 252, 247, .78);--surface-strong: rgba(255, 255, 253, .92);--surface-border: rgba(56, 92, 77, .15);--surface-shadow: 0 18px 50px rgba(43, 72, 59, .12), 0 2px 8px rgba(43, 72, 59, .08);--focus-ring: rgba(44, 118, 93, .24);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--top-offset: calc(18px + var(--safe-top));--side-offset: 18px;--dock-bottom: calc(18px + var(--safe-bottom))}body[data-mood=day]{--surface: rgba(249, 252, 247, .74);--accent: #216f67;--accent-strong: #15534d}body[data-mood=evening]{--ink: #402f2d;--ink-soft: #75625f;--accent: #a55747;--accent-strong: #814033;--accent-warm: #c2684f;--surface: rgba(255, 247, 239, .8);--surface-border: rgba(105, 62, 50, .15);--focus-ring: rgba(165, 87, 71, .22)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:#dcebd6;color:var(--ink);font-family:Inter,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button,input,summary,a{font:inherit}button,summary,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}button svg,a svg{width:18px;height:18px;flex:0 0 auto;stroke-width:1.8}#stage,#three-canvas,#overlay{position:fixed;inset:0}#stage{isolation:isolate;overflow:hidden}#three-canvas{width:100%;height:100%;display:block;touch-action:none}#overlay{z-index:2;pointer-events:none}.surface{pointer-events:auto;background:var(--surface);border:1px solid var(--surface-border);border-radius:8px;box-shadow:var(--surface-shadow);backdrop-filter:blur(20px) saturate(120%);-webkit-backdrop-filter:blur(20px) saturate(120%)}.hidden{display:none!important}.eyebrow{display:block;color:var(--accent);font-size:10px;font-weight:750;line-height:1.2;letter-spacing:.12em}#topbar{position:absolute;top:var(--top-offset);left:max(var(--side-offset),var(--safe-left));right:max(var(--side-offset),var(--safe-right));display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);align-items:start;gap:12px;pointer-events:none}.brand-lockup{justify-self:start;min-width:186px;height:56px;padding:7px 11px 7px 8px;display:inline-flex;align-items:center;gap:10px;color:var(--ink);cursor:pointer;text-align:left}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:#fff}.brand-mark svg{width:21px;height:21px}.brand-copy{min-width:0;display:grid;gap:2px}.brand-copy strong{font-family:Iowan Old Style,Songti SC,Georgia,serif;font-size:17px;font-weight:650;line-height:1}.brand-copy small{max-width:130px;overflow:hidden;color:var(--ink-soft);font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.segmented{height:46px;padding:4px;display:flex;align-items:stretch;gap:2px;justify-self:center}.tab{min-width:92px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:6px;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:13px;font-weight:650;transition:color .16s ease,background .16s ease,transform .16s ease}.tab:hover{color:var(--ink);background:#ffffff75}.tab.active{background:var(--accent);color:#fff}.environment-tools{justify-self:end;height:46px;padding:4px;display:flex;align-items:center;gap:2px}.icon-button{position:relative;width:38px;height:38px;padding:0;display:inline-grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease,opacity .15s ease}.icon-button:hover{background:#ffffff9e;color:var(--accent-strong);transform:translateY(-1px)}.icon-button:active{transform:scale(.94)}.icon-button:disabled{color:var(--ink-faint);cursor:not-allowed;opacity:.38;transform:none}[data-tooltip]:after{position:absolute;left:50%;bottom:calc(100% + 8px);z-index:20;max-width:160px;padding:5px 7px;border-radius:5px;background:#173c34eb;color:#fff;content:attr(data-tooltip);font-size:11px;font-weight:550;line-height:1.2;opacity:0;pointer-events:none;transform:translate(-50%,3px);transition:opacity .13s ease,transform .13s ease;white-space:nowrap}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{opacity:1;transform:translate(-50%)}.environment-tools [data-tooltip]:after{top:calc(100% + 8px);bottom:auto}.studio-panel,.library-panel{position:absolute;top:calc(var(--top-offset) + 76px);bottom:calc(var(--dock-bottom) + 76px);left:max(var(--side-offset),var(--safe-left));width:min(320px,calc(100vw - 36px));min-height:144px;display:flex;flex-direction:column;overflow:hidden;transition:width .22s ease,max-height .22s ease,transform .22s ease}.panel-head{min-height:72px;padding:16px 14px 12px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--surface-border)}.panel-head-actions{display:flex;align-items:center;gap:5px}.template-count{min-width:24px;color:var(--ink-faint);font-size:11px;font-variant-numeric:tabular-nums;text-align:center}.panel-head h1,.seed-panel h2{margin:3px 0 0;font-family:Iowan Old Style,Songti SC,Georgia,serif;font-size:21px;font-weight:650;line-height:1.15;letter-spacing:0}.panel-scroll{min-height:0;padding:4px 18px 18px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(44,118,93,.32) transparent}.panel-scroll::-webkit-scrollbar,.sliders::-webkit-scrollbar{width:5px}.panel-scroll::-webkit-scrollbar-thumb,.sliders::-webkit-scrollbar-thumb{border-radius:5px;background:#2c765d47}.control-section{padding:15px 0 16px;border-bottom:1px solid var(--surface-border)}.section-title{min-height:20px;margin-bottom:11px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.section-title h2{margin:0;color:var(--ink);font-size:13px;font-weight:720;line-height:1.3}.section-title>span{color:var(--ink-faint);font-size:10px;white-space:nowrap}.preset-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.preset-controls button{min-width:0;height:52px;padding:6px 2px;display:grid;place-items:center;gap:2px;border:1px solid transparent;border-radius:6px;background:#ffffff57;color:var(--ink-soft);cursor:pointer;font-size:11px;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}.preset-controls button:hover,.preset-controls button.active{border-color:var(--surface-border);background:var(--surface-strong);color:var(--accent-strong);transform:translateY(-1px)}.preset-controls svg{width:17px;height:17px}.gene-control{margin-top:13px;display:grid;grid-template-columns:1fr 36px;align-items:center;gap:5px 8px;color:var(--ink-soft);font-size:12px}.gene-control>span{display:inline-flex;align-items:center;gap:7px}.gene-control svg{width:15px;height:15px;color:var(--accent)}.gene-control output{color:var(--ink);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700;text-align:right}input[type=range]{grid-column:1 / -1;width:100%;height:18px;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:3px;background:#2a5b492e}input[type=range]::-webkit-slider-thumb{width:15px;height:15px;margin-top:-6px;appearance:none;-webkit-appearance:none;border:2px solid var(--accent);border-radius:50%;background:#fff;box-shadow:0 1px 5px #173c342e}input[type=range]::-moz-range-track{height:3px;border-radius:3px;background:#2a5b492e}input[type=range]::-moz-range-thumb{width:12px;height:12px;border:2px solid var(--accent);border-radius:50%;background:#fff}.palette-controls{display:flex;align-items:center;gap:9px}.palette-controls button{position:relative;width:29px;height:29px;padding:3px;border:1px solid transparent;border-radius:50%;background:transparent;cursor:pointer}.palette-controls button.active{border-color:var(--accent)}.palette-controls .swatch{width:21px;height:21px;display:block;border:2px solid rgba(255,255,255,.72);border-radius:50%;box-shadow:0 1px 4px #173c342e}.seed-swatch{background:conic-gradient(#4f7656,#e1ad5f,#7aaea1,#c36e67,#4f7656)}.moss{background:#557a50}.spring{background:#5f9f72}.amber{background:#c69a4d}.coral{background:#c96f63}.violet{background:#8b76a8}.advanced-controls{padding:13px 0 0}.advanced-controls summary{padding:2px 0;display:flex;align-items:center;justify-content:space-between;color:var(--ink-soft);cursor:pointer;font-size:12px;font-weight:650;list-style:none}.advanced-controls summary::-webkit-details-marker{display:none}.advanced-controls summary span{color:var(--ink-faint);font-size:10px;font-weight:500}.sliders{margin-top:10px}.slider-item{margin-top:11px}.slider-item label{margin-bottom:2px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--ink-soft);font-size:11px}.slider-item .val{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:650}.studio-panel.collapsed,.library-panel.collapsed{bottom:auto;width:194px;min-height:0;height:72px}.studio-panel.collapsed .panel-scroll,.library-panel.collapsed .template-list,.library-panel.collapsed .empty-library{display:none}.studio-panel.collapsed .panel-head,.library-panel.collapsed .panel-head{border-bottom:0}#panelToggle svg{transition:transform .18s ease}#panelToggle.is-collapsed svg{transform:rotate(180deg)}#libraryToggle svg{transition:transform .18s ease}#libraryToggle.is-collapsed svg{transform:rotate(180deg)}.template-list{min-height:0;padding:9px;display:flex;flex:1;flex-direction:column;gap:6px;overflow:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(44,118,93,.32) transparent}.template-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;border:1px solid transparent;border-radius:6px;background:#ffffff52;transition:border-color .15s ease,background .15s ease}.template-item:hover,.template-item.active{border-color:var(--surface-border);background:var(--surface-strong)}.template-item.active{box-shadow:inset 3px 0 0 var(--accent)}.template-select{min-width:0;min-height:58px;padding:8px 6px 8px 11px;display:grid;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:9px;border:0;background:transparent;color:var(--ink);cursor:pointer;text-align:left}.template-swatch{width:23px;height:23px;border:2px solid rgba(255,255,255,.75);border-radius:50%;box-shadow:0 1px 5px #173c342e}.template-swatch.palette-auto{background:conic-gradient(#4f7656,#d49a62,#718ca2,#a76d75,#4f7656)}.template-swatch.palette-0{background:#557a50}.template-swatch.palette-1{background:#5f9f72}.template-swatch.palette-2{background:#c69a4d}.template-swatch.palette-3{background:#c96f63}.template-swatch.palette-4{background:#8b76a8}.template-copy{min-width:0;display:grid;gap:3px}.template-copy strong,.template-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-copy strong{font-family:Iowan Old Style,Songti SC,Georgia,serif;font-size:14px;font-weight:650}.template-copy small{color:var(--ink-faint);font-size:10px}.template-actions{padding-right:5px;display:flex;align-items:center;gap:1px}.template-actions .icon-button{width:30px;height:30px}.template-actions svg{width:15px;height:15px}.empty-library{min-height:150px;padding:24px;display:grid;place-items:center;align-content:center;gap:9px;color:var(--ink-faint);font-size:11px;text-align:center}.empty-library svg{width:22px;height:22px}.plant-card{position:absolute;top:calc(var(--top-offset) + 92px);right:max(calc(var(--side-offset) + 6px),var(--safe-right));width:min(300px,32vw);color:var(--ink);pointer-events:none;text-align:right;text-shadow:0 1px 14px rgba(255,255,255,.84)}.plant-card>span{color:var(--accent);font-size:10px;font-weight:750;letter-spacing:.12em}.plant-card h2{margin:5px 0 4px;font-family:Iowan Old Style,Songti SC,Georgia,serif;font-size:25px;font-weight:650;line-height:1.15;letter-spacing:0}.plant-card p,.plant-card small{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.6}.plant-card small{display:block;margin-top:2px;color:var(--ink-faint);font-size:10px}.seed-panel{position:absolute;top:calc(var(--top-offset) + 68px);left:max(var(--side-offset),var(--safe-left));width:min(420px,calc(100vw - 36px));padding:16px}.seed-panel-head{margin-bottom:13px;display:flex;align-items:flex-start;justify-content:space-between}.seed-panel h2{font-size:18px}.seed-row{display:flex;gap:7px}#seedInput{min-width:0;flex:1;height:40px;padding:0 11px;border:1px solid var(--surface-border);border-radius:6px;background:#ffffffad;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;outline:0}.command-button,.primary-command{min-height:40px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:6px;cursor:pointer;font-size:12px;font-weight:700}.command-button{background:var(--accent);color:#fff}.seed-panel>p{margin:10px 0 0;color:var(--ink-faint);font-size:11px;line-height:1.5}.tool-dock{position:absolute;left:50%;bottom:var(--dock-bottom);min-height:54px;padding:7px;display:flex;align-items:center;gap:4px;transform:translate(-50%)}.tool-dock .icon-button{width:40px;height:40px}.primary-command{height:40px;min-width:126px;margin:0 3px;background:var(--accent);color:#fff;box-shadow:0 7px 18px #1e5c4933;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.primary-command:hover{background:var(--accent-strong);transform:translateY(-1px);box-shadow:0 9px 22px #1e5c4940}.primary-command:active{transform:scale(.97)}.more-menu{position:absolute;right:max(var(--side-offset),var(--safe-right));bottom:calc(var(--dock-bottom) + 66px);width:170px;padding:6px}.more-menu button,.more-menu a{width:100%;height:38px;padding:0 10px;display:flex;align-items:center;gap:9px;border:0;border-radius:5px;background:transparent;color:var(--ink);cursor:pointer;text-decoration:none;font-size:12px;text-align:left}.more-menu button:hover,.more-menu a:hover{background:#ffffff8f}.hint{position:absolute;left:50%;bottom:calc(var(--dock-bottom) + 68px);color:#173c3494;font-size:11px;pointer-events:none;text-align:center;text-shadow:0 1px 10px rgba(255,255,255,.9);transform:translate(-50%);white-space:nowrap}.toast{position:absolute;left:50%;bottom:calc(var(--dock-bottom) + 78px);z-index:40;max-width:min(360px,calc(100vw - 32px));padding:8px 12px;border-radius:6px;background:#173c34ed;color:#fff;font-size:12px;font-weight:600;line-height:1.4;opacity:0;pointer-events:none;text-align:center;transform:translate(-50%,6px);transition:opacity .18s ease,transform .18s ease}.toast.show{opacity:1;transform:translate(-50%)}.webgl-fallback{position:absolute;inset:50% auto auto 50%;width:min(360px,calc(100vw - 32px));padding:18px;border:1px solid var(--surface-border);border-radius:8px;background:var(--surface-strong);color:var(--ink);box-shadow:var(--surface-shadow);pointer-events:auto;text-align:center;transform:translate(-50%,-50%)}@media (max-width: 820px){:root{--top-offset: calc(10px + var(--safe-top));--side-offset: 10px;--dock-bottom: calc(10px + var(--safe-bottom))}#topbar{grid-template-columns:1fr auto;grid-template-areas:"brand environment" "tabs tabs";gap:7px}.brand-lockup{grid-area:brand;min-width:0;width:min(190px,calc(100vw - 160px));height:48px}.brand-mark{width:34px;height:34px}.environment-tools{grid-area:environment;height:48px}.segmented{grid-area:tabs;width:min(250px,72vw);height:40px;justify-self:center}.tab{min-width:0;flex:1;padding:0 12px}.studio-panel,.library-panel{top:auto;right:max(var(--side-offset),var(--safe-right));bottom:calc(var(--dock-bottom) + 64px);left:max(var(--side-offset),var(--safe-left));width:auto;max-height:min(42dvh,420px)}.studio-panel.collapsed,.library-panel.collapsed{top:auto;right:auto;bottom:calc(var(--dock-bottom) + 64px);width:188px;height:58px}.panel-head{min-height:58px;padding:11px 11px 10px 14px}.panel-head h1{font-size:18px}.panel-scroll{padding:1px 14px 14px}.plant-card{top:calc(var(--top-offset) + 101px);right:12px;left:12px;width:auto;text-align:center}.plant-card h2{margin-top:3px;font-size:21px}.seed-panel{top:calc(var(--top-offset) + 98px);right:max(var(--side-offset),var(--safe-right));left:max(var(--side-offset),var(--safe-left));width:auto}.tool-dock{right:max(var(--side-offset),var(--safe-right));left:max(var(--side-offset),var(--safe-left));width:auto;min-height:54px;justify-content:space-between;transform:none}.tool-dock .icon-button{width:38px;height:38px}.primary-command{min-width:112px;padding:0 11px}.hint{display:none}.more-menu{right:max(var(--side-offset),var(--safe-right));bottom:calc(var(--dock-bottom) + 62px)}.toast{bottom:calc(var(--dock-bottom) + 68px)}[data-tooltip]:after{display:none}}@media (max-width: 390px){.environment-tools .icon-button{width:34px;height:38px}.brand-lockup{width:calc(100vw - 136px);padding-right:7px}.brand-copy small{max-width:100px}.tool-dock{gap:1px;padding:6px}.tool-dock .icon-button{width:34px;height:38px}.primary-command{min-width:100px;margin:0;font-size:11px}}@media (max-height: 650px) and (orientation: landscape){#topbar{grid-template-columns:1fr auto 1fr;grid-template-areas:"brand tabs environment"}.studio-panel,.library-panel{top:calc(var(--top-offset) + 58px);right:auto;bottom:calc(var(--dock-bottom) + 58px);width:286px;max-height:none}.plant-card{top:calc(var(--top-offset) + 65px);right:14px;left:auto;width:220px;text-align:right}.tool-dock{right:auto;left:50%;width:auto;transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
