@font-face{font-family:Silkscreen;src:url('../assets/fonts/silkscreen.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:VT323;src:url('../assets/fonts/vt323.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{
  color-scheme:dark;
  --bg:#1c211b;--surface:#252a21;--surface-raised:#2d3227;--soil:#3c2d23;--soil-hover:#493727;--soil-edge:#725439;
  --text:#e4ddc7;--muted:#b0b09a;--subtle:#92977f;--line:#454b38;--gold:#e7bd76;--gold-dark:#33291d;--green:#b2cb83;--green-dark:#303e29;--danger:#edaa95;--focus:#f0d9a0;
  --font-body:VT323,'Courier New',monospace;--font-title:Silkscreen,'Courier New',monospace;
  --text-xs:.875rem;--text-sm:1rem;--text-body:1.25rem;--text-lg:1.5rem;--text-xl:2rem;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-10:40px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-body);line-height:1.4;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}
button:disabled{cursor:wait}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}
h1,h2,h3,p,dl,dd,ol{margin:0}
h1,h2,h3{font-family:var(--font-title);font-weight:400;text-wrap:balance}
h1{font-size:var(--text-lg);line-height:1.2}
h2{font-size:var(--text-sm);line-height:1.5}
h3{font-size:var(--text-xs);line-height:1.5}
p{text-wrap:pretty}
svg{flex-shrink:0}
canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges}
[hidden]{display:none!important}
::selection{background:var(--gold);color:var(--bg)}
.site-wrap{max-width:1216px;margin-inline:auto;padding:0 40px}
.site-header{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--gold)}
.brand h1 span{color:var(--green)}
.brand-mark{width:38px;height:44px;image-rendering:pixelated}
.header-tools{display:flex;align-items:center;gap:28px}
.saved{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:var(--text-sm)}
.tiny-square{display:inline-block;flex-shrink:0;width:5px;height:5px;background:currentColor}
.saved .tiny-square{color:var(--green)}
.quiet-button{border:0;background:none;min-height:44px;display:flex;gap:8px;align-items:center;padding:6px 0}
.help-icon{display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--muted);font-size:var(--text-sm)}
.intro-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:19px 25px;color:var(--muted)}
.chain-label{display:flex;gap:8px;align-items:center;font-size:var(--text-sm)}
.chain-label .tiny-square{color:var(--green)}
.game-layout{display:grid;grid-template-columns:280px minmax(0,1fr);column-gap:32px;row-gap:24px;align-items:start}
.wheel-house{grid-column:1;grid-row:1}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.wheel-heading{margin-bottom:12px;min-height:32px}
.wheel-heading h2{min-width:0;overflow-wrap:anywhere}
.icon-button{display:grid;place-items:center;border:1px solid var(--line);background:transparent;min-width:44px;min-height:44px;padding:10px;font-size:var(--text-lg)}
.icon-button svg{width:16px;height:16px}
.wheel-heading .icon-button{min-width:32px;min-height:32px;padding:7px}
.scene-wrap{position:relative;background:var(--surface);border:1px solid var(--line)}
#wheel-canvas{width:100%;height:auto;aspect-ratio:280/220}
.scene-tag{position:absolute;inset:auto 12px 10px auto;color:#e4ddc7;background:#242a20;padding:1px 7px;font-size:var(--text-sm)}
.wheel-caption{padding-top:16px}
.status-pill{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--surface-raised);color:var(--gold);min-height:36px;padding:6px 8px;font-size:var(--text-xs);font-family:var(--font-title);text-align:center;line-height:1.5}
.status-pill.running{background:var(--green-dark);color:var(--green)}
.status-pill.stale{color:var(--danger)}
#wheel-note{text-align:center;margin-top:8px;color:var(--muted);font-size:var(--text-sm)}
.signal-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;color:var(--subtle);font-size:var(--text-sm)}
.text-button{background:none;border:0;padding:8px 0;min-height:44px;color:var(--muted);text-decoration:underline;text-underline-offset:4px;font-size:var(--text-sm)}
.game-panel{grid-column:2;grid-row:1/span 2;min-width:0}
.section-hint{color:var(--muted);font-size:var(--text-sm)}
.seed-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.seed-button{position:relative;display:flex;flex-direction:column;align-items:center;min-height:146px;padding:12px 5px 8px;border:1px solid var(--line);background:var(--surface);text-align:center;font-size:var(--text-sm);line-height:1.3}
.seed-button[aria-pressed=true]{border-color:var(--gold);background:#373329}
.seed-button[aria-pressed=true]::after{content:'';position:absolute;top:6px;right:6px;width:4px;height:4px;background:var(--gold)}
.seed-button canvas{width:48px;height:48px;margin-bottom:7px}
.seed-name{display:block;max-width:100%;color:var(--text);overflow-wrap:anywhere}
.seed-short-name{display:none}
.seed-meta{font-size:var(--text-xs);color:var(--muted);margin-top:5px}
.seed-price{color:var(--gold);margin-top:4px;max-width:100%;overflow-wrap:anywhere}
.seed-button.locked .seed-price{color:var(--muted)}
.seed-button.locked canvas{filter:saturate(.55);opacity:.65}
.seed-button.locked .seed-name{color:var(--muted)}
.seed-detail{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;color:var(--muted);font-size:var(--text-sm);min-height:24px;flex-wrap:wrap}
.seed-detail>span:first-child{color:var(--gold)}
.garden-section{margin-top:24px}
.garden-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.garden-topline p{font-size:var(--text-sm);color:var(--muted);margin-top:4px}
.crumb-purse{display:flex;align-items:center;gap:10px;flex-shrink:0;padding-inline-start:16px;border-inline-start:1px solid var(--line)}
.crumb-purse svg{width:28px;height:28px}
.crumb-purse>span{display:flex;flex-direction:column}
.crumb-count{color:var(--gold);font-size:var(--text-xl);line-height:.95;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;max-width:130px}
.crumb-label{font-size:var(--text-sm);color:var(--muted)}
.garden-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:#23281e;padding:16px;border:1px solid var(--line);position:relative}
.plot{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;border:2px solid var(--soil-edge);background:var(--soil);min-width:0;min-height:130px;padding:6px 8px 9px;color:var(--text);font-size:var(--text-body);line-height:1.2;transition:background-color 120ms,border-color 120ms}
.plot canvas{width:144px;max-width:100%;height:auto;aspect-ratio:96/60;margin-top:-6px}
.plot .plot-label{font-size:var(--text-body);text-align:center;max-width:100%;overflow-wrap:break-word}
.plot .plot-sub{font-size:var(--text-sm);color:#c4b298;margin-top:4px}
.plot.locked{background:#2b3024;border:1px dashed #596047;min-height:130px;color:var(--muted)}
.plot.locked .plot-sub{color:var(--muted)}
.plot.locked canvas{width:110px}
.plot.next-plot{border-color:#87845d}
.plot.empty .plot-label{color:var(--gold)}
.plot.ripe{border-color:var(--gold);box-shadow:0 0 14px #e7bd7624;background:#403722}
.plot.ripe .plot-label{color:var(--gold)}
.plot-number{position:absolute;top:6px;left:8px;font-size:var(--text-sm);color:#c4b298}
.plot.locked .plot-number{color:var(--muted)}
.plot-progress{width:100%;height:5px;border:0;margin-top:7px;appearance:none;background:#231f1a;display:block}
.plot-progress::-webkit-progress-bar{background:#231f1a}
.plot-progress::-webkit-progress-value{background:var(--green)}
.plot-progress::-moz-progress-bar{background:var(--green)}
.plot.ripe .plot-progress::-webkit-progress-value{background:var(--gold)}
.plot.ripe .plot-progress::-moz-progress-bar{background:var(--gold)}
.garden-bottom{display:flex;justify-content:space-between;gap:8px;margin-top:10px;color:var(--muted);font-size:var(--text-sm)}
.bonus-hint{color:var(--gold)}
.feedback{min-height:45px;padding-top:12px;color:var(--green);font-size:var(--text-body);overflow-wrap:break-word}
.feedback.golden{color:var(--gold)}
.feedback.error{color:var(--danger)}
.telemetry{grid-column:1;grid-row:2;padding-top:16px;border-top:1px solid var(--line)}
.telemetry .section-heading{margin-bottom:14px}
.live-mark{font-size:var(--text-sm);color:var(--green)}
.wheel-data{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:16px}
.wheel-data>div{min-width:0}
.wheel-data dt{color:var(--muted);font-size:var(--text-sm);margin-bottom:2px}
.wheel-data dd{font-size:var(--text-lg);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.2}
.wheel-data .work-value{grid-column:1/-1;padding-bottom:12px;border-bottom:1px solid var(--line)}
.work-value dd{font-size:var(--text-xl);color:var(--gold)}
.unit{font-size:var(--text-sm);color:var(--muted)}
.grown-here{display:flex;align-items:center;gap:8px;padding-top:18px;margin-top:18px;border-top:1px solid var(--line);font-size:var(--text-sm);color:var(--green)}
.grown-here svg{width:20px;height:20px}
.grown-here span:last-child{margin-inline-start:auto;overflow-wrap:anywhere;max-width:100px}
.wheel-footnote{font-size:var(--text-sm);color:var(--muted);margin-top:8px}
.journal{grid-column:1/-1;border-top:1px solid var(--line);padding-top:24px}
.journal h2{display:flex;align-items:center;gap:10px}
.journal h2 svg{width:20px;height:20px;color:var(--muted)}
#journal-summary{font-size:var(--text-sm);color:var(--muted)}
.journal-list{list-style:none;padding:0;display:grid;gap:8px}
.journal-entry{display:grid;grid-template-columns:72px 8px minmax(0,1fr);gap:12px;align-items:baseline;font-size:var(--text-body)}
.journal-entry time{font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums}
.journal-dot{width:4px;height:4px;align-self:center;background:var(--subtle)}
.journal-entry.harvest .journal-dot,.journal-entry.ripe .journal-dot,.journal-entry.plant .journal-dot{background:var(--green)}
.journal-entry.golden,.journal-entry.unlock{color:var(--gold)}
.journal-entry.golden .journal-dot,.journal-entry.unlock .journal-dot{background:var(--gold)}
.journal-entry.restart .journal-dot{background:var(--danger)}
.closing-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:24px 16px;color:var(--muted);font-size:var(--text-sm)}
.reset-controls{display:flex;gap:16px;align-items:center;flex-shrink:0}
#reset-button.armed{color:var(--danger)}
footer{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-block:20px 28px;color:var(--muted);font-size:var(--text-sm)}
footer p{max-width:65ch}
footer>span{color:var(--subtle)}
.notice{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #82734e;background:#332e22;color:var(--gold);padding:8px 16px;margin-bottom:20px;font-size:var(--text-body)}
.notice .text-button{color:var(--gold);flex-shrink:0}
.skip-link{position:absolute;top:-100px;left:16px;z-index:20;padding:12px 16px;background:var(--gold);color:var(--gold-dark)}
.skip-link:focus{top:8px}
.primary-button{border:0;background:var(--gold);color:var(--gold-dark);padding:12px 24px;min-height:48px;font-family:var(--font-title);font-size:var(--text-sm)}
dialog{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:24px;max-width:550px;width:calc(100% - 32px);max-height:calc(100dvh - 48px);overscroll-behavior:contain;font-size:var(--text-body)}
dialog::backdrop{background:#10150ed9}
.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.help-steps{list-style:none;padding:0;display:grid;gap:20px;margin-block:24px}
.help-steps li{display:flex;gap:16px}
.help-steps li>span{color:var(--gold);font-family:var(--font-title);font-size:var(--text-sm);margin-top:2px}
.help-steps h3{margin-bottom:4px;color:var(--green)}
.help-note{border-inline-start:2px solid var(--gold);padding-inline-start:16px;margin-bottom:20px}
.help-note h3{color:var(--gold);margin-bottom:8px}
.help-small{font-size:var(--text-sm);color:var(--muted);margin-bottom:16px}
dialog .primary-button{width:100%;margin-top:4px}
.noscript{padding:24px;color:var(--gold);text-align:center}
@media(hover:hover){
  .quiet-button:hover,.text-button:hover{color:var(--gold)}
  .icon-button:hover{background:var(--surface-raised);border-color:var(--muted)}
  .seed-button:hover{background:var(--surface-raised);border-color:var(--muted)}
  .seed-button[aria-pressed=true]:hover{border-color:var(--gold)}
  .plot:hover{background:var(--soil-hover);border-color:var(--gold)}
  .plot.locked:hover{background:#373c2d;border-color:var(--muted)}
  .primary-button:hover{background:#f1ce92}
  a:hover{color:var(--gold)}
}
@media(prefers-reduced-motion:no-preference){
  .seed-button,.primary-button,.icon-button{transition:background-color 120ms,border-color 120ms,transform 120ms cubic-bezier(.2,0,0,1)}
  .seed-button:active,.primary-button:active,.icon-button:active{transform:scale(.96)}
}
@media(min-width:1400px){.site-wrap{padding-inline:24px}.game-layout{column-gap:40px;grid-template-columns:296px minmax(0,1fr)}.plot{min-height:144px}.plot.locked{min-height:144px}.plot canvas{width:152px}}
@media(max-width:1000px) and (min-width:761px){.site-wrap{padding-inline:24px}.game-layout{grid-template-columns:248px minmax(0,1fr);column-gap:24px}.seed-button{min-height:138px}.seed-name{font-size:var(--text-sm)}.section-hint{display:none}.garden-grid{gap:8px;padding:10px}.plot{padding-inline:4px}.plot .plot-label{font-size:var(--text-sm)}.plot .plot-sub{font-size:var(--text-xs)}.plot.locked canvas{width:86px}.garden-topline p{max-width:26ch}.status-pill{font-size:var(--text-xs)}}
@media(max-width:760px){
  .site-wrap{padding-inline:20px;max-width:600px}
  .site-header{min-height:76px;gap:12px}.brand{gap:8px}.brand-mark{width:28px;height:32px}h1{font-size:var(--text-body)}
  .header-tools{gap:12px}.saved{display:none}.help-label{display:none}.quiet-button{min-width:44px;justify-content:center}.help-icon{width:23px;height:23px}
  .intro-row{padding-block:14px 16px;font-size:var(--text-sm)}.chain-label{display:none}
  .game-layout{display:flex;flex-direction:column;gap:24px}
  .wheel-house{display:grid;grid-template-columns:116px minmax(0,1fr);column-gap:14px;width:100%;align-items:center}
  .wheel-heading{grid-column:2;grid-row:1;align-self:end;margin-bottom:4px;min-height:28px}.wheel-heading h2{font-size:var(--text-xs)}
  .wheel-heading .icon-button{min-width:28px;min-height:28px;padding:5px}
  .scene-wrap{grid-column:1;grid-row:1/span 2}.scene-tag{display:none}
  .wheel-caption{grid-column:2;grid-row:2;padding-top:0;align-self:start}.status-pill{padding:4px;min-height:26px;font-size:var(--text-xs);font-family:var(--font-body);justify-content:flex-start;background:transparent;gap:6px}.status-pill.running{background:transparent}
  #wheel-note{font-size:var(--text-sm);text-align:start;margin-top:0;line-height:1.2}
  .signal-row{margin-top:0}.signal-row #signal-text{display:none}.signal-row .text-button{min-height:28px;padding:4px 0}
  .game-panel{width:100%}.section-heading{margin-bottom:12px}.section-hint{font-size:var(--text-sm)}
  .seed-list{gap:6px}.seed-button{min-height:96px;padding:7px 3px 6px}.seed-button canvas{width:40px;height:40px;margin-bottom:4px}.seed-name{font-size:var(--text-xs)}
  .seed-full-name,.seed-meta{display:none}.seed-short-name{display:inline}
  .seed-price{font-size:var(--text-sm);margin-top:2px}.seed-detail{font-size:var(--text-sm);margin-top:7px;gap:4px}
  .garden-section{margin-top:20px}.garden-topline{margin-bottom:12px;gap:8px}.garden-topline p{max-width:27ch;line-height:1.25}.crumb-purse{gap:6px;padding-inline-start:10px}.crumb-count{font-size:var(--text-lg);max-width:84px}.crumb-purse svg{width:23px;height:23px}
  .garden-grid{gap:8px;padding:10px}.plot,.plot.locked{min-height:110px;padding:4px 3px 7px}.plot canvas{width:110px;margin-top:0}.plot.locked canvas{width:90px}.plot .plot-label{font-size:var(--text-sm);line-height:1.15}.plot .plot-sub{font-size:var(--text-xs);margin-top:3px}.plot-number{font-size:var(--text-xs);top:3px;left:5px}.plot-progress{margin-top:5px;height:4px}
  .garden-bottom{font-size:var(--text-sm);gap:4px}.feedback{font-size:var(--text-body);min-height:44px;padding-top:10px}
  .telemetry{width:100%;padding-top:20px;order:3}.wheel-data{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:12px}.wheel-data .work-value{grid-column:1/-1}.work-value{display:flex;align-items:baseline;justify-content:space-between}.work-value dd{font-size:var(--text-lg)}.wheel-data dd{font-size:var(--text-body)}.grown-here span:last-child{max-width:170px}
  .journal{width:100%;order:4;padding-top:20px}.journal .section-heading{align-items:baseline;flex-wrap:wrap;gap:8px}#journal-summary{font-size:var(--text-sm)}.journal-entry{grid-template-columns:58px 4px minmax(0,1fr);gap:9px;font-size:var(--text-body)}
  .closing-row{align-items:flex-start;padding-top:20px;flex-direction:column;gap:4px}.closing-row>p{display:none}
  footer{flex-direction:column;gap:12px;padding-top:16px}footer>span{color:var(--subtle)}
  .notice{padding:10px 12px;flex-wrap:wrap;gap:0;margin-bottom:16px;font-size:var(--text-sm)}.notice .text-button{min-height:36px}
  dialog{padding:20px}.dialog-heading h2{font-size:var(--text-xs)}
}
@media(max-width:360px){.site-wrap{padding-inline:14px}.brand-mark{width:24px}.brand{gap:6px}h1{font-size:var(--text-sm)}.section-hint{display:none}.wheel-house{grid-template-columns:98px minmax(0,1fr);column-gap:10px}.seed-name{font-size:var(--text-xs)}.seed-button{min-height:96px}.seed-button canvas{width:36px;height:36px}.garden-grid{gap:6px;padding:8px}.plot,.plot.locked{min-height:108px}.garden-bottom{flex-wrap:wrap}.wheel-data{grid-template-columns:1fr 1fr}.garden-topline p{max-width:22ch}}
@media(forced-colors:active){button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline-color:Highlight}.plot,.seed-button{border:2px solid ButtonText}.seed-button[aria-pressed=true],.plot.ripe{border-color:Highlight}.tiny-square,.journal-dot{background:CanvasText}.plot-progress{forced-color-adjust:auto}}
