:root {
  color-scheme: light;
  --ink: #090a0e;
  --ink-soft: #15151d;
  --paper: #fff;
  --canvas: #f5f4f2;
  --muted: #85848e;
  --line: #e8e6e7;
  --mint: #73f0bc;
  --mint-deep: #24b884;
  --violet: #5142dc;
  --violet-soft: #f0efff;
  --serif: "Source Serif 4", Georgia, serif;
  --display: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { width: 100%; margin: 0; background: var(--canvas); }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
[hidden] { display: none !important; }
::selection { background: var(--mint); color: var(--ink); }

.site-shell { overflow: hidden; }
.topbar { height: 76px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(22px, 6vw, 92px); background: #fff; border-bottom: 1px solid #efedef; position: relative; z-index: 2; }
.brand { display: flex; align-items: center; gap: 13px; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 11px; background: var(--ink); border: 1px solid #33323d; color: var(--mint); font: 500 17px var(--display); letter-spacing: -.09em; }
.brand-copy { display: grid; gap: 3px; }
.brand-copy strong { font: 500 15px var(--display); }
.brand-copy small { color: var(--violet); font: 600 8px var(--sans); letter-spacing: .17em; }
.topbar-note, .topbar-link { color: #74727c; font-size: 9px; font-weight: 600; letter-spacing: .13em; }
.pulse { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--mint-deep); box-shadow: 0 0 0 4px #e7fbf2; }
.topbar-link { color: var(--ink); text-decoration: none; letter-spacing: .04em; }
.topbar-link span { color: var(--violet); margin-left: 4px; }

.hero { min-height: 610px; position: relative; isolation: isolate; padding: 95px clamp(28px, 11.3vw, 170px) 85px; display: flex; align-items: flex-start; background: var(--ink); color: white; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -2; opacity: .29; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 53px 53px; mask-image: linear-gradient(90deg, transparent 5%, #000 55%, transparent 100%); }
.hero::after { content: ""; position: absolute; bottom: -82px; left: -3%; width: 106%; height: 125px; border-radius: 50% 50% 0 0; background: var(--canvas); z-index: -1; }
.hero-copy { z-index: 1; }
.eyebrow, .mini-kicker { display: flex; align-items: center; gap: 10px; color: var(--mint); margin: 0 0 24px; font-size: 9px; font-weight: 600; letter-spacing: .18em; }
.eyebrow-line { display: inline-block; width: 25px; height: 1px; background: currentColor; }
.hero h1 { margin: 0; max-width: 650px; font: 500 clamp(56px, 8.2vw, 112px)/.99 var(--display); letter-spacing: -.055em; }
.hero h1 em { color: var(--mint); font-weight: 400; }
.hero h1 span { display: block; margin-top: 8px; color: #f5f3ef; font: italic 400 clamp(45px, 6vw, 79px)/1.13 var(--display); letter-spacing: -.04em; }
.hero-lede { margin: 25px 0 31px; color: #aaa8b2; font: 400 16px/1.75 var(--serif); }
.hero-scroll { display: inline-flex; align-items: center; gap: 11px; color: #dedde2; font-size: 9px; font-weight: 600; letter-spacing: .15em; text-decoration: none; }
.scroll-mark { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid #484650; border-radius: 50%; color: var(--mint); font-size: 14px; transition: transform .2s, background .2s; }
.hero-scroll:hover .scroll-mark { transform: translateY(3px); background: #25242d; }
.hero-stamp { position: absolute; right: clamp(36px, 12vw, 175px); top: 173px; width: 224px; height: 224px; border: 1px solid #34313d; border-radius: 50%; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; background: radial-gradient(circle, rgba(78,61,198,.23), rgba(9,10,14,0) 68%); transform: rotate(5deg); }
.hero-stamp::before, .hero-stamp::after { content: ""; position: absolute; inset: 12px; border: 1px solid #34313d; border-radius: 50%; }
.hero-stamp::after { inset: 29px; border-color: #292731; }
.hero-stamp span, .hero-stamp i { z-index: 1; font-style: normal; color: #afacba; font-size: 8px; letter-spacing: .18em; }
.hero-stamp strong { z-index: 1; margin: 9px 0; font: 500 30px/1 var(--display); }
.hero-stamp i { color: var(--mint); font-size: 7px; }
.hero-index { position: absolute; right: clamp(28px, 5vw, 80px); bottom: 127px; z-index: 1; color: #aaa8b2; font-size: 9px; letter-spacing: .16em; }
.hero-index span { color: var(--mint); padding: 0 5px; }
.hero-rule { position: absolute; left: clamp(28px, 6vw, 92px); right: clamp(28px, 6vw, 92px); bottom: 51px; height: 1px; background: linear-gradient(90deg, var(--mint), var(--violet), transparent); z-index: 1; }

.selection { padding: 77px clamp(22px, 8vw, 120px) 90px; max-width: 1440px; margin: 0 auto; }
.section-heading { display: grid; grid-template-columns: 1fr auto; align-items: end; column-gap: 30px; margin-bottom: 38px; }
.section-heading .eyebrow { grid-column: 1/-1; margin-bottom: 14px; color: var(--violet); }
.section-heading h2 { margin: 0; font: 500 clamp(35px, 4.5vw, 55px)/1.04 var(--display); letter-spacing: -.04em; }
.section-heading h2 em { color: var(--violet); font-weight: 400; }
.section-intro { max-width: 420px; margin: 0; color: #777680; font: 400 15px/1.65 var(--serif); }
.document-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.document-card { position: relative; overflow: hidden; border: 1px solid #e7e5e7; border-radius: 9px; background: #fff; box-shadow: 0 14px 35px rgba(20,17,35,.065); transition: transform .25s, box-shadow .25s; }
.document-card:hover { transform: translateY(-4px); box-shadow: 0 21px 45px rgba(20,17,35,.11); }
.card-topline { display: flex; justify-content: space-between; padding: 17px 20px 13px; color: #7c7b85; font-size: 8px; font-weight: 600; letter-spacing: .14em; }
.card-art { height: 213px; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center; padding: 24px 35px; background: var(--ink); color: white; }
.card-art::before { content: ""; position: absolute; width: 250px; height: 250px; right: -56px; top: -100px; border: 1px solid rgba(111,80,255,.3); border-radius: 50%; box-shadow: 0 0 0 20px rgba(111,80,255,.06), 0 0 0 52px rgba(111,80,255,.04); }
.card-art::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: linear-gradient(90deg, var(--mint), var(--violet)); }
.art-kicker { color: var(--mint); font-size: 8px; letter-spacing: .2em; }
.art-title { position: relative; z-index: 1; margin-top: 21px; font: 500 clamp(30px, 3.8vw, 44px)/1 var(--display); letter-spacing: -.045em; }
.art-script { position: relative; z-index: 1; color: var(--mint); font: italic 400 clamp(27px, 3.4vw, 39px)/1.15 var(--display); }
.art-star { position: absolute; top: 50%; right: 19%; color: rgba(115,240,188,.6); font-size: 18px; }
.art-author { margin-top: auto; color: #c3c1c9; font-size: 8px; letter-spacing: .13em; }
.art-author i { color: #777582; font-style: normal; }
.exercise-art { background: #08090d; }
.exercise-art::before { width: 200px; height: 200px; top: -71px; right: -25px; border-color: rgba(115,240,188,.25); box-shadow: 0 0 0 20px rgba(81,66,220,.1), 0 0 0 53px rgba(115,240,188,.04); }
.exercise-art .art-title { font-size: clamp(25px, 3.2vw, 37px); }
.exercise-art .art-script { font-size: clamp(27px, 3.2vw, 37px); }
.art-quote { margin-top: 14px; color: #d0cdeb; font: italic 400 12px/1.5 var(--serif); }
.exercise-art-chip { position: absolute; right: 26px; bottom: 28px; display: grid; place-items: center; width: 54px; height: 54px; border: 1px solid var(--violet); border-radius: 50%; background: var(--violet); color: #fff; text-align: center; font-size: 7px; line-height: 1.4; letter-spacing: .09em; }
.card-body { padding: 23px 28px 26px; }
.card-label { display: flex; align-items: center; gap: 8px; color: #686772; font-size: 8px; font-weight: 600; letter-spacing: .14em; }
.label-dot { width: 7px; height: 7px; border-radius: 50%; }
.mint-dot { background: var(--mint-deep); box-shadow: 0 0 0 3px #e5faf1; }
.violet-dot { background: var(--violet); box-shadow: 0 0 0 3px #ebeaff; }
.card-body h3 { margin: 12px 0 8px; font: 500 29px/1.08 var(--display); letter-spacing: -.03em; }
.card-body > p { min-height: 49px; max-width: 480px; margin: 0; color: #777680; font: 400 14px/1.65 var(--serif); }
.card-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 17px; }
.card-tags span { padding: 6px 8px; border: 1px solid #ebe9ed; border-radius: 2px; color: #777680; font-size: 7px; font-weight: 600; letter-spacing: .09em; }
.card-actions { display: grid; grid-template-columns: 1fr auto; gap: 12px; margin-top: 20px; align-items: center; }
.button { min-height: 43px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; border: 0; border-radius: 3px; padding: 0 15px; cursor: pointer; text-decoration: none; font-size: 10px; font-weight: 600; transition: transform .18s, background .18s; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--ink); color: #fff; }
.button-primary:hover { background: #23212d; }
.button-primary span { color: var(--mint); font-size: 15px; }
.violet-button { background: var(--violet); }
.violet-button:hover { background: #3e31bd; }
.button-quiet { color: #666570; background: transparent; padding: 0 3px; gap: 6px; font-size: 9px; }
.button-quiet:hover { color: var(--violet); }
.button-quiet span { color: var(--violet); font-size: 14px; }
.card-number { position: absolute; top: 50px; right: 20px; color: rgba(255,255,255,.16); font: 500 32px var(--display); pointer-events: none; }
.selection-footnote { margin: 23px 0 0; color: #777680; font: 400 12px var(--serif); }
.selection-footnote span { color: var(--violet); padding-right: 6px; }
.closing-note { min-height: 218px; display: grid; place-content: center; justify-items: center; gap: 10px; background: var(--ink); color: white; text-align: center; }
.closing-spark { color: var(--mint); font-size: 18px; }
.closing-note p { margin: 0; font: 400 24px/1.4 var(--display); }
.closing-note p em { color: var(--mint); }
.closing-by { margin-top: 4px; color: #aaa8b2; font-size: 8px; letter-spacing: .18em; }
.site-footer { display: flex; justify-content: space-between; gap: 18px; padding: 23px clamp(22px, 6vw, 92px); color: #777680; background: #fff; font-size: 8px; letter-spacing: .09em; }
.site-footer a { text-decoration: none; color: var(--violet); }

.form-view { min-height: 100vh; }
.form-view [hidden] { display: none !important; }
.form-toolbar { position: sticky; top: 0; z-index: 5; height: 56px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; padding: 0 clamp(16px, 5vw, 70px); background: rgba(255,255,255,.94); border-bottom: 1px solid #ece9ed; backdrop-filter: blur(14px); }
.back-button, .print-button { justify-self: start; padding: 9px 0; border: 0; background: none; color: #65636f; cursor: pointer; font-size: 10px; }
.back-button span { padding-right: 6px; color: var(--violet); font-size: 15px; }
.toolbar-title { color: #6e6c76; font-size: 8px; font-weight: 600; letter-spacing: .14em; }
.toolbar-title span { padding: 0 6px; color: var(--violet); }
.print-button { justify-self: end; color: var(--violet); }
.print-button span { padding-left: 5px; }
.form-cover { min-height: 730px; position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; align-items: center; padding: 52px 22px 42px; color: #fff; background: #08090d; text-align: center; }
.form-cover::before { content: ""; position: absolute; z-index: -1; inset: 0; opacity: .24; background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size: 44px 44px; }
.cover-corner { position: absolute; left: clamp(22px, 6vw, 82px); top: 27px; color: var(--mint); font-size: 8px; letter-spacing: .16em; }
.cover-corner span { padding-left: 8px; }
.cover-orbit { position: absolute; z-index: -1; right: -75px; top: -148px; width: 360px; height: 360px; border: 1px solid rgba(81,66,220,.36); border-radius: 50%; box-shadow: 0 0 0 28px rgba(81,66,220,.08), 0 0 0 76px rgba(81,66,220,.05); }
.form-cover .eyebrow { margin: 11px 0 20px; font-size: 8px; }
.form-cover h1 { margin: 0; font: 500 clamp(39px, 6.4vw, 75px)/1.1 var(--display); letter-spacing: -.055em; }
.form-cover h1 em { color: var(--mint); font-weight: 400; }
.cover-divider { width: min(360px, 76vw); display: flex; align-items: center; gap: 18px; margin: 18px auto 13px; color: var(--mint); }
.cover-divider::before, .cover-divider::after { content: ""; height: 1px; flex: 1; background: linear-gradient(90deg, transparent, #4f4c55); }
.cover-divider::after { transform: rotate(180deg); }
.cover-byline { display: grid; gap: 7px; color: #aaa8b2; font: 400 14px var(--serif); }
.cover-byline strong { color: #fff; font: 500 22px var(--display); }
.cover-byline small { color: var(--mint); font: 500 8px var(--sans); letter-spacing: .15em; }
.participant-fields { width: min(650px, 94vw); margin-top: 29px; padding: 23px 28px 24px; display: grid; gap: 17px; border: 1px solid rgba(81,66,220,.2); border-top: 2px solid transparent; border-image: linear-gradient(90deg, var(--violet), var(--mint)) 1; background: #fff; color: var(--ink); text-align: left; box-shadow: 0 14px 40px rgba(0,0,0,.26); }
.participant-heading { grid-column: 1/-1; color: var(--violet); font-size: 8px; font-weight: 600; letter-spacing: .15em; }
.participant-fields label { display: grid; gap: 7px; color: #65636f; font-size: 10px; font-weight: 500; }
.participant-fields input { width: 100%; padding: 5px 0 8px; border: 0; border-bottom: 1px solid #b5b2c4; border-radius: 0; outline: 0; background: transparent; color: var(--ink); font: 15px var(--serif); }
.participant-fields input:focus { border-color: var(--violet); }
.cover-quote { margin-top: 19px; color: #aaa8b2; font: italic 12px var(--display); }
.progress-row { width: min(930px, calc(100% - 44px)); display: flex; align-items: center; gap: 15px; margin: 30px auto 19px; color: #777680; font-size: 8px; font-weight: 600; letter-spacing: .12em; }
.progress-track { flex: 1; height: 3px; overflow: hidden; background: #e9e7ec; }
.progress-track i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--violet), var(--mint-deep)); transition: width .25s; }
.progress-row strong { min-width: 32px; color: var(--violet); text-align: right; }
.progress-row strong { min-width: 84px; }
.chapter-nav { position: sticky; top: 56px; z-index: 4; display: flex; justify-content: center; gap: 0; overflow-x: auto; padding: 0 10px; border-block: 1px solid #e9e7eb; background: rgba(255,255,255,.95); backdrop-filter: blur(12px); scrollbar-width: none; }
.chapter-nav::-webkit-scrollbar { display: none; }
.chapter-nav a { flex: 0 0 auto; padding: 14px 15px; color: var(--violet); text-decoration: none; font-size: 8px; font-weight: 600; letter-spacing: .12em; }
.chapter-nav a span { padding-left: 4px; color: #777680; font-weight: 500; letter-spacing: 0; }
.workbook-form { max-width: 880px; margin: 38px auto 55px; padding: 0 18px; }
.save-panel { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px 22px; margin: 0 0 38px; padding: 17px 20px; border: 1px solid #d9f5e9; border-left: 3px solid var(--mint-deep); border-radius: 5px; background: #f5fcf8; }
.save-panel > div { display: grid; gap: 4px; }
.save-panel strong { font: 500 15px var(--display); }
.save-panel > div span { color: #6d6b74; font-size: 10px; line-height: 1.6; }
.cloud-save { min-height: 39px; font-size: 9px; }
.save-status { grid-column: 1/-1; color: #716f7a; font-size: 10px; }
.save-status:empty { display: none; }
.save-status[data-state="success"] { color: #147e5b; }
.save-status[data-state="error"] { color: #b42332; }
.wizard-start { margin-top: 25px; min-width: 205px; min-height: 47px; }
.wizard-step[hidden] { display: none !important; }
.wizard-controls { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin: 23px 0 8px; padding-top: 16px; border-top: 1px solid #e8e6eb; }
.wizard-back, .wizard-next { min-height: 43px; padding: 0 15px; border: 1px solid #e1dfe7; border-radius: 4px; background: white; color: #55535e; cursor: pointer; font-size: 10px; font-weight: 600; transition: transform .18s, background .18s; }
.wizard-back { justify-self: start; }
.wizard-back:disabled { visibility: hidden; }
.wizard-next { justify-self: end; min-width: 132px; border-color: var(--ink); background: var(--ink); color: white; }
.wizard-next:hover:not(:disabled), .wizard-back:hover:not(:disabled) { transform: translateY(-2px); }
.wizard-next span { padding-left: 8px; color: var(--mint); font-size: 14px; }
.wizard-step-count { color: #777680; font-size: 8px; font-weight: 600; letter-spacing: .13em; text-align: center; }
.workbook-section, .exercise-section, .exercise-declaration { animation: step-arrive .32s ease both; }
@keyframes step-arrive { from { opacity: .45; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
.wizard-complete { max-width: 880px; margin: 48px auto; padding: clamp(24px, 6vw, 56px); border: 1px solid #e7e5ea; border-radius: 8px; background: white; text-align: center; box-shadow: 0 14px 35px rgba(20,17,35,.07); }
.completion-spark { color: var(--mint-deep); font-size: 23px; }
.wizard-complete .mini-kicker { justify-content: center; margin: 12px 0; color: var(--violet); }
.wizard-complete > h2 { margin: 0; font: 500 clamp(34px, 6vw, 54px)/1.08 var(--display); letter-spacing: -.04em; }
.wizard-complete > h2 em { color: var(--violet); font-weight: 400; }
.wizard-complete > p:not(.mini-kicker) { max-width: 470px; margin: 14px auto 0; color: #777680; font: 14px/1.7 var(--serif); }
.completion-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 10px; margin: 22px 0 32px; }
.wizard-complete .exercise-cta { text-align: left; }
.wizard-complete .exercise-back { text-align: left; }
.wizard-complete .exercise-back { page-break-before: always; }
.wizard-complete .exercise-cta, .wizard-complete .exercise-back { max-width: 760px; margin-inline: auto; }
.workbook-section { scroll-margin-top: 126px; margin: 0 0 25px; }
.section-meta { display: flex; justify-content: space-between; padding: 0 0 12px; border-bottom: 1px solid #dad8dd; color: var(--violet); font-size: 8px; font-weight: 600; letter-spacing: .16em; }
.workbook-section > h2 { margin: 24px 0 5px; font: 500 clamp(34px, 5vw, 49px)/1.1 var(--display); letter-spacing: -.04em; }
.workbook-section > h2 em { color: var(--violet); font-weight: 400; }
.section-subtitle { margin: 0 0 18px; color: var(--violet); font-size: 10px; }
.workbook-section > .section-intro { max-width: none; margin: 12px 0 21px; font-size: 14px; }
.section-quote { margin: 12px 0 22px; color: #777680; font: italic 15px var(--serif); }
.paper-panel { margin: 15px 0; padding: 22px 23px; border: 1px solid #eeecef; border-radius: 7px; background: #fff; box-shadow: 0 8px 21px rgba(24,19,43,.055); }
.emotion-panel legend { padding: 0 0 14px; color: #51505a; font: 400 12px var(--serif); }
.choice-grid { display: grid; gap: 8px; }
.three-col { grid-template-columns: repeat(3, minmax(0,1fr)); }
.choice { min-height: 35px; display: flex; align-items: center; gap: 9px; padding: 7px 9px; border: 1px solid #f1f0f4; border-radius: 4px; background: #faf9fc; color: #46444e; font: 400 11px var(--serif); cursor: pointer; }
.choice input, .inline-options input, .inline-radios input, .done-choice input { accent-color: var(--violet); }
.custom-choice { color: var(--violet); }
.custom-emotion { display: flex; align-items: center; gap: 9px; white-space: nowrap; }
.inline-input { flex: 1; min-width: 55px; width: 100%; border: 0; border-bottom: 1px solid #c9c6d2; background: transparent; outline: 0; }
.panel-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 17px; }
.icon-tile { flex: 0 0 34px; display: grid; place-items: center; height: 34px; border-radius: 9px; background: var(--violet); color: white; font-size: 12px; }
.panel-heading h3, .paper-panel > h3 { margin: 0 0 3px; font: 500 20px var(--display); }
.panel-heading small { color: var(--violet); font-size: 9px; }
.question-label, .response-prompt, .exercise-question { display: grid; gap: 8px; color: #33313b; font: 400 12px var(--serif); }
.field-hint { display: block; margin: 6px 0 10px; color: #85838e; font: italic 11px/1.55 var(--serif); }
textarea, .lined-label input, .numbered-inputs input, .action-row input, .signature-grid input, .response-prompt input, .exercise-section textarea { width: 100%; border: 0; border-bottom: 1px solid #d7d3e2; border-radius: 0; outline: 0; background: transparent; color: #27252d; font: 14px/1.55 var(--serif); resize: vertical; }
textarea { padding: 8px 3px; min-height: 42px; }
textarea:focus, input:focus { border-color: var(--violet); }
textarea::placeholder, input::placeholder { color: #aaa8b1; }
.origin-grid, .contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px 20px; }
.lined-label { display: grid; gap: 12px; color: var(--violet); font-size: 9px; font-weight: 600; letter-spacing: .08em; }
.lined-label input { padding: 6px 0; font-size: 13px; }
.dark-question { position: relative; padding: 21px 23px 17px; border-radius: 7px; background: var(--ink); color: white; }
.dark-question h3 { margin: 0 0 5px; font: 500 18px var(--display); }
.dark-question > div > small { color: var(--mint); font-size: 8px; letter-spacing: .12em; }
.inline-radios { display: flex; align-items: center; gap: 9px; margin: 15px 0 0; border: 0; padding: 0; }
.inline-radios legend { float: left; margin-right: auto; color: #c8c6cf; font: italic 12px var(--serif); }
.inline-radios label { cursor: pointer; }
.inline-radios input { position: absolute; opacity: 0; }
.inline-radios label span { display: inline-block; min-width: 51px; padding: 6px 12px; border: 1px solid #36343d; border-radius: 30px; color: #ddd; text-align: center; font-size: 9px; }
.inline-radios input:checked + span { border-color: var(--mint); background: var(--mint); color: var(--ink); }
.dark-quote { margin: 15px 0 0; color: #aaa8b2; font: italic 11px var(--serif); }
.dark-quote span { color: var(--mint); }
.mini-kicker { margin: 0 0 10px; color: var(--violet); font-size: 8px; }
.numbered-inputs { display: grid; gap: 7px; margin-top: 14px; }
.numbered-inputs label { display: grid; grid-template-columns: 24px 1fr; align-items: center; gap: 8px; }
.numbered-inputs label > span { color: var(--violet); font: 500 14px var(--display); }
.numbered-inputs input { padding: 8px 4px; }
.response-prompt { margin-top: 17px; }
.response-prompt textarea { margin-top: 0; }
.action-banner { margin: 15px 0; padding: 22px 24px; border-radius: 6px; background: #0f1015; color: white; }
.action-banner h3 { margin: 0 0 5px; font: 500 22px var(--display); }
.action-banner > p { margin: 0 0 15px; color: #aaa8b2; font: 12px/1.6 var(--serif); }
.action-banner label { display: grid; gap: 7px; color: var(--mint); font-size: 8px; font-weight: 600; letter-spacing: .15em; }
.action-banner textarea { border-color: #393741; color: white; }
.contact-grid { margin-bottom: 18px; }
.quote-strip { padding: 20px 15px; border-left: 2px solid var(--mint); color: #35333e; font: italic 16px var(--display); }
.quote-strip span { color: #8a8892; font-size: 11px; }
.declaration-card { margin-top: 17px; padding: clamp(25px, 5vw, 52px); border-radius: 8px; border: 1px solid #26242f; background: #0b0c10; color: #eeeef0; box-shadow: 0 13px 32px rgba(19,15,34,.12); }
.declaration-card .mini-kicker { color: var(--mint); }
.declaration-card h2 { margin: 12px 0 25px; color: white; font: 500 clamp(38px, 6vw, 64px)/.98 var(--display); }
.declaration-card h2 em { color: var(--mint); }
.declaration-card > p:not(.mini-kicker) { max-width: 650px; color: #c3c1ca; font: 15px/1.8 var(--serif); }
.declaration-opening { margin-top: 0; }
.declaration-opening input, .pledge-panel > p input { width: min(230px, 45vw); border-bottom: 1px solid var(--mint); outline: none; background: transparent; color: white; font: italic 15px var(--serif); }
.declaration-card .declaration-last { color: var(--mint) !important; font: italic 20px var(--display) !important; }
.signature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 22px 0; }
.signature-grid label { display: grid; gap: 9px; color: #777680; font-size: 8px; font-weight: 600; letter-spacing: .14em; }
.signature-grid input { padding: 8px 0; }
.declaration-card .signature-grid label { color: #aaa8b2; }
.declaration-card .signature-grid input { border-color: #57545e; color: white; }
.declaration-quote { border-top: 1px solid #302e37; padding-top: 19px; color: var(--mint) !important; font-style: italic !important; text-align: center; }
.declaration-quote span { display: block; margin-top: 7px; color: #85838e; font: 8px var(--sans); letter-spacing: .13em; }
.action-table-head, .action-row { display: grid; grid-template-columns: minmax(0,1fr) 105px 70px; gap: 15px; align-items: center; }
.action-table-head { padding: 12px 0 8px; color: #777680; font-size: 8px; font-weight: 600; letter-spacing: .12em; }
.action-row { min-height: 52px; border-bottom: 1px solid #f0eef2; }
.action-row input { padding: 8px 3px; font-size: 12px; }
.done-choice { display: flex; align-items: center; gap: 5px; color: #686670; font-size: 9px; }
.pledge-panel > p { color: #595761; font: 14px/1.85 var(--serif); }
.pledge-panel > p input { color: var(--ink); border-color: var(--violet); }
.pledge-panel .signature-grid input { border-color: #c8c5d2; }
.quote-list { padding: 18px 23px; border-left: 2px solid var(--violet); background: white; }
.quote-list blockquote { margin: 0; padding: 13px 0; border-bottom: 1px solid #efedf1; color: #393741; font: italic 16px/1.5 var(--display); }
.quote-list blockquote:last-of-type { border: 0; }
.quote-attribution { display: block; margin-top: 14px; color: var(--violet); font-size: 9px; }
.program-card { display: grid; grid-template-columns: 1.15fr .85fr; gap: 28px; margin-top: 19px; padding: 25px; background: #101116; color: #fff; }
.program-card .mini-kicker { color: var(--mint); }
.program-card h3 { margin: 0 0 12px; font: 500 27px/1.15 var(--display); }
.program-card p:not(.mini-kicker) { color: #b9b7c1; font: 13px/1.7 var(--serif); }
.program-card a { display: inline-block; margin-top: 9px; color: var(--mint); font-size: 10px; text-decoration: none; }
.program-card ul { align-self: center; margin: 0; padding-left: 18px; color: #d1cfd7; font: 12px/2 var(--serif); }
.form-endbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 0; border-top: 1px solid var(--line); color: #777680; font-size: 8px; letter-spacing: .1em; }
.form-endbar > span { color: var(--violet); font-size: 16px; }
.form-endbar a { color: var(--violet); text-decoration: none; }

.exercise-form { width: min(900px, calc(100% - 36px)); margin: 0 auto 50px; }
.exercise-cover { position: relative; min-height: 255px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 22px; margin: 24px 0 0; padding: 30px clamp(23px, 6vw, 60px) 62px; overflow: hidden; background: #08090d; color: white; }
.exercise-cover .wizard-start { grid-column: 1 / -1; justify-self: start; margin: 0 0 10px; }
.exercise-cover::before { content: ""; position: absolute; right: -66px; top: -132px; width: 330px; height: 330px; border: 1px solid rgba(81,66,220,.36); border-radius: 50%; box-shadow: 0 0 0 28px rgba(81,66,220,.09), 0 0 0 70px rgba(81,66,220,.05); }
.exercise-cover .mini-kicker { color: var(--mint); }
.exercise-cover h1 { position: relative; margin: 0; font: 500 clamp(33px, 5vw, 58px)/1 var(--display); letter-spacing: -.05em; }
.exercise-cover h1 em { color: var(--mint); font-weight: 400; }
.exercise-cover > div:first-child > p:last-child { margin: 8px 0 0; color: #aaa8b2; font: 12px var(--serif); }
.duration-badges { position: relative; z-index: 1; display: grid; gap: 9px; }
.duration-badges span { padding: 8px 12px; border: 1px solid var(--mint-deep); border-radius: 30px; color: var(--mint); font-size: 8px; text-align: center; }
.duration-badges span:first-child { border-color: var(--violet); background: var(--violet); color: white; }
.exercise-motto { position: absolute; right: 0; bottom: 0; left: 0; padding: 12px 20px; background: var(--violet); color: white; text-align: center; font: italic 13px var(--display); }
.exercise-progress { width: calc(100% - 30px); }
.exercise-section { position: relative; margin: 15px 0; padding: 19px 22px 20px; border: 1px solid #ebe9ed; border-radius: 8px; border-left: 3px solid var(--violet); background: #fff; box-shadow: 0 8px 20px rgba(24,19,43,.06); }
.exercise-section.accent-mint { border-left-color: var(--mint-deep); }
.exercise-section.accent-black { border-left-color: var(--ink); }
.exercise-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 17px; }
.step-number { flex: 0 0 31px; display: grid; place-items: center; height: 31px; border-radius: 8px; background: var(--violet); color: white; font: 500 14px var(--display); }
.dark-step { background: var(--ink); }
.mint-step { background: var(--mint); color: var(--ink); }
.exercise-heading h2 { margin: 0; font: 500 21px var(--display); }
.exercise-heading em { display: block; margin-top: 2px; color: #777680; font: italic 11px var(--serif); }
.exercise-question { margin: 14px 0; }
.inline-options { display: flex; flex-wrap: wrap; gap: 11px; margin: 1px 0 4px; }
.inline-options label { display: flex; align-items: center; gap: 5px; cursor: pointer; color: #55535e; font: 11px var(--serif); }
.exercise-section textarea { border-color: #d7d3e2; }
.compact-numbered { gap: 2px; margin: 0 0 14px; }
.compact-numbered label { grid-template-columns: 22px 1fr; }
.compact-numbered input { border-color: #d7d3e2; }
.exercise-declaration { margin: 15px 0; padding: 19px 22px 11px; border: 1px solid #26242f; border-radius: 8px; background: #090a0e; color: white; box-shadow: 0 9px 21px rgba(24,19,43,.12); }
.exercise-declaration .exercise-heading { margin-bottom: 13px; }
.exercise-declaration blockquote { margin: 0; padding: 17px 12px; border: 1px solid #28523f; border-radius: 6px; background: rgba(115,240,188,.055); color: #e1dfe6; text-align: center; font: italic 18px/1.55 var(--display); }
.exercise-declaration blockquote em { color: var(--mint); }
.exercise-declaration .signature-grid { margin: 15px 0 2px; }
.exercise-declaration .signature-grid label { color: #aaa8b2; }
.exercise-declaration .signature-grid input { color: white; border-color: #55525e; }
.exercise-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 15px 0 0; padding: 15px 20px; border-radius: 7px; background: var(--violet); color: white; box-shadow: 0 8px 18px rgba(81,66,220,.2); }
.exercise-cta > div { display: grid; gap: 4px; }
.exercise-cta strong { font: 500 16px var(--display); }
.exercise-cta span { color: #dddafc; font: 11px var(--serif); }
.exercise-cta a { flex: 0 0 auto; padding: 12px 15px; border-radius: 4px; background: var(--mint); color: var(--ink); text-decoration: none; font-size: 10px; font-weight: 700; }
.exercise-back { position: relative; margin-top: 55px; padding: 33px clamp(19px, 5vw, 48px) 15px; border: 1px solid #1e1c27; border-top: 3px solid var(--mint); background: #090a0e; color: white; overflow: hidden; }
.exercise-back::before { content: ""; position: absolute; right: -100px; top: -140px; width: 330px; height: 330px; border: 1px solid rgba(81,66,220,.3); border-radius: 50%; box-shadow: 0 0 0 30px rgba(81,66,220,.06), 0 0 0 65px rgba(81,66,220,.04); pointer-events: none; }
.back-ribbon { position: relative; display: flex; justify-content: space-between; color: var(--mint); font-size: 8px; letter-spacing: .15em; }
.back-ribbon span { color: #a3a0ac; }
.back-heading { position: relative; display: flex; align-items: center; gap: 17px; margin: 30px 0 24px; }
.back-heading .brand-mark { width: 52px; height: 52px; color: var(--mint); }
.back-heading small { color: var(--mint); font-size: 8px; letter-spacing: .13em; }
.back-heading h2 { margin: 6px 0; font: 500 33px/1.07 var(--display); }
.back-heading h2 em { color: var(--mint); }
.back-heading p { margin: 0; color: #aaa8b2; font: italic 12px var(--serif); }
.commitment-panel { position: relative; display: flex; align-items: flex-start; gap: 18px; padding: 21px; border: 1px solid #26242f; border-top: 2px solid var(--violet); border-radius: 8px; background: #fff; color: var(--ink); box-shadow: 0 9px 20px rgba(0,0,0,.2); }
.rocket { flex: 0 0 39px; display: grid; place-items: center; width: 39px; height: 39px; border-radius: 9px; background: var(--violet); color: white; font-size: 19px; }
.commitment-panel h3 { margin: 0 0 3px; font: 500 20px var(--display); }
.commitment-panel em { color: var(--violet); font: italic 11px var(--serif); }
.commitment-panel p { margin: 8px 0 0; color: #777680; font: 12px/1.65 var(--serif); }
.back-content { position: relative; display: grid; grid-template-columns: 1.25fr .8fr; gap: 15px; margin-top: 15px; }
.back-program { padding: 20px; border: 1px solid #292731; border-radius: 7px; background: radial-gradient(ellipse at 5% 90%, rgba(31,155,111,.12), transparent 50%), #0c0d11; }
.back-program .mini-kicker { color: var(--mint); }
.back-program h3 { margin: 0 0 12px; font: 500 20px var(--display); }
.back-program ul { display: grid; gap: 8px; margin: 0; padding-left: 16px; color: #ccc9d2; font: 11px/1.55 var(--serif); }
.back-program li::marker { color: var(--mint); }
.back-invite { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 15px; border: 1px solid #e9e7ec; border-bottom: 2px solid var(--mint); border-radius: 7px; background: white; color: var(--ink); text-align: center; }
.program-mark { position: relative; width: 63px; height: 63px; display: grid; place-items: center; margin-bottom: 8px; border: 1px solid #d4d2db; border-radius: 10px; background: linear-gradient(145deg, #f3f1ff, #fff); box-shadow: 0 5px 13px rgba(81,66,220,.12); }
.program-mark span { color: var(--violet); font: 500 22px var(--display); letter-spacing: -.1em; }
.program-mark i { position: absolute; right: 5px; bottom: 4px; color: var(--mint-deep); font: normal 11px var(--sans); }
.back-invite strong { font: 500 14px var(--display); }
.back-invite p { margin: 5px 0 10px; color: #777680; font: 10px/1.4 var(--serif); }
.back-invite > span { color: #777680; font-size: 7px; letter-spacing: .12em; }
.back-invite a { margin-top: 5px; color: var(--violet); font-size: 9px; text-decoration: none; }
.back-declaration { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 15px 0; padding: 19px 23px; border: 1px solid #282632; border-radius: 7px; background: linear-gradient(110deg, #0e0f13, #15102d); }
.back-declaration .mini-kicker { color: var(--mint); }
.back-declaration blockquote { margin: 8px 0 0; color: white; font: italic 17px/1.55 var(--display); }
.back-declaration blockquote em { color: var(--mint); }
.thirty-badge { flex: 0 0 77px; height: 77px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid var(--violet); border-radius: 50%; background: var(--violet); box-shadow: 0 0 0 4px rgba(81,66,220,.2); }
.thirty-badge strong { font: 500 25px var(--display); }
.thirty-badge span { font-size: 6px; line-height: 1.35; text-align: center; }
.back-footer { position: relative; display: flex; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid #292731; color: #8b8993; font-size: 8px; }

@media (max-width: 800px) {
  .hero { min-height: 595px; padding-top: 85px; }
  .hero-stamp { right: 6%; top: 350px; width: 150px; height: 150px; opacity: .76; }
  .hero-stamp strong { font-size: 23px; }
  .hero-stamp span, .hero-stamp i { font-size: 6px; }
  .hero-index { bottom: 113px; }
  .section-heading { grid-template-columns: 1fr; gap: 15px; }
  .section-intro { max-width: 490px; }
  .document-grid { gap: 16px; }
  .card-topline { font-size: 7px; }
  .card-art { height: 190px; padding-inline: 22px; }
  .card-body { padding: 21px 20px 23px; }
  .card-body h3 { font-size: 26px; }
  .card-actions { grid-template-columns: 1fr; gap: 4px; }
  .button-quiet { justify-self: start; }
  .chapter-nav { justify-content: flex-start; }
}
@media (max-width: 560px) {
  .topbar { height: 65px; padding-inline: 17px; }
  .topbar-note { display: none; }
  .brand-mark { width: 35px; height: 35px; }
  .brand-copy strong { font-size: 13px; }
  .brand-copy small { font-size: 7px; }
  .topbar-link { font-size: 8px; }
  .hero { min-height: 560px; padding: 87px 24px 90px; }
  .hero h1 { font-size: clamp(52px, 14vw, 74px); }
  .hero h1 span { font-size: clamp(42px, 11vw, 58px); }
  .hero-lede { max-width: 320px; font-size: 14px; }
  .hero-stamp { top: 374px; right: 7%; width: 125px; height: 125px; }
  .hero-stamp::before { inset: 8px; }
  .hero-stamp::after { inset: 18px; }
  .hero-stamp strong { font-size: 19px; }
  .hero-rule { bottom: 37px; }
  .hero-index { bottom: 87px; }
  .selection { padding: 55px 17px 64px; }
  .document-grid { grid-template-columns: 1fr; gap: 19px; }
  .card-art { height: 203px; padding-inline: 27px; }
  .card-body > p { min-height: 0; }
  .card-actions { grid-template-columns: 1fr auto; gap: 8px; }
  .card-actions .button { padding-inline: 11px; font-size: 9px; }
  .card-actions .button-quiet { font-size: 8px; }
  .site-footer { flex-wrap: wrap; padding: 19px 17px; font-size: 7px; }
  .closing-note p { font-size: 21px; }
  .form-toolbar { height: 52px; grid-template-columns: 1fr auto; padding-inline: 14px; }
  .toolbar-title { display: none; }
  .back-button, .print-button { font-size: 9px; }
  .form-cover { min-height: 650px; padding-top: 65px; }
  .form-cover h1 { font-size: clamp(39px, 10vw, 58px); }
  .participant-fields { grid-template-columns: 1fr; padding: 19px 20px; }
  .participant-heading { margin-bottom: 1px; }
  .chapter-nav { top: 52px; }
  .chapter-nav a { padding: 12px 10px; font-size: 7px; }
  .chapter-nav a span { display: block; padding: 4px 0 0; }
  .workbook-form { margin-top: 26px; padding-inline: 13px; }
  .save-panel { grid-template-columns: 1fr; margin-bottom: 29px; }
  .cloud-save { justify-self: start; }
  .save-status { grid-column: auto; }
  .paper-panel { padding: 18px 16px; }
  .three-col { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .choice { font-size: 10px; }
  .origin-grid, .contact-grid { grid-template-columns: 1fr; }
  .inline-radios { flex-wrap: wrap; }
  .inline-radios legend { flex-basis: 100%; margin-bottom: 5px; }
  .signature-grid { grid-template-columns: 1fr; gap: 13px; }
  .action-table-head, .action-row { grid-template-columns: minmax(0,1fr) 65px 51px; gap: 7px; }
  .action-row input { font-size: 10px; }
  .program-card { grid-template-columns: 1fr; gap: 14px; padding: 20px; }
  .form-endbar { font-size: 7px; }
  .exercise-form { width: calc(100% - 22px); }
  .exercise-cover { grid-template-columns: 1fr; gap: 15px; padding: 26px 20px 62px; }
  .exercise-cover h1 { font-size: clamp(34px, 9vw, 46px); }
  .duration-badges { display: flex; flex-wrap: wrap; }
  .duration-badges span { font-size: 7px; }
  .exercise-motto { font-size: 11px; }
  .exercise-section { padding: 17px 15px; }
  .exercise-heading h2 { font-size: 18px; }
  .inline-options { gap: 9px; }
  .exercise-declaration { padding: 17px 15px 10px; }
  .exercise-declaration blockquote { font-size: 15px; }
  .exercise-cta { align-items: flex-start; flex-direction: column; gap: 12px; }
  .exercise-cta a { align-self: flex-end; }
  .exercise-back { margin-top: 38px; padding-inline: 15px; }
  .back-ribbon { font-size: 6px; }
  .back-heading h2 { font-size: 27px; }
  .back-content { grid-template-columns: 1fr; }
  .back-invite { min-height: 185px; }
  .back-declaration { padding: 16px; }
  .back-declaration blockquote { font-size: 14px; }
  .thirty-badge { flex-basis: 66px; height: 66px; }
  .back-footer { flex-wrap: wrap; font-size: 7px; }
}

@media print {
  @page { size: A4; margin: 12mm; }
  :root { background: white; }
  body { background: white; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .site-shell { overflow: visible; }
  .topbar, .site-footer, .form-toolbar, .progress-row, .chapter-nav, .save-panel { display: none !important; }
  .wizard-controls, .wizard-start, .completion-actions { display: none !important; }
  .form-view .form-cover[hidden] { display: flex !important; }
  .form-view .exercise-cover[hidden] { display: grid !important; }
  .form-view .workbook-section[hidden], .form-view .exercise-section[hidden], .form-view .exercise-declaration[hidden] { display: block !important; }
  .wizard-complete[hidden] { display: block !important; margin: 0; padding: 0; border: 0; box-shadow: none; }
  .wizard-complete > .completion-spark, .wizard-complete > .mini-kicker, .wizard-complete > h2, .wizard-complete > p, .wizard-complete > .completion-actions { display: none !important; }
  .form-cover { min-height: 260mm; page-break-after: always; }
  .workbook-form, .exercise-form { width: 100%; max-width: none; margin: 0; padding: 0; }
  .workbook-section { page-break-before: always; break-before: page; }
  #wb-part-1 { page-break-before: auto; break-before: auto; }
  .paper-panel, .dark-question, .action-banner, .declaration-card, .exercise-section, .exercise-declaration, .exercise-cta, .exercise-back { break-inside: avoid; }
  .exercise-cover { margin-top: 0; min-height: 190mm; page-break-after: always; }
  .exercise-back { page-break-before: always; break-before: page; margin-top: 0; min-height: 270mm; }
  .form-endbar { display: none; }
  textarea { min-height: 35px; }
  input, textarea { color: #17161c !important; }
  .declaration-card input, .exercise-declaration input { color: white !important; }
}

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