:root {
  --ink: #0b1018;
  --ink-soft: #121925;
  --paper: #f0eee8;
  --paper-deep: #e7e4dc;
  --white: #f7f5ef;
  --muted-dark: #8d96a4;
  --muted-light: #686d75;
  --mineral: #9caec9;
  --mineral-bright: #bac8de;
  --line-dark: rgba(239, 241, 244, .14);
  --line-light: rgba(11, 16, 24, .15);
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: "Newsreader", Georgia, serif;
  --pad: clamp(22px, 4vw, 68px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--sans); font-size: 15px; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
.dark-page { color: var(--white); background: var(--ink); }
.paper-page { color: var(--ink); background: var(--paper); }

.site-header {
  position: relative; z-index: 20; height: 82px; padding: 0 var(--pad);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  border-bottom: 1px solid var(--line-dark); background: rgba(11,16,24,.92);
}
.light-header { color: var(--ink); background: rgba(240,238,232,.94); border-color: var(--line-light); }
.wordmark { justify-self: start; font-size: 11px; line-height: .93; letter-spacing: .16em; font-weight: 600; }
.site-nav { display: flex; align-items: center; gap: 36px; }
.site-nav a { position: relative; color: var(--muted-dark); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; transition: color .2s; }
.light-header .site-nav a { color: var(--muted-light); }
.site-nav a:hover, .site-nav a.active { color: inherit; }
.site-nav a.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -12px; height: 1px; background: var(--mineral); }
.nav-context { justify-self: end; color: var(--muted-dark); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.light-header .nav-context { color: var(--muted-light); }
.external:hover { color: var(--ink); }
.menu-toggle { display: none; border: 0; background: transparent; text-transform: uppercase; font-size: 10px; letter-spacing: .14em; }

.eyebrow, .section-label, .panel-kicker {
  margin: 0; font-size: 10px; line-height: 1.4; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
}
.eyebrow, .panel-kicker { color: var(--mineral); }

/* Thesis */
.thesis-stage {
  position: relative; min-height: calc(100svh - 82px); overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(430px, .95fr);
  grid-template-rows: 1fr auto; padding: clamp(72px, 9vh, 110px) var(--pad) 42px;
  background:
    radial-gradient(circle at 74% 54%, rgba(94,116,151,.15), transparent 31%),
    linear-gradient(120deg, #0b1018 0%, #0b1018 57%, #0d1420 100%);
}
.thesis-stage::before {
  content: ""; position: absolute; inset: 0; opacity: .18; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
  background-size: 72px 72px;
}
.stage-copy { position: relative; z-index: 2; grid-column: 1; grid-row: 1; align-self: center; max-width: 820px; padding-right: 3vw; }
.stage-copy h1 { margin: 24px 0 26px; font-family: var(--serif); font-size: clamp(50px, 5.15vw, 84px); font-weight: 400; line-height: .99; letter-spacing: -.045em; }
.stage-copy h1 em { color: var(--mineral-bright); font-weight: 400; }
.thesis-dek { max-width: 630px; margin: 0; color: #adb4bf; font-size: clamp(15px, 1.25vw, 19px); line-height: 1.65; }

.world-diagram { position: relative; z-index: 1; grid-column: 2; grid-row: 1; place-self: center; width: min(35vw, 520px); aspect-ratio: 1; }
.orbit { position: absolute; inset: 10%; border: 1px solid rgba(186,200,222,.23); border-radius: 50%; }
.orbit-b { inset: 24%; border-color: rgba(186,200,222,.4); }
.orbit-a::after { content: ""; position: absolute; width: 7px; height: 7px; background: var(--mineral-bright); border-radius: 50%; top: 8%; left: 22%; box-shadow: 0 0 22px rgba(186,200,222,.8); animation: orbitPulse 3.6s ease-in-out infinite; }
.world-core { position: absolute; inset: 37%; display: grid; place-content: center; text-align: center; border: 1px solid var(--mineral); border-radius: 50%; background: rgba(11,16,24,.75); }
.world-core span { font-family: var(--serif); font-size: clamp(28px, 3vw, 44px); }
.world-core small { margin-top: 2px; color: var(--muted-dark); font-size: 8px; letter-spacing: .1em; white-space: nowrap; text-transform: uppercase; }
.diagram-node { position: absolute; color: var(--muted-dark); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.node-observe { top: 10%; left: 46%; }.node-act { right: 2%; top: 55%; }.node-revise { bottom: 7%; left: 16%; }

.progression { position: relative; z-index: 2; grid-column: 1 / -1; grid-row: 2; display: flex; align-items: center; width: 100%; padding-top: 28px; border-top: 1px solid var(--line-dark); }
.progression span, .progression strong { font-size: 10px; letter-spacing: .13em; text-transform: uppercase; white-space: nowrap; }
.progression span { color: var(--muted-dark); font-weight: 400; }
.progression strong { color: var(--mineral-bright); font-weight: 500; }
.progression i { flex: 1; height: 1px; margin: 0 18px; background: linear-gradient(90deg, var(--line-dark), rgba(186,200,222,.45)); }
.stage-cue { position: absolute; z-index: 3; right: var(--pad); bottom: 92px; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted-dark); }
.stage-cue span { margin-left: 10px; color: var(--mineral-bright); }

.questions { min-height: 100svh; padding: 46px var(--pad) 72px; color: var(--ink); background: var(--paper); }
.section-label { color: #7a7f88; padding-bottom: 35px; border-bottom: 1px solid var(--line-light); }
.question-layout { display: grid; grid-template-columns: minmax(330px, .75fr) minmax(0, 1.25fr); min-height: calc(100svh - 190px); }
.question-index { border-right: 1px solid var(--line-light); padding: 3vh 4vw 3vh 0; }
.question-tab { width: 100%; display: grid; grid-template-columns: 50px 1fr; gap: 12px; padding: 25px 0; text-align: left; border: 0; border-bottom: 1px solid var(--line-light); background: none; cursor: pointer; opacity: .45; transition: opacity .25s, transform .25s; }
.question-tab:hover { opacity: .72; }.question-tab.active { opacity: 1; transform: translateX(8px); }
.question-tab span { padding-top: 4px; color: #777d87; font-size: 10px; }
.question-tab strong { font-family: var(--serif); font-size: clamp(23px, 2vw, 34px); font-weight: 400; line-height: 1.1; letter-spacing: -.025em; }
.question-panels { display: grid; align-items: center; padding: 5vh 0 5vh clamp(36px, 6vw, 110px); }
.question-panel { max-width: 770px; animation: panelIn .45s ease both; }
.question-panel h2 { margin: 19px 0 24px; font-family: var(--serif); font-size: clamp(42px, 4.6vw, 74px); line-height: .97; font-weight: 400; letter-spacing: -.04em; }
.question-panel > p:not(.panel-kicker):not(.panel-note) { max-width: 650px; color: #535963; font-size: 17px; line-height: 1.7; }
.concept-field { display: flex; flex-wrap: wrap; gap: 9px; margin: 34px 0; }
.concept-field span { padding: 8px 13px; border: 1px solid #b9c1ce; border-radius: 999px; color: #40516c; font-size: 11px; letter-spacing: .04em; }
.panel-note { max-width: 680px; padding-top: 22px; border-top: 1px solid var(--line-light); color: #777d85; font-size: 12px; }
.inquiry-line { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 38px 0; }
.inquiry-line span { font-family: var(--serif); font-size: 22px; }.inquiry-line b { color: var(--mineral); font-weight: 400; }
.question-panel blockquote { margin: 36px 0; padding: 25px 0 20px 25px; border-left: 2px solid var(--mineral); font-family: var(--serif); font-size: clamp(28px, 3vw, 45px); line-height: 1.1; }

.worlds-band { padding: 95px var(--pad) 65px; background: var(--ink-soft); border-top: 1px solid var(--line-dark); }
.worlds-band > div:first-child { display: grid; grid-template-columns: 1fr 2fr; align-items: end; }
.worlds-band h2 { margin: 0; max-width: 760px; font-family: var(--serif); font-size: clamp(45px, 5vw, 78px); font-weight: 400; line-height: .98; letter-spacing: -.04em; }
.worlds-list { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 80px; border-top: 1px solid var(--line-dark); }
.worlds-list span { padding: 23px 0; border-right: 1px solid var(--line-dark); font-family: var(--serif); font-size: clamp(25px, 2.6vw, 42px); }
.worlds-list span + span { padding-left: 26px; }.worlds-list small { display: block; margin-bottom: 15px; color: var(--mineral); font: 9px var(--sans); }
.status-note { margin: 26px 0 0; color: var(--muted-dark); font-size: 11px; }

/* Publication */
.publication-page, .essay-index { padding: 0 var(--pad) 110px; }
.page-intro { display: grid; grid-template-columns: 1fr 2.1fr; gap: 50px; align-items: start; padding: clamp(80px, 11vw, 160px) 0 110px; border-bottom: 1px solid var(--line-light); }
.page-intro h1 { grid-column: 2; margin: 0; font-family: var(--serif); font-size: clamp(68px, 8.7vw, 142px); line-height: .82; letter-spacing: -.055em; font-weight: 400; }
.page-intro > p:last-child { grid-column: 2; max-width: 620px; margin: 30px 0 0; color: var(--muted-light); font-size: 16px; }
.publication-section { padding-top: 74px; }
.publication-heading { display: grid; grid-template-columns: 1fr auto; align-items: end; padding-bottom: 24px; }
.publication-heading h2 { margin: 0; font-family: var(--serif); font-size: 36px; font-weight: 400; }
.publication-heading span { color: var(--muted-light); font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.publication-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-light); }
.publication-list li { display: grid; grid-template-columns: 70px minmax(0, 1fr) 150px 30px; gap: 28px; align-items: start; padding: 25px 0; border-bottom: 1px solid var(--line-light); transition: padding-left .22s, color .22s; }
.publication-list li:hover { padding-left: 8px; }
.pub-year, .pub-type { padding-top: 5px; color: #777c84; font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.publication-list a { display: block; max-width: 900px; font-family: var(--serif); font-size: clamp(23px, 2.15vw, 35px); line-height: 1.08; letter-spacing: -.025em; }
.publication-list li:hover a { color: #405779; }
.publication-list p { margin: 8px 0 0; color: #777c84; font-size: 11px; line-height: 1.45; }
.arrow { color: #6c7f9e; font-size: 17px; }
.secondary-records { padding-top: 120px; }
.compact a { font-size: clamp(20px, 1.8vw, 29px); }
.figure-policy { display: grid; grid-template-columns: 1fr 1.4fr 1fr; gap: 60px; align-items: start; margin-top: 150px; padding: 75px 0; border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
.figure-policy h2 { margin: 0; font-family: var(--serif); font-size: clamp(39px, 4.2vw, 67px); line-height: .98; font-weight: 400; letter-spacing: -.04em; }
.figure-policy > p:last-child { margin: 3px 0 0; color: var(--muted-light); }

/* Writing */
.writing-intro { grid-template-columns: 1fr 3fr; }
.writing-intro h1 { font-size: clamp(58px, 7.2vw, 116px); line-height: .92; }
.essay-list { border-top: 1px solid var(--line-light); }
.essay-entry { display: grid; grid-template-columns: 170px minmax(0, 1.25fr) minmax(240px, .75fr); gap: clamp(35px, 5vw, 85px); padding: 68px 0 82px; border-bottom: 1px solid var(--line-light); }
.essay-meta { display: flex; flex-direction: column; gap: 8px; color: #70757d; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.essay-meta span:first-child { color: #405779; font-size: 20px; margin-bottom: 15px; }
.essay-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(40px, 4.4vw, 70px); line-height: .98; font-weight: 400; letter-spacing: -.04em; }
.essay-copy h2 a:hover { color: #405779; }
.essay-copy > p:not(.eyebrow):not(.essay-subtitle) { max-width: 650px; color: var(--muted-light); }
.essay-subtitle { max-width: 650px; margin: 22px 0; font-family: var(--serif); font-size: 22px; line-height: 1.3; }
.text-link { display: inline-block; margin-top: 24px; padding-bottom: 4px; border-bottom: 1px solid var(--ink); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.essay-mark { align-self: center; display: flex; flex-direction: column; border: 1px solid #b9c0ca; }
.essay-mark span { padding: 17px 19px; border-bottom: 1px solid #b9c0ca; color: #44536b; font-size: 9px; letter-spacing: .15em; }
.essay-mark span:last-child { border: 0; }
.loop-mark { padding: 35px 22px; flex-direction: row; align-items: center; justify-content: center; gap: 10px; border-radius: 50%; aspect-ratio: 1; }
.loop-mark span { padding: 0; border: 0; }.loop-mark b { color: #778aa8; font-weight: 400; }

/* Contact */
.contact-page { min-height: 100svh; }
.contact-main { min-height: calc(100svh - 82px); padding: clamp(75px, 10vh, 120px) var(--pad) 40px; display: grid; grid-template-rows: 1fr auto auto; background: radial-gradient(circle at 77% 25%, rgba(123,145,181,.13), transparent 35%); }
.contact-statement { max-width: 1150px; }
.contact-statement h1 { margin: 28px 0; font-family: var(--serif); font-size: clamp(58px, 7.4vw, 116px); font-weight: 400; line-height: .92; letter-spacing: -.05em; }
.contact-grid { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.contact-grid a { display: grid; grid-template-columns: 1fr auto; gap: 8px; min-height: 130px; padding: 22px 24px 20px 0; border-right: 1px solid var(--line-dark); transition: background .2s, padding .2s; }
.contact-grid a + a { padding-left: 24px; }.contact-grid a:hover { padding-left: 12px; background: rgba(186,200,222,.04); }
.contact-grid span { grid-column: 1 / -1; color: var(--muted-dark); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.contact-grid strong { align-self: end; min-width: 0; overflow-wrap: anywhere; font-family: var(--serif); font-size: clamp(17px, 1.45vw, 24px); font-weight: 400; }
.contact-grid b { align-self: end; color: var(--mineral); font-weight: 400; }
.contact-note { margin: 24px 0 0; color: var(--muted-dark); font-size: 10px; letter-spacing: .08em; }

.site-footer { min-height: 150px; padding: 34px var(--pad); display: flex; align-items: flex-end; justify-content: space-between; font-size: 11px; }
.site-footer p { margin: 0; color: var(--muted-dark); }.site-footer a { letter-spacing: .09em; text-transform: uppercase; }
.dark-footer { background: var(--ink); border-top: 1px solid var(--line-dark); }.light-footer { background: var(--paper); border-top: 1px solid var(--line-light); }

.reveal { animation: revealUp .8s cubic-bezier(.2,.7,.2,1) both; }
@keyframes revealUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes panelIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes orbitPulse { 0%,100% { opacity: .45; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.2); } }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; height: 68px; }
  .menu-toggle { display: block; }
  .site-nav { position: absolute; left: 0; right: 0; top: 68px; display: none; flex-direction: column; align-items: flex-start; gap: 0; padding: 12px var(--pad) 24px; background: var(--ink); border-bottom: 1px solid var(--line-dark); }
  .light-header .site-nav { background: var(--paper); border-color: var(--line-light); }
  .site-nav.open { display: flex; }
  .site-nav a { width: 100%; padding: 13px 0; }
  .site-nav a.active::after { display: none; }
  .nav-context { display: none; }

  .thesis-stage { min-height: calc(100svh - 68px); grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; padding-top: 58px; }
  .stage-copy { grid-column: 1; grid-row: 1; padding-right: 0; }.stage-copy h1 { font-size: clamp(44px, 12vw, 66px); }
  .world-diagram { grid-column: 1; grid-row: 2; width: min(75vw, 420px); margin: 15px auto; }
  .progression { grid-column: 1; grid-row: 3; flex-wrap: wrap; gap: 10px; padding-bottom: 8px; }
  .progression i { flex: 0 0 22px; margin: 0 2px; }.stage-cue { display: none; }
  .questions { padding-top: 30px; }
  .question-layout { grid-template-columns: 1fr; }
  .question-index { padding-right: 0; border-right: 0; }
  .question-tab { grid-template-columns: 36px 1fr; padding: 18px 0; }
  .question-panels { min-height: 620px; padding: 55px 0 30px; }
  .worlds-band > div:first-child { grid-template-columns: 1fr; gap: 20px; }
  .worlds-list { grid-template-columns: 1fr; margin-top: 50px; }
  .worlds-list span { border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .worlds-list span + span { padding-left: 0; }

  .page-intro, .writing-intro { grid-template-columns: 1fr; gap: 30px; padding: 75px 0; }
  .page-intro h1, .page-intro > p:last-child { grid-column: 1; }
  .page-intro h1 { font-size: clamp(57px, 17vw, 92px); }
  .publication-list li { grid-template-columns: 45px 1fr 24px; gap: 14px; }
  .pub-type { display: none; }.arrow { grid-column: 3; }
  .figure-policy { grid-template-columns: 1fr; gap: 28px; margin-top: 95px; }
  .essay-entry { grid-template-columns: 1fr; gap: 34px; }.essay-meta { flex-direction: row; flex-wrap: wrap; }.essay-meta span:first-child { width: 100%; }
  .essay-mark { max-width: 300px; }
  .contact-grid { grid-template-columns: 1fr 1fr; }.contact-grid a { border-bottom: 1px solid var(--line-dark); }.contact-grid a:nth-child(even) { border-right: 0; }.contact-grid a:last-child { grid-column: 1 / -1; border-right: 0; border-bottom: 0; }
}

@media (max-width: 560px) {
  .thesis-stage { min-height: auto; padding-bottom: 28px; }
  .stage-copy h1 { font-size: 47px; line-height: .96; }.thesis-dek { font-size: 14px; }
  .world-diagram { width: 78vw; }.progression { display: grid; grid-template-columns: 1fr 20px 1fr; }
  .progression i { width: 20px; }.progression strong { grid-column: 3; }
  .question-panel h2 { font-size: 44px; }.question-panel > p:not(.panel-kicker):not(.panel-note) { font-size: 15px; }
  .publication-page, .essay-index { padding-bottom: 70px; }.publication-list a { font-size: 23px; }
  .publication-list li { padding: 22px 0; }.publication-list p { font-size: 10px; }
  .essay-copy h2 { font-size: 43px; }.essay-mark { width: 100%; }
  .contact-main { min-height: calc(100svh - 68px); padding-top: 65px; }.contact-statement h1 { font-size: 49px; }
  .contact-grid { grid-template-columns: 1fr; }.contact-grid a { grid-column: 1; border-right: 0; border-bottom: 1px solid var(--line-dark); }.contact-grid a + a { padding-left: 0; }.contact-grid a:last-child { grid-column: 1; border-bottom: 0; }
  .site-footer { min-height: 120px; gap: 30px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
