:root{
 --header-height:80px;
 --paper:#faf7ef;--cream:#fbf5e9;--ink:#514b44;--muted:#70655e;--rose:#816268;--sage:#646d5b;--line:#ddd0c6;
 --stripes:repeating-linear-gradient(90deg,#f6efea 0 32px,#eee4e0 32px 50px);
}
*,:before,:after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 16px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.75 "DM Sans",sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500}
h2{font-size:clamp(35px,4.2vw,48px);line-height:1.06;letter-spacing:-.025em;color:var(--sage)}
h2 em,h3 em{font-weight:400;color:var(--rose)}
h3{font-size:29px;line-height:1.12;color:var(--sage)}
a{color:inherit}
img{display:block;width:100%;max-width:100%;object-fit:cover}
button,input,textarea{font:inherit}
button,a,input,textarea{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--rose);outline-offset:4px}
button{cursor:pointer}
.skip{position:absolute;top:10px;left:-9999px;z-index:50;background:var(--paper);padding:10px 16px}
.skip:focus{left:10px}
.content-width{width:calc(100% - 48px);max-width:1120px;margin-inline:auto}
.eyebrow{display:block;font:500 10px/1.6 "DM Sans",sans-serif;letter-spacing:.17em;color:var(--rose)}
.eyebrow+h2{margin-top:12px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:43px;max-width:100%;padding:11px 21px;border:1px solid #a88c8e;border-radius:2px;background:transparent;color:var(--rose);text-decoration:none;font:500 10px/1.5 "DM Sans",sans-serif;letter-spacing:.12em;text-transform:uppercase;transition:background .18s,border-color .18s}
.button:hover{background:#eee1da;border-color:var(--rose)}
.text-link{display:inline-flex;align-items:center;gap:12px;min-height:35px;border-bottom:1px solid #bca3a1;color:var(--rose);text-decoration:none;font:500 10px/1.5 "DM Sans",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.text-link:hover{border-color:var(--rose)}
figcaption{font:italic 400 16px/1.35 "Cormorant Garamond",Georgia,serif;color:var(--rose);margin-top:9px}
.signature{font:italic 22px/1.35 "Cormorant Garamond",Georgia,serif;color:var(--rose)}
.brand{display:inline-flex;align-items:center;gap:0;text-decoration:none;flex-shrink:0}
.brand>img{width:38px;height:38px;object-fit:contain}
.brand>span{font:500 25px/.95 "Cormorant Garamond",Georgia,serif;letter-spacing:.015em;color:var(--rose)}
.brand small{display:block;text-align:left;font:500 8px/1.2 "DM Sans",sans-serif;letter-spacing:.28em;margin-top:6px}
.hero{padding:30px 24px 0;background:var(--stripes)}
.hero-paper{display:grid;grid-template-columns:1.02fr 1fr;max-width:1160px;margin:auto;background:var(--paper);border:1px solid #e3d8cf}
.hero-photo{position:relative;min-height:355px;overflow:hidden}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-photo figcaption{position:absolute;left:17px;bottom:15px;padding:5px 10px;background:#faf7efeb;margin:0;font-size:17px}
.hero-copy{padding:38px 42px;align-self:center}
.hero-copy .eyebrow{margin-bottom:20px}
.hero h1{font-size:clamp(44px,5vw,67px);line-height:.92;letter-spacing:-.04em;color:var(--rose)}
.hero h1 span{display:block;font:500 9px/1.4 "DM Sans",sans-serif;letter-spacing:.4em;margin:15px 0 0 3px}
.hero-deck{font:400 31px/1.16 "Cormorant Garamond",Georgia,serif;color:var(--sage);margin:25px 0 24px}
.hero-deck em{color:var(--rose);font-weight:400}
.hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.lace-trim{height:18px;max-width:1160px;margin:20px auto 0;opacity:.4;background:url("hero-needlepoint/dusty-lace-1920.webp") center top/auto 18px repeat-x}
.services{margin-bottom:42px;background:none}
.services-paper{padding:0;background:none;border:0}
.services .compact-heading{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.services .compact-heading h2{font-size:clamp(30px,3.4vw,38px);line-height:1.05;margin-top:6px}
.compact-heading h2{font-size:33px}
.compact-heading{margin-bottom:22px}
.service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:16px;background:var(--stripes)}
.service{position:relative;display:flex;flex-direction:column;min-height:148px;padding:0;border:0;text-decoration:none;min-width:0;background:transparent}
.service-copy{position:relative;z-index:1;display:flex;flex-direction:column;flex:1;min-width:0;padding:14px 12px 16px;background:#fff;border:1px solid #e7ddd4;transition:background .18s}
.service:hover .service-copy{background:#fffdf8}
.service-index{display:block;font-size:9px;letter-spacing:.16em;color:var(--rose);margin-bottom:12px}
.service h3{font-size:22px;line-height:1.08;min-height:0;max-width:none}
.service .break{display:block;font-size:0;line-height:0}
.service p{margin-top:auto;padding-top:14px;padding-right:18px;font:italic 16px/1.3 "Cormorant Garamond",Georgia,serif;color:var(--rose)}
.service-arrow{position:absolute;right:12px;bottom:16px;color:var(--rose);font-size:16px}
.lessons{padding-block:36px 54px}
.section-heading{margin-bottom:28px}
.split-heading{display:flex;justify-content:space-between;align-items:end;gap:40px}
.split-heading>p{max-width:380px;color:var(--muted);font-size:14px;line-height:1.8}
.lesson-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:48px;align-items:start}
.lesson-card{min-width:0}
.lesson-card:nth-child(2){margin-top:36px}
.lesson-card img{height:258px;aspect-ratio:4/3}
.lesson-card:nth-child(2) img{height:222px}
.lesson-card figcaption{font-size:15px}
.lesson-card h3{font-size:31px;margin:16px 0 9px}
.lesson-card>p{max-width:460px;color:var(--muted);font-size:14px;line-height:1.8}
.lesson-card>.text-link{margin-top:12px}
.class-note{display:grid;grid-template-columns:1fr 1.4fr auto;align-items:center;gap:26px;padding:24px 0;margin-top:32px;border-block:1px solid var(--line)}
.class-note h3{font-size:28px;margin-top:8px}
.class-note>p{font-size:13px;line-height:1.8;color:var(--muted)}
.class-note .text-link{white-space:nowrap}
.stripe-surface{background:var(--stripes)}
.popups{padding:44px 24px}
.popups-paper{width:100%;display:grid;grid-template-columns:1fr 1.08fr;gap:40px;align-items:center;padding:34px 38px;background:var(--paper);border:1px solid #e3d8cf}
.popups-copy h2{font-size:43px;margin:12px 0 18px}
.popups-copy>p{font-size:14px;line-height:1.85;color:var(--muted);max-width:430px}
.kit-list{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:20px 0}
.kit-list li{padding:4px 9px;border:1px solid var(--line);font:italic 16px/1.3 "Cormorant Garamond",Georgia,serif;color:var(--rose)}
.photo-pair{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;align-items:center}
.photo-pair>figure{min-width:0}
.photo-pair>figure:first-child img{height:285px;aspect-ratio:3/4}
.photo-pair>figure:last-child{margin-top:100px}
.photo-pair>figure:last-child img{height:185px;aspect-ratio:1}
.photo-pair figcaption{font-size:15px}
.custom{display:grid;grid-template-columns:minmax(0,350px) minmax(0,1fr);max-width:980px;align-items:center;gap:58px;padding-block:62px}
.custom-photo img{height:290px;aspect-ratio:6/5}
.custom-copy{min-width:0}
.custom h2{margin:12px 0 18px}
.custom-copy>p{font-size:14px;color:var(--muted);line-height:1.85;max-width:460px;margin-bottom:23px}
.gallery{padding-block:20px 52px}
.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:30px}
.gallery-heading h2{font-size:39px}
.gallery-heading>p{font-size:13px;color:var(--muted);max-width:230px}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.gallery-grid>figure{min-width:0}
.gallery-grid img{height:auto;object-fit:cover}
.gallery-grid figcaption{font-size:15px}
.contact{padding:44px 24px}
.contact-paper{width:100%;max-width:550px;margin:auto;padding:28px 40px 22px;text-align:center;background:var(--cream);border:1px solid #e0d3c5}
.contact h2{font-size:40px;font-style:italic;color:var(--ink);margin:0 0 12px}
.contact-paper>p:not(.contact-email){font-size:13px;line-height:1.7;color:var(--muted);max-width:400px;margin:auto}
.contact-form{display:grid;gap:12px;margin-top:22px;text-align:left}
.contact-form label{font-size:11px;line-height:1.3;letter-spacing:.025em;color:var(--muted)}
.contact-form input:not([type=hidden]),.contact-form textarea{display:block;width:100%;min-width:0;border:0;border-bottom:1px solid #baa79b;border-radius:0;background:transparent;padding:6px 2px 4px;color:var(--ink);font-size:16px;line-height:1.35}
.contact-form textarea{height:66px;min-height:66px;resize:vertical}
.contact-form .button{justify-self:center;min-height:39px;margin-top:6px;padding:9px 20px;text-transform:none;font-size:12px;letter-spacing:.03em;border-color:#927679;color:var(--ink)}
.contact-email{margin-top:18px;font-size:11px;color:var(--rose);overflow-wrap:anywhere}
.contact-email a{text-decoration:none}
.contact-email a:hover{text-decoration:underline}
.instagram{padding-block:42px 38px}
.instagram-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}
.instagram h2{font-size:35px}
.instagram-grid{display:flex;align-items:start;justify-content:center;flex-wrap:wrap;gap:22px}
.instagram-card{flex:1 1 280px;min-width:0;max-width:350px;overflow:hidden;border:1px solid var(--line);background:#fff}
.instagram-card .instagram-media,.instagram-card iframe{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important}
@media(max-width:1000px){
 .hero-copy{padding:30px}
 .hero h1{font-size:54px}
 .hero-deck{font-size:29px}
 .service h3{font-size:24px}
 .class-note{grid-template-columns:1fr 1.3fr}
 .class-note>.text-link{grid-column:2;justify-self:start;margin-top:-12px}
 .popups-paper{gap:28px;padding:30px}
 .popups-copy h2{font-size:39px}
 .photo-pair{gap:12px}
 .photo-pair>figure:first-child img{height:255px}
 .photo-pair>figure:last-child img{height:160px}
 .custom{gap:38px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
}
@media(max-width:760px){
 .content-width{width:calc(100% - 40px)}
 .brand>span{font-size:23px}
 .brand>img{width:34px;height:34px}
 .hero{padding:20px 16px 0}
 .hero-paper{grid-template-columns:1fr}
 .hero-photo{min-height:225px}
 .hero-copy{padding:27px 28px}
 .hero-copy .eyebrow{margin-bottom:15px}
 .hero h1{font-size:clamp(40px,8vw,56px)}
 .hero h1 span{margin-top:11px;font-size:8px}
 .hero-deck{font-size:28px;margin:20px 0}
 .hero-actions{gap:15px}
 .lace-trim{height:15px;background-size:auto 15px;margin-top:16px}
 .services{margin-bottom:30px}
 .services-paper{padding:0}
 .services .compact-heading h2{font-size:32px}
 .compact-heading h2{font-size:31px}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .service:last-child{grid-column:1 / -1}
 .service h3{font-size:24px}
 .lessons{padding-block:26px 40px}
 .split-heading{gap:24px}
 .split-heading h2{font-size:39px}
 .split-heading>p{max-width:300px;font-size:13px}
 .lesson-grid{gap:26px}
 .lesson-card img{height:210px}
 .lesson-card:nth-child(2) img{height:180px}
 .lesson-card:nth-child(2){margin-top:30px}
 .lesson-card h3{font-size:28px}
 .class-note{gap:18px;padding-block:22px;margin-top:25px}
 .class-note h3{font-size:27px}
 .popups{padding:32px 20px}
 .popups-paper{grid-template-columns:1fr;padding:26px;gap:26px}
 .popups-copy h2{font-size:39px}
 .photo-pair{grid-template-columns:1fr 1fr;gap:16px}
 .photo-pair>figure:first-child img{height:215px}
 .photo-pair>figure:last-child{margin-top:38px}
 .photo-pair>figure:last-child img{height:177px}
 .custom{padding-block:42px;gap:28px}
 .custom h2{font-size:37px}
 .custom-photo img{height:260px}
 .gallery{padding-block:12px 38px}
 .gallery-heading h2{font-size:35px}
 .gallery-heading>p{max-width:200px;font-size:12px}
 .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 15px}
 .contact{padding:36px 20px}
 .contact-paper{padding:30px 34px 24px}
 .instagram{padding-block:32px}
 .instagram-heading{align-items:start}
 .instagram h2{font-size:32px}
 .instagram-grid{gap:18px}
 .instagram-card{max-width:420px}
}
@media(max-width:540px){
 body{font-size:14px}
 .services-paper{padding:0}
 .services .compact-heading h2{font-size:30px}
 .service-grid{padding:12px;gap:10px}
 .service h3{font-size:23px}
 .service p{font-size:16px}
 .service-arrow{right:12px;bottom:14px}
 .split-heading{display:block}
 .split-heading>p{max-width:100%;margin-top:17px}
 .lesson-grid{grid-template-columns:1fr;gap:28px}
 .lesson-card:nth-child(2){margin-top:0}
 .lesson-card img{height:230px}
 .lesson-card:nth-child(2) img{height:205px}
 .lesson-card>p{font-size:13px}
 .class-note{grid-template-columns:1fr;gap:12px}
 .class-note>.text-link{grid-column:auto;margin-top:0}
 .photo-pair{gap:12px}
 .photo-pair>figure:first-child img{height:180px}
 .photo-pair>figure:last-child img{height:145px}
 .photo-pair>figure:last-child{margin-top:35px}
 .photo-pair figcaption{font-size:14px}
 .custom{grid-template-columns:1fr;gap:23px}
 .custom-photo img{height:230px}
 .custom h2{font-size:39px}
 .custom-copy>p{font-size:13px}
 .gallery-heading{display:block}
 .gallery-heading>p{margin-top:13px;max-width:100%}
 .gallery-grid figcaption{font-size:14px}
 .contact-paper{padding:28px 24px 22px}
 .contact h2{font-size:39px}
 .instagram-heading{display:block}
 .instagram-heading>.text-link{margin-top:14px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.service{transition:none}}

/* Restore the original needlepoint hero; reduce its dimensions only. */
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hero.minimal-hero.needlepoint-asset-hero{
 position:relative;isolation:isolate;display:block;width:100%;max-width:1600px;
 margin:0 auto;padding:clamp(36px,6vw,96px) 20px clamp(38px,6vw,98px);
 text-align:center;overflow:hidden;
 background:repeating-linear-gradient(90deg,#faf6f2 0 34px,#e9d9d7 34px 56px);
}
.hero.minimal-hero.needlepoint-asset-hero .simple-hero-center{
 position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;
 width:100%;max-width:900px;margin:0 auto;
}
.hero.minimal-hero.needlepoint-asset-hero .minimal-hero-logo{
 width:min(760px,100%);max-width:100%;height:auto;margin:0 auto 8px;object-fit:contain;filter:none;
}
.hero.minimal-hero.needlepoint-asset-hero .hero-design-line{
 display:block;margin:0 auto 10px;font:500 clamp(10px,1.05vw,13.5px)/1.35 "Cormorant Garamond",Georgia,serif;
 letter-spacing:.36em;color:#987e81;
}
.hero.minimal-hero.needlepoint-asset-hero .simple-hero-deck{
 margin:0 auto;font:italic 400 clamp(20px,1.8vw,25px)/1.25 "Cormorant Garamond",Georgia,serif;
 letter-spacing:.025em;color:#987e81;
}
.hero.minimal-hero.needlepoint-asset-hero .hero-needlepoint-lace{
 position:absolute;display:block;left:0;width:100%;height:clamp(24px,5vw,80px);
 max-width:none;max-height:none;pointer-events:none;
 background-image:url("hero-needlepoint/dusty-lace-960.webp");
 background-repeat:repeat-x;background-position:center top;background-size:auto 100%;
 filter:none;opacity:.68;z-index:1;
}
.hero.minimal-hero.needlepoint-asset-hero .hero-needlepoint-lace-top{top:0}
.hero.minimal-hero.needlepoint-asset-hero .hero-needlepoint-lace-bottom{bottom:0;transform:scaleY(-1)}
/* Each offering is a full section with its own six-photo gallery. */
.offerings{border-top:1px solid var(--line);scroll-margin-top:20px}
.offering-section{padding:42px 0 46px;scroll-margin-top:20px}
.offering-section+.offering-section{border-top:1px solid var(--line)}
.offering-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;align-items:center;gap:32px;margin-bottom:25px}
.offering-title h2{font-size:40px;line-height:1.06;margin:8px 0}
.offering-subtitle{font:italic 21px/1.4 "Cormorant Garamond",Georgia,serif;color:var(--rose)}
.offering-description{min-width:0;color:var(--muted);font-size:14px;line-height:1.85}
.offering-description .kit-list{margin:15px 0 0}
.offering-heading>.button{justify-self:end}
.offering-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.offering-gallery.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.offering-gallery figure{position:relative;min-width:0;aspect-ratio:3/4;background:var(--paper)}
.offering-gallery img,.offering-gallery video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;background:var(--paper)}
.offering-gallery .flipbook{height:auto;aspect-ratio:3/4}
.offering-gallery .flipbook-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--paper);opacity:0;transition:opacity .55s ease}
.offering-gallery .flipbook-slide.is-on{opacity:1;z-index:1}
.offering-gallery figure:nth-child(5) img{object-position:35% center}
.offering-gallery figure:nth-child(6) img{object-position:65% center}
.offering-gatherings{background:#f3ede6}
.offering-gatherings .offering-gallery figure,.offering-gatherings .offering-gallery img,.offering-gatherings .offering-gallery video{background:#f3ede6}
.offering-popups{background:var(--stripes)}
.offering-popups .offering-shell{padding:28px;background:var(--paper);border:1px solid var(--line)}
.offering-custom{background:var(--paper)}
.offering-section .class-note{margin-top:25px;padding-bottom:0;border-bottom:0}
@media(max-width:1000px){
 .offering-heading{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-items:start;column-gap:28px;row-gap:14px}
 .offering-title{grid-row:1 / span 2}
 .offering-heading>.button{grid-column:2;grid-row:2;justify-self:start;align-self:start}
 .offering-gallery{gap:15px}
}
@media(max-width:760px){
 .hero.minimal-hero.needlepoint-asset-hero{padding-inline:16px}
 .offering-section{padding-block:32px 36px}
 .offering-heading{column-gap:24px;row-gap:12px}
 .offering-title h2{font-size:35px}
 .offering-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
 .offering-popups .offering-shell{padding:23px}
}
@media(max-width:540px){
 .hero.minimal-hero.needlepoint-asset-hero{padding-top:clamp(36px,6vw,48px);padding-bottom:clamp(38px,6vw,50px)}
 .hero.minimal-hero.needlepoint-asset-hero .simple-hero-deck{font-size:21px;letter-spacing:.01em}
 .offering-heading{display:block;margin-bottom:22px}
 .offering-title h2{font-size:36px}
 .offering-description{margin-top:16px;font-size:13px}
 .offering-heading>.button{margin-top:18px}
 .offering-gallery{gap:11px}
 .offering-popups .offering-shell{padding:19px}
}

/* Original hero widths are preserved; only vertical spacing and lace depth are reduced. */
.about{display:grid;grid-template-columns:300px minmax(0,1fr);gap:48px;align-items:start;padding-block:48px}
.about-photo img{width:100%;height:auto;object-fit:contain}
.about-photo figcaption{font-size:16px}
.about-copy{min-width:0}
.about-copy h2{font-size:45px;margin:12px 0 21px}
.about-copy>p{font-size:14px;line-height:1.85;color:var(--muted)}
.about-copy>p+p{margin-top:14px}
.about-copy .about-follow{margin-top:20px;font-size:13px;color:var(--rose)}
.about-follow a{text-underline-offset:3px}
.lesson-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0 0 27px}
.lesson-details article{padding:20px 21px;border:1px solid var(--line);background:var(--paper);min-width:0}
.lesson-details h3{font-size:26px;margin:0 0 11px}
.lesson-details p{font-size:13px;line-height:1.8;color:var(--muted)}
.lesson-details p+p{margin-top:12px}
.group-details{grid-template-columns:repeat(2,minmax(0,1fr))}
.offering-kits{background:#f6f0e8}
.kit-feature{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:stretch;gap:36px}
.kit-feature>figure{position:relative;min-width:0}
.kit-feature>figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.kit-project-copy>h3{font-size:30px;margin-bottom:13px}
.diy-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 23px;margin:0}
.diy-projects>div{padding-bottom:15px;border-bottom:1px solid var(--line);min-width:0}
.diy-projects dt{font:500 23px/1.2 "Cormorant Garamond",Georgia,serif;color:var(--rose)}
.diy-projects dd{margin:7px 0 0;font-size:13px;line-height:1.7;color:var(--muted)}
.kit-inquiry-note{margin-top:20px}
.kit-inquiry-note h3{font-size:25px;margin-bottom:9px}
.kit-inquiry-note p{font-size:13px;line-height:1.8;color:var(--muted)}
.kit-photo-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:27px;align-items:stretch}
.kit-photo-row figure{position:relative;min-width:0;aspect-ratio:3/4;background:#f6f0e8}
.kit-photo-row img,.kit-photo-row video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:1000px){
 .about{grid-template-columns:250px minmax(0,1fr);gap:32px}
 .about-photo img{height:auto}
 .lesson-details{gap:15px}
 .lesson-details article{padding:18px}
 .kit-feature{gap:28px}
}
@media(max-width:960px){
}
@media(max-width:760px){
 .about{grid-template-columns:200px minmax(0,1fr);gap:25px;padding-block:36px}
 .about-photo img{height:auto}
 .about-copy h2{font-size:39px}
 .lesson-details{grid-template-columns:1fr 1fr}
 .lesson-details:not(.group-details)>article:last-child{grid-column:1/-1}
 .kit-feature{grid-template-columns:1fr;gap:25px}
 .kit-feature>figure{aspect-ratio:3/4}
 .kit-photo-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:540px){
 .about{display:flow-root;padding-block:34px}
 .about-photo{float:right;width:112px;margin:10px 0 15px 20px}
 .about-photo img{height:auto}
 .about-photo figcaption{font-size:14px}
 .about-copy h2{font-size:37px;margin-bottom:17px}
 .about-copy>p{font-size:14px;line-height:1.8}
 .about-copy .about-follow{clear:both;font-size:13px}
 .lesson-details{grid-template-columns:1fr}
 .lesson-details:not(.group-details)>article:last-child{grid-column:auto}
 .lesson-details h3{font-size:25px}
 .diy-projects{gap:14px 18px}
 .diy-projects dt{font-size:22px}
 .kit-photo-row{gap:12px}
}

/* Keep every lace motif at its natural aspect ratio, at any screen width. */
.about{border-top:1px solid var(--line)}
.upcoming{padding:36px 24px;margin-bottom:38px;scroll-margin-top:20px}
.upcoming-paper{width:100%;padding:30px 34px;background:var(--paper);border:1px solid var(--line)}
.upcoming-heading{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:25px}
.upcoming-heading h2{font-size:40px}
.upcoming-heading>p{max-width:430px;font-size:13px;line-height:1.8;color:var(--muted)}
.event-row{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:28px;align-items:center;padding:23px 0;border-top:1px solid var(--line)}
.event-status{font-size:9px;line-height:1.7;letter-spacing:.13em;color:var(--rose)}
.event-row h3{font-size:28px;margin-bottom:8px}
.event-row div>p{max-width:480px;font-size:13px;line-height:1.8;color:var(--muted)}
.event-row>.text-link{justify-self:start;white-space:nowrap}
.event-feature{align-items:start;padding:26px 0 28px}
.event-feature h3{font-size:36px;margin:8px 0 6px}
.event-feature .event-place{max-width:none;margin-bottom:12px;font:italic 20px/1.35 "Cormorant Garamond",Georgia,serif;color:var(--rose)}
.event-feature div>p{max-width:58ch}
.event-includes{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;margin:16px 0 0;padding:0;list-style:none}
.event-includes li{position:relative;padding-left:14px;font-size:13px;line-height:1.5;color:var(--ink)}
.event-includes li:before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--rose)}
.event-note{margin-top:14px}
.event-aside{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-top:26px}
.offering-heading .upcoming-shortcut{grid-column:3;justify-self:end;margin-top:-18px}
.faq{display:grid;grid-template-columns:.75fr 1.25fr;gap:65px;padding-block:28px 52px;scroll-margin-top:20px}
.faq-heading h2{font-size:40px}
.faq-heading>p{max-width:230px;font-size:13px;color:var(--muted);margin-top:20px}
.faq-heading a,.faq-list a{text-underline-offset:3px;color:var(--rose)}
.faq-list{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{position:relative;cursor:pointer;list-style:none;padding:18px 28px 18px 0;font:500 23px/1.25 "Cormorant Garamond",Georgia,serif;color:var(--sage)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:18px;color:var(--rose)}
.faq details[open] summary::after{content:"−"}
.faq details>p{font-size:13px;line-height:1.85;color:var(--muted);padding:0 24px 20px 0}
@media(max-width:1000px){
 .event-row{grid-template-columns:125px minmax(0,1fr);gap:15px 24px}
 .event-row>.text-link{grid-column:2}
 .event-feature{grid-template-columns:108px minmax(0,1fr) auto;gap:18px 22px}
 .event-includes{gap:8px 16px}
 .offering-heading .upcoming-shortcut{grid-column:2;justify-self:start;margin-top:0}
 .faq{gap:35px}
}
@media(max-width:760px){
 .upcoming{padding:28px 20px;margin-bottom:25px}
 .upcoming-paper{padding:24px}
 .upcoming-heading{gap:22px}
 .upcoming-heading h2,.faq-heading h2{font-size:35px}
 .faq{grid-template-columns:1fr;gap:22px;padding-block:22px 36px}
 .faq-heading>p{max-width:none;margin-top:14px}
}
@media(max-width:540px){
 .upcoming-paper{padding:23px 19px}
 .upcoming-heading{grid-template-columns:1fr;gap:16px}
 .event-row{grid-template-columns:1fr;gap:12px;padding-block:21px}
 .event-row>.text-link{grid-column:auto}
 .event-feature{grid-template-columns:1fr}
 .event-feature h3{font-size:32px}
 .event-includes{grid-template-columns:1fr}
 .event-aside{padding-top:4px}
 .offering-heading .upcoming-shortcut{display:table;margin-top:10px}
 .faq summary{font-size:22px}
}

/* A single welcome note with a larger framed textile detail. */
.welcome{display:block;padding:12px;margin-block:28px 36px;background:var(--stripes)}
.welcome-paper{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);align-items:center;gap:44px;padding:30px 38px;background:var(--paper);border:1px solid var(--line)}
.welcome-copy{min-width:0;padding-block:2px}
.welcome .eyebrow{font-size:9px;letter-spacing:.15em}
.welcome h2{font-size:clamp(36px,3.8vw,48px);line-height:1.06;margin:13px 0 18px}
.welcome-message{max-width:45ch;font-size:14px;line-height:1.85;color:var(--muted)}
.welcome .signature{margin-top:19px;font-size:22px}
.welcome-detail{position:relative;isolation:isolate;min-width:0;padding:9px;margin:0 7px 7px 0;background:var(--paper);border:1px solid #d7c5c0}
.welcome-detail::before{content:"";position:absolute;z-index:-1;inset:9px -9px -9px 9px;background:#e9d9d7;border:1px solid #dfceca}
.welcome-detail img,.welcome-detail video{display:block;width:100%;height:auto;aspect-ratio:9/8;object-fit:cover;object-position:center 40%;background:var(--paper)}
@media(max-width:1000px){
 .welcome-paper{gap:30px;padding:28px}
 .welcome-detail img,.welcome-detail video{height:auto}
}
@media(max-width:760px){
 .welcome{padding:10px;margin-block:24px 28px}
 .welcome-paper{grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);gap:22px;padding:24px}
 .welcome h2{font-size:36px}
 .welcome-message{font-size:13px;line-height:1.8}
 .welcome-detail img,.welcome-detail video{height:auto}
}
@media(max-width:600px){
 .welcome{padding:8px}
 .welcome-paper{grid-template-columns:minmax(0,1fr);gap:24px;padding:23px 21px}
 .welcome h2{font-size:clamp(32px,8.5vw,39px);margin-block:13px 16px}
 .welcome-message{max-width:none;font-size:14px;line-height:1.8}
 .welcome .signature{font-size:21px;margin-top:17px}
 .welcome-detail{padding:7px;margin-right:6px;margin-bottom:6px}
 .welcome-detail::before{inset:7px -7px -7px 7px}
 .welcome-detail img,.welcome-detail video{height:auto}
}

/* A sticky cream header and an organized, quiet footer. */
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid #d9c8c0;box-shadow:0 3px 14px #795b6108}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;width:calc(100% - 48px);max-width:1160px;min-height:var(--header-height);margin-inline:auto;padding-block:12px}
.site-header .brand{gap:0}
.site-header .brand>img{width:36px;height:36px}
.site-header .brand>span{font-size:25px}
.nav-links{display:flex;align-items:center;gap:21px}
.nav-links a{position:relative;display:flex;align-items:center;min-height:44px;color:var(--ink);font:500 12px/1.4 "DM Sans",sans-serif;text-decoration:none;white-space:nowrap}
.nav-links a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:0;bottom:7px;height:1px;background:var(--rose);opacity:0;transition:opacity .15s}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--rose)}
.nav-links a:hover::after,.nav-links a:focus-visible::after{opacity:1}
.nav-links .nav-contact{min-height:39px;padding:9px 15px;border:1px dashed #b29196;border-radius:2px;background:#f5ece7;color:var(--rose);transition:background .15s,border-color .15s}
.nav-links .nav-contact:hover{background:#eee1db;border-color:#987b81}
.menu{display:none;align-items:center;justify-content:center;gap:14px;min-height:42px;padding:8px 12px;border:1px solid #d9c8c0;background:transparent;color:var(--rose);font:500 11px/1.4 "DM Sans",sans-serif;letter-spacing:.05em}
.menu::after{content:"+";font:400 20px/1 Georgia,serif}
.menu[aria-expanded="true"]::after{content:"−"}
.site-footer{position:relative;padding:42px 0 18px;border-top:1px solid #d9c8c0;background:#f3ece6}
.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background:var(--stripes)}
.footer-inner{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr) minmax(0,.9fr) minmax(0,1.2fr);align-items:start;gap:30px 34px}
.footer-brand .brand>img{width:40px;height:40px}
.footer-brand .brand>span{font-size:29px}
.footer-description{max-width:230px;margin-top:18px;font-size:13px;line-height:1.8;color:var(--muted)}
.footer-brand .signature{margin-top:18px;font-size:23px}
.footer-label{margin:3px 0 14px;color:var(--rose);font:500 10px/1.6 "DM Sans",sans-serif;letter-spacing:.12em;text-transform:uppercase}
.footer-nav{display:flex;flex-direction:column;align-items:start;min-width:0}
.footer-nav a{display:flex;align-items:center;min-height:34px;color:var(--muted);font-size:13px;line-height:1.5;text-decoration:none}
.footer-nav a:hover,.footer-contact a:hover{color:var(--rose);text-decoration:underline;text-underline-offset:4px}
.footer-contact{display:flex;flex-direction:column;align-items:start;min-width:0}
.footer-contact a{max-width:100%;color:var(--muted);font-size:12px;line-height:1.8;text-decoration:none}
.footer-contact .footer-email{overflow-wrap:anywhere;margin:3px 0 12px}
.footer-instagram{display:inline-flex;align-items:center;gap:7px;min-height:34px}
.footer-contact .footer-note-link{display:inline-flex;align-items:center;gap:16px;min-height:36px;margin-top:13px;border-bottom:1px solid #baa09e;color:var(--rose);font-size:12px}
.footer-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #d9c8c0;padding-top:15px}
.footer-bottom small{font-size:11px;line-height:1.6;color:var(--muted)}
.footer-bottom>a{display:inline-flex;align-items:center;gap:12px;min-height:36px;color:var(--rose);font-size:11px;text-decoration:none}
.footer-bottom>a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1120px){
 :root{--header-height:68px}
 .header-inner{width:calc(100% - 40px);gap:20px;padding-block:10px}
 .site-header .brand>img{width:32px;height:32px}
 .site-header .brand>span{font-size:24px}
 .menu{display:inline-flex}
 .nav-links{display:none;position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - var(--header-height) - 1px);max-height:calc(100dvh - var(--header-height) - 1px);overflow-y:auto;overscroll-behavior:contain;padding:13px max(20px,calc((100vw - 900px)/2)) 20px;background:var(--paper);border-bottom:1px solid #d9c8c0;box-shadow:0 12px 18px #795b6110}
 .nav-links.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px}
 .nav-links a{min-height:46px;padding:10px 0;border-bottom:1px solid #e3d6ce;font-size:13px}
 .nav-links a:not(.nav-contact)::after{display:none}
 .nav-links .nav-contact{grid-column:1/-1;justify-content:center;min-height:42px;margin-top:14px;padding:10px 16px;border:1px dashed #b29196}
}
@media(max-width:1000px){
 .footer-inner{gap:28px 23px;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.15fr)}
 .footer-brand .brand>span{font-size:25px}
 .footer-brand .brand>img{width:34px;height:34px}
}
@media(max-width:800px){
 .site-footer{padding-top:34px}
 .footer-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 30px}
 .footer-brand{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:12px 25px;align-items:center;padding-bottom:23px;border-bottom:1px solid #d9c8c0}
 .footer-brand .brand{justify-self:start}
 .footer-brand .brand>span{font-size:29px}
 .footer-brand .footer-description{margin:0;max-width:270px;font-size:13px}
 .footer-brand .signature{grid-column:1/-1;margin-top:0;font-size:22px}
 .footer-nav a{min-height:39px;font-size:14px}
 .footer-contact{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 25px;padding-top:20px;border-top:1px solid #d9c8c0}
 .footer-contact .footer-label{grid-column:1/-1;margin-bottom:10px}
 .footer-contact .footer-email{margin:0;align-self:center}
 .footer-contact .footer-instagram{justify-self:end}
 .footer-contact .footer-note-link{grid-column:1/-1;justify-self:start;margin-top:10px}
 .footer-bottom{gap:15px}
}
@media(max-width:540px){
 .site-header .brand{gap:0}
 .site-header .brand>span{font-size:23px}
 .site-header .brand>img{width:30px;height:30px}
 .menu{gap:11px;padding-inline:10px}
 .nav-links.open{column-gap:22px}
 .site-footer{padding-top:31px}
 .footer-inner{gap:23px 22px}
 .footer-brand{grid-template-columns:minmax(0,1fr);gap:12px}
 .footer-brand .footer-description{max-width:none}
 .footer-brand .signature{font-size:22px}
 .footer-label{font-size:10px;letter-spacing:.1em}
 .footer-contact{grid-template-columns:minmax(0,1fr);gap:7px}
 .footer-contact .footer-instagram{justify-self:start}
 .footer-contact a{font-size:13px}
 .footer-bottom{align-items:start;gap:12px}
 .footer-bottom small{max-width:180px;font-size:11px}
 .footer-bottom>a{white-space:nowrap;min-height:32px}
}
@media(prefers-reduced-motion:reduce){.nav-links a::after{transition:none}}

/* Phone layout: larger photos you can swipe, a real portrait, and a simpler menu. */
@media(max-width:760px){
 .about{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;padding-block:28px 34px}
 .about-photo{float:none;justify-self:center;width:min(78%,340px);margin:0}
 .about-photo img{width:100%;height:auto;object-fit:contain}
 .about-copy h2{margin-top:2px}
 .about-copy .about-follow{clear:none}
 .offering-gallery,.kit-photo-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
 .offering-gallery figure,.kit-photo-row figure{width:auto;min-width:0;height:auto;aspect-ratio:3/4}
 .instagram-grid{flex-wrap:nowrap;justify-content:flex-start;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
 .instagram-grid::-webkit-scrollbar{display:none}
 .instagram-card{flex:0 0 min(340px,88%);max-width:none;scroll-snap-align:start}
}
@media(max-width:640px){
 .nav-links.open{grid-template-columns:minmax(0,1fr);gap:0}
 .nav-links a{min-height:48px}
}
@media(max-width:540px){
 .service-grid{grid-template-columns:minmax(0,1fr);gap:8px;padding:10px}
 .service{min-height:0}
 .service:last-child{grid-column:auto}
 .service-copy{display:grid;grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"index title arrow" "index note arrow";align-items:center;column-gap:10px;row-gap:1px;padding:12px 14px 13px}
 .service-index{grid-area:index;margin:0;align-self:center}
 .service h3{grid-area:title;font-size:24px;line-height:1.08}
 .service .break{display:inline;font-size:inherit;line-height:inherit}
 .service p{grid-area:note;margin:0;padding:0;font-size:16px}
 .service-arrow{position:static;grid-area:arrow;align-self:center}
}
