:root {
  --bg: #f2f6f1;
  --surface: #fbfcf9;
  --ink: #17251c;
  --muted: #68776d;
  --line: #ccd8ce;
  --accent: #27734b;
  --accent-soft: #dbeadf;
  --season-mark: #df6f91;
  --code: #14251c;
  --shadow: rgba(29,55,38,.13);
}
body[data-season="summer"] { --bg:#edf7f6; --surface:#fbfdfb; --ink:#123035; --muted:#607d7e; --line:#c4dad8; --accent:#087983; --accent-soft:#d2edeb; --season-mark:#e8ae20; --code:#102d31; --shadow:rgba(10,72,76,.13); }
body[data-season="autumn"] { --bg:#f3f1eb; --surface:#fcfbf7; --ink:#32261e; --muted:#76675c; --line:#d9cec1; --accent:#98502b; --accent-soft:#eaded2; --season-mark:#315f49; --code:#2c241e; --shadow:rgba(73,46,26,.14); }
body[data-season="winter"] { --bg:#eef3f5; --surface:#fafcfc; --ink:#1b2c36; --muted:#687983; --line:#cad7dd; --accent:#346b87; --accent-soft:#d9e7ed; --season-mark:#bd4c4a; --code:#182a34; --shadow:rgba(31,62,77,.14); }

html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--ink); font-family: Manrope, "Noto Sans SC", sans-serif; transition: background .35s ease, color .35s ease; }
body::before { content:""; position:fixed; z-index:-1; top:0; bottom:0; left:50%; width:1px; background:color-mix(in srgb,var(--line) 34%,transparent); box-shadow:-390px 0 color-mix(in srgb,var(--line) 24%,transparent),390px 0 color-mix(in srgb,var(--line) 24%,transparent); }
body > .shell:first-child { position:sticky; z-index:30; top:0; background:color-mix(in srgb,var(--bg) 94%,transparent); backdrop-filter:blur(10px); }
.shell { width:min(1120px,calc(100% - 44px)); }
.top { position:relative; height:76px; border-color:var(--line); transition:box-shadow .3s ease,transform .3s ease; }
.top::before { content:""; position:absolute; right:82%; bottom:-1px; width:18%; height:2px; background:var(--season-mark); opacity:.78; animation:header-current 7s cubic-bezier(.45,0,.55,1) infinite alternate; }
.top.scrolled { box-shadow:0 12px 28px color-mix(in srgb,var(--shadow) 52%,transparent); }
.brand { display:flex; align-items:baseline; gap:12px; color:var(--ink); }
.brand b { font:800 20px/1 Manrope,sans-serif; animation:brand-arrive .6s cubic-bezier(.2,.72,.2,1) both; }
.brand b::after { content:""; display:inline-block; width:6px; height:6px; margin-left:5px; background:var(--season-mark); border-radius:50%; animation:brand-signal 2.4s ease-in-out infinite; }
.brand small { color:var(--muted); font:10px "DM Mono",monospace; }
.nav { gap:27px; color:var(--muted); font-size:13px; }
.nav a { position:relative; padding:29px 0 28px; transition:color .2s ease,transform .2s ease; }
.nav a::after { content:""; position:absolute; right:0; bottom:-1px; left:0; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:right; transition:transform .28s ease; }
.nav a:hover,.nav a.active { color:var(--ink); }
.nav a:hover { transform:translateY(-1px); }
.nav a:hover::after,.nav a.active::after { transform:scaleX(1); transform-origin:left; }
.top-actions { gap:12px; }
.season-switch { display:inline-flex; border:1px solid var(--line); background:var(--surface); }
.season-switch button { width:27px; height:27px; padding:0; border:0; border-right:1px solid var(--line); background:transparent; color:var(--muted); font:11px "Noto Serif SC",serif; cursor:pointer; }
.season-switch button:last-child { border-right:0; }
.season-switch button:hover { color:var(--accent); }
.season-switch button.active { background:var(--accent); color:#fff; animation:season-tab .38s ease both; }
.manage-link { color:var(--muted); font-size:11px; }
.manage-link:hover { color:var(--accent); }
.icon,.btn { border:1px solid var(--line); border-radius:0; background:var(--surface); color:var(--ink); }
.icon:hover,.btn:hover { border-color:var(--accent); color:var(--accent); }
.btn.primary { border-color:var(--accent); background:var(--accent); color:#fff; }
.btn.primary:hover { background:var(--ink); border-color:var(--ink); color:#fff; }
.view { min-height:calc(100vh - 76px); }
@keyframes header-current { to { right:0; } }
@keyframes brand-arrive { from { opacity:0; transform:translateX(-12px); } }
@keyframes brand-signal { 50% { opacity:.35; transform:scale(.72); } }
@keyframes season-tab { from { box-shadow:inset 0 0 0 12px var(--surface); } to { box-shadow:inset 0 0 0 0 var(--surface); } }

/* The homepage pairs an engineer's notebook with one compact seasonal window. */
.season-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:68px; align-items:center; min-height:560px; padding:76px 0 116px; }
.season-intro { position:relative; z-index:1; }
.season-kicker { margin:0 0 28px; color:var(--muted); font:10px "DM Mono",monospace; }
.season-kicker span { margin-right:13px; color:var(--accent); }
.season-intro h1 { margin:0; color:var(--ink); font:800 clamp(68px,8.3vw,112px)/.86 Manrope,sans-serif; }
.season-intro h1::first-letter { color:var(--accent); }
.role { margin:27px 0 0; color:var(--ink); font:600 22px/1.5 "Noto Serif SC",serif; }
.season-lead { max-width:580px; margin:18px 0 0; color:var(--muted); font-size:15px; line-height:1.9; }
.command-line { display:inline-flex; gap:18px; align-items:center; margin-top:32px; padding:10px 13px; border-left:3px solid var(--season-mark); background:var(--accent-soft); }
.command-line code { color:var(--accent); font:11px "DM Mono",monospace; }
.command-line span { color:var(--muted); font-size:11px; }
.season-window { position:relative; width:100%; max-width:390px; margin:0 0 0 auto; padding:0 14px 14px 0; }
.season-window::after { content:""; position:absolute; z-index:-1; right:0; bottom:0; width:72%; height:76%; background:var(--season-mark); opacity:.18; }
.season-window img { display:block; width:100%; aspect-ratio:4/4.25; object-fit:cover; filter:saturate(.76) contrast(1.02); box-shadow:0 18px 48px var(--shadow); transform:translate(var(--image-x,0),var(--image-y,0)) scale(1.015); transition:transform .35s ease,filter .35s ease; }
.season-window:hover img { filter:saturate(.92) contrast(1.03); }
.season-window figcaption { display:grid; grid-template-columns:62px 1fr; gap:14px; align-items:end; margin-top:14px; }
.season-window figcaption > b { color:var(--season-mark); font:700 45px/1 "Noto Serif SC",serif; }
.season-window figcaption span,.season-window figcaption small { display:block; color:var(--muted); font:9px/1.6 "DM Mono",monospace; }
.season-window figcaption small { color:var(--ink); font-family:"Noto Serif SC",serif; }
.current-entry { position:absolute; right:0; bottom:0; left:0; display:grid; grid-template-columns:95px 1fr 90px 24px; gap:18px; align-items:center; min-height:75px; padding:0 18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.current-entry span,.current-entry small { color:var(--muted); font:10px "DM Mono",monospace; }
.current-entry strong { font-size:16px; }
.current-entry small { color:var(--accent); }
.current-entry b { color:var(--season-mark); }
.current-entry:hover strong { color:var(--accent); }
.season-atmosphere { position:fixed; z-index:0; inset:76px 0 0; overflow:hidden; pointer-events:none; }
.season-atmosphere i { position:absolute; top:-24px; left:var(--x); width:10px; height:16px; border-radius:70% 0 70% 0; background:var(--season-mark); opacity:.24; animation:season-fall var(--duration) linear var(--delay) infinite; }
body[data-season="summer"] .season-atmosphere i { width:8px; height:19px; background:var(--accent); opacity:.16; clip-path:polygon(50% 0,100% 42%,72% 100%,15% 77%,0 30%); }
body[data-season="autumn"] .season-atmosphere i { width:11px; height:17px; border-radius:1px 80% 1px 80%; background:var(--accent); opacity:.19; }
body[data-season="winter"] .season-atmosphere i { width:12px; height:2px; border-radius:0; background:var(--season-mark); opacity:.25; }
body[data-season="winter"] .season-atmosphere i::after { content:""; position:absolute; inset:0; background:inherit; transform:rotate(90deg); }
.season-hero,.ops-desk,.journal-section,.field-grid { position:relative; z-index:1; }
@keyframes season-fall { from { transform:translate3d(0,-4vh,0) rotate(0); } to { transform:translate3d(var(--drift),105vh,0) rotate(var(--rotate)); } }

.ops-desk { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(285px,.55fr); gap:24px; padding:46px 0 18px; }
.command-board,.weather-board { min-height:340px; border:1px solid var(--line); }
.command-board { display:grid; grid-template-rows:auto 1fr auto; overflow:hidden; background:var(--code); color:#edf3ee; box-shadow:0 16px 44px var(--shadow); }
.ops-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:22px 24px; border-bottom:1px solid color-mix(in srgb,var(--line) 34%,transparent); }
.ops-head span { display:block; margin-bottom:5px; color:var(--season-mark); font:9px "DM Mono",monospace; }
.ops-head h2 { margin:0; font:700 20px/1.35 "Noto Serif SC",serif; }
.ops-head > small { color:var(--muted); font:9px "DM Mono",monospace; }
.command-controls { display:flex; gap:5px; }
.command-controls button { width:30px; height:30px; padding:0; border:1px solid #52665a; background:transparent; color:#d9e4dc; cursor:pointer; }
.command-controls button:hover { border-color:var(--season-mark); color:var(--season-mark); }
.command-stage { position:relative; min-width:0; padding:28px 28px 25px; }
.command-stage.refreshing > *:not(.command-progress) { animation:command-in .32s ease both; }
.command-meta { display:flex; justify-content:space-between; margin-bottom:18px; color:#8da095; font:9px "DM Mono",monospace; }
.command-meta span { color:var(--season-mark); }
.command-code { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:11px; align-items:center; min-height:52px; padding:0 13px; border-left:3px solid var(--accent); background:#0c1711; }
.command-code > span { color:var(--season-mark); font:15px "DM Mono",monospace; }
.command-code code { overflow-x:auto; color:#f2f6f2; font:14px "DM Mono",monospace; white-space:nowrap; scrollbar-width:thin; }
.command-code button { padding:5px 8px; border:1px solid #52665a; background:transparent; color:#b7c5bc; font:9px "DM Mono",monospace; cursor:pointer; }
.command-stage h3 { margin:22px 0 8px; color:#fff; font:600 18px "Noto Serif SC",serif; }
.command-stage p { max-width:620px; margin:0; color:#9faf9f; font-size:12px; line-height:1.8; }
.command-progress { position:absolute; right:28px; bottom:0; left:28px; height:2px; background:#34463a; }
.command-progress::after { content:""; display:block; width:0; height:100%; background:var(--season-mark); }
.command-progress.running::after { animation:command-progress 6s linear both; }
.command-index { display:flex; gap:6px; overflow-x:auto; padding:0 28px 22px; scrollbar-width:thin; }
.command-index button { flex:0 0 auto; padding:5px 7px; border:1px solid #52645a; background:transparent; color:#8fa195; font:8px "DM Mono",monospace; cursor:pointer; }
.command-index button:hover,.command-index button.active { border-color:var(--season-mark); color:var(--season-mark); }
.weather-board { display:flex; flex-direction:column; background:var(--surface); }
.weather-board .ops-head { border-bottom-color:var(--line); }
.weather-board .ops-head span { color:var(--accent); }
.weather-now { display:flex; gap:18px; align-items:center; padding:24px; }
.weather-now > strong { color:var(--season-mark); font:700 58px/1 Manrope,sans-serif; }
.weather-now b,.weather-now span { display:block; }
.weather-now b { margin-bottom:5px; font:600 16px "Noto Serif SC",serif; }
.weather-now span { color:var(--muted); font-size:10px; }
.weather-days { margin:0 24px; padding:0; border-top:1px solid var(--line); list-style:none; }
.weather-days li { display:grid; grid-template-columns:1fr 45px auto; gap:8px; align-items:center; padding:11px 0; border-bottom:1px solid var(--line); font-size:11px; }
.weather-days b { color:var(--accent); font:9px "DM Mono",monospace; }
.weather-days small { color:var(--muted); font:10px "DM Mono",monospace; }
.weather-source { margin:auto 24px 16px; color:var(--muted); font:8px "DM Mono",monospace; }
.weather-unavailable { margin:26px 24px; color:var(--muted); font-size:12px; line-height:1.8; }
.weather-location { display:grid; justify-items:end; gap:5px; }
.weather-location small { color:var(--muted); font:9px "DM Mono",monospace; }
.weather-location button,.weather-correct { padding:0; border:0; background:transparent; color:var(--accent); font-size:10px; cursor:pointer; }
.weather-location button:hover,.weather-correct:hover { color:var(--season-mark); }
.weather-form { display:grid; gap:14px; padding:24px; }
.weather-form label { color:var(--muted); font-size:11px; }
.weather-form input { width:100%; height:43px; padding:0 11px; border:1px solid var(--line); background:var(--bg); color:var(--ink); outline:0; }
.weather-form input:focus { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent); }
.weather-form > div { display:flex; flex-wrap:wrap; gap:7px; }
.weather-form p { min-height:18px; margin:0; color:#a92e34; font-size:10px; }
.weather-loading { display:grid; gap:14px; padding:28px 24px; }
.weather-loading i { display:block; width:70%; height:12px; background:var(--accent-soft); animation:weather-pulse 1.2s ease-in-out infinite alternate; }
.weather-loading i:first-child { width:45%; height:55px; }
.weather-loading i:last-child { width:85%; }
@keyframes command-progress { to { width:100%; } }
@keyframes command-in { from { opacity:.2; transform:translateY(5px); } to { opacity:1; transform:none; } }
@keyframes weather-pulse { to { opacity:.38; } }

.journal-section { padding:88px 0 82px; }
.journal-head { display:flex; align-items:end; justify-content:space-between; gap:18px; padding-bottom:16px; border-bottom:2px solid var(--ink); }
.journal-head > div > span { display:block; margin-bottom:8px; color:var(--accent); font:9px "DM Mono",monospace; }
.journal-head h2 { margin:0; font:700 27px/1.2 "Noto Serif SC",serif; }
.journal-head > a { color:var(--muted); font-size:11px; }
.journal-head > a:hover { color:var(--accent); }
.journal-list > a { display:grid; grid-template-columns:50px minmax(0,1fr) 100px 22px; gap:22px; align-items:center; min-height:118px; border-bottom:1px solid var(--line); transition:padding .18s ease,background .18s ease; }
.journal-list > a:hover { padding-right:12px; padding-left:12px; background:var(--surface); }
.journal-list > a > span { color:var(--season-mark); font:11px "DM Mono",monospace; }
.journal-list small,.journal-list time { color:var(--accent); font:9px "DM Mono",monospace; }
.journal-list h3 { margin:6px 0; font-size:18px; }
.journal-list p { overflow:hidden; margin:0; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.journal-list time { color:var(--muted); text-align:right; }
.journal-list b { color:var(--season-mark); }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; padding-bottom:100px; }
.journal-head.small { border-bottom-width:1px; }
.journal-head.small h2 { font-size:20px; }
.field-list article { display:grid; grid-template-columns:42px 1fr; gap:12px; padding:20px 0; border-bottom:1px solid var(--line); }
.field-list article > span { color:var(--season-mark); font:9px "DM Mono",monospace; }
.field-list h3 { margin:0 0 6px; font-size:14px; }
.field-list p,.empty-line { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }

/* Shared content pages */
.eyebrow,.type,.home-overline { color:var(--accent); font:500 10px "DM Mono",monospace; }
.listing { padding:72px 0 96px; }
.page-title { margin:12px 0; font:700 50px/1.18 "Noto Serif SC",serif; }
.page-copy { color:var(--muted); font-size:14px; line-height:1.8; }
.section { padding:64px 0; border-color:var(--line); }
.section-head h2 { font-family:"Noto Serif SC",serif; font-size:25px; }
.section-head p { color:var(--muted); }
.link { color:var(--accent); }
.filters { padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.filter { border:1px solid transparent; border-radius:0; color:var(--muted); }
.filter:hover { color:var(--ink); }
.filter.on { border-color:var(--accent); background:var(--accent-soft); color:var(--accent); }
.search { border-color:var(--line); border-radius:0; background:var(--surface); color:var(--ink); }
.search:focus { border-color:var(--accent); outline:0; }
.article-list { gap:0; border-top:1px solid var(--line); }
.article-row { grid-template-columns:120px 1fr 110px; gap:24px; padding:27px 10px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.article-row:hover { border-color:var(--accent); background:var(--surface); }
.article-row h2 { margin:2px 0 7px; font:600 19px/1.5 "Noto Serif SC",serif; }
.article-row p,.article-row time { color:var(--muted); }
.tag { border-color:var(--line); border-radius:0; color:var(--muted); }
.grid3 { gap:0; border-top:1px solid var(--line); }
.card { min-height:230px; padding:25px 22px; border:0; border-right:1px solid var(--line); border-radius:0; background:transparent; }
.card:last-child { border-right:0; }
.card:hover { transform:none; background:var(--surface); }
.card p,.meta { color:var(--muted); }
.stats { border-color:var(--line); }
.stat { border-color:var(--line); }

/* Calm reading remains constant while accents follow the season. */
.article { width:min(920px,100%); padding:72px 0 100px; }
.article-header { position:relative; margin-bottom:46px; padding:31px 0 30px 23px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.article-header::before { content:""; position:absolute; top:31px; bottom:30px; left:0; width:3px; background:var(--season-mark); }
.article h1 { margin:11px 0 18px; font:700 44px/1.32 "Noto Serif SC",serif; }
.article .byline { border-color:var(--line); color:var(--muted); }
.article-tools { gap:7px; }
.article-tools .btn { padding:7px 10px; font-size:11px; }
.article-layout { grid-template-columns:minmax(0,1fr) 155px; gap:48px; }
.prose { color:color-mix(in srgb,var(--ink) 86%,var(--muted)); font-family:"Noto Serif SC",serif; font-size:17px; line-height:2; }
.prose h2 { margin-top:48px; color:var(--ink); font-size:27px; }
.prose h3,.prose strong { color:var(--ink); }
.prose a { color:var(--accent); }
.prose code { color:var(--accent); }
.prose pre { border:1px solid var(--code); background:var(--code); color:#e5eee8; box-shadow:inset 3px 0 var(--season-mark); }
.copy-code { border-color:#6f8177; background:transparent; color:#fff; }
.article-toc { border-color:var(--line); }
.article-toc b { color:var(--accent); }
.article-toc a { color:var(--muted); }
.article-toc a:hover,.article-toc a.active { color:var(--accent); }
.article-toc a.active { border-left-color:var(--season-mark); }
.reading-progress b { background:var(--season-mark); }
.tool { border-color:var(--line); border-radius:0; background:var(--surface); }
.tool input,textarea { border-color:var(--line); border-radius:0; background:var(--bg); color:var(--ink); }
.tool input::placeholder,textarea::placeholder { color:var(--muted); }
.tool input:focus,textarea:focus,.editor input:focus,.editor select:focus { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent); }
.about-list,.about-list div,.mobile-nav,.search-empty { border-color:var(--line); }
.about-list b { color:var(--accent); }
.about-list span,.search-hint,.search-count,.search-empty,.empty { color:var(--muted); }

/* Archive is a direct field index: summary, directory, then grouped entries. */
.archive-hero,.friends-hero { display:flex; align-items:end; justify-content:space-between; gap:38px; padding-bottom:38px; border-bottom:1px solid var(--line); }
.archive-hero .page-copy,.friends-hero .page-copy { max-width:610px; }
.archive-stats { display:flex; border:1px solid var(--line); background:var(--surface); }
.archive-stats div { min-width:88px; padding:14px 17px; border-right:1px solid var(--line); }
.archive-stats div:last-child { border-right:0; }
.archive-stats strong,.archive-stats span { display:block; }
.archive-stats strong { color:var(--accent); font:700 27px/1 Manrope,sans-serif; }
.archive-stats span { margin-top:5px; color:var(--muted); font-size:10px; }
.archive-directory { display:flex; flex-wrap:wrap; gap:8px; padding:24px 0 58px; }
.archive-directory a { display:flex; gap:9px; align-items:center; padding:8px 10px; border:1px solid var(--line); background:var(--surface); font-size:11px; }
.archive-directory a:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.archive-directory span,.archive-directory small { color:var(--accent); font:8px "DM Mono",monospace; }
.archive-directory small { color:var(--muted); }
.archive-ledger { border-top:2px solid var(--ink); }
.archive-group { scroll-margin-top:96px; }
.archive-group > header { display:grid; grid-template-columns:110px minmax(0,1fr) auto; gap:20px; align-items:center; min-height:88px; border-bottom:1px solid var(--line); }
.archive-group > header span { color:var(--accent); font:8px "DM Mono",monospace; }
.archive-group > header h2 { margin:0; font:700 27px "Noto Serif SC",serif; }
.archive-group > header b { color:var(--muted); font-size:11px; }
.archive-entry { display:grid; grid-template-columns:70px minmax(0,1fr) 230px 64px; gap:22px; align-items:center; min-height:112px; padding:17px 0; border-bottom:1px solid var(--line); transition:padding .2s ease,background .2s ease; }
.archive-entry:hover { padding-right:12px; padding-left:12px; background:var(--surface); }
.archive-entry > span { color:var(--season-mark); font:10px "DM Mono",monospace; }
.archive-entry h3 { margin:0 0 7px; font:600 17px "Noto Serif SC",serif; }
.archive-entry p { overflow:hidden; margin:0; color:var(--muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.archive-entry-tags { display:flex; flex-wrap:wrap; gap:5px; justify-content:flex-end; }
.archive-entry-tags small { padding:4px 6px; border:1px solid var(--line); color:var(--muted); font-size:8px; }
.archive-entry > b { color:var(--accent); font-size:10px; text-align:right; }

/* Friend links use a plain directory, grouped by purpose. */
.friends-signal { display:flex; gap:9px; align-items:center; color:var(--muted); font:9px "DM Mono",monospace; }
.friends-signal i { width:24px; height:2px; background:var(--accent); animation:friend-signal 1.8s ease-in-out infinite alternate; }
.friend-groups { padding-top:30px; }
.friend-group { padding:28px 0 46px; border-bottom:1px solid var(--line); }
.friend-group > header { display:grid; grid-template-columns:42px 1fr auto; align-items:end; gap:12px; margin-bottom:17px; }
.friend-group > header span { color:var(--season-mark); font:9px "DM Mono",monospace; }
.friend-group > header h2 { margin:0; font:700 22px "Noto Serif SC",serif; }
.friend-group > header small { color:var(--muted); font-size:9px; }
.friend-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.friend-link { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr) 16px; gap:13px; align-items:start; min-height:150px; padding:22px 18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--surface) 62%,transparent); transition:background .22s ease,transform .22s ease; }
.friend-link:hover { z-index:1; background:var(--surface); transform:translateY(-3px); box-shadow:0 12px 24px var(--shadow); }
.friend-mark { display:grid; place-items:center; width:39px; height:39px; border:1px solid var(--line); color:var(--accent); font:700 11px "Noto Serif SC",serif; }
.friend-link h3 { margin:1px 0 8px; font:600 15px "Noto Serif SC",serif; }
.friend-link p { margin:0 0 12px; color:var(--muted); font-size:10px; line-height:1.65; }
.friend-link small { color:var(--accent); font:8px "DM Mono",monospace; overflow-wrap:anywhere; }
.friend-link > b { color:var(--season-mark); }
@keyframes friend-signal { to { width:52px; background:var(--season-mark); } }

/* Lab is a compact workbench with a visible tool catalog. */
.lab-page { padding-top:68px; }
.lab-header { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:38px; }
.lab-header .page-title { font-size:49px; }
.lab-summary { display:flex; gap:12px; align-items:center; padding-left:18px; border-left:3px solid var(--season-mark); }
.lab-summary strong { color:var(--accent); font:700 42px/1 Manrope,sans-serif; }
.lab-summary span { color:var(--muted); font:9px/1.6 "DM Mono",monospace; }
.lab-shell { display:grid; grid-template-columns:238px minmax(0,1fr); align-items:stretch; border:1px solid var(--line); box-shadow:0 18px 48px var(--shadow); }
.lab-tabs { display:flex; flex-direction:column; border-right:1px solid var(--line); background:color-mix(in srgb,var(--surface) 78%,var(--accent-soft)); }
.lab-tool { display:grid; grid-template-columns:37px 1fr; gap:11px; align-items:center; min-height:64px; padding:9px 13px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--muted); text-align:left; cursor:pointer; }
.lab-tool > b { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--line); color:var(--accent); font:9px "DM Mono",monospace; }
.lab-tool span strong,.lab-tool span small { display:block; }
.lab-tool span strong { color:var(--ink); font:600 12px "Noto Sans SC",sans-serif; }
.lab-tool span small { margin-top:3px; color:var(--muted); font:8px "DM Mono",monospace; }
.lab-tool:hover { background:var(--surface); }
.lab-tool.active { background:var(--accent); color:#fff; }
.lab-tool.active > b { border-color:color-mix(in srgb,#fff 45%,transparent); color:var(--season-mark); }
.lab-tool.active span strong,.lab-tool.active span small { color:#fff; }
.lab-workbench { min-width:0; min-height:600px; background:var(--surface); }
.workbench-top { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:27px 29px 23px; border-bottom:1px solid var(--line); }
.workbench-top span { color:var(--accent); font:8px "DM Mono",monospace; }
.workbench-top h2 { margin:5px 0 7px; font:700 25px "Noto Serif SC",serif; }
.workbench-top p { margin:0; color:var(--muted); font-size:12px; }
.lab-body { display:grid; grid-template-columns:1fr 1fr; min-height:477px; }
.lab-input { min-width:0; padding:27px 29px 30px; border-right:1px solid var(--line); }
.lab-input > label,.lab-field-label { display:block; margin-bottom:10px; color:var(--muted); font-size:11px; }
.lab-field-label span { float:right; font:9px "DM Mono",monospace; }
.lab-input textarea,.lab-input input { border-color:var(--line); background:var(--bg); color:var(--ink); }
.lab-input textarea { height:230px; font-family:"DM Mono",monospace; font-size:12px; line-height:1.7; }
.lab-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.btn.text { color:var(--muted); }
.lab-result { min-width:0; margin:0; border:0; background:color-mix(in srgb,var(--surface) 70%,var(--accent-soft)); }
.result-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:10px 13px; border-bottom:1px solid var(--line); background:var(--accent-soft); }
.result-head > div { display:flex; align-items:center; gap:10px; }
.result-head span { color:var(--muted); }
.result-head b { color:var(--accent); }
.lab-result .output { min-height:434px; margin:0; padding:19px; color:var(--ink); font:12px/1.75 "DM Mono",monospace; white-space:pre-wrap; overflow-wrap:anywhere; }
.lab-result .output.error { color:#a92e34; }
.btn.icon-only { color:var(--accent); }
.lab-privacy { display:flex; justify-content:space-between; gap:20px; padding:18px 0 0; color:var(--muted); font-size:10px; }
.lab-privacy span { color:var(--accent); font:9px "DM Mono",monospace; }
.lab-privacy p { margin:0; }
.permission-grid { display:grid; grid-template-columns:82px repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.permission-grid > b,.permission-grid > strong,.permission-grid > label,.permission-grid > span { min-height:43px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.permission-grid > b { display:grid; place-items:center; color:var(--muted); font:9px "DM Mono",monospace; }
.permission-grid > strong { display:flex; align-items:center; padding:0 9px; font-size:10px; }
.permission-grid > label { position:relative; display:grid; place-items:center; cursor:pointer; }
.permission-grid input { position:absolute; opacity:0; pointer-events:none; }
.permission-grid label span { display:grid; place-items:center; width:26px; height:26px; border:1px solid var(--line); color:var(--muted); font:10px "DM Mono",monospace; }
.permission-grid input:checked + span { border-color:var(--accent); background:var(--accent); color:#fff; }

.admin {
  --admin-spring:#59e6a2; --admin-summer:#ffd166; --admin-autumn:#ff885c; --admin-winter:#57c7ff; --admin-pink:#ff6fae;
  display:grid; grid-template-columns:276px minmax(0,1fr); min-width:0; min-height:calc(100vh - 68px);
  background:#0b0d16; color:#edf0f7;
  background-image:linear-gradient(rgba(87,199,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(87,199,255,.025) 1px,transparent 1px);
  background-size:38px 38px;
}
body.admin-mode > .shell { display:none; }
body.admin-mode #app,body.admin-mode .admin,body.admin-mode .admin-login { min-height:100vh; }
body.admin-mode .admin .aside { height:100vh; }
.admin .aside {
  position:sticky; top:0; z-index:3; display:flex; flex-direction:column; min-width:0; height:calc(100vh - 68px); padding:26px 19px 18px;
  overflow:hidden; border-right:1px solid #292d42; background:#0d101b;
  background-image:linear-gradient(135deg,rgba(89,230,162,.04) 25%,transparent 25%,transparent 50%,rgba(87,199,255,.035) 50%,rgba(87,199,255,.035) 75%,transparent 75%); background-size:18px 18px;
}
.admin-brand { display:flex; gap:13px; align-items:center; margin:0 4px 25px; color:#fff; font:700 16px "Noto Serif SC",serif; }
.admin-brand > i,.admin-login-brand > i { display:grid; grid-template-columns:repeat(4,5px); gap:3px; height:31px; align-items:end; }
.admin-brand > i b,.admin-login-brand > i b { width:5px; height:45%; background:var(--admin-spring); animation:admin-equalizer 1.8s ease-in-out infinite alternate; }
.admin-brand > i b:nth-child(2),.admin-login-brand > i b:nth-child(2) { height:100%; background:var(--admin-summer); animation-delay:-.6s; }
.admin-brand > i b:nth-child(3),.admin-login-brand > i b:nth-child(3) { height:72%; background:var(--admin-autumn); animation-delay:-1.2s; }
.admin-brand > i b:nth-child(4),.admin-login-brand > i b:nth-child(4) { height:56%; background:var(--admin-winter); animation-delay:-.25s; }
.admin-brand span,.admin-brand small { display:block; }
.admin-brand small { margin-top:3px; color:#777f96; font:7px "DM Mono",monospace; }
.admin-operator { display:flex; gap:10px; align-items:center; margin:0 4px 22px; padding:12px; border:1px solid #292d42; background:#141827; }
.admin-operator > span { width:8px; height:8px; border-radius:50%; background:var(--admin-spring); box-shadow:0 0 0 5px rgba(89,230,162,.1); animation:admin-pulse 1.8s ease-in-out infinite; }
.admin-operator b,.admin-operator small { display:block; }
.admin-operator b { font-size:11px; }
.admin-operator small { margin-top:3px; color:#717a91; font:7px "DM Mono",monospace; }
.admin .menu { display:block; min-height:0; overflow-y:auto; scrollbar-width:thin; }
.admin .menu p { margin:19px 9px 7px; color:#626b82; font:7px "DM Mono",monospace; text-transform:uppercase; }
.admin .menu button { position:relative; display:grid; grid-template-columns:28px 1fr 16px; gap:8px; align-items:center; width:100%; min-height:39px; padding:0 10px; overflow:hidden; border:0; border-radius:3px; background:transparent; color:#949db2; text-align:left; transition:background .2s,color .2s,transform .2s; }
.admin .menu button::before { content:""; position:absolute; inset:6px auto 6px 0; width:2px; background:transparent; transition:background .2s,box-shadow .2s; }
.admin .menu button i { color:#535c73; font:8px "DM Mono",monospace; font-style:normal; }
.admin .menu button span { font-size:11px; font-weight:700; }
.admin .menu button b { opacity:0; color:var(--admin-winter); font-size:10px; transform:translateX(-5px); transition:.2s; }
.admin .menu button:hover { background:#181d2d; color:#fff; transform:translateX(2px); }
.admin .menu button:hover b,.admin .menu button.active b { opacity:1; transform:none; }
.admin .menu button.active { background:#1a2031; color:#fff; }
.admin .menu button.active::before { background:var(--admin-winter); box-shadow:0 0 12px var(--admin-winter); }
.admin .menu p:nth-of-type(2) + button.active::before { background:var(--admin-summer); box-shadow:0 0 12px var(--admin-summer); }
.admin-season { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:auto; padding:17px 0 0; border:0; }
.admin-season span { overflow:hidden; border-top:2px solid var(--admin-spring); color:#555e73; font:5px "DM Mono",monospace; padding-top:5px; text-align:center; }
.admin-season span:nth-child(2) { border-color:var(--admin-summer); }.admin-season span:nth-child(3) { border-color:var(--admin-autumn); }.admin-season span:nth-child(4) { border-color:var(--admin-winter); }
.admin-main { min-width:0; width:100%; max-width:1500px; padding:30px clamp(24px,4vw,60px) 70px; }
.admin-main:not(main)::before { content:"四序控制台  /  SERVER CONNECTED"; display:block; margin-bottom:28px; color:#737d94; font:8px "DM Mono",monospace; }
.admin-workspace-bar { display:flex; justify-content:space-between; align-items:center; min-height:30px; margin-bottom:27px; border-bottom:1px solid #252a3d; color:#737d94; font:8px "DM Mono",monospace; }
.admin-workspace-bar div { color:#8a95aa; }.admin-workspace-bar i { display:inline-block; width:6px; height:6px; margin-right:6px; border-radius:50%; background:var(--admin-spring); box-shadow:0 0 9px var(--admin-spring); }
.admin .admin-head { min-height:77px; margin-bottom:26px; padding-bottom:21px; border-bottom:1px solid #2b3044; }
.admin .admin-head h1 { margin:5px 0 0; color:#fff; font:700 30px "Noto Serif SC",serif; }
.admin .type { color:var(--admin-winter); font-size:8px; }
.admin .btn { border-color:#353b52; background:#171b2a; color:#dce2ee; box-shadow:none; transition:border-color .18s,background .18s,transform .18s; }
.admin .btn:hover { border-color:var(--admin-winter); background:#202638; color:#fff; transform:translateY(-1px); }
.admin .btn.primary { border-color:var(--admin-winter); background:var(--admin-winter); color:#071018; }
.admin .btn.danger { border-color:#663847; background:#21141a; color:#ff7891; }
.admin .kpis { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.admin .kpi { position:relative; min-width:0; min-height:126px; padding:22px 18px; overflow:hidden; border:1px solid #2c3145; border-top:3px solid var(--admin-spring); border-radius:4px; background:#151927; }
.admin .kpi::after { content:""; position:absolute; right:-12px; bottom:-25px; width:62px; height:62px; border:10px solid rgba(89,230,162,.06); transform:rotate(25deg); }
.admin .kpi:nth-child(2) { border-top-color:var(--admin-summer); }.admin .kpi:nth-child(2)::after { border-color:rgba(255,209,102,.07); }
.admin .kpi:nth-child(3) { border-top-color:var(--admin-autumn); }.admin .kpi:nth-child(3)::after { border-color:rgba(255,136,92,.07); }
.admin .kpi:nth-child(4) { border-top-color:var(--admin-pink); }.admin .kpi:nth-child(4)::after { border-color:rgba(255,111,174,.07); }
.admin .kpi:nth-child(5) { border-top-color:var(--admin-winter); }.admin .kpi:nth-child(5)::after { border-color:rgba(87,199,255,.07); }
.admin .kpi b { position:relative; z-index:1; display:block; color:#fff; font:500 29px "DM Mono",monospace; }
.admin .kpi span { position:relative; z-index:1; display:block; margin-top:17px; color:#818a9f; font:8px "DM Mono",monospace; }
.dashboard-grid { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr); gap:18px; margin-top:18px; }
.dashboard-grid > section { min-width:0; overflow:hidden; padding:25px; border:1px solid #2c3145; border-radius:4px; background:#131725; }
.dashboard-grid > section:first-child { border-top:3px solid var(--admin-autumn); }
.dashboard-grid > section:last-child { border-top:3px solid var(--admin-winter); }
.dashboard-grid .section-head { margin-bottom:18px; }.dashboard-grid .section-head h2 { color:#f3f5fa; font-size:18px; }.dashboard-grid .section-head p { color:#747d92; font-size:10px; }
.popular-list { border-top:1px solid #2b3043; }
.popular-list a { display:grid; grid-template-columns:34px minmax(0,1fr) 18px; gap:10px; align-items:center; min-height:72px; border-bottom:1px solid #2b3043; transition:padding .18s,background .18s; }
.popular-list a:hover { padding:0 9px; background:#191e2e; }
.popular-list a > span { color:var(--admin-autumn); font:8px "DM Mono",monospace; }.popular-list b,.popular-list small { display:block; }.popular-list b { overflow:hidden; color:#eef1f7; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.popular-list small { margin-top:6px; color:#798297; font:7px "DM Mono",monospace; }.popular-list i { color:var(--admin-autumn); font-style:normal; }
.admin .table { width:100%; border:1px solid #2c3145; border-collapse:separate; border-spacing:0; border-radius:4px; background:#131725; color:#cbd2df; font-size:10px; }
.admin .table th { height:40px; padding:0 13px; border-bottom:1px solid #34394d; background:#191e2d; color:#737d94; font:7px "DM Mono",monospace; text-transform:uppercase; }
.admin .table td { height:55px; padding:10px 13px; border-bottom:1px solid #252a3c; }
.admin .table tbody tr { transition:background .16s; }.admin .table tbody tr:hover { background:#1a1f30; }.admin .table tr:last-child td { border-bottom:0; }
.admin .tag { border-color:#3b4561; background:#1b2132; color:#9db2d2; }
.article-options { display:flex; gap:8px; margin:0 0 11px; }.article-options label { display:flex; gap:8px; align-items:center; flex:1; min-height:42px; padding:0 11px; border:1px solid #343a50; border-radius:3px; background:#171c2a; color:#aab2c2; font-size:10px; cursor:pointer; }.article-options input { width:15px!important; margin:0!important; accent-color:var(--admin-summer); }
.article-flags { display:flex; flex-wrap:wrap; gap:4px; }.article-flags b,.article-flags small { padding:3px 5px; border:1px solid #46506a; color:#adb5c6; font:7px "DM Mono",monospace; }.article-flags b { border-color:var(--admin-summer); color:var(--admin-summer); }
.admin .editor { gap:18px; }.admin .editor > div:first-child { padding:22px; border:1px solid #2d3247; border-top:3px solid var(--admin-summer); border-radius:4px; background:#121624; }
.admin textarea,.admin .editor input,.admin .editor select,.admin .table input,.admin .table select { border:1px solid #343a50; border-radius:3px; background:#0d111d; color:#edf1f8; outline:0; }
.admin .editor input,.admin .editor select { min-height:44px; }.admin textarea:focus,.admin .editor input:focus,.admin .editor select:focus,.admin .table input:focus,.admin .table select:focus { border-color:var(--admin-winter); box-shadow:0 0 0 3px rgba(87,199,255,.09); }
.admin .preview { min-height:500px; border:1px solid #2d3247; border-top:3px solid var(--admin-pink); border-radius:4px; background:#161927; }
.admin .preview h2 { color:#fff; }.admin .preview .prose { color:#bcc4d2; }
.admin .tool { border:1px solid #2d3247; border-top:3px solid var(--admin-pink); border-radius:4px; background:#141827; }
.admin .section { padding:32px 0; border:0; }.admin-table-wrap { width:100%; max-width:100%; overflow-x:auto; }.admin-table-wrap .table { min-width:760px; }
.admin-login { --admin-spring:#59e6a2; --admin-summer:#ffd166; --admin-autumn:#ff885c; --admin-winter:#57c7ff; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr); min-height:calc(100vh - 68px); background:#0b0d16; }
.admin-login-scene { position:relative; min-height:620px; padding:38px; overflow:hidden; background-image:linear-gradient(90deg,rgba(8,10,18,.15),rgba(8,10,18,.72)),var(--login-image); background-size:cover; background-position:center; }
.admin-login-scene::after { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px); background-size:44px 44px; mask-image:linear-gradient(to bottom,transparent,#000 35%,#000); }
.admin-login-brand { position:relative; z-index:1; display:flex; gap:14px; align-items:center; color:#fff; font:700 20px "Noto Serif SC",serif; }.admin-login-brand span,.admin-login-brand small { display:block; }.admin-login-brand small { margin-top:4px; color:#c0c7d1; font:7px "DM Mono",monospace; }
.admin-login-signal { position:absolute; z-index:1; right:38px; bottom:42px; left:38px; display:grid; grid-template-columns:1fr auto; gap:8px; align-items:end; padding-top:18px; border-top:1px solid rgba(255,255,255,.35); }.admin-login-signal > span { grid-column:1/-1; color:var(--admin-summer); font:8px "DM Mono",monospace; }.admin-login-signal strong { color:#fff; font:700 32px "Noto Serif SC",serif; }.admin-login-signal small { color:#fff; font:8px "DM Mono",monospace; }
.admin-login-form { display:grid; place-items:center; padding:50px; background:#10131f; background-image:linear-gradient(135deg,rgba(87,199,255,.04) 25%,transparent 25%,transparent 50%,rgba(255,111,174,.025) 50%,rgba(255,111,174,.025) 75%,transparent 75%); background-size:22px 22px; }
.login-terminal { width:min(390px,100%); }.login-seq { color:var(--admin-winter); font:8px "DM Mono",monospace; }.login-terminal h1 { margin:12px 0 7px; color:#fff; font:700 40px "Noto Serif SC",serif; }.login-terminal > p { margin:0 0 34px; color:#818a9e; font-size:12px; }
.login-terminal .auth-fields { gap:17px; }.login-terminal label span { display:block; margin-bottom:7px; color:#778096; font:7px "DM Mono",monospace; }.login-terminal input { width:100%; height:49px; padding:0 14px; border:1px solid #343a50; border-radius:3px; background:#0a0d17; color:#fff; outline:0; }.login-terminal input:focus { border-color:var(--admin-winter); box-shadow:0 0 0 3px rgba(87,199,255,.09); }.login-terminal .btn { display:flex; justify-content:space-between; width:100%; height:48px; margin-top:5px; padding:0 15px; align-items:center; border-color:var(--admin-winter); background:var(--admin-winter); color:#071018; }.login-error { min-height:20px; margin:15px 0!important; color:#ff7c91!important; font-size:10px!important; }.login-back { color:#778096; font:9px "DM Mono",monospace; }
.admin-captcha { min-height:64px; display:grid; grid-template-columns:1fr 46px; align-items:center; gap:10px; padding:10px 11px 10px 14px; border:1px solid #343a50; border-left:2px solid var(--admin-summer); background:#0a0d17; }.admin-captcha span { display:block; margin-bottom:5px; color:#a2aabd; font:7px "DM Mono",monospace; }.admin-captcha strong { color:var(--admin-summer); font:700 17px "DM Mono",monospace; }.admin-captcha button { width:42px; height:42px; border:1px solid #4b5268; border-radius:3px; background:#171b29; color:#fff; font-size:18px; }.admin-captcha button:hover { border-color:var(--admin-summer); color:var(--admin-summer); }.login-terminal .btn:disabled { cursor:wait; opacity:.58; }
@keyframes admin-equalizer { to { height:25%; } }
@keyframes admin-pulse { 50% { opacity:.5; box-shadow:0 0 0 8px rgba(89,230,162,0); } }
footer { display:flex; justify-content:space-between; gap:20px; padding:30px 0 42px; border-top:1px solid var(--line); color:var(--muted); font:10px "DM Mono",monospace; }
body.motion-ready .reveal { opacity:0; transform:translateY(18px); transition:opacity .62s ease var(--reveal-delay,0ms),transform .62s cubic-bezier(.2,.72,.2,1) var(--reveal-delay,0ms); }
body.motion-ready .reveal.is-visible { opacity:1; transform:none; }

@media (max-width:900px) {
  .brand small,.nav,.top-actions .manage-link { display:none; }
  .menu-toggle { display:block; }
  .season-hero { gap:38px; }
  .ops-desk { grid-template-columns:1fr; }
  .weather-board { min-height:310px; }
}
@media (max-width:700px) {
  .season-atmosphere i:nth-child(n+9) { display:none; }
  .shell { width:min(100% - 28px,1120px); }
  .top { height:66px; }
  .season-switch button { width:25px; height:25px; }
  .mobile-nav.open { display:block; padding:7px 0 13px; background:var(--bg); }
  .mobile-nav a { color:var(--muted); }
  .season-hero { display:block; min-height:0; padding:58px 0 110px; }
  .season-intro h1 { font-size:68px; }
  .role { font-size:19px; }
  .season-lead { font-size:14px; }
  .command-line { display:grid; gap:5px; }
  .season-window { max-width:none; width:76%; margin:55px 0 0 auto; }
  .season-window img { aspect-ratio:4/3.4; }
  .current-entry { grid-template-columns:1fr 24px; gap:6px; min-height:92px; padding:11px 0; }
  .current-entry span { grid-column:1; }
  .current-entry strong { grid-column:1; font-size:14px; }
  .current-entry small { display:none; }
  .current-entry b { grid-column:2; grid-row:1/3; }
  .ops-desk { padding-top:34px; }
  .command-board,.weather-board { min-height:0; }
  .ops-head { padding:18px; }
  .command-stage { padding:23px 18px 25px; }
  .command-code { grid-template-columns:auto minmax(0,1fr); }
  .command-code button { grid-column:2; justify-self:start; }
  .command-progress { right:18px; left:18px; }
  .command-index { padding:0 18px 19px; }
  .weather-now { padding:20px 18px; }
  .weather-days { margin:0 18px; }
  .weather-source { margin:18px; }
  .journal-section { padding:70px 0 64px; }
  .journal-list > a { grid-template-columns:34px 1fr 20px; gap:10px; padding:20px 0; }
  .journal-list time,.journal-list p { display:none; }
  .journal-list h3 { font-size:16px; }
  .field-grid { grid-template-columns:1fr; gap:56px; padding-bottom:72px; }
  .listing { padding-top:54px; }
  .page-title,.lab-header .page-title { font-size:38px; }
  .archive-hero,.friends-hero { display:block; padding-bottom:26px; }
  .archive-stats { margin-top:25px; }
  .archive-stats div { min-width:0; flex:1; padding:12px; }
  .archive-directory { flex-wrap:nowrap; overflow-x:auto; padding:18px 0 38px; scrollbar-width:thin; }
  .archive-directory a { flex:0 0 auto; }
  .archive-group > header { grid-template-columns:1fr auto; min-height:74px; }
  .archive-group > header span { grid-column:1/-1; margin-bottom:-13px; }
  .archive-group > header h2 { font-size:22px; }
  .archive-entry { grid-template-columns:34px minmax(0,1fr) 18px; gap:10px; min-height:96px; }
  .archive-entry-tags { display:none; }
  .archive-entry > b { overflow:hidden; width:18px; color:var(--season-mark); font-size:0; }
  .archive-entry > b::after { content:"↗"; font-size:13px; }
  .friends-signal { margin-top:23px; }
  .friend-group { padding-bottom:36px; }
  .friend-grid { grid-template-columns:1fr; }
  .friend-link { min-height:132px; }
  .admin { grid-template-columns:1fr; }
  .admin .kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin .aside { position:static; display:block; min-width:0; width:100%; max-width:100vw; height:auto; padding:17px 14px 12px; overflow:hidden; border-right:0; border-bottom:1px solid #292d42; }
  .admin-brand { margin:0 0 14px; }
  .admin-operator,.admin-season,.admin .menu p { display:none; }
  .admin .menu { display:flex; width:100%; max-width:100%; overflow-x:auto; gap:5px; scrollbar-width:thin; }
  .admin .menu button { display:flex; flex:0 0 auto; min-height:34px; width:auto; padding:0 11px; gap:7px; border:1px solid #292d42; white-space:nowrap; }
  .admin .menu button::before,.admin .menu button b { display:none; }
  .admin .menu button i { color:var(--admin-winter); }
  .admin-main { width:100%; max-width:100vw; padding:22px 14px 52px; overflow:hidden; }
  .admin-workspace-bar { margin-bottom:20px; }
  .admin .admin-head { align-items:flex-start; min-height:0; }
  .admin .admin-head h1 { font-size:24px; }
  .admin .kpi { min-height:108px; padding:17px 14px; }
  .admin .kpi b { font-size:24px; }
  .dashboard-grid { grid-template-columns:1fr; }
  .dashboard-grid > section { padding:18px; }
  .admin-login { grid-template-columns:1fr; min-height:calc(100vh - 66px); }
  .admin-login-scene { min-height:225px; padding:23px 20px; }
  .admin-login-signal { right:20px; bottom:22px; left:20px; }
  .admin-login-signal strong { font-size:23px; }
  .admin-login-form { place-items:start center; padding:36px 20px 55px; }
  .login-terminal h1 { font-size:34px; }
  .article-row { grid-template-columns:1fr; gap:7px; }
  .grid3 { grid-template-columns:1fr; }
  .card { border-right:0; border-bottom:1px solid var(--line); }
  .article { padding-top:50px; }
  .article-header { padding-left:17px; }
  .article h1 { font-size:33px; }
  .article-layout { grid-template-columns:1fr; gap:28px; }
  .article-toc { position:static; order:-1; padding:15px 0 0; border-top:1px solid var(--line); border-left:0; }
  .prose { font-size:16px; }
  .lab-header { align-items:start; }
  .lab-summary { display:none; }
  .lab-shell { display:block; }
  .lab-tabs { flex-direction:row; overflow-x:auto; border-right:0; border-bottom:1px solid var(--line); scrollbar-width:thin; }
  .lab-tool { flex:0 0 164px; border-right:1px solid var(--line); border-bottom:0; }
  .lab-body { grid-template-columns:1fr; }
  .lab-input { padding:22px 18px 24px; border-right:0; border-bottom:1px solid var(--line); }
  .lab-input textarea { height:170px; }
  .lab-result .output { min-height:210px; }
  .workbench-top { align-items:flex-start; padding:23px 18px 19px; }
  .workbench-top .btn { flex:0 0 auto; }
  .permission-grid { grid-template-columns:72px repeat(3,1fr); }
  .lab-privacy { display:block; line-height:1.7; }
  .lab-privacy span { display:block; margin-bottom:5px; }
  footer { display:block; }
  footer span { display:block; margin-bottom:6px; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } body { transition:none; } .top::before,.brand b,.brand b::after,.season-switch button.active,.friends-signal i { animation:none; } .season-atmosphere { display:none; } .season-window img { transform:none; transition:none; } body.motion-ready .reveal { opacity:1; transform:none; transition:none; } .command-progress.running::after,.command-stage.refreshing > *,.weather-loading i { animation:none; } }
