:root {
  --paper: #f4f4ec;
  --paper-strong: #fbfaf4;
  --ink: #141713;
  --muted: #6d7168;
  --line: rgba(20, 23, 19, .16);
  --lime: #dfff85;
  --lime-strong: #c8ff45;
  --sage: #9caf8a;
  --black: #11140f;
  --serif: "Songti SC", "STSong", "Noto Serif CJK SC", Georgia, serif;
  --sans: "Avenir Next", "PingFang SC", "Noto Sans CJK SC", sans-serif;
  --mono: "SFMono-Regular", "Roboto Mono", Menlo, monospace;
  --page: min(1480px, calc(100vw - 48px));
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  line-height: 1.55;
}

a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }

.field-bg {
  position: fixed;
  inset: 0;
  z-index: -2;
  overflow: hidden;
  background:
    linear-gradient(rgba(76, 83, 66, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(76, 83, 66, .055) 1px, transparent 1px),
    var(--paper);
  background-size: 88px 88px;
}

.field-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 25%, rgba(223, 255, 133, .21), transparent 38%);
}

.field-bg i {
  position: absolute;
  width: 86px;
  height: 240px;
  border: 1px solid rgba(103, 119, 84, .06);
  background: rgba(223, 255, 133, .07);
  animation: field-float 14s ease-in-out infinite alternate;
}

.field-bg i:nth-child(1) { left: 9%; top: -2%; animation-delay: -3s; }
.field-bg i:nth-child(2) { left: 24%; top: 21%; height: 160px; animation-delay: -8s; }
.field-bg i:nth-child(3) { left: 41%; top: -8%; height: 320px; animation-delay: -6s; }
.field-bg i:nth-child(4) { left: 59%; top: 14%; animation-delay: -11s; }
.field-bg i:nth-child(5) { left: 73%; top: -5%; height: 410px; animation-delay: -2s; }
.field-bg i:nth-child(6) { left: 88%; top: 26%; height: 190px; animation-delay: -9s; }
.field-bg i:nth-child(7) { left: 33%; top: 68%; height: 260px; animation-delay: -4s; }
.field-bg i:nth-child(8) { left: 81%; top: 76%; height: 300px; animation-delay: -12s; }

@keyframes field-float {
  to { transform: translateY(88px); opacity: .35; }
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  width: var(--page);
  min-height: 72px;
  margin: 14px auto 0;
  padding: 10px 12px 10px 18px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  border: 1px solid var(--line);
  background: rgba(250, 250, 244, .9);
  backdrop-filter: blur(18px);
}

.zone-mark { display: inline-flex; align-items: baseline; gap: 13px; width: max-content; }
.zone-mark strong { font-size: 24px; letter-spacing: -.08em; }
.zone-mark span { color: var(--muted); font-size: 12px; letter-spacing: .05em; }

.site-header nav { display: flex; gap: 30px; }
.site-header nav a { position: relative; font-size: 13px; }
.site-header nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -5px; height: 1px; background: var(--ink); transition: right .24s ease; }
.site-header nav a:hover::after { right: 0; }

.account-trigger {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 11px 10px 15px;
  border: 1px solid var(--ink);
  background: transparent;
  cursor: pointer;
}
.account-trigger span { font-size: 12px; }
.account-trigger b { padding: 3px 8px; background: var(--ink); color: var(--lime); font: 10px var(--mono); }

main > section, footer { width: var(--page); margin-inline: auto; }

.hero {
  min-height: calc(100svh - 86px);
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  align-items: stretch;
  border: 1px solid var(--line);
  border-top: 0;
  background: rgba(251, 250, 244, .73);
}

.hero-copy { padding: clamp(72px, 8vw, 132px) clamp(36px, 7vw, 112px); display: flex; flex-direction: column; justify-content: center; }
.overline { margin: 0 0 28px; color: #69814f; font: 12px var(--mono); letter-spacing: .12em; }
.hero h1 { margin: 0; font: 400 clamp(76px, 9.6vw, 158px)/.86 var(--serif); letter-spacing: -.08em; }
.hero-lead { max-width: 650px; margin: 42px 0 0; color: var(--muted); font-size: clamp(16px, 1.4vw, 22px); }
.hero-actions { display: flex; gap: 12px; margin-top: 46px; }

.button { min-height: 48px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ink); background: transparent; font-weight: 650; cursor: pointer; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button.primary { background: var(--ink); color: var(--paper-strong); }
.button.primary:hover { background: var(--lime-strong); color: var(--ink); }
.button.ghost { background: rgba(255,255,255,.3); }

.hero-object {
  position: relative;
  min-height: 640px;
  overflow: hidden;
  display: grid;
  place-items: center;
  border-left: 1px solid var(--line);
  background: var(--lime);
}
.hero-object::before, .hero-object::after { content: ""; position: absolute; inset: 7%; border: 1px solid rgba(20,23,19,.2); border-radius: 50%; }
.hero-object::after { inset: 15%; border-style: dashed; animation: spin 32s linear infinite; }
.object-label { position: absolute; inset: 22px 24px auto; display: flex; justify-content: space-between; font: 11px var(--mono); }
.object-core { position: relative; width: min(63%, 440px); aspect-ratio: 1; display: grid; grid-template-columns: repeat(3, 1fr); place-items: center; border: 1px solid var(--ink); border-radius: 50%; background: var(--paper-strong); box-shadow: 22px 22px 0 rgba(20,23,19,.08); }
.object-core b { font: 400 clamp(36px, 4vw, 70px) var(--serif); z-index: 2; }
.object-core b:nth-child(2) { transform: translateY(-30%); }
.orbit { position: absolute; left: 50%; top: 50%; display: block; width: 14px; height: 14px; margin: -7px; border-radius: 50%; background: var(--ink); }
.orbit-one { animation: orbit-one 5s linear infinite; }
.orbit-two { background: #70805f; animation: orbit-two 8s linear infinite reverse; }
.object-timeline { position: absolute; left: 24px; right: 24px; bottom: 24px; display: grid; grid-template-columns: repeat(8, 1fr); gap: 3px; }
.object-timeline i { height: 6px; background: var(--ink); animation: pulse 1.7s ease infinite alternate; }
.object-timeline i:nth-child(2n) { animation-delay: -.6s; }
.object-timeline i:nth-child(3n) { animation-delay: -1.1s; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes orbit-one { to { transform: rotate(360deg) translateX(180px) rotate(-360deg); } }
@keyframes orbit-two { to { transform: rotate(360deg) translateX(132px) rotate(-360deg); } }
@keyframes pulse { to { opacity: .15; } }

.platform-map, .feed, .school, .clinic, .library, .membership { margin-top: 88px; border: 1px solid var(--line); background: rgba(251, 250, 244, .84); }
.section-head { padding: 44px 48px; border-bottom: 1px solid var(--line); }
.section-head.compact { display: grid; grid-template-columns: .7fr 1.2fr 1fr; align-items: end; gap: 30px; }
.section-head.split { display: grid; grid-template-columns: 1.35fr .65fr; align-items: end; gap: 50px; }
.section-head .overline { margin-bottom: 14px; }
.section-head h2 { margin: 0; font: 400 clamp(48px, 5.5vw, 88px)/.95 var(--serif); letter-spacing: -.055em; }
.section-head.compact h2 { font-size: clamp(40px, 4vw, 68px); }
.section-head p:last-child { margin: 0; max-width: 520px; color: var(--muted); }

.door-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.door { min-height: 440px; padding: 28px; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--line); transition: background .25s ease, transform .25s ease; }
.door:last-child { border-right: 0; }
.door:hover { background: var(--lime); transform: translateY(-8px); }
.door-index { font: 12px var(--mono); }
.door small { color: var(--muted); font: 11px var(--mono); letter-spacing: .12em; }
.door h3 { margin: 10px 0 12px; font: 400 clamp(42px, 4vw, 68px)/1 var(--serif); letter-spacing: -.04em; }
.door p { margin: 0; max-width: 360px; color: var(--muted); }
.door b { font-size: 13px; }

.filter-row { padding: 18px 48px; display: flex; gap: 8px; border-bottom: 1px solid var(--line); }
.filter { padding: 9px 16px; border: 1px solid var(--line); background: transparent; cursor: pointer; }
.filter.is-active { border-color: var(--ink); background: var(--ink); color: var(--lime); }
.feed-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.feed-card { position: relative; min-height: 350px; padding: 26px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: transform .22s ease, box-shadow .22s ease; }
.feed-card:nth-child(4n) { border-right: 0; }
.feed-card:hover { z-index: 2; transform: translateY(-7px); box-shadow: 0 22px 60px rgba(20,23,19,.14); }
.feed-card[hidden] { display: none; }
.feed-card.card-wide { grid-column: span 2; min-height: 500px; padding: 0 0 28px; background: #d8e2d1; }
.feed-card.card-lime { background: var(--lime); }
.feed-card.card-black { background: var(--black); color: var(--paper); }
.feed-card.card-black p { color: #acb0a7; }
.feed-meta { display: flex; justify-content: space-between; gap: 16px; margin-bottom: auto; color: inherit; font: 10px var(--mono); letter-spacing: .08em; }
.feed-card:not(.card-wide) h3 { margin: 70px 0 12px; font: 400 clamp(30px, 3vw, 48px)/1.05 var(--serif); letter-spacing: -.04em; }
.feed-card p { margin: 0 0 32px; color: var(--muted); }
.feed-card strong { margin-top: auto; font-size: 12px; }
.card-wide > :not(.motion-thumb) { margin-inline: 26px; }
.card-wide h3 { margin: 24px 26px 12px !important; max-width: 700px; font: 400 clamp(38px, 4vw, 64px)/1 var(--serif); }
.motion-thumb { height: 270px; overflow: hidden; display: grid; place-items: center; background: var(--black); color: var(--lime); position: relative; }
.motion-thumb span { position: absolute; font: 700 clamp(56px, 8vw, 124px)/1 var(--sans); letter-spacing: -.08em; }
.motion-thumb span:first-child { transform: translate(-19%, -35%); animation: vibe-one 5s ease-in-out infinite alternate; }
.motion-thumb span:nth-child(2) { transform: translate(15%, 40%); -webkit-text-stroke: 1px var(--lime); color: transparent; animation: vibe-two 5s ease-in-out infinite alternate; }
.motion-thumb i { width: 84px; aspect-ratio: 1; border: 2px solid var(--lime); border-radius: 50%; mix-blend-mode: difference; animation: orbit-poster 4s linear infinite; }
@keyframes vibe-one { to { transform: translate(-5%, -10%) skewX(-8deg); } }
@keyframes vibe-two { to { transform: translate(3%, 20%) skewX(8deg); } }
@keyframes orbit-poster { to { transform: rotate(360deg) translateX(80px) rotate(-360deg); } }

.school { background: var(--black); color: var(--paper); }
.school-brand { min-height: 110px; padding: 24px 48px; display: flex; align-items: center; justify-content: space-between; gap: 40px; border-bottom: 1px solid rgba(255,255,255,.18); }
.school-brand img { width: min(260px, 45vw); filter: invert(1); }
.school-brand p { margin: 0; max-width: 560px; color: #aeb2aa; }
.school-head { border-color: rgba(255,255,255,.18); }
.school-head h2 { max-width: 980px; }
.level-tabs { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid rgba(255,255,255,.18); }
.level-tab { min-height: 86px; padding: 18px 24px; display: flex; align-items: center; gap: 16px; border: 0; border-right: 1px solid rgba(255,255,255,.18); background: transparent; color: #aeb2aa; cursor: pointer; }
.level-tab:last-child { border-right: 0; }
.level-tab span { font: 11px var(--mono); }
.level-tab.is-active { background: var(--lime); color: var(--ink); }
.level-panel { min-height: 520px; display: grid; grid-template-columns: .82fr 1.18fr; }
.level-panel[hidden] { display: none; }
.level-intro { padding: 48px; border-right: 1px solid rgba(255,255,255,.18); }
.level-intro small { color: var(--lime); font: 11px var(--mono); }
.level-intro h3 { margin: 80px 0 20px; font: 400 clamp(38px, 4vw, 66px)/1.02 var(--serif); }
.level-intro p { color: #aeb2aa; }
.course-list { display: grid; grid-template-rows: repeat(3, 1fr); }
.course-list a { padding: 25px 32px; display: grid; grid-template-columns: 120px 1fr 1.6fr auto; align-items: center; gap: 24px; border-bottom: 1px solid rgba(255,255,255,.18); transition: background .2s ease, color .2s ease; }
.course-list a:last-child { border-bottom: 0; }
.course-list a:hover { background: var(--lime); color: var(--ink); }
.course-list span { font: 10px var(--mono); color: #aeb2aa; }
.course-list h4 { margin: 0; font: 400 34px var(--serif); }
.course-list p { margin: 0; color: #aeb2aa; }
.course-list b { font-size: 11px; }
.course-list a:hover span, .course-list a:hover p { color: #49513e; }
.coming-note { margin: 48px; align-self: center; padding: 64px; border: 1px dashed rgba(255,255,255,.25); color: #aeb2aa; text-align: center; }

.vibe-motion { width: 100%; margin-top: 0; padding: clamp(64px, 8vw, 130px) max(24px, calc((100vw - min(1480px, calc(100vw - 48px))) / 2)); display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 7vw, 110px); background: var(--lime); border-block: 1px solid var(--ink); }
.motion-heading h2 { margin: 0; font: 700 clamp(72px, 9vw, 152px)/.82 var(--sans); letter-spacing: -.09em; }
.motion-heading > p:not(.overline) { max-width: 600px; margin: 42px 0; font-size: 18px; }
.motion-links { display: flex; gap: 10px; flex-wrap: wrap; }
.motion-links span { padding: 10px 14px; border: 1px solid var(--ink); font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.motion-links span:last-child { background: var(--ink); color: var(--paper); }
.motion-links a { padding: 11px 15px; border: 1px solid var(--ink); font-size: 12px; }
.motion-links a:hover { background: var(--ink); color: var(--lime); }
.motion-demo { align-self: start; padding: 16px; background: var(--black); box-shadow: 30px 30px 0 rgba(20,23,19,.13); }
.demo-stage { position: relative; aspect-ratio: 16/10; overflow: hidden; padding: 24px; display: flex; align-items: center; background: #efeede; color: var(--ink); }
.demo-stage::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 49.7%, var(--line) 50%, transparent 50.3%), linear-gradient(transparent 49.7%, var(--line) 50%, transparent 50.3%); background-size: 25% 25%; }
.demo-kicker, .demo-time { position: absolute; z-index: 2; font: 10px var(--mono); }
.demo-kicker { top: 20px; left: 22px; }
.demo-time { right: 22px; bottom: 20px; }
.demo-stage strong { position: relative; z-index: 2; font: 700 clamp(54px, 8vw, 116px)/.75 var(--sans); letter-spacing: -.1em; animation: demo-type 4s cubic-bezier(.7,0,.2,1) infinite alternate; }
.demo-ball { position: absolute; right: 17%; top: 20%; width: 88px; aspect-ratio: 1; border-radius: 50%; background: var(--lime-strong); mix-blend-mode: multiply; animation: demo-ball 4s ease-in-out infinite alternate; }
.demo-line { position: absolute; right: 10%; bottom: 16%; width: 55%; height: 2px; background: var(--ink); transform-origin: right; animation: demo-line 4s ease-in-out infinite alternate; }
.demo-track { height: 32px; margin-top: 12px; display: flex; gap: 4px; }
.demo-track span { width: var(--w); background: var(--lime); opacity: .7; animation: track-blink 2s steps(1) infinite; }
.demo-track span:nth-child(2) { animation-delay: -.5s; }
.demo-track span:nth-child(3) { animation-delay: -1s; }
@keyframes demo-type { to { transform: translateX(10%) skewX(-8deg); letter-spacing: -.13em; } }
@keyframes demo-ball { to { transform: translate(-220%, 120%) scale(.55); } }
@keyframes demo-line { to { transform: rotate(-28deg) scaleX(.55); } }
@keyframes track-blink { 50% { opacity: .2; } }
.motion-workflow { grid-column: 1/-1; display: grid; grid-template-columns: .8fr 1.2fr; gap: 40px; margin-top: 24px; }
.motion-workflow ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); }
.motion-workflow li { padding: 18px 0; display: grid; grid-template-columns: 58px 1fr; gap: 16px; border-bottom: 1px solid var(--ink); }
.motion-workflow li > span { font: 11px var(--mono); }
.motion-workflow li b { font-size: 20px; }
.motion-workflow li p { margin: 4px 0 0; }
.prompt-card { padding: 24px; background: var(--black); color: var(--paper); }
.prompt-card > div { display: flex; justify-content: space-between; align-items: center; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.2); }
.prompt-card > div span { font: 10px var(--mono); color: var(--lime); }
.prompt-card button { padding: 8px 12px; border: 1px solid var(--lime); background: transparent; color: var(--lime); cursor: pointer; }
.prompt-card pre { margin: 22px 0 0; white-space: pre-wrap; color: #d7dbd2; font: 13px/1.8 var(--mono); }

.clinic-shell { display: grid; grid-template-columns: 1fr 1fr; min-height: 680px; }
.clinic-form { padding: 42px 48px; border-right: 1px solid var(--line); }
.clinic-status { display: flex; justify-content: space-between; margin-bottom: 38px; font: 10px var(--mono); }
.clinic-status span { color: #69814f; }
.clinic-form > label { margin-top: 22px; display: block; font-size: 12px; }
.clinic-form input[type="text"] { width: 100%; margin-top: 9px; padding: 15px 0; border: 0; border-bottom: 1px solid var(--ink); background: transparent; outline: 0; font: 22px var(--serif); }
.clinic-form input[type="text"]:focus { border-bottom-width: 2px; }
.clinic-form fieldset { margin: 32px 0 0; padding: 0; border: 0; }
.clinic-form legend { margin-bottom: 12px; font-size: 12px; }
.evidence-types { display: grid; grid-template-columns: repeat(3, 1fr); }
.evidence-types label { cursor: pointer; }
.evidence-types input { position: absolute; opacity: 0; }
.evidence-types span { min-height: 104px; padding: 14px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid var(--line); border-right: 0; }
.evidence-types label:last-child span { border-right: 1px solid var(--line); }
.evidence-types small { color: var(--muted); }
.evidence-types input:checked + span { background: var(--lime); border-color: var(--ink); }
.file-drop { padding: 24px; border: 1px dashed var(--ink); cursor: pointer; }
.file-drop input { position: absolute; opacity: 0; pointer-events: none; }
.file-drop span, .file-drop small { display: block; }
.file-drop span { font-weight: 700; }
.file-drop small { margin-top: 5px; color: var(--muted); }
.clinic-submit { width: 100%; margin-top: 22px; }
.clinic-report { padding: 48px; display: grid; place-items: center; background: #dce5d6; }
.report-empty, .report-result { max-width: 560px; }
.report-empty > span, .report-result > span { font: 11px var(--mono); color: #5f7150; }
.report-empty h3, .report-result h3 { margin: 22px 0; font: 400 clamp(46px, 5vw, 78px)/1 var(--serif); }
.report-empty p, .report-result p { color: var(--muted); }
.report-result ol { margin-top: 36px; padding: 0; list-style: none; counter-reset: item; }
.report-result li { padding: 14px 0; border-top: 1px solid var(--ink); counter-increment: item; }
.report-result li::before { content: "0" counter(item); margin-right: 18px; font: 10px var(--mono); }

.resource-search { padding: 22px 48px; display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); }
.resource-search label { font-size: 13px; font-weight: 700; }
.resource-search input { min-width: 0; padding: 12px 0; border: 0; border-bottom: 1px solid var(--ink); background: transparent; outline: none; font: 24px var(--serif); }
.resource-search span { color: var(--muted); font: 10px var(--mono); }
.resource-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.resource-card { min-height: 330px; padding: 28px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .22s ease; }
.resource-card:nth-child(3n) { border-right: 0; }
.resource-card:hover { background: var(--lime); }
.resource-card[hidden] { display: none; }
.resource-card span { color: #69814f; font: 10px var(--mono); }
.resource-card h3 { margin: 64px 0 12px; font: 400 46px var(--serif); }
.resource-card p { margin: 0; color: var(--muted); }
.resource-card b { margin-top: auto; font-size: 12px; }
.resource-card.featured { background: var(--black); color: var(--paper); }
.resource-card.featured p { color: #aeb2aa; }
.resource-card.featured:hover { background: #273021; }
.no-results { margin: 0; padding: 40px 48px; color: var(--muted); }

.membership { padding: 60px 48px; display: grid; grid-template-columns: .75fr 1.25fr; gap: 70px; background: var(--lime); }
.membership h2 { margin: 0; font: 400 clamp(52px, 6vw, 96px)/.93 var(--serif); }
.point-rules { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--ink); }
.point-rules div { min-height: 170px; padding: 18px; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--ink); }
.point-rules div:last-child { border-right: 0; }
.point-rules span { font: 700 30px var(--mono); }
.point-rules p { margin: 0; font-size: 12px; }
.unlock-rules { grid-column: 2; padding-top: 4px; }
.unlock-rules > span { display: block; margin-bottom: 10px; font: 10px var(--mono); }
.unlock-rules ol { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; border-top: 1px solid var(--ink); }
.unlock-rules li { padding: 13px 16px 0 0; font-size: 12px; }
.unlock-rules b { display: block; margin-bottom: 4px; font: 700 14px var(--mono); }
.membership-action { grid-column: 2; display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.membership-action p { margin: 0; max-width: 580px; }

footer { margin-top: 88px; margin-bottom: 24px; padding: 24px 28px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border: 1px solid var(--line); background: var(--paper-strong); }
footer > div { display: flex; align-items: baseline; gap: 12px; }
footer strong { font-size: 26px; letter-spacing: -.08em; }
footer span, footer p { color: var(--muted); font-size: 11px; }
footer img { width: 180px; }
footer p { justify-self: end; margin: 0; }

.account-dialog { width: min(560px, calc(100vw - 32px)); padding: 42px; border: 1px solid var(--ink); background: var(--paper-strong); color: var(--ink); box-shadow: 32px 32px 0 rgba(20,23,19,.18); }
.account-dialog::backdrop { background: rgba(17,20,15,.62); backdrop-filter: blur(8px); }
.dialog-close { position: absolute; right: 12px; top: 9px; width: 38px; height: 38px; border: 0; background: transparent; font-size: 28px; cursor: pointer; }
.dialog-mark { color: #69814f; font: 10px var(--mono); }
.account-dialog h2 { margin: 28px 0 18px; font: 400 60px/.92 var(--serif); }
.account-dialog > p { color: var(--muted); }
.account-dialog form label { display: block; margin-top: 22px; font-size: 12px; }
.account-dialog input, .account-dialog select { width: 100%; margin-top: 8px; padding: 14px; border: 1px solid var(--ink); border-radius: 0; background: transparent; }
.account-dialog form .button { width: 100%; margin-top: 26px; }
.account-success span { font: 10px var(--mono); color: #69814f; }
.account-success h3 { margin: 20px 0; font: 400 52px/1 var(--serif); }
.account-success .button { width: 100%; margin-top: 20px; }
.toast { position: fixed; left: 50%; bottom: 24px; z-index: 30; padding: 10px 16px; background: var(--ink); color: var(--lime); font-size: 12px; transform: translate(-50%, 140%); transition: transform .25s ease; }
.toast.is-visible { transform: translate(-50%, 0); }

@media (max-width: 1080px) {
  :root { --page: calc(100vw - 28px); }
  .site-header { grid-template-columns: 1fr auto; }
  .site-header nav { display: none; }
  .hero { grid-template-columns: 1fr; }
  .hero-object { min-height: 540px; border-left: 0; border-top: 1px solid var(--line); }
  .section-head.compact { grid-template-columns: 1fr 1.4fr; }
  .section-head.compact > p:last-child { grid-column: 2; }
  .door-grid { grid-template-columns: 1fr; }
  .door { min-height: 310px; border-right: 0; border-bottom: 1px solid var(--line); }
  .feed-grid { grid-template-columns: repeat(2, 1fr); }
  .feed-card:nth-child(4n) { border-right: 1px solid var(--line); }
  .feed-card:nth-child(2n) { border-right: 0; }
  .level-panel { grid-template-columns: 1fr; }
  .level-intro { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .course-list a { grid-template-columns: 100px 1fr 1.5fr auto; }
  .vibe-motion { grid-template-columns: 1fr; }
  .motion-workflow { grid-template-columns: 1fr; }
  .clinic-shell { grid-template-columns: 1fr; }
  .clinic-form { border-right: 0; border-bottom: 1px solid var(--line); }
  .resource-grid { grid-template-columns: repeat(2, 1fr); }
  .resource-card:nth-child(3n) { border-right: 1px solid var(--line); }
  .resource-card:nth-child(2n) { border-right: 0; }
  .membership { grid-template-columns: 1fr; }
  .unlock-rules { grid-column: 1; }
  .membership-action { grid-column: 1; }
}

@media (max-width: 680px) {
  :root { --page: calc(100vw - 16px); }
  .field-bg { background-size: 58px 58px; }
  .site-header { min-height: 58px; margin-top: 8px; padding: 8px 8px 8px 12px; }
  .zone-mark span { display: none; }
  .zone-mark strong { font-size: 21px; }
  .account-trigger { gap: 6px; padding: 8px; }
  .account-trigger span { display: none; }
  .hero { min-height: auto; }
  .hero-copy { min-height: 580px; padding: 76px 24px 50px; }
  .hero h1 { font-size: clamp(66px, 24vw, 112px); }
  .hero-lead { margin-top: 30px; font-size: 16px; }
  .hero-actions { align-items: stretch; flex-direction: column; margin-top: 32px; }
  .hero-object { min-height: 430px; }
  .object-core { width: 72%; }
  @keyframes orbit-one { to { transform: rotate(360deg) translateX(124px) rotate(-360deg); } }
  @keyframes orbit-two { to { transform: rotate(360deg) translateX(92px) rotate(-360deg); } }
  .platform-map, .feed, .school, .clinic, .library, .membership { margin-top: 48px; }
  .section-head, .school-brand, .clinic-form, .clinic-report { padding: 28px 22px; }
  .section-head.compact, .section-head.split { grid-template-columns: 1fr; gap: 14px; }
  .section-head.compact > p:last-child { grid-column: 1; }
  .section-head h2 { font-size: 48px; }
  .section-head .overline { margin-bottom: 6px; }
  .door { min-height: 300px; padding: 22px; }
  .door h3 { font-size: 52px; }
  .filter-row { padding: 12px; overflow-x: auto; }
  .filter { white-space: nowrap; }
  .feed-grid { grid-template-columns: 1fr; }
  .feed-card, .feed-card.card-wide { grid-column: auto; min-height: 350px; border-right: 0 !important; }
  .motion-thumb { height: 220px; }
  .school-brand { align-items: flex-start; flex-direction: column; }
  .level-tabs { display: flex; overflow-x: auto; }
  .level-tab { min-width: 190px; }
  .level-intro { padding: 32px 22px; }
  .level-intro h3 { margin-top: 44px; font-size: 44px; }
  .course-list a { padding: 24px 22px; grid-template-columns: 1fr auto; gap: 8px 20px; }
  .course-list span, .course-list p { grid-column: 1/-1; }
  .course-list h4 { font-size: 32px; }
  .course-list b { grid-row: 2; grid-column: 2; }
  .coming-note { margin: 24px; padding: 42px 22px; }
  .vibe-motion { padding: 64px 20px; gap: 44px; }
  .motion-heading h2 { font-size: clamp(62px, 20vw, 96px); }
  .motion-heading > p:not(.overline) { margin: 28px 0; font-size: 16px; }
  .motion-demo { padding: 8px; box-shadow: 12px 12px 0 rgba(20,23,19,.13); }
  .demo-stage { aspect-ratio: 4/5; }
  .demo-stage strong { font-size: 60px; }
  .motion-workflow { gap: 24px; }
  .prompt-card { padding: 18px; }
  .prompt-card pre { font-size: 11px; }
  .clinic-shell { min-height: 0; }
  .clinic-status { gap: 15px; flex-direction: column; }
  .clinic-form input[type="text"] { font-size: 18px; }
  .evidence-types { grid-template-columns: 1fr; }
  .evidence-types span { min-height: 75px; border-right: 1px solid var(--line); border-bottom: 0; }
  .evidence-types label:last-child span { border-bottom: 1px solid var(--line); }
  .clinic-report { min-height: 440px; }
  .report-empty h3, .report-result h3 { font-size: 52px; }
  .resource-search { padding: 20px 22px; grid-template-columns: 1fr auto; }
  .resource-search label { grid-column: 1/-1; }
  .resource-search input { font-size: 18px; }
  .resource-grid { grid-template-columns: 1fr; }
  .resource-card { min-height: 280px; border-right: 0 !important; }
  .membership { padding: 42px 22px; gap: 38px; }
  .membership h2 { font-size: 58px; }
  .point-rules { grid-template-columns: repeat(2, 1fr); }
  .point-rules div { min-height: 130px; border-bottom: 1px solid var(--ink); }
  .point-rules div:nth-child(2) { border-right: 0; }
  .point-rules div:nth-child(n+3) { border-bottom: 0; }
  .membership-action { align-items: stretch; flex-direction: column; }
  .unlock-rules ol { grid-template-columns: 1fr; }
  .unlock-rules li { padding: 11px 0; border-bottom: 1px solid rgba(20,23,19,.28); }
  footer { margin-top: 48px; grid-template-columns: 1fr auto; gap: 20px; }
  footer img { width: 120px; }
  footer p { grid-column: 1/-1; justify-self: start; }
  .account-dialog { padding: 32px 22px; }
  .account-dialog h2 { font-size: 48px; }
}

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