:root{--bg: #f4f1eb;--surface: rgba(255, 253, 249, .82);--surface-solid: #fffdf9;--surface-strong: rgba(255, 253, 249, .96);--panel: #efeadf;--text: #1d2228;--soft-text: #46505a;--muted: #6b756f;--line: #ded7cb;--line-strong: #cec5b6;--accent: #1f5c57;--accent-strong: #184844;--accent-soft: #ebf3f1;--radius: 18px;--shadow: 0 16px 36px rgba(20, 24, 28, .05);--shadow-strong: 0 22px 52px rgba(20, 24, 28, .08);--shell: min(1120px, calc(100vw - 32px) );--font-sans: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-mono: "JetBrains Mono", "IBM Plex Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:radial-gradient(circle at top left,rgba(230,216,186,.75),transparent 24%),radial-gradient(circle at top right,rgba(214,236,231,.72),transparent 20%),linear-gradient(180deg,#ffffff8c,#fff0 220px),var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.8}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}main{padding:28px 0 64px}.shell{width:var(--shell);margin:0 auto}.site-header{position:sticky;top:0;z-index:10;background:#f4f1ebb8;border-bottom:1px solid rgba(222,215,203,.7);backdrop-filter:blur(18px)}.nav-shell,.footer-shell{display:flex;align-items:center;justify-content:space-between;gap:16px}.nav-shell{padding:18px 0 16px}.brand{display:inline-flex;align-items:center;gap:12px;padding-right:8px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;min-width:58px;height:36px;padding:0 12px;border:1px solid rgba(31,92,87,.14);border-radius:999px;background:#fffdf9e0;color:var(--accent);font-size:13px;font-weight:700;box-shadow:inset 0 1px #fffc}.brand strong,h1,h2,h3{font-family:var(--font-serif);font-weight:600;letter-spacing:.01em}.brand strong{display:block;font-size:16px}.brand small{color:var(--muted);font-size:13px}.nav-links{display:flex;flex-wrap:wrap;gap:10px;padding:8px;border:1px solid rgba(222,215,203,.9);border-radius:999px;background:#fffdf9e6;box-shadow:var(--shadow)}.nav-link{padding:9px 16px;border-radius:999px;color:var(--muted);font-size:15px;font-weight:600;transition:transform .16s ease,background-color .16s ease,color .16s ease}.nav-link.is-active,.nav-link:hover{background:#fff;color:var(--text);transform:translateY(-1px);box-shadow:0 8px 18px #1f293714}.intro,.page-intro{padding:36px 0 10px}.intro{display:block}.intro-avatar{width:116px;height:116px;border-radius:28px;object-fit:cover;border:1px solid rgba(31,92,87,.12);background:var(--surface-solid);box-shadow:var(--shadow-strong)}.intro-copy{max-width:780px}.hero-card{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:28px;padding:30px;border:1px solid rgba(222,215,203,.92);border-radius:30px;background:linear-gradient(150deg,#fffdf9f0,#f8f3e9eb),var(--surface-strong);box-shadow:var(--shadow-strong);overflow:hidden;animation:rise-in .52s ease both}.hero-card:before{content:"";position:absolute;width:220px;height:220px;right:-56px;top:-74px;border-radius:999px;background:radial-gradient(circle,rgba(31,92,87,.16),transparent 68%);pointer-events:none}.hero-card:after{content:"";position:absolute;width:180px;height:180px;left:-58px;bottom:-82px;border-radius:999px;background:radial-gradient(circle,rgba(203,174,112,.2),transparent 72%);pointer-events:none}.hero-copy,.hero-aside{position:relative;z-index:1}.hero-topline{display:flex;align-items:center;gap:20px}.hero-topline .eyebrow{margin-bottom:8px}.hero-links-strong{gap:12px}.hero-links-strong a{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid rgba(31,92,87,.12);border-radius:999px;background:#fffdf9eb;box-shadow:0 8px 18px #14181c0a}.hero-links-strong a:first-child,.hero-links-strong a:nth-child(2){background:linear-gradient(135deg,#1f5c571f,#fffdf9f5)}.hero-links-strong a:hover{text-decoration:none;transform:translateY(-1px)}.hero-update{padding:10px 14px;border-radius:14px;background:#fffdf9c7;border:1px solid rgba(222,215,203,.85)}.hero-aside{display:grid;gap:16px;align-content:start}.hero-note-card{padding:18px;border:1px solid rgba(222,215,203,.9);border-radius:22px;background:#fffdf9c7;box-shadow:0 12px 24px #14181c0a}.accent-card{background:linear-gradient(180deg,#e9f3f1e6,#fffdf9f5)}.hero-note-label{margin:0 0 10px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.hero-note-list{margin:0;padding-left:18px;color:var(--soft-text)}.hero-note-list li+li{margin-top:8px}.hero-chip-stack{display:grid;gap:10px}.hero-chip{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px;padding:0 14px;border:1px solid rgba(31,92,87,.1);border-radius:16px;background:#ffffffb8}.hero-chip span{color:var(--text);font-weight:600}.hero-chip strong{color:var(--accent-strong);font-family:var(--font-serif);font-size:22px}.eyebrow{margin:0 0 10px;color:var(--muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase}h1,h2,h3{margin:0;line-height:1.28}h1{font-size:clamp(30px,5vw,46px)}h2{font-size:24px}h3{font-size:22px}.intro-copy p,.page-intro p,.section p,.site-footer p,.archive-row p,.tag-board p{color:var(--soft-text)}.intro-lead{margin:16px 0 8px;color:var(--text)!important;font-size:clamp(18px,2.3vw,22px)}.hero-links{display:flex;flex-wrap:wrap;gap:14px;margin:18px 0 12px}.hero-links a,.section-link,.article-back a{color:var(--accent)}.hero-links a:hover,.section-link:hover,.article-back a:hover{text-decoration:underline;text-underline-offset:4px}.meta-line,.section-note{margin:10px 0 0;color:var(--muted);font-size:14px}.intro-stats,.page-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0 0}.intro-stats div,.page-stats div{padding:14px 16px;border:1px solid rgba(222,215,203,.92);border-radius:14px;background:#fffdf9e0;box-shadow:0 10px 22px #14181c0a}.intro-stats dt,.page-stats dt{color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.intro-stats dd,.page-stats dd{margin:6px 0 0;color:var(--text);font-family:var(--font-serif);font-size:28px}.home-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.9fr);gap:34px}.home-layout,.archive-page{display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px;padding-top:24px}.main-column,.side-column,.simple-stack,.archive-main,.year-stack{display:grid;gap:24px}.index-column{min-width:0}.site-index{position:sticky;top:84px;padding:2px 0 0 18px;border-left:1px solid var(--line)}.index-title{margin:0 0 12px;color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.index-list{margin:0;padding:0;list-style:none}.index-list li+li{margin-top:10px}.index-list a{color:var(--soft-text)}.index-list a:hover{color:var(--accent)}.index-meta{margin:16px 0 0;color:var(--muted);font-size:13px}.index-block{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.index-label{margin:0 0 6px;color:var(--text);font-size:13px}.index-text{margin:0;color:var(--muted);font-size:14px}.section{padding:22px 0;border-top:1px solid var(--line)}.section:first-child{border-top:0;padding-top:0}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}.archive-list{display:grid;gap:0}.featured-card,.side-note,.tag-board{border:1px solid rgba(222,215,203,.92);border-radius:var(--radius);background:#fffdf9e0;box-shadow:var(--shadow)}.featured-card{padding:22px 24px;animation:rise-in .48s ease both}.featured-kicker,.archive-kicker,.archive-year,.article-back{margin:0;color:var(--muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.featured-card h3{margin-top:8px;font-size:clamp(24px,3vw,32px)}.featured-card h3 a:hover{color:var(--accent)}.featured-card p{margin-bottom:0}.featured-meta,.archive-meta,.article-meta{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:13px}.featured-meta,.archive-meta{margin-top:12px}.track-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.route-grid,.guide-grid,.category-overview,.about-panel-grid,.signal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.route-card,.guide-card{display:block;padding:18px;border:1px solid rgba(222,215,203,.92);border-radius:var(--radius);background:#fffdf9e0;box-shadow:var(--shadow);transition:transform .16s ease,border-color .16s ease;animation:rise-in .46s ease both}.route-card:hover,.guide-card:hover{transform:translateY(-2px);border-color:var(--line-strong)}.route-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}.route-card-head span,.guide-card-label,.category-board-track{color:var(--muted);font-size:13px}.route-card-head strong{color:var(--accent-strong);font-family:var(--font-serif);font-size:28px}.route-card-meta{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.guide-card h2{margin-top:6px;font-size:22px}.guide-card-meta{margin-top:12px;color:var(--muted);font-size:13px}.focus-list-card .plain-list{margin-top:14px}.signal-card{display:grid;gap:10px;padding:20px;border:1px solid rgba(222,215,203,.92);border-radius:calc(var(--radius) + 2px);background:linear-gradient(180deg,#fffdf9fa,#f6f1e8eb);box-shadow:var(--shadow);transition:transform .16s ease,border-color .16s ease;animation:rise-in .5s ease both}.signal-card:hover{transform:translateY(-3px);border-color:var(--line-strong)}.signal-label{margin:0;color:var(--muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.signal-card h3{font-size:24px}.signal-card-footer,.mini-link-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.signal-card-footer{margin-top:8px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.about-intro{padding-bottom:0}.about-hero-card{grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr)}.mini-link-list{display:grid;gap:10px;margin-top:14px}.mini-link-row{padding:12px 14px;border:1px solid rgba(222,215,203,.92);border-radius:14px;background:#fffdf9b8;transition:transform .16s ease,border-color .16s ease}.mini-link-row:hover{transform:translateY(-2px);border-color:var(--line-strong)}.mini-link-row strong{color:var(--accent-strong);font-family:var(--font-serif);font-size:20px}.track-board{display:grid;gap:6px;padding:16px;border:1px solid rgba(222,215,203,.92);border-radius:16px;background:#fffdf9e0;box-shadow:var(--shadow);transition:transform .16s ease,border-color .16s ease;animation:rise-in .46s ease both}.track-board.has-cover,.contest-board.has-cover,.contest-hero.has-cover{position:relative;overflow:hidden;color:#fff4d2;background:linear-gradient(120deg,#050f25d6,#050f2594),var(--contest-cover) center/cover no-repeat;border-color:#ffe4a43d}.track-board.has-cover:after,.contest-board.has-cover:after,.contest-hero.has-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#07102614,#07102675);pointer-events:none}.track-board-content,.contest-board-content,.contest-hero-inner{position:relative;z-index:1}.track-board:hover{transform:translateY(-2px);border-color:var(--line-strong)}.track-board strong{font-family:var(--font-serif);font-size:24px}.track-board.has-cover strong,.track-board.has-cover p,.contest-board.has-cover strong,.contest-board.has-cover p,.contest-hero.has-cover h1,.contest-hero.has-cover p,.contest-hero.has-cover .meta-line,.contest-hero.has-cover .eyebrow{color:#fff4d2!important}.track-name{margin:0;color:var(--muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.empty-feed{margin:0;padding:18px 20px;border:1px dashed var(--line-strong);border-radius:14px;background:#fffdf980}.archive-year-group+.archive-year-group{padding-top:10px}.archive-row{display:grid;grid-template-columns:78px minmax(0,1fr);gap:20px;align-items:start;padding:22px 0;border-bottom:1px solid var(--line)}.archive-row:last-child{padding-bottom:0;border-bottom:0}.archive-date{padding-top:2px;color:var(--muted);font-family:var(--font-mono);font-size:12px;text-align:right}.archive-date time{display:block;color:var(--text);font-size:14px;font-weight:600;letter-spacing:.02em}.archive-date span{display:block;margin-top:4px}.archive-body{min-width:0}.archive-title-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:8px}.archive-row h3 a:hover{color:var(--accent)}.archive-summary{margin:10px 0 0;font-size:15px}.entry-badge,.difficulty-pill,.tag-pill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border:1px solid transparent;border-radius:999px;font-size:13px}.entry-badge{background:#1f5c5714;color:var(--accent)}.difficulty-easy,.difficulty-medium,.difficulty-hard,.difficulty-notes,.tag-pill{border-color:#1f5c571f;background:var(--accent-soft);color:var(--accent)}.tag-row,.tag-cloud{display:flex;flex-wrap:wrap;gap:8px}.archive-row .tag-row{margin-top:12px}.archive-row .tag-pill{min-height:24px;padding:0 9px;font-size:12px}.side-note{padding:18px}.side-note h2{margin-bottom:8px}.link-list,.plain-list{margin:0;padding-left:18px}.plain-list li,.link-list li{margin:8px 0}.note-list li{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:baseline}.note-list li span{color:var(--muted);font-size:13px}.tag-index-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-top:12px}.tag-board{display:block;padding:16px;transition:transform .16s ease,border-color .16s ease;animation:rise-in .46s ease both}.compact-grid .tag-board{min-height:132px}.tag-board:hover{transform:translateY(-2px);border-color:var(--line-strong)}.category-board{display:grid;gap:10px}.category-board-rich{min-height:240px}.category-board-description{color:var(--text)!important}.category-example-row{display:flex;flex-wrap:wrap;gap:8px}.tag-board-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:8px}.tag-board-name{font-weight:600}.category-board-footer{display:grid;gap:10px;margin-top:6px;padding-top:12px;border-top:1px solid var(--line)}.category-board-footer>span{color:var(--muted);font-size:13px}.empty-inline{color:var(--muted);font-size:14px}.section-block{padding-top:12px}.article-shell{max-width:760px;margin:0 auto}.article-header{padding:8px 0 18px;border-bottom:1px solid var(--line)}.article-back{margin-bottom:14px}.article-description{margin:12px 0 14px}.article-context{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;color:var(--soft-text);font-size:14px}.article-context span{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fffdf9b3}.article-context a{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fffdf9b3;color:var(--accent)}.contest-index-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-top:12px}.contest-board{display:grid;gap:8px;padding:18px;border:1px solid rgba(222,215,203,.92);border-radius:var(--radius);background:#fffdf9e0;box-shadow:var(--shadow);transition:transform .16s ease,border-color .16s ease}.contest-board:hover{transform:translateY(-2px);border-color:var(--line-strong)}.contest-board-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.contest-board-head span{color:var(--muted);font-size:13px}.contest-meta-cloud{margin-top:16px}.contest-hero{padding:36px 36px 32px;border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:var(--surface);box-shadow:var(--shadow)}.contest-hero.has-cover{min-height:320px;display:flex;align-items:flex-end}.contest-hero.has-cover .tag-pill{border-color:#ffe4a43d;background:#09183861;color:#fff4d2}.article-meta{margin-bottom:12px}.article-body{padding-top:18px;font-size:16px}.article-comments{margin-top:34px;padding-top:26px;border-top:1px solid var(--line)}.article-comments-head{display:grid;gap:8px;margin-bottom:18px}.article-comments-head h2{font-size:26px}.article-comments-head p:last-child{margin:0;color:var(--soft-text)}.article-comments-shell{padding:18px;border:1px solid rgba(222,215,203,.92);border-radius:calc(var(--radius) + 2px);background:linear-gradient(180deg,#fffdf9fa,#f8f4edeb);box-shadow:var(--shadow)}.guestbook-hero-card{background:radial-gradient(circle at top right,rgba(31,92,87,.12),transparent 24%),linear-gradient(150deg,#fffdf9f5,#f6f1e8f0),var(--surface-strong)}.guestbook-pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.guestbook-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.guestbook-card,.guestbook-note-panel{padding:22px;border:1px solid rgba(222,215,203,.92);border-radius:calc(var(--radius) + 2px);background:#fffdf9e0;box-shadow:var(--shadow)}.guestbook-card{display:grid;gap:10px;min-height:188px;transition:transform .16s ease,border-color .16s ease}.guestbook-card:hover{transform:translateY(-2px);border-color:var(--line-strong)}.guestbook-card-label,.guestbook-note-label{margin:0;color:var(--muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.guestbook-card h2,.guestbook-note-panel h2{font-size:24px}.guestbook-card p:last-child,.guestbook-note-panel p:last-child{margin:0;color:var(--soft-text)}.guestbook-note-wrap{padding-top:6px}.guestbook-note-panel{background:linear-gradient(180deg,#e9f3f1db,#fffdf9f5)}.prose :where(h2,h3,h4){margin-top:34px;margin-bottom:10px;font-family:var(--font-serif)}.prose p,.prose li{color:#2d343b}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:#1f5c5759;text-underline-offset:4px}.prose ul,.prose ol{padding-left:22px}.prose blockquote{margin:20px 0;padding:8px 0 8px 16px;border-left:3px solid var(--line-strong);color:var(--muted)}.prose pre{overflow-x:auto;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfbf8;font-family:var(--font-mono)}.prose code{font-family:var(--font-mono)}.prose img{margin:22px auto;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid)}.prose hr{margin:28px 0;border:0;border-top:1px solid var(--line)}.site-footer{padding:38px 0 44px;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(240px,.9fr);gap:20px;align-items:start}.footer-brand-block,.footer-meta-card{padding:18px 20px;border:1px solid rgba(222,215,203,.92);border-radius:22px;background:#fffdf9c7;box-shadow:var(--shadow)}.footer-brand-block strong{display:block;margin-top:6px;font-family:var(--font-serif);font-size:22px}.footer-nav{display:flex;flex-wrap:wrap;gap:10px;align-content:flex-start;padding-top:8px}.footer-link-pill{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid rgba(31,92,87,.12);border-radius:999px;background:#fffdf9eb;color:var(--accent);font-weight:600;box-shadow:0 8px 18px #14181c0a;transition:transform .16s ease,background-color .16s ease}.footer-link-pill:hover{transform:translateY(-2px);background:#fff}.footer-meta-card{background:linear-gradient(180deg,#e9f3f1e6,#fffdf9f5)}.footer-meta-title{margin:0 0 8px;color:var(--text)!important;font-family:var(--font-serif);font-size:22px}.fade-up,.delay-1{animation:none}@media(max-width:900px){.hero-card,.home-grid,.footer-grid{grid-template-columns:1fr}}@media(max-width:820px){.home-layout,.archive-page,.tag-index-grid,.route-grid,.guide-grid,.guestbook-grid,.category-overview,.about-panel-grid,.signal-grid,.track-grid,.contest-index-grid{grid-template-columns:1fr}.intro-avatar{width:92px;height:92px;border-radius:24px}.hero-card{padding:22px}.hero-topline{align-items:flex-start;flex-direction:column;gap:14px}.site-index{position:static;padding:0 0 18px;border-left:0;border-bottom:1px solid var(--line)}.archive-row{grid-template-columns:1fr;gap:10px}.archive-date{text-align:left}.archive-date time,.archive-date span{display:inline}.archive-date span:before{content:" / "}.article-comments-shell{padding:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:640px){.nav-shell,.footer-shell,.section-head{align-items:flex-start;flex-direction:column}.nav-links{width:100%;justify-content:flex-start}h1{font-size:30px}main{padding-top:18px}.intro-stats,.page-stats{grid-template-columns:1fr}}
