:root{--paper:#eee4cc;--paper-deep:#dfcfad;--ink:#2e271f;--muted:#756a58;--leaf:#596b46;--leaf-dark:#34452f;--wax:#c78939;--flame:#e86f39;--night:#6d6680;--line:#a99a7b;--good:#47623f;--bad:#9a4334;--shadow:rgba(57,42,24,.15)}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{background:var(--paper);color:var(--ink);font:14px/1.35 Georgia,serif;touch-action:none;user-select:none;-webkit-user-select:none}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.28;background-image:repeating-linear-gradient(8deg,transparent 0 13px,rgba(71,51,29,.08) 14px),repeating-linear-gradient(91deg,transparent 0 17px,rgba(255,255,255,.16) 18px)}
button{font:inherit;color:inherit;border:0;border-radius:0;cursor:pointer;touch-action:none}
button:focus-visible{outline:3px solid #7b3e92;outline-offset:3px}
button:disabled{opacity:.38;cursor:not-allowed}
.app{position:relative;height:100dvh;max-width:1180px;margin:auto;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:grid;grid-template:auto minmax(0,1fr)/1fr;gap:12px}
.masthead{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--ink);padding:0 2px 10px}
.kicker,.label,.wax-readout>span{margin:0;color:var(--muted);font:700 10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em}
h1{font-size:clamp(31px,5vw,55px);line-height:.92;margin:4px 0 0;font-weight:500;letter-spacing:-.04em}
.wax-readout{display:grid;gap:7px;justify-items:end}.wax-pips{display:flex;gap:4px}.wax-pips i{width:9px;height:24px;background:var(--wax);clip-path:polygon(18% 0,82% 0,100% 90%,50% 100%,0 90%)}.wax-pips i.spent{background:transparent;outline:1px solid var(--line);outline-offset:-1px}
.game{min-height:0;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(285px,.55fr);gap:18px}
.garden-panel,.control-panel{min-height:0}
.garden-panel{display:grid;grid-template:auto minmax(190px,1fr) auto/1fr;padding-top:6px}
.brief{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.brief div{display:grid;gap:2px}.brief strong{font-size:18px}.brief p{max-width:440px;margin:0;color:var(--muted);text-align:right;font-style:italic}
.plants{display:grid;grid-template-columns:repeat(5,1fr);align-items:end;gap:6px;padding:10px 8px 0;border-bottom:5px double var(--ink);min-height:0}
.plant{position:relative;height:100%;min-width:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px}
.plant:before{content:"";position:absolute;left:12%;right:12%;bottom:0;height:10px;border-radius:50%;background:#66513a}
.stem{position:absolute;bottom:11px;width:4px;height:calc(18px + var(--growth)*1%);max-height:72%;background:var(--leaf-dark);transition:height .35s ease}
.plant.night .stem{background:#514c62}
.leaf{position:absolute;width:28px;height:17px;background:var(--leaf);border:2px solid var(--leaf-dark);border-radius:100% 0 100% 0;transform-origin:0 100%;transition:bottom .35s ease,opacity .25s ease;bottom:calc(25px + var(--growth)*.52%);opacity:var(--leaf-show)}
.leaf.one{transform:rotate(-28deg) translateX(-2px)}.leaf.two{transform:scaleX(-1) rotate(-28deg) translateX(-2px);margin-left:4px;bottom:calc(38px + var(--growth)*.42%)}
.plant.night .leaf{background:var(--night);border-color:#413d50}
.bloom{position:absolute;bottom:calc(35px + var(--growth)*1%);width:32px;height:32px;border-radius:50%;background:var(--paper);border:5px double var(--wax);transform:scale(var(--bloom));transition:bottom .35s ease,transform .3s ease}
.plant.night .bloom{border-color:var(--night);background:#d9d1dd}
.meter{position:absolute;top:4px;left:50%;transform:translateX(-50%);display:grid;justify-items:center;gap:1px;white-space:nowrap}.meter strong{font:800 17px ui-monospace,SFMono-Regular,Menlo,monospace}.meter span{color:var(--muted);font:700 9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.plant.exact .meter strong{color:var(--good)}.plant.over .meter strong{color:var(--bad)}
.rail-wrap{padding-top:8px}.rail-labels{display:flex;justify-content:space-between;color:var(--muted);font:700 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.rail{position:relative;height:100px;margin:2px 15px 0;border-top:2px solid var(--ink)}.slots{position:absolute;z-index:2;inset:0 0 auto;height:48px;display:grid;grid-template-columns:repeat(5,1fr)}.slot{min-width:44px;min-height:44px;background:transparent;position:relative}.slot:before{content:"";position:absolute;top:-5px;left:50%;width:8px;height:8px;background:var(--ink);border-radius:50%;transform:translateX(-50%)}.slot:after{content:attr(data-bed);position:absolute;top:6px;left:50%;transform:translateX(-50%);font:10px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted)}
.candle-layer{position:absolute;inset:0 10% 0;pointer-events:none}.candle{--x:0;position:absolute;left:calc(var(--x)*25%);top:24px;width:58px;height:74px;transform:translateX(calc(-50% + var(--offset,0px)));background:transparent;pointer-events:auto;transition:left .2s ease}.candle.selected .wax-body{outline:3px solid var(--ink);outline-offset:3px}.wax-body{display:grid;place-items:end center;width:34px;height:50px;margin:21px auto 0;background:var(--wax);clip-path:polygon(6% 0,94% 0,100% 93%,50% 100%,0 93%);font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;padding-bottom:5px}.wick{position:absolute;top:17px;left:50%;width:2px;height:8px;background:var(--ink)}.flame{position:absolute;top:0;left:50%;width:18px;height:24px;background:var(--flame);border:2px solid var(--ink);border-radius:55% 45% 58% 42%;transform:translateX(-50%) rotate(45deg);animation:flicker 1.8s ease-in-out infinite alternate}.candle:nth-of-type(2) .wax-body{background:#d0b56f}
.control-panel{border-left:1px solid var(--line);padding:10px 0 0 18px;display:grid;grid-template:auto auto auto minmax(54px,1fr) auto/1fr;gap:10px;align-content:start}
.shade-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shade-button{min-height:56px;text-align:left;padding:9px 10px;background:transparent;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.shade-button span,.shade-button strong{display:block}.shade-button span{font:700 9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:var(--muted)}.shade-button strong{margin-top:3px;font-size:14px}
.burn-button{min-height:72px;padding:10px 14px;background:var(--ink);color:var(--paper);display:flex;align-items:center;gap:13px;text-align:left}.burn-button strong,.burn-button small{display:block}.burn-button strong{font-size:17px}.burn-button small{color:#cfc4ab}.burn-mark{font-size:30px;color:#f0a44c}
.utility-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.utility-controls button,#next{min-height:48px;padding:8px;background:transparent;border:1px solid var(--ink);font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace}.utility-controls #check,#next{background:var(--wax)}
.message{padding:10px 12px;border-left:4px solid var(--wax);background:rgba(255,255,255,.22);color:var(--muted);min-height:54px}.message.good{border-color:var(--good);color:var(--good)}.message.bad{border-color:var(--bad);color:var(--bad)}
.legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:11px}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:10px;height:10px;border-radius:50%}.sun-dot{background:var(--wax)}.night-dot{background:var(--night)}
.result{position:absolute;inset:50% auto auto 50%;width:min(470px,calc(100% - 32px));transform:translate(-50%,-50%);z-index:5;background:var(--paper);border:2px solid var(--ink);box-shadow:16px 16px 0 var(--ink);padding:28px}.result h2{font-size:36px;margin:5px 0}.result p{color:var(--muted)}#next{width:100%;font-size:13px}
@keyframes flicker{to{transform:translateX(-50%) rotate(40deg) scale(.92,1.06)}}
@media(max-width:720px) and (min-height:520px){.app{padding:10px;gap:7px}.masthead{padding-bottom:7px}.game{grid-template:minmax(0,1fr) auto/1fr;gap:5px}.garden-panel{grid-template:auto minmax(185px,1fr) auto/1fr}.control-panel{border-left:0;border-top:1px solid var(--line);padding:8px 0 0;grid-template:auto auto auto/1fr 1.3fr;gap:6px}.shade-controls{grid-column:1}.burn-button{grid-column:2;grid-row:1;min-height:56px}.utility-controls{grid-column:1/-1}.message{grid-column:1/-1;min-height:44px;padding:7px 10px}.legend{display:none}.brief p{font-size:12px}.rail{height:90px}.candle{top:18px}.plants{padding-top:4px}.result{padding:20px}}
@media(max-height:519px){.app{padding:7px 10px;gap:5px}.masthead{padding-bottom:5px}.masthead h1{font-size:25px}.wax-pips i{height:16px}.game{grid-template-columns:minmax(0,1.3fr) minmax(315px,.7fr);gap:10px}.garden-panel{grid-template:auto minmax(130px,1fr) 76px/1fr}.brief strong{font-size:14px}.brief p{font-size:11px;max-width:310px}.plants{padding-top:2px}.rail{height:70px}.candle{top:2px;height:57px}.wax-body{height:38px;margin-top:17px}.flame{width:14px;height:19px}.wick{top:13px}.control-panel{padding:4px 0 0 10px;gap:5px;grid-template:auto auto auto auto/1fr}.shade-button{min-height:43px;padding:5px 7px}.burn-button{min-height:51px;padding:6px 10px}.burn-mark{font-size:22px}.utility-controls button{min-height:42px;padding:4px;font-size:9px}.message{min-height:42px;padding:5px 8px;font-size:11px}.legend{display:none}.result{padding:16px}.result h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
