:root{
  --paper:#F7ECE2;
  --paper-dark:#EEDCC8;
  --ink:#241521;
  --ink-soft:#4A3A47;
  --berry:#A8325B;
  --berry-deep:#7E2244;
  --gold:#C08A2E;
  --gold-soft:#E4C179;
  --sage:#6F8A63;
  --dusty:#5C7A93;
  --line: rgba(36,21,33,0.14);
  --shadow: 0 18px 40px -20px rgba(36,21,33,0.35);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}
body{margin:0; background:var(--paper); color:var(--ink); font-family:'Karla', sans-serif; font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:'Fraunces', serif; font-weight:600; margin:0; color:var(--ink); letter-spacing:-0.01em;}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
.eyebrow{font-family:'Space Mono', monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--berry-deep); display:inline-flex; align-items:center; gap:8px;}
.eyebrow::before{content:""; width:18px; height:1px; background:var(--berry-deep); display:inline-block;}
.eyebrow.on-dark{color:var(--gold-soft);}
.eyebrow.on-dark::before{background:var(--gold-soft);}

.btn{display:inline-flex; align-items:center; gap:8px; font-family:'Space Mono', monospace; font-size:13px; letter-spacing:0.03em; text-decoration:none; padding:14px 24px; border-radius:999px; border:1.5px solid var(--ink); background:var(--ink); color:var(--paper); cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;}
.btn:hover{transform:translateY(-2px); box-shadow:var(--shadow);}
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{outline:3px solid var(--gold); outline-offset:2px;}
.btn.ghost{background:transparent; color:var(--ink); border-color:var(--ink);}
.btn.berry{background:var(--berry); border-color:var(--berry); color:#fff;}
.btn.berry:hover{background:var(--berry-deep); border-color:var(--berry-deep);}
.btn.on-dark{background:#fff; color:var(--berry-deep); border-color:#fff;}
.btn.sm{padding:10px 18px; font-size:12px;}

/* ---------- HEADER ---------- */
header{position:sticky; top:0; z-index:50; background:rgba(247,236,226,0.94); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 0;}
.logo{font-family:'Fraunces', serif; font-weight:600; font-size:22px; text-decoration:none; display:flex; align-items:center; gap:10px;}
.logo .mark{width:34px; height:34px; border-radius:50%; background:var(--berry); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Space Mono',monospace; font-size:13px; font-weight:700; transform:rotate(-6deg); flex-shrink:0;}
nav.links{display:flex; gap:26px; align-items:center;}
nav.links a{font-family:'Space Mono', monospace; font-size:12px; letter-spacing:.05em; text-transform:uppercase; text-decoration:none; color:var(--ink-soft); padding:6px 2px; border-bottom:1px solid transparent; transition:border-color .15s ease, color .15s ease;}
nav.links a:hover, nav.links a.active{color:var(--berry-deep); border-color:var(--berry-deep);}
nav.links a.join{background:var(--berry); color:#fff; padding:9px 16px; border-radius:999px; border-bottom:none;}
nav.links a.join:hover{background:var(--berry-deep); color:#fff;}
.navToggle{display:none; background:none; border:none; cursor:pointer; padding:8px;}
.navToggle span{display:block; width:22px; height:2px; background:var(--ink); margin:5px 0;}
@media (max-width:900px){
  nav.links{position:fixed; inset:64px 0 0 0; background:var(--paper); flex-direction:column; align-items:flex-start; padding:24px; gap:0; transform:translateX(100%); transition:transform .25s ease; border-top:1px solid var(--line); overflow-y:auto;}
  nav.links.open{transform:translateX(0);}
  nav.links a{width:100%; padding:16px 0; border-bottom:1px solid var(--line);}
  nav.links a.join{width:auto; margin-top:12px;}
  .navToggle{display:block;}
}

/* ---------- PAGE HERO (subpages) ---------- */
.page-hero{padding:56px 0 44px; background:radial-gradient(circle at 90% 10%, rgba(192,138,46,0.14), transparent 45%), var(--paper);}
.page-hero h1{font-size:clamp(2.1rem,4vw,3.1rem); max-width:16ch; margin-top:14px;}
.page-hero p.lede{font-size:17px; color:var(--ink-soft); max-width:52ch; margin-top:16px;}
.crumb{font-family:'Space Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); text-decoration:none;}
.crumb:hover{color:var(--berry-deep);}

/* ---------- home hero ---------- */
.hero{position:relative; overflow:hidden; padding:72px 0 60px; background:radial-gradient(circle at 88% 12%, rgba(192,138,46,0.16), transparent 45%), radial-gradient(circle at 6% 90%, rgba(168,50,91,0.10), transparent 40%), var(--paper);}
.hero .wrap{display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center;}
@media (max-width:900px){ .hero .wrap{grid-template-columns:1fr;} }
.stamp{display:inline-flex; align-items:center; gap:8px; font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; background:var(--paper-dark); border:1px dashed var(--ink); padding:6px 12px; border-radius:999px; transform:rotate(-2deg); margin-bottom:22px;}
.hero h1{font-size:clamp(2.6rem, 5.2vw, 4.3rem); line-height:1.02; max-width:12ch;}
.hero h1 em{font-style:italic; font-weight:400; color:var(--berry);}
.hero p.lede{font-size:19px; color:var(--ink-soft); max-width:46ch; margin:22px 0 30px;}
.cta-row{display:flex; gap:14px; flex-wrap:wrap;}
.chipbar{display:flex; gap:10px; flex-wrap:wrap; margin-top:34px;}
.chip{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.04em; text-transform:uppercase; background:transparent; border:1px solid var(--line); padding:8px 14px; border-radius:999px; color:var(--ink-soft);}
.hero-board{position:relative; height:440px;}
.tag-photo{position:absolute; width:58%; border-radius:2px; box-shadow:var(--shadow); border:6px solid #fff; background:#fff;}
.tag-photo img{border-radius:1px; aspect-ratio:1/1; object-fit:cover; width:100%;}
.tag-photo.p1{top:0; left:4%; transform:rotate(-7deg); z-index:2;}
.tag-photo.p2{top:16%; right:0; width:48%; transform:rotate(6deg); z-index:3;}
.tag-photo.p3{bottom:0; left:18%; width:50%; transform:rotate(3deg); z-index:1;}
.washi{position:absolute; width:90px; height:26px; background:repeating-linear-gradient(45deg, var(--gold-soft), var(--gold-soft) 6px, #f0d99a 6px, #f0d99a 12px); opacity:.85; box-shadow:0 2px 4px rgba(0,0,0,.12);}
.washi.w1{top:-10px; left:10%; transform:rotate(-8deg);}
.washi.w2{top:12%; right:6%; transform:rotate(12deg);}
.washi.w3{bottom:6%; left:14%; transform:rotate(-4deg);}
@media (max-width:900px){ .hero-board{height:320px; margin-top:8px;} }

.torn-divider{height:26px; width:100%; background:var(--paper); clip-path:polygon(0% 100%,2% 30%,5% 90%,8% 20%,11% 80%,14% 10%,17% 70%,20% 25%,23% 95%,26% 15%,29% 75%,32% 30%,35% 90%,38% 20%,41% 80%,44% 10%,47% 70%,50% 25%,53% 95%,56% 15%,59% 75%,62% 30%,65% 90%,68% 20%,71% 80%,74% 10%,77% 70%,80% 25%,83% 95%,86% 15%,89% 75%,92% 30%,95% 90%,98% 20%,100% 100%);}

section{padding:78px 0;}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem); margin-top:14px;}
.section-head p{color:var(--ink-soft); font-size:16.5px; margin-top:14px;}
.section-head.center{max-width:640px; margin-left:auto; margin-right:auto; text-align:center;}

/* trust strip */
.trust{background:var(--ink); color:var(--paper); padding:22px 0;}
.trust .wrap{display:flex; gap:34px; flex-wrap:wrap; justify-content:space-between;}
.trust .item{display:flex; align-items:center; gap:10px; font-size:14px;}
.trust .item b{font-family:'Fraunces',serif; font-weight:600; font-size:16px;}

/* teaser cards (home -> shop/membership/coaching) */
.teaser-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:860px){ .teaser-grid{grid-template-columns:1fr;} }
.teaser{background:#fff; border:1px solid var(--line); border-radius:4px; padding:30px; display:flex; flex-direction:column; box-shadow:0 10px 24px -18px rgba(36,21,33,0.3); transition:transform .2s ease, box-shadow .2s ease;}
.teaser:hover{transform:translateY(-5px); box-shadow:var(--shadow);}
.teaser .ic{font-size:26px; margin-bottom:14px;}
.teaser h3{font-size:20px; margin-bottom:10px;}
.teaser p{font-size:14.5px; color:var(--ink-soft); margin:0 0 20px; flex:1;}
.teaser a{font-family:'Space Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:.04em; text-decoration:none; color:var(--berry-deep); border-bottom:1px solid var(--berry-deep); align-self:flex-start; padding-bottom:2px;}
.teaser a:hover{color:var(--berry);}

/* ---------- product tag cards ---------- */
.grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:30px 26px;}
@media (max-width:900px){ .grid{grid-template-columns:repeat(2,1fr); gap:24px 18px;} }
@media (max-width:600px){ .grid{grid-template-columns:1fr;} }
.tag{position:relative; background:#fff; border-radius:3px; padding:20px 18px 22px; box-shadow:0 10px 24px -14px rgba(36,21,33,0.32); border:1px solid var(--line); transition:transform .22s ease, box-shadow .22s ease;}
.grid .tag:nth-child(6n+1){transform:rotate(-1.1deg);}
.grid .tag:nth-child(6n+2){transform:rotate(0.9deg);}
.grid .tag:nth-child(6n+3){transform:rotate(-0.6deg);}
.grid .tag:nth-child(6n+4){transform:rotate(1.2deg);}
.grid .tag:nth-child(6n+5){transform:rotate(-1.4deg);}
.grid .tag:nth-child(6n){transform:rotate(0.5deg);}
.tag:hover{transform:rotate(0deg) translateY(-6px); box-shadow:var(--shadow); z-index:5;}
.tag .hole{position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:16px; height:16px; border-radius:50%; background:var(--paper); border:2px solid var(--ink); z-index:2;}
.tag .string{position:absolute; top:-16px; left:50%; transform:translateX(-50%); width:2px; height:16px; background:var(--ink); opacity:.55;}
.tag .thumb{width:100%; aspect-ratio:4/3; border-radius:2px; overflow:hidden; background:var(--paper-dark); margin-bottom:14px; position:relative;}
.tag .thumb img{width:100%; height:100%; object-fit:cover;}
.tag .price-seal{position:absolute; bottom:-10px; right:-10px; background:var(--gold); color:#fff; font-family:'Space Mono',monospace; font-size:11.5px; font-weight:700; padding:8px 10px; border-radius:50%; width:60px; height:60px; display:flex; align-items:center; justify-content:center; text-align:center; line-height:1.15; box-shadow:0 6px 14px -6px rgba(0,0,0,.4); border:2px solid #fff;}
.tag h3{font-size:19px; margin-bottom:6px;}
.tag .desc{font-size:14px; color:var(--ink-soft); margin-bottom:12px;}
.tag ul{margin:0 0 16px; padding-left:0; list-style:none; font-size:13px; color:var(--ink-soft);}
.tag ul li{padding-left:14px; position:relative; margin-bottom:5px;}
.tag ul li::before{content:"·"; position:absolute; left:0; color:var(--berry); font-weight:700;}
.tag .order-link{font-family:'Space Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:.04em; text-decoration:none; color:var(--berry-deep); display:inline-flex; align-items:center; gap:6px; border-bottom:1px solid var(--berry-deep); padding-bottom:2px;}
.tag .order-link:hover{color:var(--berry); border-color:var(--berry);}
.tag .cat-flag{position:absolute; top:14px; left:-6px; background:var(--sage); color:#fff; font-family:'Space Mono',monospace; font-size:9.5px; text-transform:uppercase; letter-spacing:.05em; padding:4px 9px 4px 12px; box-shadow:0 3px 6px rgba(0,0,0,.15);}
.tag .cat-flag::after{content:""; position:absolute; right:-6px; top:0; border-style:solid; border-width:0 6px 11px 0; border-color:transparent transparent transparent var(--sage); transform:rotate(0deg); display:none;}

/* category tabs */
.tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;}
.tab-btn{font-family:'Space Mono',monospace; font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; background:#fff; border:1px solid var(--line); padding:9px 16px; border-radius:999px; cursor:pointer; color:var(--ink-soft); transition:all .15s ease;}
.tab-btn:hover{border-color:var(--berry);}
.tab-btn.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}

.memorial-note{margin-top:36px; background:#EFF3F2; border:1px solid rgba(92,122,147,0.35); border-left:4px solid var(--dusty); border-radius:2px; padding:24px 26px; display:flex; gap:18px; align-items:flex-start;}
.memorial-note .glyph{font-size:22px; line-height:1;}
.memorial-note p{margin:0; color:var(--ink-soft); font-size:14.5px;}
.memorial-note a{color:var(--dusty); font-weight:600; text-decoration:underline;}

.gallery-band{background:var(--berry-deep); color:#fff; border-radius:4px; padding:52px 40px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.gallery-band h3{color:#fff; font-size:clamp(1.5rem,2.6vw,2.1rem); max-width:16ch;}
.gallery-band p{color:#f3d9e2; margin-top:8px; max-width:40ch;}

/* digital files */
.digi-wrap{background:var(--paper-dark); border-radius:6px; padding:50px 40px;}
.digi-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:34px;}
@media (max-width:900px){ .digi-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .digi-grid{grid-template-columns:1fr;} }
.digi-card{background:#fff; border:1.5px dashed var(--ink); border-radius:2px; padding:20px; position:relative;}
.digi-card::before{content:""; position:absolute; top:-1px; left:16px; width:14px; height:14px; background:var(--paper-dark); border-radius:50%; border:1.5px dashed var(--ink); transform:translateY(-50%);}
.digi-card::after{content:""; position:absolute; top:-1px; right:16px; width:14px; height:14px; background:var(--paper-dark); border-radius:50%; border:1.5px dashed var(--ink); transform:translateY(-50%);}
.digi-card img{width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:2px; margin-bottom:12px;}
.digi-card h4{font-size:16px; margin-bottom:4px;}
.digi-card .price{font-family:'Space Mono',monospace; font-size:12px; color:var(--gold); margin-bottom:10px; display:block;}
.digi-card ul{list-style:none; padding:0; margin:0 0 12px; font-size:12.5px; color:var(--ink-soft);}
.digi-card ul li{margin-bottom:3px;}
.digi-card a.shop{font-family:'Space Mono',monospace; font-size:11.5px; text-transform:uppercase; color:var(--berry-deep); text-decoration:none; border-bottom:1px solid var(--berry-deep);}

/* how it works: stitched line */
.stitch-row{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:30px; margin-top:20px;}
@media (max-width:860px){ .stitch-row{grid-template-columns:1fr; gap:36px;} }
.stitch-row::before{content:""; position:absolute; top:19px; left:6%; right:6%; height:0; border-top:2px dashed var(--berry); opacity:.5; z-index:0;}
@media (max-width:860px){ .stitch-row::before{display:none;} }
.stitch-step{position:relative; z-index:1;}
.stitch-step .num{width:38px; height:38px; border-radius:50%; background:var(--paper); border:2px solid var(--berry); color:var(--berry-deep); font-family:'Space Mono',monospace; font-weight:700; font-size:14px; display:flex; align-items:center; justify-content:center; margin-bottom:16px;}
.stitch-step h4{font-size:17px; margin-bottom:8px;}
.stitch-step p{font-size:14px; color:var(--ink-soft); margin:0;}

/* shipping icons */
.ship-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
@media (max-width:860px){ .ship-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .ship-grid{grid-template-columns:1fr;} }
.ship-card{background:#fff; border:1px solid var(--line); border-radius:3px; padding:24px;}
.ship-card .ic{font-size:24px; margin-bottom:12px;}
.ship-card h4{font-size:16px; margin-bottom:6px;}
.ship-card p{font-size:13.5px; color:var(--ink-soft); margin:0;}

/* ---------- membership tiers (spool badges) ---------- */
.tier-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:900px){ .tier-grid{grid-template-columns:1fr; max-width:440px; margin:0 auto;} }
.tier{background:#fff; border:1px solid var(--line); border-radius:6px; padding:32px 26px; position:relative; display:flex; flex-direction:column;}
.tier.featured{border:2px solid var(--berry); box-shadow:var(--shadow); transform:translateY(-10px);}
@media (max-width:900px){ .tier.featured{transform:none;} }
.tier .badge{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:18px;}
.tier.circle .badge{background:var(--paper-dark); border:2px dashed var(--ink);}
.tier.bobbin .badge{background:var(--gold-soft); border:2px solid var(--gold);}
.tier.loom .badge{background:var(--berry); color:#fff;}
.tier .most-popular{position:absolute; top:-13px; right:24px; background:var(--berry); color:#fff; font-family:'Space Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.05em; padding:5px 12px; border-radius:999px;}
.tier h3{font-size:21px; margin-bottom:4px;}
.tier .price{font-family:'Space Mono',monospace; font-size:26px; color:var(--berry-deep); margin:10px 0 4px;}
.tier .price span{font-size:12px; color:var(--ink-soft); font-family:'Karla',sans-serif;}
.tier p.blurb{font-size:13.5px; color:var(--ink-soft); margin:0 0 18px;}
.tier ul{list-style:none; padding:0; margin:0 0 24px; font-size:14px; flex:1;}
.tier ul li{padding-left:20px; position:relative; margin-bottom:10px;}
.tier ul li::before{content:"✦"; position:absolute; left:0; color:var(--gold); font-size:12px; top:2px;}

/* group / meetup cards */
.group-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
@media (max-width:760px){ .group-grid{grid-template-columns:1fr;} }
.group-card{background:#fff; border:1px solid var(--line); border-radius:4px; padding:28px; display:flex; gap:18px;}
.group-card .ic{font-size:26px; flex-shrink:0;}
.group-card h4{font-size:18px; margin-bottom:8px;}
.group-card p{font-size:14px; color:var(--ink-soft); margin:0 0 14px;}
.group-card a{font-family:'Space Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--berry-deep); text-decoration:none; border-bottom:1px solid var(--berry-deep);}

/* coaching class cards */
.class-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:900px){ .class-grid{grid-template-columns:1fr;} }
.class-card{background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden; box-shadow:0 10px 24px -18px rgba(36,21,33,0.3);}
.class-card .top{background:var(--paper-dark); padding:24px; position:relative;}
.class-card .level{font-family:'Space Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--berry-deep); background:#fff; display:inline-block; padding:4px 10px; border-radius:999px; margin-bottom:12px;}
.class-card h3{font-size:19px;}
.class-card .body{padding:22px 24px 26px;}
.class-card .body p{font-size:14px; color:var(--ink-soft); margin:0 0 14px;}
.class-card .meta{display:flex; justify-content:space-between; font-family:'Space Mono',monospace; font-size:11.5px; color:var(--ink-soft); border-top:1px dashed var(--line); padding-top:14px; margin-top:6px;}
.format-row{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:20px;}
@media (max-width:860px){ .format-row{grid-template-columns:1fr;} }
.format-card{border:1px solid var(--line); border-radius:4px; padding:22px; background:#fff;}
.format-card .ic{font-size:22px; margin-bottom:10px;}
.format-card h4{font-size:16px; margin-bottom:6px;}
.format-card p{font-size:13.5px; color:var(--ink-soft); margin:0;}

.testimonial{background:var(--paper-dark); border-radius:6px; padding:48px 40px; text-align:center; max-width:760px; margin:0 auto;}
.testimonial p.quote{font-family:'Fraunces',serif; font-style:italic; font-size:clamp(1.2rem,2.4vw,1.6rem); line-height:1.5; max-width:44ch; margin:0 auto 18px;}
.testimonial .who{font-family:'Space Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft);}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--line); padding:20px 0;}
.faq-item summary{cursor:pointer; font-family:'Fraunces',serif; font-weight:600; font-size:17px; list-style:none; display:flex; justify-content:space-between; align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+"; font-family:'Space Mono',monospace; font-size:20px; color:var(--berry);}
.faq-item[open] summary::after{content:"–";}
.faq-item p{font-size:14.5px; color:var(--ink-soft); margin:12px 0 0;}

/* ---------- contact / cta ---------- */
.contact{background:var(--ink); color:var(--paper); border-radius:6px; padding:56px 40px; position:relative; overflow:hidden;}
.contact::before{content:""; position:absolute; top:-40px; right:-40px; width:220px; height:220px; background:radial-gradient(circle, rgba(192,138,46,0.28), transparent 70%);}
.contact .grid2{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
@media (max-width:860px){ .contact .grid2{grid-template-columns:1fr;} }
.contact h2{color:var(--paper); font-size:clamp(1.9rem,3.2vw,2.5rem);}
.contact p.lede{color:#d9c9d4; max-width:40ch; margin-top:14px;}
.contact-info{margin-top:28px; display:flex; flex-direction:column; gap:16px;}
.contact-info .row{display:flex; gap:12px; align-items:center; font-size:15px;}
.contact-info a{color:var(--paper); text-decoration:none; border-bottom:1px solid rgba(247,236,226,0.4);}
.contact-info a:hover{border-color:var(--paper);}
.form-card{background:var(--paper); color:var(--ink); border-radius:4px; padding:28px; box-shadow:var(--shadow);}
.form-card h3{font-size:19px; margin-bottom:6px;}
.form-card p.sub{font-size:13px; color:var(--ink-soft); margin:0 0 18px;}
.field{margin-bottom:14px;}
.field label{display:block; font-family:'Space Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.05em; margin-bottom:6px; color:var(--ink-soft);}
.field input, .field select, .field textarea{width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:2px; font-family:'Karla',sans-serif; font-size:14.5px; background:#fff; color:var(--ink);}
.field textarea{resize:vertical; min-height:88px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media (max-width:480px){ .field-row{grid-template-columns:1fr;} }
.form-note{font-size:11.5px; color:var(--ink-soft); margin-top:12px;}

/* ---------- footer ---------- */
footer{background:var(--paper-dark); padding:52px 0 28px; margin-top:20px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px;}
@media (max-width:800px){ .foot-grid{grid-template-columns:1fr 1fr; row-gap:32px;} }
@media (max-width:480px){ .foot-grid{grid-template-columns:1fr;} }
.foot-grid h5{font-family:'Space Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:14px; color:var(--ink-soft);}
.foot-grid ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px;}
.foot-grid a{text-decoration:none; font-size:14px; color:var(--ink); opacity:.85;}
.foot-grid a:hover{opacity:1; color:var(--berry-deep);}
.foot-bottom{margin-top:44px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:12.5px; color:var(--ink-soft);}

.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
