:root {
  color-scheme: light;
  --paper: #faf3e8;
  --ink: #332d29;
  --muted: #6d625a;
  --wine: #603747;
  --knit-color: #c9ad87;
  --line: #d6ccc0;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.65 var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-underline-offset: .22em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
main:focus { outline: none; }
img { display: block; max-width: 100%; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
h1 { font-size: clamp(4rem, 7.6vw, 7rem); line-height: .97; letter-spacing: -.06em; }
h1 em, h2 em { color: var(--wine); font-weight: 400; }
h2 { font-size: clamp(2.2rem, 3.5vw, 3.4rem); line-height: 1.14; letter-spacing: -.04em; }
h3 { font-size: 1.55rem; line-height: 1.25; letter-spacing: -.025em; }
.shell { width: min(1180px, calc(100% - 96px)); margin-inline: auto; }
.eyebrow { font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .15em; line-height: 1.6; }
.section-label { color: var(--wine); margin-bottom: 20px; }
.site-header { position: sticky; top: 0; z-index: 10; background: var(--paper); border-bottom: 1px solid var(--line); }
.header-inner { min-height: 100px; display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.wordmark { font: 1.85rem/1.1 var(--serif); letter-spacing: -.045em; text-decoration: none; white-space: nowrap; }
.wordmark span { display: block; font: .6rem/1.6 var(--sans); text-transform: uppercase; letter-spacing: .17em; margin-top: 8px; }
nav { display: flex; align-items: center; gap: 32px; font-size: .85rem; }
nav a { min-height: 44px; display: inline-flex; align-items: center; text-decoration: none; }
nav a:hover { text-decoration: underline; }
.nav-contact { border-bottom: 1px solid var(--wine); color: var(--wine); gap: 18px; }
.hero { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 55px; padding-block: 60px 65px; }
.hero-copy > .eyebrow { color: var(--wine); margin-bottom: 26px; }
.intro { max-width: 360px; color: var(--muted); margin-block: 26px 30px; font-size: 1.05rem; line-height: 1.75; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; background: var(--wine); color: #fffaf1; padding: 15px 22px; font: 500 .85rem/1.65 var(--sans); text-decoration: none; border: 1px solid var(--wine); border-radius: 8px; cursor: pointer; transition: background .18s, transform .18s; }
.button:hover { background: #4d2c2c; }
.button:active { transform: translateY(1px); }
.button:disabled { opacity: .6; cursor: default; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.text-link { font-size: .82rem; padding-block: 12px; }
.thread-mark { font: 2rem/.3 var(--serif); vertical-align: middle; margin-right: 10px; }
.hero-note { margin-top: 22px; color: var(--muted); font-size: .76rem; }
.hero-note a { color: var(--ink); }
.knit-scene { position: relative; min-width: 0; height: 525px; isolation: isolate; }
.knit-scene::before { content: ''; position: absolute; inset: 20px -10px 45px 15px; border-radius: 50% 50% 44% 40%; background: #e8dfce; z-index: -1; }
.knit-piece { position: absolute; border-radius: 28px 28px 55px 28px; background-image: url('knit.svg'); background-size: 32px 42px; box-shadow: 8px 18px 22px #39271f22, inset 0 0 0 2px #ffffff25; }
.knit-back { width: 68%; height: 66%; left: 4%; top: 11%; background-color: #8c9a80; transform: rotate(-12deg); }
.knit-front { width: 73%; height: 69%; top: 21%; left: 20%; background-color: var(--knit-color); transform: rotate(10deg); transition: background-color .35s, transform .35s; }
.knit-scene:hover .knit-front { transform: rotate(7deg) translateY(-4px); }
.sewn-label { position: absolute; right: 18px; bottom: 27px; padding: 12px 15px; background: #fff9eb; color: #443229; outline: 1px dashed #b59f8c; outline-offset: -5px; font: italic 1.05rem/1.4 var(--serif); text-align: center; }
.sewn-label small { display: block; font: .48rem/1.8 var(--sans); text-transform: uppercase; letter-spacing: .12em; }
.brand-seal { position: absolute; top: 0; right: -3px; transform: rotate(7deg); padding: 6px; background: white; border-radius: 50%; box-shadow: 0 4px 16px #39271f12; }
.brand-seal img { width: 114px; height: 114px; border-radius: 50%; object-fit: contain; }
.scene-note { position: absolute; top: 0; left: 15px; font: italic 1.3rem var(--serif); color: #716350; transform: rotate(-8deg); }
.scene-caption { position: absolute; bottom: -4px; left: 20%; font-size: .76rem; color: var(--ink); }
.scene-caption small { display: block; font-size: .63rem; color: var(--muted); margin-top: 3px; }
.brand-ribbon { display: flex; justify-content: space-evenly; gap: 25px; padding: 19px 24px; background: var(--wine); color: #fcf4e8; font: italic clamp(1rem, 2vw, 1.5rem) var(--serif); }
.brand-ribbon span + span::before { content: '∿'; margin-right: 40px; color: #d2ae9b; }
.planner-section { padding-block: 85px; }
.planner-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 60px; margin-bottom: 38px; }
.planner-heading h2 { font-size: clamp(2.8rem, 4.5vw, 4.3rem); }
.planner-heading > p { max-width: 420px; color: var(--muted); padding-bottom: 6px; }
.planner-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 70px; align-items: start; }
.planner-controls { min-width: 0; }
fieldset { min-width: 0; border: 0; border-top: 1px solid var(--line); padding: 24px 0 28px; margin: 0; }
legend { float: left; width: 100%; margin-bottom: 15px; font-size: .96rem; font-weight: 600; }
legend + * { clear: both; }
.field-number { font: italic 1rem var(--serif); color: var(--wine); margin-right: 14px; }
.field-hint { font-size: .74rem; line-height: 1.65; color: var(--muted); max-width: 400px; }
.swatches { display: flex; flex-wrap: wrap; gap: 19px; margin-top: 21px; }
.swatches label, .purpose-options label { position: relative; cursor: pointer; }
.swatches label { display: flex; flex-direction: column; align-items: center; gap: 9px; font-size: .72rem; }
.swatches input, .purpose-options input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.swatch { display: block; width: 54px; height: 54px; border-radius: 50%; background: var(--swatch) url('knit.svg') center/18px 24px; border: 3px solid var(--paper); outline: 1px solid #c6baaa; transition: outline .15s, transform .15s; }
.swatches input:checked + .swatch { outline: 2px solid var(--wine); outline-offset: 3px; }
.swatches input:focus-visible + .swatch { outline: 3px solid var(--ink); outline-offset: 5px; }
.swatches label:hover .swatch { transform: translateY(-3px); }
.purpose-options { display: flex; flex-wrap: wrap; gap: 10px; }
.purpose-options span { display: block; padding: 10px 15px; border: 1px solid var(--line); border-radius: 6px; font-size: .8rem; }
.purpose-options input:checked + span { color: #fff8ed; background: var(--wine); border-color: var(--wine); }
.purpose-options input:focus-visible + span { outline: 2px solid var(--ink); outline-offset: 4px; }
.notes-field { border-top: 1px solid var(--line); padding-top: 24px; }
.notes-field > label { display: block; margin-bottom: 14px; font-size: .96rem; font-weight: 600; }
textarea { width: 100%; font: .88rem/1.7 var(--sans); color: var(--ink); border: 1px solid var(--line); border-radius: 6px; padding: 13px 15px; background: #fffaf2; resize: vertical; }
textarea::placeholder { color: #786b61; }
.notes-field .field-hint { margin-top: 7px; }
.inquiry-card { background: #eee4d4; border: 1px solid #d4c5b2; border-radius: 16px; padding: 30px; box-shadow: 5px 6px 0 #e0d6c8; }
.inquiry-card-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 25px; }
.inquiry-card-top .eyebrow { max-width: 160px; }
.mini-knit { flex: 0 0 75px; height: 80px; border-radius: 8px; transform: rotate(8deg); background: var(--knit-color) url('knit.svg') center/14px 19px; box-shadow: 3px 4px 7px #39271f20; transition: background-color .35s; }
#inquiry-draft { background: transparent; border: none; border-radius: 0; border-block: 1px dashed #b6a590; padding: 18px 0; min-height: 220px; margin-bottom: 24px; font: 1.1rem/1.7 var(--serif); }
.inquiry-card .button { width: 100%; }
.copy-status { min-height: 3.3em; font-size: .76rem; line-height: 1.65; margin-top: 14px; }
.draft-socials { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 12px; }
.draft-socials a { display: inline-flex; align-items: center; min-height: 44px; font-size: .83rem; }
.draft-note { border-top: 1px solid #d4c5b2; padding-top: 14px; margin-top: 12px; font-size: .7rem; color: var(--muted); }
.blankets-section { background: #eee8df; padding-block: 80px; border-block: 1px solid var(--line); }
.gallery-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: end; margin-bottom: 38px; }
.gallery-heading > p { max-width: 440px; color: var(--muted); font-size: .95rem; }
.blanket-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; align-items: start; }
.blanket-gallery figure:nth-child(2) { margin-top: 44px; }
.photo-link { display: block; position: relative; border-radius: 8px; box-shadow: 0 4px 14px #39271f12; }
.photo-link img { width: 100%; height: auto; aspect-ratio: 1; border-radius: 8px; }
.photo-arrow { position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--paper); color: var(--wine); font-size: 1.25rem; transition: transform .18s; }
.photo-link:hover .photo-arrow { transform: translate(2px, -2px); }
.blanket-gallery figcaption { display: flex; gap: 16px; padding-top: 20px; }
.piece-number { color: var(--wine); font: italic .85rem var(--serif); padding-top: 6px; }
.blanket-gallery h3 { font-size: 1.6rem; }
.blanket-gallery figcaption p { color: var(--muted); font-size: .8rem; margin-top: 5px; }
.gallery-footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; border-top: 1px solid var(--line); margin-top: 38px; padding-top: 20px; }
.gallery-footer p { color: var(--muted); font-size: .76rem; }
.gallery-footer a { flex-shrink: 0; }
.section-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: 90px; }
.section-copy { max-width: 570px; }
.section-copy .lead { font: 1.75rem/1.4 var(--serif); letter-spacing: -.025em; margin-bottom: 22px; }
.section-copy > p:not(.lead) { color: var(--muted); margin-top: 14px; font-size: .95rem; }
.social-editorial { margin-top: 32px; border-top: 1px solid var(--line); }
.social-editorial a { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 19px; border-bottom: 1px solid var(--line); text-decoration: none; font-size: .92rem; }
.social-editorial a:hover > span:first-child { text-decoration: underline; text-underline-offset: 4px; }
.link-caption { display: block; color: var(--muted); font-size: .75rem; margin-top: 3px; }
.ordering-section { padding-block: 85px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.section-heading h2 { max-width: 630px; }
.section-heading > p { color: var(--muted); font-size: .85rem; flex-shrink: 0; padding-bottom: 4px; }
.order-steps { padding: 0; margin: 48px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; gap: 40px; }
.order-steps li { border-top: 1px solid var(--line); padding-top: 22px; }
.step-number { display: block; color: var(--wine); font: italic 1.15rem var(--serif); margin-bottom: 28px; }
.order-steps p { color: var(--muted); font-size: .88rem; line-height: 1.8; margin-top: 16px; max-width: 320px; }
.questions-section { display: grid; grid-template-columns: 1fr 1.35fr; gap: 70px; padding-block: 0 88px; }
.questions-section h2 { font-size: 2rem; padding-top: 20px; }
.questions { border-top: 1px solid var(--line); }
details { border-bottom: 1px solid var(--line); }
summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 21px; font-size: .92rem; }
summary::-webkit-details-marker { display: none; }
summary span { font-size: 1.35rem; color: var(--wine); }
details[open] summary span { transform: rotate(45deg); }
details p { padding: 0 35px 24px 0; font-size: .88rem; color: var(--muted); }
.contact-section { background: var(--wine); color: #fff8ed; padding-block: 78px; }
.contact-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 90px; align-items: center; }
.contact-section .eyebrow { color: #e7c9bd; margin-bottom: 23px; }
.contact-section h2 { font-size: clamp(2.45rem, 4vw, 3.65rem); }
.contact-section h2 + p { margin-top: 23px; font-size: .88rem; line-height: 1.8; color: #f1dfd4; }
.contact-links a { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-block: 23px; border-bottom: 1px solid #a97f78; text-decoration: none; }
.contact-links a:first-child { border-top: 1px solid #a97f78; }
.contact-links a:hover .contact-platform { text-decoration: underline; text-underline-offset: 5px; }
.contact-platform { display: block; font: 1.65rem var(--serif); }
.contact-detail { display: block; font-size: .75rem; margin-top: 10px; color: #f1dfd4; overflow-wrap: anywhere; }
.external-arrow { font-size: 1.6rem; }
.contact-note { font-size: .72rem; color: #f1dfd4; margin-top: 18px; }
.site-footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 37px; }
.site-footer .wordmark { font-size: 1.5rem; }
.site-footer p, .back-top { font-size: .72rem; color: var(--muted); }
.back-top { display: inline-flex; align-items: center; gap: 15px; min-height: 44px; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 100; padding: 12px 20px; background: var(--ink); color: white; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (min-width: 1500px) { .hero { padding-block: 95px; } }
@media (max-width: 1000px) {
  .shell { width: calc(100% - 64px); }
  .hero { gap: 35px; }
  .knit-scene { height: 450px; }
  .brand-seal img { width: 90px; height: 90px; }
  .planner-layout { gap: 40px; }
  .section-grid, .contact-grid { gap: 45px; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 20px; }
  .section-heading > p br { display: none; }
  .order-steps { gap: 26px; }
  .questions-section { gap: 35px; }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 20px; }
  .shell { width: calc(100% - 40px); }
  .site-header { position: relative; }
  .header-inner { display: block; padding-top: 22px; }
  .wordmark { font-size: 1.65rem; }
  nav { margin-top: 16px; justify-content: space-between; gap: 12px; font-size: .76rem; padding-bottom: 10px; }
  .nav-contact { border: 0; gap: 8px; }
  .hero { grid-template-columns: 1fr; gap: 38px; padding-block: 46px; }
  h1 { font-size: clamp(4rem, 15vw, 6rem); }
  .hero-copy > .eyebrow { margin-bottom: 22px; font-size: .63rem; }
  .intro { margin-block: 22px 25px; font-size: 1rem; max-width: 410px; }
  .knit-scene { width: min(100%, 430px); height: 450px; justify-self: center; margin-block: 8px 15px; }
  .knit-scene::before { right: 0; }
  .brand-seal { right: 0; }
  .scene-caption { left: 10%; }
  .brand-ribbon { gap: 20px; }
  .brand-ribbon span:last-child { display: none; }
  .brand-ribbon span + span::before { display: none; }
  .planner-section { padding-block: 52px; }
  .planner-heading, .planner-layout { grid-template-columns: 1fr; gap: 28px; }
  .planner-heading { margin-bottom: 28px; }
  .planner-heading h2 br { display: none; }
  .inquiry-card { padding: 24px; box-shadow: 3px 4px 0 #e0d6c8; }
  .swatches { gap: 18px; }
  .swatch { width: 46px; height: 46px; }
  .blankets-section, .ordering-section { padding-block: 52px; }
  .gallery-heading { grid-template-columns: 1fr; gap: 22px; margin-bottom: 30px; }
  .gallery-heading h2 br { display: none; }
  .blanket-gallery { grid-template-columns: 1fr; gap: 32px; max-width: 440px; margin-inline: auto; }
  .blanket-gallery figure:nth-child(2) { margin-top: 0; }
  .gallery-footer { align-items: flex-start; flex-direction: column; gap: 8px; margin-top: 30px; }
  .section-grid, .contact-grid, .questions-section { grid-template-columns: 1fr; gap: 30px; }
  .section-grid h2 br { display: none; }
  .section-copy .lead { font-size: 1.5rem; }
  .section-label { margin-bottom: 16px; }
  .order-steps { grid-template-columns: 1fr; gap: 28px; margin-top: 30px; }
  .order-steps li { display: grid; grid-template-columns: 34px 1fr; column-gap: 20px; }
  .step-number { grid-row: 1 / 3; margin: 3px 0 0; }
  .order-steps h3 { font-size: 1.5rem; }
  .order-steps p { grid-column: 2; max-width: none; margin-top: 10px; }
  .questions-section { padding-bottom: 54px; gap: 26px; }
  .questions-section h2 { padding-top: 0; }
  .contact-section { padding-block: 52px; }
  .contact-section h2 + p br { display: none; }
  .site-footer { flex-wrap: wrap; padding-block: 28px; gap: 22px; }
  .site-footer .wordmark { width: 100%; }
}
@media (max-width: 370px) { .swatches { gap: 12px; } .swatch { width: 44px; height: 44px; } .knit-scene { height: 390px; } .scene-note { font-size: 1.05rem; } .brand-seal img { width: 75px; height: 75px; } .sewn-label { right: 10px; padding: 10px; font-size: .9rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } .knit-scene:hover .knit-front { transform: rotate(10deg); } }
