:root { --shell-width: 1320px; --shell-gutter: 24px; --grid-gap: 24px; --bg: #121212; --bg-soft: #181818; --panel: #1d1b1a; --panel-2: #23211f; --paper: #f2ece4; --paper-soft: #e5ddd1; --ink: #151515; --text: #f3efe8; --muted: rgba(243, 239, 232, 0.68); --line: rgba(255, 255, 255, 0.11); --line-strong: rgba(255, 255, 255, 0.22); --accent: #7f2f2f; --accent-soft: rgba(127, 47, 47, 0.12); --shadow: 0 26px 80px rgba(0, 0, 0, 0.26); } body.light-mode { --bg: #eee7dd; --bg-soft: #e6ddd1; --panel: #f7f1e8; --panel-2: #f1eadf; --paper: #fffdfa; --paper-soft: #f3ebdf; --ink: #171717; --text: #171717; --muted: rgba(23, 23, 23, 0.7); --line: rgba(23, 23, 23, 0.11); --line-strong: rgba(23, 23, 23, 0.2); --accent: #8d3d38; --accent-soft: rgba(141, 61, 56, 0.12); --shadow: 0 18px 50px rgba(29, 22, 18, 0.08); } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; min-height: 100vh; background: radial-gradient(circle at top, rgba(255, 255, 255, 0.04), transparent 30%), linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%); color: var(--text); font-family: 'Inter', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; transition: background 260ms ease, color 260ms ease; } button, a, input { color: inherit; font: inherit; } .page-shell { position: relative; width: min(var(--shell-width), calc(100% - (var(--shell-gutter) * 2))); margin: 0 auto; padding-bottom: 40px; } .page-shell > * { position: relative; z-index: 1; } .page-grid { position: absolute; inset: 0; z-index: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); pointer-events: none; } .page-grid span { border-left: 1px solid var(--line); opacity: 0.65; } .page-grid span:last-child { border-right: 1px solid var(--line); } .topbar { position: sticky; top: 0; display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 18px; padding: 18px 0; margin-bottom: 8px; background: linear-gradient(180deg, color-mix(in srgb, var(--bg) 88%, transparent 12%), color-mix(in srgb, var(--bg) 58%, transparent 42%)); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); z-index: 10; } .brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; text-transform: uppercase; letter-spacing: 0.15em; font-size: 0.95rem; font-weight: 700; } .brand-mark { width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 6px var(--accent-soft); } .nav-links { display: flex; gap: 22px; } .nav-links a, .mode-toggle, .footer { text-decoration: none; font-size: 0.9rem; color: var(--muted); } .nav-links a:hover, .mode-toggle:hover { color: var(--text); } .mode-toggle { padding: 10px 14px; border: 1px solid var(--line); background: transparent; cursor: pointer; transition: border-color 180ms ease, background 180ms ease, color 180ms ease; } .mode-toggle:hover { border-color: var(--line-strong); background: var(--accent-soft); } main { display: block; } .section, .hero, .footer { padding: 36px 0 0; } .ruled-row { border-top: 1px solid var(--line); } .hero-meta, .section-head, .footer, .closing-signoff, .preview-topline, .preview-foot, .density-legend { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; } .kicker, .issue, .stage-kicker, .control-label, .preview-kicker, .ledger-item span, .system-card span, .closing-signoff span, .mini-module summary, .preview-topline span { margin: 0; text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.72rem; color: var(--muted); } .hero-meta, .section-head { padding-top: 14px; } .hero-grid, .statement-grid, .works-layout, .system-grid, .hero-ledger, .components-layout { display: grid; gap: var(--grid-gap); padding-top: 24px; } .hero-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .hero-copy { grid-column: 1 / span 8; } .hero-note { grid-column: 10 / span 3; align-self: end; } .hero-copy h1, .section-head h2, .work-stage h3, .preview-card h3, .closing-panel h2 { font-family: 'Noto Serif SC', 'Songti SC', serif; letter-spacing: -0.03em; font-weight: 700; } .hero-copy h1 { margin: 0; font-size: clamp(3.3rem, 7.8vw, 6.6rem); line-height: 1.04; max-width: 11ch; } .hero-text, .statement-grid p, .section-caption, .work-item small, .work-stage p, .system-card p, .preview-card p, .mini-module p, .closing-panel p, .hero-note p { color: var(--muted); line-height: 1.82; } .hero-text { margin: 28px 0 0; max-width: 48rem; font-size: 1.05rem; } .framed-note, .ledger-item, .work-item, .stage-card, .system-card, .control-panel, .preview-card, .mini-module, .closing-panel { border: 1px solid var(--line); background: linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.01)); box-shadow: var(--shadow); } .framed-note { padding: 18px 20px; } .hero-ledger { grid-template-columns: repeat(12, minmax(0, 1fr)); } .ledger-item { padding: 18px 20px 20px; } .ledger-item:nth-child(1) { grid-column: 1 / span 4; } .ledger-item:nth-child(2) { grid-column: 5 / span 4; } .ledger-item:nth-child(3) { grid-column: 9 / span 4; } .ledger-item strong { display: block; margin-top: 12px; line-height: 1.65; font-size: 1rem; } .section-head h2, .closing-panel h2 { margin: 10px 0 0; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.12; } .statement-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .statement-grid p:nth-child(1) { grid-column: 1 / span 6; } .statement-grid p:nth-child(2) { grid-column: 7 / span 6; } .works-layout { grid-template-columns: repeat(12, minmax(0, 1fr)); } .work-list { grid-column: 1 / span 5; display: grid; gap: 12px; } .work-stage { grid-column: 6 / span 7; } .work-item { width: 100%; display: grid; grid-template-columns: 48px 1fr; gap: 16px; padding: 18px 18px 20px; text-align: left; background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent); cursor: pointer; transition: transform 180ms ease, border-color 180ms ease, background 180ms ease; } .work-item:hover, .work-item.is-active { transform: translateX(4px); border-color: var(--line-strong); background: linear-gradient(180deg, var(--accent-soft), rgba(255, 255, 255, 0.02)); } .work-number { letter-spacing: 0.14em; font-size: 0.8rem; color: var(--muted); } .work-item.is-active .work-number, .work-item.is-active small { color: var(--text); } .work-item strong { display: block; margin-bottom: 6px; font-size: 1.08rem; } .stage-card { position: relative; overflow: hidden; min-height: 100%; padding: 34px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 36%), linear-gradient(180deg, var(--panel), color-mix(in srgb, var(--panel) 84%, black 16%)); } .stage-card::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.045)); } .stage-card.is-refreshing { animation: stageRefresh 320ms ease; } .stage-index { margin: 18px 0 12px; font-size: clamp(4rem, 8vw, 7.6rem); line-height: 0.92; color: color-mix(in srgb, var(--accent) 74%, var(--text) 26%); } .work-stage h3, .preview-card h3 { font-size: clamp(1.8rem, 3vw, 2.8rem); margin: 0 0 14px; } .system-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .system-card { padding: 22px; } .system-card:nth-child(1) { grid-column: 1 / span 4; } .system-card:nth-child(2) { grid-column: 5 / span 4; } .system-card:nth-child(3) { grid-column: 9 / span 4; } .system-card strong { display: block; margin: 16px 0 10px; font-size: 1.16rem; line-height: 1.4; } .components-layout { grid-template-columns: repeat(12, minmax(0, 1fr)); } .control-panel { grid-column: 1 / span 5; padding: 20px; display: grid; gap: 22px; } .preview-panel { grid-column: 6 / span 7; display: grid; gap: 18px; } .control-block { display: grid; gap: 12px; } .segmented, .swatch-row, .note-stack { display: flex; gap: 10px; flex-wrap: wrap; } .tone-chip, .note-item { padding: 10px 14px; border: 1px solid var(--line); background: transparent; cursor: pointer; transition: border-color 180ms ease, background 180ms ease, color 180ms ease; } .tone-chip.is-active, .note-item.is-active, .tone-chip:hover, .note-item:hover { border-color: var(--line-strong); background: var(--accent-soft); } .density-range { width: 100%; accent-color: var(--accent); } .density-legend { font-size: 0.84rem; color: var(--muted); } .swatch { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line); background: var(--swatch); cursor: pointer; box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0.08); } .swatch.is-active { outline: 2px solid color-mix(in srgb, var(--swatch) 60%, white 40%); outline-offset: 2px; } .preview-card { padding: 24px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent 34%), linear-gradient(180deg, var(--panel-2), color-mix(in srgb, var(--panel-2) 86%, black 14%)); transition: border-color 180ms ease, transform 180ms ease, background 180ms ease; } .preview-card[data-tone='quiet'] { transform: translateX(-2px); } .preview-card[data-tone='balanced'] { transform: translateX(0); } .preview-card[data-tone='dramatic'] { transform: translateX(2px); } .preview-body { padding: 22px 0 28px; } .preview-foot { padding-top: 16px; border-top: 1px solid var(--line); } #previewNote { max-width: 32ch; line-height: 1.6; } .mini-modules { display: grid; gap: 12px; } .mini-module { padding: 16px 18px; } .mini-module summary { cursor: pointer; } .mini-module p { margin: 12px 0 0; } .closing-panel { padding: 34px; background: linear-gradient(0deg, color-mix(in srgb, var(--accent) 12%, transparent 88%), color-mix(in srgb, var(--accent) 12%, transparent 88%)), linear-gradient(180deg, var(--paper-soft), var(--paper)); color: var(--ink); border-color: rgba(0, 0, 0, 0.08); } .closing-panel .kicker, .closing-panel p, .closing-signoff span { color: rgba(20, 20, 20, 0.72); } .closing-signoff { margin-top: 28px; padding-top: 18px; border-top: 1px solid rgba(20, 20, 20, 0.12); } .footer { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--line); } .reveal { opacity: 0; transform: translateY(24px); transition: opacity 650ms ease, transform 650ms ease; } .reveal.is-visible { opacity: 1; transform: translateY(0); } @keyframes stageRefresh { 0% { transform: translateY(8px); opacity: 0.88; } 100% { transform: translateY(0); opacity: 1; } } @media (max-width: 1100px) { .topbar { grid-template-columns: 1fr; justify-items: start; } .hero-copy, .hero-note, .ledger-item, .statement-grid p:nth-child(1), .statement-grid p:nth-child(2), .work-list, .work-stage, .system-card, .control-panel, .preview-panel { grid-column: 1 / -1; } .hero-grid, .hero-ledger, .statement-grid, .works-layout, .system-grid, .components-layout { grid-template-columns: 1fr; } .hero-copy h1 { max-width: none; } .hero-note { order: 2; } } @media (max-width: 720px) { :root { --shell-gutter: 12px; --grid-gap: 16px; } .page-grid { display: none; } .nav-links { display: none; } .hero-copy h1 { font-size: clamp(2.5rem, 13vw, 4.2rem); } .section, .hero, .footer { padding-top: 28px; } .stage-card, .closing-panel, .preview-card, .control-panel, .system-card, .ledger-item, .framed-note, .mini-module { padding: 20px; } .work-item { grid-template-columns: 40px 1fr; padding: 16px; } .preview-topline, .preview-foot, .closing-signoff, .density-legend, .footer { flex-direction: column; align-items: flex-start; } }