/* Rootend: interactive layer, independent of live data rendering. */
:root[data-theme="dark"]{--bg:#121a16;--ink:#e6ede4;--muted:#a6b8aa;--header:#17211b;--card:#1b2920;--card-warm:#1d2b21;--line:#34453a;--strip:#1d2b21;--future:#18251c;--future-card:#213026;--code-bg:#304934;--hero-shadow:#233326}
:root[data-theme="light"]{--bg:#f3f0e7;--ink:#15231d;--muted:#5c6c61;--header:#f8f6ef;--card:#f9f8f2;--card-warm:#fffdf6;--line:#d4d9ce;--strip:#e9eada;--future:#e6e9da;--future-card:#f4f5ea;--code-bg:#e9efdd;--hero-shadow:#e2e6d6}
.site-header{position:sticky;top:0;z-index:30;backdrop-filter:blur(18px);box-shadow:0 3px 24px #0000000c}
.rootend-tools{display:flex;gap:6px;align-items:center}.tool-button,.command-copy{font:inherit;color:var(--ink);border:1px solid var(--line);background:var(--card);border-radius:10px;cursor:pointer;padding:9px 12px}
.tool-button:hover,.command-copy:hover{background:var(--code-bg);transform:translateY(-2px)}
.brand{letter-spacing:.025em}.rootend-art{width:100%;height:300px;object-fit:cover;display:block;animation:scene-breathe 18s ease-in-out infinite alternate}.world-art{height:300px;overflow:hidden}
.world-art>span{display:none}.hero-panel{position:relative;border:1px solid #53784a}.panel-top,.panel-bottom,.panel-time{position:relative;z-index:1}
.hero-copy h1 em{color:var(--hero-accent,#558135)}:root[data-theme="dark"]{--hero-accent:#b5dc79}:root[data-theme="light"]{--hero-accent:#426a26}.step,.claim-grid article,.future-grid article{transition:transform .25s,box-shadow .25s}.step:hover,.claim-grid article:hover,.future-grid article:hover{transform:translateY(-5px);box-shadow:0 14px 30px #15231d12}
.section{scroll-margin-top:100px}.section-heading h2{letter-spacing:-.035em}.rootend-reveal{animation:section-arrive .55s ease-out both}
.command-copy{padding:2px 6px;font-size:11px;margin-left:5px;vertical-align:middle}.command-copy.copied{color:#4a782e}
.reading-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,#9be15d,#75d5ff);z-index:60;width:0;pointer-events:none}
.back-top{position:fixed;right:22px;bottom:22px;z-index:25;box-shadow:0 6px 20px #0002}.back-top[hidden]{display:none}
.rootend-dialog{width:min(560px,calc(100% - 32px));padding:26px;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--ink);box-shadow:0 24px 100px #0005}.rootend-dialog::backdrop{background:#0b1715b3;backdrop-filter:blur(7px)}
.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.dialog-heading h2{margin:0;font-size:24px}.rootend-dialog input{width:100%;box-sizing:border-box;padding:13px;margin:20px 0;border:1px solid var(--line);border-radius:10px;font:inherit;color:var(--ink);background:var(--bg)}
.quick-links{display:grid;gap:8px}.quick-links a{display:flex;justify-content:space-between;padding:13px 16px;border-radius:10px;text-decoration:none;color:var(--ink);background:var(--bg)}.quick-links a:hover{background:var(--code-bg)}.quick-links a[hidden]{display:none}
.visual-options{display:grid;gap:16px;margin-top:22px}.visual-options label{display:flex;justify-content:space-between;align-items:center;gap:12px}.visual-options select{font:inherit;padding:8px;border-radius:8px;color:var(--ink);background:var(--bg);border:1px solid var(--line)}
.rootend-toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);border-radius:12px;background:var(--dark);color:#f5f8ed;padding:12px 20px;z-index:70;box-shadow:0 8px 30px #0003;max-width:calc(100% - 70px)}.rootend-toast[hidden]{display:none}
.offer-link{border:0;background:none;color:var(--ink);font:inherit;font-weight:700;text-align:left;padding:5px 0;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}.offer-link:hover{color:var(--hero-accent,#558135)}.offer-total{font-size:24px;font-weight:800;letter-spacing:-.03em}.offer-presets{display:flex;gap:8px;flex-wrap:wrap}.quota-pagination{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:15px 0}.quota-pagination button:disabled{opacity:.4;cursor:default}
.join-progress{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0;color:var(--muted)}.join-progress label{display:flex;gap:7px;align-items:center;cursor:pointer;padding:9px 12px;border:1px solid var(--line);border-radius:10px}.join-progress input{accent-color:#558135}
@keyframes scene-breathe{to{transform:scale(1.07)}}@keyframes section-arrive{from{opacity:.5;transform:translateY(16px)}to{opacity:1;transform:none}}
:root[data-motion="off"] *,:root[data-motion="off"] *::before,:root[data-motion="off"] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){.rootend-art,.rootend-reveal{animation:none}.step:hover,.claim-grid article:hover,.future-grid article:hover,.tool-button:hover{transform:none}}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--hero-accent:#b5dc79}}
@media(max-width:1000px){.site-header{flex-wrap:wrap}.rootend-tools{margin-left:auto}.nav-toggle{display:flex}.site-header nav{display:none;width:100%;flex-direction:column;gap:0}.site-header.nav-open nav{display:flex}.site-header nav a{padding:10px 4px;border-bottom:1px solid var(--line)}}
@media(max-width:760px){.rootend-tools{margin-left:auto}.tool-button{padding:8px;font-size:13px}.site-header{gap:10px}.brand{font-size:16px}.rootend-art,.world-art{height:250px}.hero-panel{min-height:0}.back-top{right:12px;bottom:12px}.section{scroll-margin-top:85px}.join-progress{display:grid}.rootend-dialog{padding:20px}.hero-copy h1{font-size:clamp(36px,10vw,54px)}}
@media(max-width:600px){.quota-table:not(.shop-table){min-width:0}.quota-table:not(.shop-table) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.quota-table:not(.shop-table) tbody{display:block}.quota-table:not(.shop-table) tbody tr{display:grid;grid-template-columns:1fr 1fr}.quota-table:not(.shop-table) tbody th{grid-column:1/-1;background:var(--code-bg)}.quota-table:not(.shop-table) tbody td{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:3px}.quota-table:not(.shop-table) tbody td::before{content:attr(data-label);font-size:11px;color:var(--muted)}.quota-table:not(.shop-table) .quota-bar{display:none}.table-hint{display:none}.quota-pagination{font-size:13px}}
@media(max-width:600px){.shop-table{min-width:0}.shop-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.shop-table tbody{display:block}.shop-table tbody tr{display:grid;grid-template-columns:1fr 1fr}.shop-table tbody th{grid-column:1/-1;background:var(--code-bg);max-width:none}.shop-table tbody td{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:3px}.shop-table tbody td::before{content:attr(data-label);font-size:11px;color:var(--muted)}.shop-table small{overflow-wrap:anywhere}.rootend-dialog select{max-width:190px}}
.recipe-zoom-button{width:100%;display:block;padding:0;border:0;background:none;cursor:zoom-in}.recipe-zoom-button:focus-visible{outline:3px solid #789356;outline-offset:-3px}.recipe-zoom-image{width:100%;display:block;margin:16px 0;border-radius:12px}
.small-note,.offer-dialog #offer-key,.rootend-dialog .small-note{color:var(--muted)}
h1 em{color:var(--hero-accent,#558135)}:root[data-theme="dark"]{--action-bg:#b5dc79;--action-ink:#18261b}.primary{background:var(--action-bg,var(--dark));color:var(--action-ink,#f8f8ed);border:1px solid var(--line)}.primary:hover{background:var(--action-bg,var(--dark));filter:brightness(1.05)}@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--action-bg:#b5dc79;--action-ink:#18261b}}
.shop-icon{display:inline-block;vertical-align:middle;width:32px;height:32px;overflow:hidden;margin-right:10px;flex-shrink:0;text-align:center;line-height:32px;color:var(--hero-accent,#558135)}.shop-icon img{width:32px;height:auto;display:block;image-rendering:pixelated}.offer-link{display:flex;align-items:center;line-height:1.4}
.rootend-dialog[open]{animation:dialog-arrive .22s ease-out}.tool-button:active,.button:active{transform:scale(.97)}@keyframes dialog-arrive{from{opacity:.3;translate:0 12px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){.rootend-dialog[open]{animation:none}.tool-button:active,.button:active{transform:none}}
@media(max-width:600px){.quota-table-wrap{max-height:none;overflow:visible}.shop-grid .quota-table-wrap{overflow:hidden}.quota-table:not(.shop-table) tbody td[colspan]{grid-column:1/-1}.shop-table tbody td[colspan]{grid-column:1/-1}}
