:root {
  --ink: #111315;
  --ink-2: #171a1d;
  --paper: #e7e9e8;
  --paper-2: #cfd5d7;
  --metal: #bfc7ce;
  --muted: #778087;
  --line: rgba(191, 199, 206, .3);
  --lime: #d8ff3e;
  --lime-dark: #a9c613;
  --serif: Georgia, 'Times New Roman', serif;
  --display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --mono: 'DM Mono', monospace;
  --max: 1360px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--paper); font-family: var(--display); font-weight: 500; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.site-shell { overflow: clip; }
.section-pad { padding-left: clamp(22px, 5vw, 88px); padding-right: clamp(22px, 5vw, 88px); }
.topbar { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 24px; grid-template-columns: 1fr auto 1fr; min-height: 76px; padding: 0 clamp(22px, 5vw, 88px); position: sticky; top: 0; z-index: 20; background: rgba(17, 19, 21, .9); backdrop-filter: blur(16px); }
.wordmark { align-items: center; display: inline-flex; font-size: 18px; font-weight: 800; gap: 10px; letter-spacing: .06em; }
.wordmark-mark { display: inline-flex; gap: 3px; height: 19px; transform: skewX(-12deg); width: 20px; }
.wordmark-mark i { background: var(--lime); display: block; height: 19px; width: 8px; }
.wordmark-mark i:last-child { background: var(--metal); transform: translateY(4px); }
.wordmark-dot { color: var(--lime); }
.main-nav { display: flex; gap: clamp(14px, 2.4vw, 34px); justify-content: center; }
.main-nav a, .topbar-cta, .eyebrow, .micro-label, .card-cta, .chapter-kicker, .edit-tag, .hashtag-line, .note-label, .note-line, .spec-label, .spec-foot, .footer-meta { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.main-nav a { color: var(--metal); transition: color .2s ease; }
.main-nav a:hover, .main-nav a.active { color: var(--lime); }
.topbar-cta { justify-self: end; color: var(--lime); }
.topbar-cta span, .text-link span { display: inline-block; font-size: 15px; margin-left: 4px; transition: transform .2s ease; }
.topbar-cta:hover span, .text-link:hover span { transform: translate(3px, -3px); }
.menu-toggle { display: none; }

.hero { min-height: calc(100vh - 76px); position: relative; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr); align-items: center; padding-bottom: 86px; padding-top: 86px; }
.hero::before { background: linear-gradient(90deg, transparent 0 57%, rgba(191,199,206,.11) 57% 57.08%, transparent 57.08% 100%); content: ''; inset: 0; pointer-events: none; position: absolute; }
.hero-rail, .hero-aside, .hero-bottomline { position: relative; z-index: 1; }
.eyebrow { align-items: center; color: var(--metal); display: flex; gap: 9px; margin: 0 0 24px; }
.live-dot { background: var(--lime); border-radius: 99px; box-shadow: 0 0 0 4px rgba(216,255,62,.12); height: 7px; width: 7px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-weight: 700; letter-spacing: -.02em; }
h1 { font-size: clamp(68px, 10.2vw, 164px); line-height: .82; margin-bottom: 36px; max-width: 960px; text-transform: uppercase; }
h1 em, h2 em { color: var(--metal); font-family: var(--serif); font-weight: 400; letter-spacing: -.06em; text-transform: none; }
.hero-copy { color: var(--metal); font-size: clamp(17px, 1.7vw, 24px); line-height: 1.25; max-width: 510px; }
.hero-actions { align-items: center; display: flex; gap: 26px; margin-top: 38px; }
.button { align-items: center; display: inline-flex; font-family: var(--mono); font-size: 10px; gap: 22px; letter-spacing: .08em; padding: 16px 18px; text-transform: uppercase; transition: background .2s ease, color .2s ease, transform .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-lime { background: var(--lime); color: var(--ink); }
.button-lime:hover { background: #efffb0; }
.button span { font-size: 18px; line-height: 0; }
.text-link { border-bottom: 1px solid var(--metal); color: var(--metal); font-family: var(--mono); font-size: 10px; letter-spacing: .08em; padding-bottom: 7px; text-transform: uppercase; }
.hero-aside { align-self: center; justify-self: end; max-width: 250px; }
.hero-note { border-left: 1px solid var(--lime); display: flex; flex-direction: column; gap: 8px; padding: 8px 0 8px 22px; }
.note-label { color: var(--muted); margin-top: 16px; }
.note-label:first-child { margin-top: 0; }
.hero-note strong { font-size: 24px; line-height: .95; text-transform: uppercase; }
.note-line { border-top: 1px solid var(--line); margin: 12px 0; width: 100%; }
.hero-stamp { border: 1px solid var(--line); color: var(--lime); font-size: 64px; font-weight: 800; line-height: .78; margin-top: 86px; padding: 13px 18px 16px; text-align: center; transform: rotate(5deg); width: 114px; }
.hero-stamp span { color: var(--metal); font-family: var(--mono); font-size: 8px; letter-spacing: .08em; line-height: 1.1; }
.hero-bottomline { bottom: 30px; color: var(--muted); display: flex; font-family: var(--mono); font-size: 9px; justify-content: space-between; left: clamp(22px, 5vw, 88px); letter-spacing: .08em; position: absolute; right: clamp(22px, 5vw, 88px); text-transform: uppercase; }
.hero-bottomline span:nth-child(2) { color: var(--paper); }

.notice { align-items: center; background: var(--lime); color: var(--ink); display: grid; gap: 30px; grid-template-columns: 65px 1fr minmax(260px, 1.2fr); min-height: 190px; padding-bottom: 32px; padding-top: 32px; }
.notice-symbol { align-items: center; border: 1px solid var(--ink); border-radius: 50%; display: flex; font-size: 28px; height: 50px; justify-content: center; width: 50px; }
.notice .eyebrow { color: var(--ink); margin-bottom: 10px; }
.notice h2 { font-size: clamp(38px, 5.1vw, 72px); line-height: .85; margin: 0; text-transform: uppercase; }
.notice h2 span { font-family: var(--serif); font-weight: 400; text-transform: none; }
.notice-copy { font-family: var(--mono); font-size: 11px; line-height: 1.55; margin: 0; max-width: 460px; }

.chapter { position: relative; }
.chapter-intro { max-width: 320px; position: sticky; top: 120px; }
.chapter-kicker { align-items: center; color: var(--lime); display: flex; gap: 18px; margin-bottom: 32px; }
.chapter-kicker span:first-child { align-items: center; border: 1px solid var(--lime); border-radius: 50%; display: inline-flex; font-size: 12px; height: 29px; justify-content: center; width: 29px; }
.chapter h2 { font-size: clamp(54px, 7.4vw, 110px); line-height: .83; margin-bottom: 28px; text-transform: uppercase; }
.chapter-intro > p { color: var(--muted); font-family: var(--mono); font-size: 11px; line-height: 1.6; }
.edit-tag { border-left: 2px solid var(--lime); color: var(--lime); display: inline-block; line-height: 1.4; margin-top: 24px; padding-left: 10px; }
.chapter-dark { background: var(--ink-2); }
.edit-tag-dark { color: var(--lime); }
.chapter { display: grid; gap: clamp(48px, 9vw, 160px); grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); padding-bottom: clamp(100px, 12vw, 190px); padding-top: clamp(100px, 12vw, 190px); }

.post-list { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.post-card { background: var(--paper); color: var(--ink); min-height: 292px; padding: 26px; position: relative; transition: transform .25s ease, box-shadow .25s ease; }
.post-card:hover { box-shadow: 10px 10px 0 var(--lime); transform: translate(-3px, -3px); }
.post-card-dark { background: #252b2f; color: var(--paper); }
.post-card-outline { background: transparent; border: 1px solid var(--line); color: var(--paper); }
.post-card-offset { transform: translateY(42px); }
.post-card-offset:hover { transform: translate(-3px, 39px); }
.card-index { color: var(--lime-dark); font-family: var(--mono); font-size: 10px; left: 26px; position: absolute; top: 26px; }
.post-card > div { align-self: end; display: flex; flex-direction: column; height: 100%; justify-content: end; padding-top: 48px; }
.micro-label { color: var(--muted); display: block; font-size: 9px; margin-bottom: 16px; }
.post-card-dark .micro-label, .chapter-dark .micro-label { color: var(--metal); }
.post-card h3 { font-size: clamp(34px, 3.6vw, 54px); line-height: .86; margin-bottom: 18px; text-transform: uppercase; }
.post-card p { color: #566066; font-family: var(--mono); font-size: 10px; line-height: 1.5; margin-bottom: 24px; max-width: 260px; }
.post-card-dark p, .chapter-dark p { color: var(--metal); }
.card-cta { border-top: 1px solid currentColor; display: block; padding-top: 12px; }

.script-stack, .reply-stack { display: flex; flex-direction: column; gap: 12px; }
.script-row { border-top: 1px solid var(--line); display: grid; gap: 28px; grid-template-columns: 60px 1fr; padding: 24px 0 30px; }
.script-row:last-child { border-bottom: 1px solid var(--line); }
.script-number { color: var(--lime); font-family: var(--mono); font-size: 12px; }
.script-top, .script-footer { align-items: center; display: flex; font-family: var(--mono); font-size: 9px; justify-content: space-between; letter-spacing: .06em; text-transform: uppercase; }
.script-time { color: var(--lime); }
.script-row h3 { font-size: clamp(36px, 4vw, 64px); line-height: .9; margin: 17px 0 12px; text-transform: uppercase; }
.script-row p { font-family: var(--mono); font-size: 11px; line-height: 1.55; margin-bottom: 20px; }
.script-footer { border-top: 1px solid var(--line); color: var(--metal); gap: 12px; padding-top: 14px; }
.script-footer span:last-child { color: var(--lime); text-align: right; }

.caption-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.caption-card { background: var(--paper); color: var(--ink); display: flex; flex-direction: column; min-height: 210px; padding: 24px; transition: transform .25s ease; }
.caption-card:hover { transform: translateY(-4px); }
.caption-card > span { color: var(--lime-dark); font-family: var(--mono); font-size: 10px; }
.caption-card p { font-size: clamp(23px, 2.3vw, 34px); line-height: .96; margin: 30px 0 24px; }
.copy-button { background: transparent; border: 0; border-top: 1px solid rgba(17,19,21,.2); color: inherit; cursor: pointer; display: flex; font-family: var(--mono); font-size: 9px; justify-content: space-between; letter-spacing: .08em; margin-top: auto; padding: 12px 0 0; text-align: left; text-transform: uppercase; }
.copy-button span { font-size: 16px; transition: transform .2s ease; }
.copy-button:hover span { transform: translate(3px, -3px); }
.hashtag-line { border-top: 1px solid var(--line); color: var(--muted); display: flex; gap: 30px; justify-content: space-between; margin-top: 34px; padding-top: 18px; }
.hashtag-line strong { color: var(--lime); font-weight: 400; text-align: right; }

.gallery-chapter { background: var(--paper); color: var(--ink); }
.gallery-chapter .chapter-kicker { color: var(--ink); }
.gallery-chapter .chapter-kicker span:first-child { border-color: var(--ink); }
.gallery-chapter .chapter-intro > p { color: #6e777c; }
.gallery-chapter .edit-tag { color: var(--ink); }
.design-grid { align-items: start; display: grid; gap: 40px 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.design-card { margin: 0; }
.design-card-tall { transform: translateY(74px); }
.design-image { background: #c5cbcd; overflow: hidden; }
.design-image img { display: block; height: auto; transition: transform .45s ease; width: 100%; }
.design-card:hover .design-image img { transform: scale(1.035); }
.design-card figcaption { display: flex; flex-direction: column; gap: 5px; padding-top: 14px; }
.design-card figcaption span { color: #697379; font-family: var(--mono); font-size: 9px; text-transform: uppercase; }
.design-card figcaption strong { font-size: 24px; line-height: .95; text-transform: uppercase; }

.reply-card { border-top: 1px solid var(--line); padding: 24px 0 30px; }
.reply-card:last-child { border-bottom: 1px solid var(--line); }
.reply-heading { align-items: center; display: flex; gap: 20px; }
.reply-heading > span { color: var(--lime); font-family: var(--mono); font-size: 10px; }
.reply-heading h3 { font-size: clamp(28px, 3vw, 44px); margin: 0; text-transform: uppercase; }
.reply-card p { color: var(--paper); font-size: clamp(19px, 2vw, 28px); line-height: 1.05; margin: 26px 0; max-width: 720px; }
.copy-button-dark { border-color: var(--line); color: var(--metal); max-width: 720px; }

.contact-panel { align-items: center; background: var(--lime); color: var(--ink); display: grid; gap: 60px; grid-template-columns: 1.2fr .8fr; min-height: 520px; }
.contact-panel .eyebrow { color: var(--ink); margin-bottom: 22px; }
.contact-panel h2 { font-size: clamp(55px, 7vw, 105px); line-height: .84; margin-bottom: 26px; text-transform: uppercase; }
.contact-panel h2 em { color: var(--ink); }
.contact-panel p { font-family: var(--mono); font-size: 11px; line-height: 1.55; max-width: 470px; }
.contact-panel .button { background: var(--ink); color: var(--lime); margin-top: 20px; }
.contact-spec { border-left: 1px solid var(--ink); display: flex; flex-direction: column; gap: 12px; max-width: 300px; padding-left: 28px; }
.spec-label { color: var(--ink); }
.contact-spec strong { font-size: 42px; line-height: .86; text-transform: uppercase; }
.spec-foot { line-height: 1.4; margin-top: 18px; max-width: 190px; }
.footer { align-items: center; display: grid; grid-template-columns: 1fr 1fr 1fr; min-height: 120px; }
.footer p { color: var(--muted); font-family: var(--mono); font-size: 9px; justify-self: center; margin: 0; text-transform: uppercase; }
.footer-meta { color: var(--muted); justify-self: end; }
.toast { background: var(--lime); bottom: 22px; color: var(--ink); font-family: var(--mono); font-size: 10px; left: 50%; letter-spacing: .08em; opacity: 0; padding: 13px 17px; pointer-events: none; position: fixed; text-transform: uppercase; transform: translate(-50%, 14px); transition: opacity .2s ease, transform .2s ease; z-index: 50; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 900px) {
  .topbar { grid-template-columns: 1fr auto; }
  .menu-toggle { background: none; border: 0; color: var(--paper); cursor: pointer; display: block; font-family: var(--mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
  .menu-toggle span { color: var(--lime); font-size: 18px; margin-left: 6px; }
  .main-nav { background: var(--ink); border-bottom: 1px solid var(--line); display: none; flex-direction: column; gap: 0; left: 0; padding: 12px 22px 20px; position: absolute; right: 0; top: 75px; }
  .main-nav.is-open { display: flex; }
  .main-nav a { padding: 11px 0; }
  .topbar-cta { display: none; }
  .hero { min-height: 760px; }
  .hero-aside { align-self: end; }
  .hero-stamp { margin-top: 40px; }
  .chapter { gap: 48px; grid-template-columns: 1fr; }
  .chapter-intro { max-width: 550px; position: static; }
  .post-list, .caption-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .notice { grid-template-columns: 58px 1fr; }
  .notice-copy { grid-column: 2; }
  .contact-panel { grid-template-columns: 1fr .7fr; }
}

@media (max-width: 580px) {
  .topbar { min-height: 64px; }
  .main-nav { top: 63px; }
  h1 { font-size: clamp(57px, 17vw, 98px); }
  .hero { display: block; min-height: 780px; padding-top: 74px; }
  .hero-aside { margin-top: 90px; max-width: 100%; }
  .hero-note { max-width: 210px; }
  .hero-stamp { position: absolute; right: 18px; top: 20px; }
  .hero-bottomline span:nth-child(2) { display: none; }
  .notice { align-items: start; display: grid; gap: 16px; grid-template-columns: 48px 1fr; padding-bottom: 36px; padding-top: 36px; }
  .notice-symbol { height: 38px; width: 38px; }
  .notice h2 { font-size: 39px; }
  .notice-copy { grid-column: 1 / -1; padding-left: 64px; }
  .chapter { padding-bottom: 84px; padding-top: 84px; }
  .chapter h2 { font-size: 62px; }
  .post-list, .caption-grid, .design-grid { display: flex; flex-direction: column; }
  .post-card { min-height: 265px; }
  .post-card-offset, .design-card-tall { transform: none; }
  .post-card-offset:hover, .design-card-tall:hover { transform: translateY(-3px); }
  .script-row { gap: 15px; grid-template-columns: 30px 1fr; }
  .script-top, .script-footer { align-items: flex-start; flex-direction: column; gap: 10px; }
  .script-footer span:last-child { text-align: left; }
  .caption-card { min-height: 185px; }
  .hashtag-line { align-items: flex-start; flex-direction: column; gap: 10px; }
  .hashtag-line strong { text-align: left; }
  .contact-panel { display: block; min-height: auto; padding-bottom: 90px; padding-top: 90px; }
  .contact-spec { margin-top: 70px; }
  .footer { align-items: start; display: flex; flex-direction: column; gap: 20px; padding-bottom: 40px; padding-top: 40px; }
  .footer p, .footer-meta { align-self: start; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
