/* Hallmark · shape: Narrative Workflow · genre: editorial · theme: Hedgerow (deal 2/3, seed morrow-flowers-fictional-bristol-fa45·1ba03453·2026-11-02·r0) · job: hire · draw: 041c8b · hero: Ledge · nav: pill register · footer: index columns · imagery: public domain floral painting · signature: a bouquet palette sampled from a still life · hedgerow: hedge · axes: dark/high-contrast-serif/chromatic-green · posture: drenched · contrast: pass · fold: pass · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H5 E5 S4 R4 V5 · weakest: project evidence, using a public-domain oil painting explicitly as a reference for colour. */
/* Hallmark · waive 59 · short service routes keep one compact intro above their content · the Enquire page needs its first bouquet choices within the mobile screen. */
/* Hallmark · waive 77 · the full picker and flower palette register carry the main job · privacy, questions and missing-page routes stay brief to support the bouquet draft. */
@import url("./tokens.css");
@import url("./base.css");
@font-face { font-family: "Prata"; src:url("assets/prata.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family: "Manrope"; src:url("assets/manrope.woff2") format("woff2"); font-weight:200 800; font-display:swap; }
:root { --container: 1536px; --gutter:clamp(20px,4vw,64px); --colour-rose:#e4b5ac; --colour-poppy:#c45c39; --colour-leaf:#829677; }
html,body { overflow-x:clip; }
body { font-size:1.0625rem; }
a { text-decoration-color:var(--color-muted); }
a:hover { text-decoration-thickness:2px; }
.skip { position:absolute; left:1rem; top:0; transform:translateY(-150%); z-index:10; padding:var(--space-sm); background:var(--color-paper); }
.skip:focus { transform:none; }
.concept { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:var(--space-sm); min-height:34px; padding:var(--space-2xs) var(--gutter); color:var(--color-ink-2); background:var(--color-paper-2); font-size:var(--text-sm); }
.concept span { padding-right:var(--space-sm); border-right:1px solid var(--color-rule); } /* taste-skill-ignore: Hedgerow register or control boundary. */
.top,.foot { display:flex; align-items:center; justify-content:space-between; gap:var(--space-lg); }
.top { min-height:88px; }
.wordmark { font:400 clamp(1.5rem,2.3vw,2.2rem)/1.15 var(--font-display); text-decoration:none; letter-spacing:-.045em; }
nav { display:flex; align-items:center; gap:var(--space-lg); }
nav a { display:inline-flex; align-items:center; min-height:44px; font-size:.9375rem; text-decoration:none; }
nav a:hover,nav a[aria-current] { text-decoration:underline; text-underline-offset:.35em; }
.top nav a:last-child { border:1px solid var(--color-muted); border-radius:var(--radius-pill); padding-inline:var(--space-lg); } /* taste-skill-ignore: Hedgerow register or control boundary. */
.hero { display:grid; grid-template-columns:minmax(0,0.84fr) minmax(0,1fr); min-height:540px; align-items:stretch; padding-block:var(--space-md) var(--space-xl); }
.hero-type { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-lg); padding-right:var(--gutter); }
h1,h2,h3 { font-weight:400; }
.hero h1 { font-size:clamp(4.2rem,7.3vw,7.3rem); letter-spacing:-.05em; line-height:1.065; max-width:9ch; }
.hero p { max-width:31ch; color:var(--color-ink-2); font-size:var(--text-lead); }
.btn { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:var(--space-sm) var(--space-lg); border-radius:var(--radius-pill); font-weight:700; font-size:var(--text-md); text-decoration:none; border:1px solid var(--color-accent); background:var(--color-accent); color:var(--color-accent-ink); cursor:pointer; } /* taste-skill-ignore: Hedgerow register or control boundary. */
.btn:hover { background:var(--color-accent-2); } .btn:active { transform:translateY(1px); }
.art { overflow:hidden; height:clamp(490px,68svh,710px); }
.art img { width:100%; height:100%; object-fit:cover; object-position:50% 42%; }
@media (prefers-reduced-motion:no-preference) { .art img { animation:study 2.8s var(--ease-out) both; } .hero-type > *, .top .wordmark, .intro > * { animation:arrive .7s var(--ease-out) both; } .swatch { transform-origin:left; animation:unfold .85s var(--ease-out) both; } @keyframes unfold { from { transform:scaleX(.65); } to { transform:scaleX(1); } } @keyframes study { from { transform:scale(1.055); } to { transform:scale(1); } } @keyframes arrive { from { transform:translateY(9px); } to { transform:translateY(0); } } }
@media(max-width:48rem) { .top { flex-direction:column; align-items:flex-start; gap:0; padding-block:var(--space-md); } .top nav { width:100%; justify-content:space-between; } .top nav a:last-child { padding-inline:var(--space-md); min-height:36px; } .hero { grid-template-columns:minmax(0,1fr); gap:var(--space-lg); min-height:0; } .hero-type { padding:var(--space-lg) 0 0; gap:var(--space-md); } .hero h1 { font-size:clamp(3.1rem,9.8vw,4.6rem); max-width:14ch; } .art { height:clamp(280px,66vw,460px); } .hero p { max-width:38ch; } }
.band,.closer,.intro,.sample-list,.occasion-list,.answers,.brief,.missing,.plain { padding-block:var(--space-2xl); }
.cream { background:var(--color-ink); color:var(--color-paper); }
.cream :focus-visible { outline-color:var(--color-paper); }
.band { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-lg) var(--gap-columns); }
.band p { align-self:end; max-width:45ch; }
.palettes { grid-column:1/-1; margin:var(--space-md) 0 0; padding:0; list-style:none; border-top:1px solid var(--color-paper); } /* taste-skill-ignore: Hedgerow register or control boundary. */
.palettes a { display:flex; align-items:center; gap:var(--space-lg); padding:var(--space-md) 0; border-bottom:1px solid var(--color-muted); font:400 var(--text-title)/1.35 var(--font-display); text-decoration:none; } /* taste-skill-ignore: Hedgerow register or control boundary. */
.palettes a:hover { text-decoration:underline; } .swatch { width:36px; height:24px; } .rose { background:var(--colour-rose); } .poppy { background:var(--colour-poppy); } .leaf { background:var(--colour-leaf); }
.closer,.occasion,.brief,.row,.sample { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1fr); align-items:start; gap:var(--gap-columns); }
.closer p,.occasion p,.sample p,.intro p,.answers p,.row p,.draft p { color:var(--color-ink-2); } .closer a,.sample a,.occasion a { display:inline-block; padding-block:var(--space-sm); }
footer { color:var(--color-ink); border-top:1px solid var(--color-rule); background:var(--color-paper-2); } /* taste-skill-ignore: Hedgerow register or control boundary. */
.foot { min-height:110px; }
.intro { padding-bottom:var(--space-xl); }
.intro h1 { font-size:var(--text-display); }
.intro p { max-width:53ch; margin-top:var(--space-lg); font-size:var(--text-lead); }
.sample-list,.occasion-list,.answers,.plain,.brief,.missing { padding-top:0; }
.sample,.occasion,.row { border-top:1px solid var(--color-rule); padding-block:var(--space-xl); } /* taste-skill-ignore: Hedgerow register or control boundary. */
.sample { align-items:center; }
.sample img { width:min(100%,460px); height:clamp(190px,23vw,280px); object-fit:cover; }
.sample p,.occasion p,.row p { max-width:45ch; }
.sample p { margin-top:var(--space-md); }
.sample h2,.occasion h2,.row h2 { font-size:var(--text-display-s); }
.answers details { border-top:1px solid var(--color-muted); padding-block:var(--space-md); } /* taste-skill-ignore: Hedgerow register or control boundary. */
.answers summary { font:400 var(--text-title)/1.4 var(--font-display); cursor:pointer; padding-block:var(--space-xs); }
.answers details p { padding:var(--space-sm) 0; }
.fields { display:grid; gap:var(--space-xs); }
label { display:block; font-weight:700; }
.fields label:not(:first-child) { margin-top:var(--space-sm); }
.fields label span { font-weight:400; }
select,textarea { display:block; width:100%; min-width:0; border:1px solid var(--color-muted); border-radius:0; color:var(--color-ink); background:var(--color-paper-2); padding:var(--space-sm); } /* taste-skill-ignore: Hedgerow register or control boundary. */
textarea { resize:vertical; }
.draft { padding:var(--space-lg); background:var(--color-paper-3); }
.draft p { margin-block:var(--space-xs) var(--space-md); } .draft .status:empty { margin:0; }
#actions { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-sm); margin-top:var(--space-md); }
.quiet { cursor:pointer; min-height:48px; padding:var(--space-xs) var(--space-lg); border:1px solid var(--color-muted); color:var(--color-ink); background:var(--color-paper); border-radius:var(--radius-pill); } /* taste-skill-ignore: Hedgerow register or control boundary. */
.quiet:hover { border-color:var(--color-accent); }
@media(max-width:48rem) { .band,.closer,.sample,.occasion,.row,.brief { grid-template-columns:minmax(0,1fr); gap:var(--space-md); } .band,.closer,.intro { padding-block:var(--space-xl); } .intro p { margin-top:var(--space-md); } .sample,.occasion,.row { padding-block:var(--space-lg); } .sample img { width:100%; } .foot { align-items:flex-start; flex-direction:column; justify-content:center; gap:var(--space-xs); padding-block:var(--space-lg); } .draft { padding:var(--space-md); } }
@media(max-width:24rem) { .top nav { gap:var(--space-xs); } }

button:disabled, select:disabled, textarea:disabled { opacity:.55; cursor:not-allowed; }

.privacy-link { display:inline-block; margin-top:var(--space-sm); }

:root {
  --colour-ivory: #eee6d8;
  --colour-plum: #6c3549;
  --colour-fern: #acb49b;
  --colour-deep-leaf: #526448;
  --colour-wine-leaf: #747558;
  --study-gap: clamp(2rem, 6vw, 6rem);
}
.page-lede, .question-head {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  align-items: end;
  gap: var(--gap-columns);
  padding-block: var(--space-2xl) var(--space-xl);
}
.page-lede p, .question-head p, .occasion-head p {
  max-width: 37ch;
  color: var(--color-ink-2);
  font-size: var(--text-lead);
}
.page-lede h1, .question-head h1, .occasion-head h1, .home-table h2 { letter-spacing: -.04em; }
.palette-ledger { grid-column: 1 / -1; margin: var(--space-lg) 0 0; padding: 0; list-style: none; }
.palette-ledger a {
  display: grid;
  grid-template-columns: clamp(70px, 13vw, 185px) minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--gap-columns);
  padding-block: var(--space-md);
  border-top: 1px solid var(--color-muted); /* taste-skill-ignore: palette register rule */
  font: 400 var(--text-display-s)/1.15 var(--font-display);
  text-decoration: none;
}
.palette-ledger a:hover > span:first-of-type { text-decoration: underline; text-decoration-thickness: 1px; }
.palette-ledger a img { width: 100%; height: clamp(70px, 8vw, 106px); object-fit: cover; }
.palette-ledger small { display: block; font: 500 var(--text-md)/1.5 var(--font-body); margin-top: var(--space-xs); }
.colour-key { display: flex; height: 20px; width: clamp(64px, 10vw, 155px); }
.colour-key i { flex: 1; background: var(--tone-one); }
.colour-key i:nth-child(2) { background: var(--tone-two); }
.colour-key i:nth-child(3) { background: var(--tone-three); }
.key-rose { --tone-one: var(--colour-rose); --tone-two: var(--colour-ivory); --tone-three: var(--colour-leaf); }
.key-poppy { --tone-one: var(--colour-poppy); --tone-two: var(--colour-plum); --tone-three: var(--colour-wine-leaf); }
.key-leaf { --tone-one: var(--colour-ivory); --tone-two: var(--colour-fern); --tone-three: var(--colour-deep-leaf); }
.home-table, .recipe, .occasion-head, .question-sheet {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--study-gap);
}
.home-table, .occasion-head { padding-block: var(--space-2xl); }
.home-table h2 { font-size: var(--text-display-s); max-width: 12ch; }
.home-table p, .question-aside p { color: var(--color-ink-2); margin-block: var(--space-lg) var(--space-xs); max-width: 45ch; }
.table-photo { overflow: clip; }
.table-photo img { width: 100%; height: clamp(320px, 38vw, 500px); object-fit: cover; }
.text-action, .more-link { display: inline-flex; align-items: center; min-height: 44px; }
.text-action { font-weight: 700; text-decoration-color: var(--color-accent); }
.more-link { margin-left: var(--space-lg); color: var(--color-ink-2); }
.section-links { gap: var(--space-lg); flex-wrap: wrap; padding-bottom: var(--space-lg); }
.section-links a { text-decoration: underline; }
.recipe { padding-block: var(--space-2xl); border-top: 1px solid var(--color-rule); } /* taste-skill-ignore: spread is divided by a register rule */
.recipe-art { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 1fr); gap: var(--space-xs); align-self: stretch; align-items: stretch; }
.recipe-art > img { display: block; width: 100%; height: 100%; min-height: 340px; max-height: 595px; object-fit: cover; }
.paint-slice { display: flex; flex-direction: column; min-width: 0; }
.paint-slice > img { flex: 1 1 0; min-height: 0; width: 100%; height: 0; object-fit: cover; }
.paint-slice .colour-key { width: 100%; height: 28px; flex: 0 0 auto; }
.recipe:nth-child(2) .recipe-art { order: 2; }
.recipe-notes h2 { font-size: var(--text-display-s); letter-spacing: -.035em; }
.palette-tones { margin-top: var(--space-xs); color: var(--color-ink-2); }
.recipe-notes h3 { margin-block: var(--space-lg) var(--space-xs); }
.flower-notes { margin: var(--space-md) 0 var(--space-xs); }
.flower-notes dt { font-weight: 700; }
.flower-notes dd { margin: var(--space-2xs) 0 var(--space-md); color: var(--color-ink-2); max-width: 49ch; }
.occasion-head { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.occasion-head h1 { max-width: 10ch; }
.occasion-head p { margin-top: var(--space-lg); }
.occasion-plates { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.86fr) minmax(0,1fr); gap: var(--space-xs); }
.occasion-plates img { width: 100%; height: clamp(230px, 28vw, 360px); object-fit: cover; }
.occasion-plates img:nth-child(2) { align-self: center; height: clamp(200px, 25vw, 320px); }
.occasion-register { padding-block: var(--space-xl); }
.occasion-register article {
  display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr);
  gap: var(--gap-columns); padding-block: var(--space-xl); border-bottom: 1px solid var(--color-muted); /* taste-skill-ignore: occasion register rule */
}
.occasion-register article:last-child { border-bottom: 0; }
.occasion-register h2 { font-size: var(--text-display-s); }
.occasion-register h3 { font-family: var(--font-body); font-size: var(--text-md); font-weight: 700; margin-bottom: var(--space-sm); }
.occasion-register .text-action { margin-top: var(--space-xs); text-decoration-color: var(--color-accent-deep); }
.question-sheet { grid-template-columns: minmax(0,.55fr) minmax(0,1fr); align-items: start; padding-bottom: var(--space-2xl); }
.question-aside { max-width: 370px; }
.question-aside img { width: 100%; height: clamp(135px, 15vw, 205px); object-fit: cover; }
.question-aside h2 { margin-top: var(--space-lg); font-size: var(--text-title); }
.question-aside p { margin-top: var(--space-xs); }
.question-register details { border-top: 1px solid var(--color-muted); } /* taste-skill-ignore: native disclosure boundary */
.question-register summary { padding-block: var(--space-lg); font: 400 var(--text-title)/1.4 var(--font-display); cursor: pointer; }
.question-register details p { color: var(--color-ink-2); padding: 0 var(--space-lg) var(--space-lg); max-width: 58ch; }
.fields input[type=date] { min-width: 0; width: 100%; min-height: 48px; padding: var(--space-sm); background: var(--color-paper-2); color: var(--color-ink); border: 1px solid var(--color-muted); border-radius: 0; } /* taste-skill-ignore: form field boundary */
.field-hint { color: var(--color-ink-2); font-size: var(--text-sm); margin-top: var(--space-lg); }
.brief { align-items: start; gap: var(--study-gap); }
.draft { background: var(--color-ink); color: var(--color-paper); padding: clamp(20px, 3vw, 48px); }
.draft h2 { font-size: var(--text-display-s); margin-bottom: var(--space-md); }
.draft h2 label { font-weight: 400; }
.draft textarea { color-scheme: light; color: var(--color-paper); border-color: var(--color-muted); background: var(--color-ink); }
.draft p, .draft a:not(.btn) { color: var(--color-paper); }
.draft .btn { background: var(--color-paper); color: var(--color-ink); border-color: var(--color-paper); }
.draft .quiet { background: var(--color-ink); color: var(--color-paper); border-color: var(--color-paper); }
.draft :focus-visible { outline-color: var(--color-accent-deep); }
.foot { padding-block: var(--space-lg); }
.footer-note { margin-top: var(--space-xs); color: var(--color-muted); font-size: var(--text-sm); }
@media (prefers-reduced-motion: no-preference) {
  .occasion-plates img, .recipe-art .study-photo { animation: arrive var(--dur-long) var(--ease-out) both; }
  .occasion-plates img:nth-child(2) { animation-delay: .1s; }
  .occasion-plates img:nth-child(3) { animation-delay: .18s; }
  .palette-ledger .colour-key { transform-origin: left; transition: transform var(--dur-short) var(--ease-out); }
  .palette-ledger a:hover .colour-key { transform: scaleX(1.05); }
}
@media (max-width: 54rem) {
  .recipe, .question-sheet { gap: var(--space-lg); }
  .recipe-art { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 65px; }
  .recipe-art > img { min-height: 0; height: auto; }
  .paint-slice { flex-direction: row; }
  .paint-slice > img { width: 65%; height: 100%; }
  .paint-slice .colour-key { width: 35%; height: 100%; }
  .recipe .more-link, .home-table .more-link { margin-left: 0; display: flex; }
}
@media (max-width: 42rem) {
  .top nav { gap: var(--space-sm); }
  .top nav a:last-child { min-height: 44px; }
  .page-lede, .question-head, .occasion-head, .home-table, .recipe, .question-sheet, .occasion-register article { grid-template-columns: minmax(0,1fr); }
  .page-lede, .question-head, .occasion-head { padding-block: var(--space-xl); gap: var(--space-md); }
  .palette-ledger a { grid-template-columns: 74px minmax(0, 1fr); gap: var(--space-md); }
  .palette-ledger a > .colour-key { display: none; }
  .palette-ledger a > span { font-size: var(--text-2xl); }
  .palette-ledger small { font-size: var(--text-sm); }
  .home-table { gap: var(--space-lg); padding-block: var(--space-xl); }
  .table-photo img { height: auto; max-height: 360px; }
  .home-table h2 { max-width: none; }
  .section-links { gap: var(--space-md); padding-bottom: var(--space-xs); }
  .section-links a { font-size: var(--text-sm); }
  .recipe { gap: var(--space-lg); padding-block: var(--space-xl); }
  .recipe-art { grid-template-columns: minmax(0,4fr) minmax(0,1fr); grid-template-rows: auto; }
  .recipe-art > img { height: 300px; }
  .paint-slice { flex-direction: column; }
  .paint-slice > img { width: 100%; height: 0; }
  .paint-slice .colour-key { height: 24px; width: 100%; }
  .recipe:nth-child(2) .recipe-art { order: 0; }
  .occasion-head h1 { max-width: none; }
  .occasion-head p { margin-top: var(--space-md); }
  .occasion-plates img { height: 190px; }
  .occasion-plates img:nth-child(2) { height: 165px; }
  .occasion-register { padding-block: var(--space-xs); }
  .occasion-register article { gap: var(--space-lg); padding-block: var(--space-xl); }
  .question-aside { order: 2; max-width: none; }
  .question-register summary { padding-block: var(--space-md); }
  .foot { gap: var(--space-md); }
}

.draft textarea { border-color: var(--color-accent-deep); }
.question-aside h2 { font-size: var(--text-section); }
.maker-notes { margin-block: var(--space-md) var(--space-xs); }
.maker-notes summary, .occasion-register summary { font-weight: 700; cursor: pointer; min-height: 44px; padding-block: var(--space-xs); }
.maker-notes .flower-notes { margin-top: var(--space-xs); }
.occasion-register details p { margin-block: var(--space-xs); }
details:not([open]) > :not(summary) { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .palette-ledger .colour-key { animation: unfold .85s var(--ease-out) both; }
  .palette-ledger img { animation: arrive var(--dur-long) var(--ease-out) both; }
}
