:root {
  --paper: oklch(98% 0.012 345);
  --ink: oklch(22% 0.05 300);
  --pink: oklch(75% 0.18 350);
  --pink-soft: oklch(88% 0.075 350);
  --cobalt: oklch(48% 0.22 265);
  --sky: oklch(84% 0.09 250);
  --butter: oklch(91% 0.14 95);
  --blue-soft: oklch(89% 0.055 245);
  --raspberry: oklch(52% 0.22 350);
  --line: oklch(22% 0.05 300 / 0.28);
  --muted: oklch(37% 0.045 315);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
h1, h2, h3 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 400; text-wrap: balance; }
p { text-wrap: pretty; }
.section-name, .section-title > span, .kicker { font-size: 10px; line-height: 1.3; text-transform: uppercase; letter-spacing: .18em; font-weight: 800; color: var(--cobalt); }

.topbar { min-height: 72px; padding: 0 3.5vw; border-bottom: 1px solid oklch(98% 0.012 345 / .35); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; background: var(--cobalt); color: var(--paper); position: sticky; top: 0; z-index: 20; }
.wordmark { font: 600 20px/1 Georgia, serif; letter-spacing: .02em; white-space: nowrap; }
.wordmark i { color: var(--butter); font-weight: 400; }
nav { display: flex; gap: clamp(14px, 1.8vw, 28px); font-size: 10px; text-transform: uppercase; letter-spacing: .11em; }
nav a { padding: 7px 0; border-bottom: 1px solid transparent; }
nav a:hover { border-color: var(--butter); }
.print-button { justify-self: end; border: 1px solid var(--paper); background: transparent; color: var(--paper); padding: 10px 14px; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.print-button:hover { background: var(--butter); border-color: var(--butter); color: var(--ink); }

.hero { min-height: calc(100vh - 72px); display: grid; grid-template-columns: 1.03fr .97fr; border-bottom: 1px solid var(--line); }
.hero-copy { position: relative; overflow: hidden; padding: clamp(58px, 8vw, 120px) 6vw 64px; display: flex; flex-direction: column; justify-content: center; background: var(--butter); }
.hero-copy::after { content: "11!"; position: absolute; top: clamp(28px, 4vw, 58px); right: clamp(22px, 3vw, 48px); width: clamp(76px, 8vw, 112px); aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: var(--pink); color: var(--ink); box-shadow: 8px 8px 0 var(--cobalt); font: 800 clamp(30px, 3.8vw, 54px)/1 Arial, sans-serif; letter-spacing: -.04em; transform: rotate(9deg); }
.kicker { margin: 0 0 28px; }
h1 { max-width: 720px; font-size: clamp(54px, 7vw, 96px); line-height: .93; letter-spacing: -.04em; }
h1 em { color: var(--raspberry); font-weight: 400; }
.dek { max-width: 590px; margin: 34px 0 32px; font: 20px/1.5 Georgia, serif; color: var(--muted); }
.invitation { max-width: 570px; margin: 0; padding-top: 20px; border-top: 2px solid var(--cobalt); font-size: 13px; line-height: 1.6; }
.hero-art { position: relative; min-height: 580px; overflow: hidden; background: var(--sky); }
.hero-art img { object-fit: cover; object-position: center; filter: saturate(.9) contrast(.97); }
.hero-art::after { content: "Direction, not formula"; position: absolute; right: 20px; bottom: 18px; padding: 10px 12px; background: var(--butter); font: italic 13px Georgia, serif; transform: rotate(-1deg); }

.essence { padding: clamp(80px, 10vw, 150px) 6vw; display: grid; grid-template-columns: .95fr 1.05fr; gap: 10vw; border-bottom: 1px solid var(--line); }
.section-title h2, .outcome-intro h2, .response-heading h2, .edges h2 { margin-top: 24px; font-size: clamp(44px, 5.7vw, 78px); line-height: .98; letter-spacing: -.035em; }
.essence-copy { max-width: 680px; }
.essence-copy p { margin: 0; padding: 0 0 25px; font: 21px/1.55 Georgia, serif; color: var(--muted); }
.essence-copy p + p { padding-top: 25px; border-top: 1px solid var(--line); }

.person { min-height: 78vh; display: grid; grid-template-columns: .96fr 1.04fr; background: var(--pink); border-bottom: 1px solid var(--line); }
.person-photo { position: relative; margin: 0; min-height: 700px; overflow: hidden; }
.person-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 42%; filter: saturate(.94) contrast(.98); }
.person-photo figcaption { position: absolute; left: 18px; bottom: 16px; margin: 0; padding: 8px 10px; background: var(--butter); font: italic 12px/1.2 Georgia, serif; }
.person-copy { padding: clamp(70px, 9vw, 140px) 7vw; align-self: center; }
.person-copy h2 { max-width: 680px; margin: 24px 0 34px; font-size: clamp(52px, 6.5vw, 88px); line-height: .94; letter-spacing: -.04em; }
.person-copy p { max-width: 620px; margin: 0; font: 23px/1.52 Georgia, serif; color: #493f3d; }

.feeling { padding: clamp(80px, 9vw, 135px) 3.5vw; background: var(--sky); display: grid; grid-template-columns: 1fr; gap: clamp(38px, 5vw, 72px); }
.mood-copy { max-width: 980px; padding-left: 2.5vw; }
.mood-copy h2 { margin: 24px 0 28px; font-size: clamp(50px, 6.3vw, 86px); line-height: .94; letter-spacing: -.04em; }
.mood-copy > p { max-width: 780px; margin: 0; font: 19px/1.55 Georgia, serif; color: var(--muted); }
.word-line { max-width: 530px; margin-top: 35px; display: flex; flex-wrap: wrap; gap: 9px; }
.word-line span { padding: 8px 11px; border: 1px solid var(--line); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.board-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(30px, 4vw, 64px); align-items: start; }
.board-frame { margin: 0; background: var(--paper); padding: 14px 14px 34px; }
.board-blue { box-shadow: 10px 10px 0 #78a9d3; transform: rotate(-.35deg); }
.board-pink { box-shadow: 10px 10px 0 #e93d86; transform: rotate(.35deg); }
.board-name { padding: 10px 4px 17px; display: flex; align-items: baseline; justify-content: space-between; gap: 18px; }
.board-name span { font-size: 9px; line-height: 1.3; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--cobalt); }
.board-name h3 { font: 700 clamp(19px, 2vw, 30px)/1 Arial, Helvetica, sans-serif; letter-spacing: -.025em; }
.board-frame img { display: block; width: 100%; height: auto; filter: saturate(.94); }
.board-frame figcaption { min-height: 58px; padding: 14px 4px 0; font: 13px/1.45 Georgia, serif; color: var(--muted); }
.mini-palette { margin-top: 15px; display: grid; grid-template-columns: repeat(6, 1fr); height: 28px; }
.mini-palette i { display: block; border-right: 2px solid var(--paper); }
.mini-palette i:last-child { border-right: 0; }
.reference-links { padding: 18px 4px 0; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; }
.reference-links span { margin-right: auto; font-size: 9px; line-height: 1.3; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: var(--cobalt); }
.reference-links a { font-size: 10px; line-height: 1.4; text-decoration: underline; text-underline-offset: 3px; }
.reference-links a:hover { color: var(--cobalt); }
.palette { grid-column: 1 / -1; margin-top: 28px; display: grid; grid-template-columns: repeat(6, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.palette span { min-height: 105px; padding: 13px; display: flex; align-items: flex-end; border-right: 1px solid var(--line); font-size: 9px; line-height: 1.3; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; transition: transform 180ms cubic-bezier(.22,1,.36,1); }
.palette span:hover { transform: translateY(-8px); }
.palette span:last-child { border-right: 0; }
.dark-swatch { color: white; }
.soundtrack { grid-column: 1 / -1; margin: 18px 0 0; padding: clamp(32px, 5vw, 68px); background: var(--cobalt); color: var(--paper); display: grid; grid-template-columns: .45fr 1fr .85fr; gap: 4vw; align-items: end; transform: rotate(-.35deg); }
.soundtrack p { margin: 0; align-self: start; font-size: 10px; line-height: 1.3; text-transform: uppercase; letter-spacing: .16em; font-weight: 700; }
.soundtrack h3 { font-family: Arial, Helvetica, sans-serif; font-size: clamp(32px, 4.2vw, 62px); line-height: .92; letter-spacing: -.04em; font-weight: 800; text-transform: uppercase; color: var(--butter); }
.soundtrack > span { max-width: 430px; font: 15px/1.55 Georgia, serif; color: #fff8ef; }

.ingredients { padding: clamp(85px, 10vw, 150px) 5vw; display: grid; grid-template-columns: .72fr 1.28fr; gap: 9vw; border-bottom: 1px solid var(--line); background: var(--butter); }
.compact-title { position: sticky; top: 118px; align-self: start; }
.compact-title > p { max-width: 430px; margin: 30px 0 0; font: 17px/1.55 Georgia, serif; color: var(--muted); }
.ingredient-list { border-top: 1px solid var(--line); }
.ingredient-list article { min-height: 155px; padding: 26px 0; display: grid; grid-template-columns: 44px minmax(180px, .65fr) 1fr; gap: 24px; align-items: start; border-bottom: 1px solid var(--line); }
.ingredient-list article > span { color: var(--cobalt); font: 800 15px Arial, sans-serif; }
.ingredient-list h3 { font-size: 25px; line-height: 1.08; }
.ingredient-list article:nth-child(2n) h3 { color: var(--raspberry); }
.ingredient-list p { max-width: 560px; margin: 0; font-size: 13px; line-height: 1.65; color: var(--muted); }

.outcome { padding: clamp(85px, 9vw, 135px) 6vw; background: var(--ink); color: var(--paper); display: grid; grid-template-columns: .78fr 1.22fr; gap: 8vw; }
.outcome .section-name { color: var(--butter); }
.outcome-intro > p { margin: 30px 0 0; font: 18px/1.55 Georgia, serif; color: #d8cfca; }
.outcome-list { border-top: 1px solid rgba(246,241,232,.35); }
.outcome-list article { padding: 21px 0; display: grid; grid-template-columns: .8fr 1.2fr; gap: 28px; border-bottom: 1px solid rgba(246,241,232,.25); }
.outcome-list h3 { font-size: 23px; line-height: 1.12; color: var(--pink); }
.outcome-list p { margin: 0; font-size: 12px; line-height: 1.6; color: #d8cfca; }

.edges { padding: clamp(80px, 9vw, 130px) 8vw; background: var(--pink); display: grid; grid-template-columns: .7fr 1.3fr; gap: 9vw; align-items: end; }
.edges .section-name { color: var(--ink); }
.edges p { max-width: 760px; margin: 0; font: 24px/1.5 Georgia, serif; color: var(--ink); }

.practical { padding: clamp(80px, 9vw, 130px) 5vw; display: grid; grid-template-columns: .75fr 1.25fr; gap: 9vw; border-bottom: 1px solid var(--line); }
.practical dl { margin: 0; border-top: 1px solid var(--line); }
.practical dl > div { min-height: 74px; padding: 17px 0; display: grid; grid-template-columns: 180px 1fr; gap: 25px; align-items: center; border-bottom: 1px solid var(--line); }
.practical dt { font-size: 9px; line-height: 1.4; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: var(--cobalt); }
.practical dd { margin: 0; font: 17px/1.4 Georgia, serif; }

.response { padding: clamp(90px, 10vw, 150px) 6vw; background: var(--blue-soft); display: grid; grid-template-columns: .82fr 1.18fr; gap: 8vw; }
.response h2 { color: var(--cobalt); }
.response-heading > p { max-width: 520px; margin: 30px 0 0; font: 18px/1.55 Georgia, serif; color: #493f3d; }
.response ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.response li { min-height: 76px; padding: 17px 0; display: grid; grid-template-columns: 50px 1fr; gap: 12px; align-items: center; border-bottom: 1px solid var(--line); font: 16px/1.45 Georgia, serif; }
.response li span { color: var(--cobalt); font-weight: 800; font-size: 13px; }
.response-cta { grid-column: 2; justify-self: start; margin-top: -4vw; padding: 15px 18px; background: var(--cobalt); color: var(--paper); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.response-cta:hover { background: var(--ink); }

.closing { min-height: 55vh; padding: 90px 6vw; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: var(--cobalt); color: var(--paper); }
.closing p { margin: 0 0 22px; font: 18px/1.5 Georgia, serif; }
.closing h2 { font-size: clamp(56px, 8vw, 96px); line-height: .95; letter-spacing: -.04em; color: var(--butter); }

footer { min-height: 145px; padding: 40px 3.5vw; background: var(--ink); color: var(--paper); display: grid; grid-template-columns: 1fr auto auto; gap: 5vw; align-items: end; }
footer p { margin: 0; font-size: 9px; text-transform: uppercase; letter-spacing: .11em; color: #c8beb9; }

.iris-studio { min-height: 100vh; background: var(--paper); }
.iris-studio-header { min-height: 70px; padding: 0 4vw; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: var(--cobalt); color: var(--paper); }
.iris-studio-header > span { font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.iris-mini-mark { font: 600 19px/1 Georgia, serif; }
.iris-mini-mark i { color: var(--butter); font-weight: 400; }
.iris-studio-hero { min-height: 72vh; padding: clamp(70px, 10vw, 150px) 7vw; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center; background: var(--butter); border-bottom: 1px solid var(--line); }
.iris-studio-hero::after { content: "YOUR TAKE"; position: absolute; right: -45px; top: 90px; padding: 15px 55px; background: var(--pink); color: var(--ink); font-size: 12px; font-weight: 900; letter-spacing: .16em; transform: rotate(10deg); }
.iris-studio-kicker { margin: 0 0 26px; color: var(--cobalt); font-size: 10px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.iris-studio-hero h1 { max-width: 1050px; font-size: clamp(58px, 9vw, 96px); line-height: .9; letter-spacing: -.04em; }
.iris-studio-hero h1 em { color: var(--raspberry); }
.iris-studio-hero > p:last-child { max-width: 650px; margin: 38px 0 0; font: 20px/1.55 Georgia, serif; color: var(--muted); }
.iris-form { padding: clamp(70px, 9vw, 130px) 7vw 100px; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 26px; background-image: radial-gradient(oklch(48% 0.22 265 / .11) 1px, transparent 1px); background-size: 18px 18px; }
.iris-question-card { grid-column: span 6; padding: clamp(30px, 4vw, 55px); border: 1px solid var(--ink); box-shadow: 8px 8px 0 var(--ink); }
.iris-question-card:nth-child(3), .iris-question-card:nth-child(6), .iris-card-game { grid-column: 2 / span 10; }
.iris-question-card > span { display: block; margin-bottom: 21px; font-size: 9px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.iris-question-card h2 { max-width: 720px; font-size: clamp(34px, 4vw, 57px); line-height: .98; letter-spacing: -.035em; }
.iris-question-card > p { max-width: 600px; margin: 18px 0 0; font: 16px/1.5 Georgia, serif; }
.iris-card-cobalt { background: var(--cobalt); color: var(--paper); }
.iris-card-cobalt h2 { color: var(--butter); }
.iris-card-pink { background: var(--pink); }
.iris-card-butter { background: var(--butter); transform: rotate(-.45deg); }
.iris-card-sky { background: var(--sky); }
.iris-card-blue { background: var(--blue-soft); transform: rotate(.45deg); }
.iris-card-paper { background: var(--paper); }
.iris-card-game { background: var(--pink); border-color: var(--cobalt); box-shadow: 8px 8px 0 var(--cobalt); }
.iris-choice-row { margin-top: 28px; display: grid; gap: 9px; }
.iris-choice-row button { width: 100%; padding: 14px 16px; border: 1px solid currentColor; background: transparent; color: inherit; text-align: left; line-height: 1.35; cursor: pointer; transition: transform 150ms ease, background 150ms ease, color 150ms ease; }
.iris-choice-row button:hover { transform: translateX(5px); }
.iris-choice-row button.selected { background: var(--ink); color: var(--paper); box-shadow: 4px 4px 0 var(--pink); }
.iris-card-cobalt .iris-choice-row button.selected { background: var(--butter); color: var(--ink); }
.iris-question-card label { display: block; margin: 30px 0 8px; font-size: 10px; line-height: 1.4; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.iris-question-card textarea, .iris-question-card input { width: 100%; margin-top: 18px; padding: 14px 15px; border: 1px solid currentColor; border-radius: 0; background: oklch(100% 0 0 / .55); color: var(--ink); font: 16px/1.45 Georgia, serif; }
.iris-question-card textarea { min-height: 86px; resize: vertical; }
.iris-question-card input { min-height: 51px; }
.iris-question-card label + textarea { margin-top: 0; }
.iris-question-card label + input { margin-top: 0; }
.iris-card-cobalt textarea { background: var(--paper); }
.iris-question-card textarea:focus, .iris-question-card input:focus { outline: 4px solid var(--cobalt); outline-offset: 2px; }
.iris-finish { grid-column: 3 / span 8; margin-top: 30px; padding: 52px; background: var(--ink); color: var(--paper); text-align: center; box-shadow: 10px 10px 0 var(--pink); }
.iris-finish p { margin: 0 0 25px; font: 17px/1.5 Georgia, serif; }
.iris-finish button { min-width: 210px; padding: 15px 18px; border: 1px solid var(--butter); background: var(--butter); color: var(--ink); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.iris-finish .iris-reset { min-width: 0; margin-left: 12px; background: transparent; color: var(--paper); border-color: var(--paper); }

.planner-response { min-height: 100vh; background: #f9fbfd; color: #173c62; }
.response-topbar { min-height: 70px; padding: 0 4vw; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: #78a9d3; color: #102f50; border-bottom: 1px solid #315c83; }
.response-topbar > span { font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.response-hero { min-height: 66vh; padding: clamp(72px, 9vw, 135px) 7vw; display: grid; grid-template-columns: 1.15fr .85fr; gap: 8vw; align-items: end; background: #b8d7ea; border-bottom: 1px solid #315c83; }
.response-hero > p { align-self: start; margin: 0; font-size: 10px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.response-hero h1 { grid-column: 1; max-width: 850px; font-size: clamp(54px, 7.5vw, 96px); line-height: .92; letter-spacing: -.04em; }
.response-hero h1 em { color: #e93d86; }
.response-hero > div { grid-column: 2; grid-row: 1 / span 2; align-self: end; max-width: 480px; padding-bottom: 8px; }
.response-hero > div p { margin: 0 0 24px; font: 20px/1.5 Georgia, serif; }
.response-hero > div a { display: inline-block; padding-bottom: 4px; border-bottom: 1px solid currentColor; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.quick-response-form { max-width: 1120px; margin: 0 auto; padding: clamp(70px, 9vw, 130px) 5vw; }
.response-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }
.response-reference { margin: 0 0 38px; padding: 14px 16px; background: #d8dce2; font-size: 13px; }
.quick-response-form fieldset { margin: 0; padding: clamp(36px, 5vw, 65px) 0; border: 0; border-top: 1px solid #315c83; }
.quick-response-form legend { float: left; width: 27%; padding: 8px 5vw 0 0; font: 700 clamp(24px, 3vw, 42px)/1 Georgia, serif; color: #315c83; }
.quick-response-form fieldset > *:not(legend) { margin-left: 27%; width: 73%; }
.response-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.quick-response-form label, .date-checks > p { display: block; margin-top: 0; font-size: 10px; line-height: 1.4; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.quick-response-form label span { color: #526f8c; font-weight: 500; }
.quick-response-form input:not([type="checkbox"]), .quick-response-form select, .quick-response-form textarea { width: 100%; margin-top: 9px; padding: 14px 15px; border: 1px solid #315c83; border-radius: 0; background: white; color: #173c62; font: 16px/1.45 Georgia, serif; }
.quick-response-form textarea { resize: vertical; }
.quick-response-form input:focus, .quick-response-form select:focus, .quick-response-form textarea:focus { outline: 3px solid #ff3e9e; outline-offset: 2px; }
.response-wide-label + .response-wide-label { margin-top: 25px !important; }
.date-checks { margin-top: 25px !important; }
.date-checks > p { margin: 0 0 12px; }
.date-checks label { display: flex; align-items: center; gap: 11px; padding: 11px 0; border-top: 1px solid #b5c4d1; font: 15px/1.4 Georgia, serif; letter-spacing: 0; text-transform: none; }
.date-checks input { width: 18px; height: 18px; accent-color: #e93d86; }
.response-actions { margin-top: 25px; padding: clamp(38px, 5vw, 62px); display: grid; grid-template-columns: 1fr 1fr; gap: 6vw; align-items: end; background: #315c83; color: white; }
.response-actions h2 { margin-bottom: 18px; color: #b8d7ea; font-size: clamp(38px, 4vw, 58px); }
.response-actions p { max-width: 500px; margin: 0; font: 16px/1.5 Georgia, serif; }
.response-actions > div:last-child { display: flex; flex-direction: column; gap: 10px; }
.response-actions button { min-height: 50px; padding: 14px 17px; border: 1px solid #ff3e9e; background: #ff3e9e; color: #173c62; cursor: pointer; font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.response-actions .secondary-response-button { background: transparent; color: white; border-color: white; }
.response-actions button:hover { background: white; border-color: white; color: #173c62; }
.response-actions #planner-response-status { margin: 3px 0 0; min-height: 20px; font: 13px/1.4 Georgia, serif; color: #dbeaf5; }

@media (max-width: 1050px) {
  nav { display: none; }
  .topbar { grid-template-columns: 1fr auto; }
  .feeling, .ingredients, .outcome, .practical, .response { grid-template-columns: 1fr; }
  .mood-copy { padding-left: 0; }
  .compact-title { position: static; }
  .palette { grid-template-columns: repeat(3, 1fr); }
  .soundtrack { grid-template-columns: 1fr; gap: 22px; }
  .board-options { grid-template-columns: 1fr; }
  .response-cta { grid-column: 1; margin-top: 0; }
}

@media (max-width: 760px) {
  .hero, .essence, .person, .edges { grid-template-columns: 1fr; }
  .hero-copy { min-height: 610px; padding-left: 7vw; padding-right: 7vw; }
  .hero-art { min-height: 78vw; }
  .person-photo { min-height: 118vw; }
  .person-copy { padding: 72px 7vw 82px; }
  .essence, .feeling, .ingredients, .outcome, .edges, .practical, .response { padding-left: 7vw; padding-right: 7vw; }
  .ingredient-list article { grid-template-columns: 38px 1fr; gap: 14px; }
  .ingredient-list article p { grid-column: 2; }
  .outcome-list article { grid-template-columns: 1fr; gap: 10px; }
  .edges { align-items: start; gap: 38px; }
  footer { grid-template-columns: 1fr; gap: 16px; }
  .iris-studio-header > span { display: none; }
  .iris-studio-hero { min-height: 68vh; padding-left: 7vw; padding-right: 7vw; }
  .iris-studio-hero::after { top: 52px; right: -64px; }
  .iris-form { display: block; padding-left: 5vw; padding-right: 5vw; }
  .iris-question-card { margin-bottom: 24px; padding: 34px 6vw; box-shadow: 5px 5px 0 var(--ink); }
  .iris-question-card:nth-child(3), .iris-question-card:nth-child(6), .iris-card-game { grid-column: auto; }
  .iris-card-butter, .iris-card-blue { transform: none; }
  .iris-finish { margin-top: 36px; padding: 40px 22px; }
  .iris-finish button { display: block; width: 100%; }
  .iris-finish .iris-reset { margin: 12px 0 0; }
  .response-topbar > span { display: none; }
  .response-hero { min-height: 72vh; grid-template-columns: 1fr; align-items: start; }
  .response-hero h1, .response-hero > div { grid-column: 1; grid-row: auto; }
  .response-hero > div { padding-top: 20px; }
  .quick-response-form { padding-left: 7vw; padding-right: 7vw; }
  .quick-response-form legend { float: none; width: 100%; padding: 0 0 28px; }
  .quick-response-form fieldset > *:not(legend) { margin-left: 0; width: 100%; }
  .response-field-grid, .response-actions { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .print-button { padding: 9px; font-size: 8px; }
  h1 { font-size: 52px; }
  .palette { grid-template-columns: 1fr 1fr; }
  .palette span { min-height: 90px; }
  .practical dl > div { grid-template-columns: 1fr; gap: 8px; }
  .edges p { font-size: 20px; }
}

@media print {
  @page { margin: 12mm; size: letter; }
  .topbar { position: static; min-height: 50px; }
  nav, .print-button { display: none !important; }
  .hero { min-height: 0; page-break-after: always; grid-template-columns: 1fr 1fr; }
  .hero-copy { padding: 35px; }
  .hero-art { min-height: 430px; }
  .essence, .feeling, .ingredients, .outcome, .edges, .practical, .response { padding: 34px 0; }
  .person, .feeling, .outcome, .edges, .response { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .person { min-height: 0; grid-template-columns: 1fr 1fr; break-before: page; }
  .person-photo { min-height: 550px; }
  .person-copy { padding: 42px; }
  .board-frame { box-shadow: none; }
  .compact-title { position: static; }
  .ingredient-list article, .outcome-list article, .practical dl > div, .response li { break-inside: avoid; }
  .closing { min-height: 0; padding: 60px 0; break-before: page; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  footer { padding: 28px 0; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}
