@font-face{font-family:Editorial;src:url(assets/editorial.otf) format("opentype");font-display:swap}
@font-face{font-family:Editorial;src:url(assets/editorial-italic.otf) format("opentype");font-style:italic;font-display:swap}
:root{--paper:#f7f3e9;--ink:#183d31;--red:#ad3a24;--line:#bfbfaf;--dark:#173d31;--serif:Editorial,Georgia,serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:12px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}::selection{color:var(--paper);background:#953824}a{color:inherit;text-decoration:none}button,summary{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #df6e45;outline-offset:5px}.defs{display:none}.wrap{width:min(1280px,calc(100% - clamp(40px,10vw,160px)));margin-inline:auto}.skip{position:fixed;left:10px;top:-90px;padding:14px;background:var(--paper);z-index:8}.skip:focus{top:10px}.mast{display:flex;align-items:center;gap:40px;min-height:86px;border-bottom:1px solid var(--ink)}.wordmark{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:clamp(22px,2.15vw,33px);letter-spacing:-.077em;white-space:nowrap}.wordmark svg{height:1.22em;width:1.22em}.logo-dot{color:var(--red)}nav{margin-left:auto;display:flex;gap:clamp(18px,2.8vw,45px);font-size:14px}nav a:hover,.back:hover{text-decoration:underline;text-underline-offset:5px}.mast-cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:15px;transition:background .18s,transform .18s}.mast-cta{border:1px solid var(--ink);padding:9px 16px;font-size:14px;font-weight:600;border-radius:3px}.mast-cta:hover{background:#e7e6d8}.btn svg,.mast-cta svg{width:19px;height:19px;flex:none}.hero{display:grid;grid-template-columns:1.04fr 1fr;gap:clamp(10px,3vw,55px);align-items:center;padding-block:clamp(42px,5vw,76px) clamp(48px,5.3vw,82px)}.hero-copy{position:relative;z-index:1}.kicker,.mono,.small-label,.no{font:500 10.5px/1.45 ui-monospace,"Courier New",monospace;letter-spacing:.105em;text-transform:uppercase}.kicker{display:flex;gap:12px;align-items:center;margin:0 0 24px;font-weight:700}.stitch{height:8px;width:24px;background:repeating-linear-gradient(118deg,transparent 0 3px,var(--red) 3.5px 5px,transparent 5.5px 7px)}h1,h2,blockquote{font-family:var(--serif);font-weight:normal;margin:0}h1{font-size:clamp(66px,7.65vw,123px);letter-spacing:-.065em;line-height:.96}h1 em,h2 em{color:var(--red);font-weight:normal}h1 em{font-size:1.09em;letter-spacing:-.07em}.lead,.intro-text,.studio-copy p,.sample-intro>p,.detail p,.contact-grid p{font-size:clamp(16px,1.24vw,19px);line-height:1.56}.lead{max-width:460px;margin:24px 0 27px}.actions{display:flex;align-items:center;gap:clamp(16px,2.6vw,44px);flex-wrap:wrap}.btn{background:var(--ink);color:var(--paper);padding:15px 20px;border:1px solid transparent;border-radius:3px;font-size:14px;font-weight:bold}.btn:hover{background:#284f40;transform:translateY(-2px)}.textlink{font-size:14px;font-weight:600;border-bottom:1px solid var(--ink);padding-block:5px}.textlink span{padding-left:3px}.hero-figure{margin:0;min-width:0;position:relative}.plate{position:relative;display:grid;place-items:center;isolation:isolate}.plate img{display:block;width:100%;height:auto;max-height:475px;object-fit:contain}.plate-reg{position:absolute;width:12px;height:12px;opacity:.55}.tl{top:1%;left:0;border-top:1px solid;border-left:1px solid}.tr{bottom:1%;right:0;border-bottom:1px solid;border-right:1px solid}.hero-figure figcaption{margin:8px 0 0 6px;display:flex;align-items:center;gap:12px;font:italic 17px/1.22 var(--serif)}.hero-figure figcaption .mono{font-size:9px;letter-spacing:.08em;color:var(--red);font-weight:bold}.hero-figure figcaption:after{content:'';display:block;flex:1;border-bottom:1px dotted #aaaa99;margin-left:4px}
.sectionline{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}.sectionline .mono{display:flex;align-items:center;gap:10px}.sectionline i{display:inline-block;width:8px;height:8px;background:var(--red)}.specimen{background:var(--dark);color:var(--paper);padding:25px 0 clamp(54px,6.2vw,96px)}.specimen .sectionline{border-color:#6d8573}.specimen .sectionline i{background:#e89070}.sectionline .aside-label{font-size:9px;opacity:.8}.sample-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:8%;align-items:center;margin-top:clamp(36px,4.2vw,65px)}h2{font-size:clamp(53px,5.4vw,84px);line-height:1;letter-spacing:-.06em}h2 em{letter-spacing:-.065em}.specimen h2 em{color:#eeb99c}.sample-intro>p{max-width:390px;margin:22px 0}.picks{display:flex;gap:6px;flex-wrap:wrap}.picks[hidden]{display:none}.picks button{background:transparent;color:var(--paper);border:1px solid #829587;padding:8px 11px;border-radius:20px;font-size:13px}.picks button[aria-pressed=true]{color:var(--ink);border-color:#eee6ce;background:#eee6ce}.picks button:hover{border-color:#fff}.sample-sheet{background:#f3edda;color:var(--ink);padding:clamp(25px,2.9vw,45px);position:relative;border-top:5px solid #dbb493;box-shadow:5px 6px 0 #0e2d24;transform:rotate(-.65deg)}.sheet-top,.sheet-foot{display:flex;align-items:center;justify-content:space-between}.sheet-top{border-bottom:1px solid #a8aa98;padding-bottom:13px;letter-spacing:.08em;font-size:10px}.sheet-text{min-height:230px}.small-label{font-size:10px;margin-bottom:7px}.before{font-size:16px;line-height:1.5;color:#525c50;margin:0 0 20px}.corrected{color:var(--red);font-weight:bold}.corrected span{font-size:16px}.sheet-text blockquote{font-size:clamp(26px,2.45vw,38px);line-height:1.15;letter-spacing:-.035em}.sheet-foot{justify-content:flex-end;gap:10px;color:var(--red);margin-top:22px;font:italic 15px var(--serif)}.line-swatch{border-bottom:1px solid var(--red);width:34px;transform:rotate(-4deg)}.offer{padding-top:clamp(54px,6vw,92px)}.offer-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;padding:45px 0 68px}.intro-text{max-width:380px}.service-list{border-top:1px solid var(--ink)}details{border-bottom:1px solid var(--line)}summary{display:flex;align-items:center;gap:17px;padding:22px 0;cursor:pointer;list-style:none;font-size:clamp(19px,1.8vw,27px);letter-spacing:-.035em}summary::-webkit-details-marker{display:none}.no{font-size:10px;color:var(--red)}.toggle{width:16px;height:16px;position:relative;margin-left:auto;flex:none}.toggle:after,.toggle:before{content:'';position:absolute;left:0;top:7px;width:16px;border-top:1.5px solid}.toggle:after{transform:rotate(90deg)}details[open] .toggle:after{display:none}.detail{padding:0 8px 21px 30px}.detail p{font-size:16px;margin:0 0 10px}.detail p:last-child{margin-bottom:0}.deliver b{color:var(--red)}.studio-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:10%;align-items:center;padding:50px 0 clamp(65px,7vw,110px)}.note{background:#e8e4d6;border:1px solid #cbc9b7;padding:clamp(25px,3.4vw,55px);position:relative;transform:rotate(-1.5deg);background-image:repeating-linear-gradient(transparent 0 28px,#d9d7c8 29px,transparent 30px)}.note .mono{background:#e8e4d6;color:var(--red)}.note p{font:italic clamp(30px,3.2vw,49px)/1.13 var(--serif);letter-spacing:-.045em;margin:34px 0 12px}.inkstroke{width:45%;height:10px;border-bottom:3px solid var(--red);border-radius:50%;transform:rotate(-5deg);margin-left:auto}.studio-copy p{max-width:520px;margin:20px 0 0}.contact{background:#eac3aa;padding:25px 0 60px}.contact .sectionline{border-color:#ac9784}.contact-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10%;padding-top:36px}.contact-grid p{max-width:385px;margin:0 0 20px}.contact-grid .email-address{font-family:ui-monospace,monospace;font-size:13px;margin:13px 0 0}.contact h2 em{color:#843322}footer{display:flex;align-items:center;justify-content:space-between;padding:25px 0}footer .wordmark{font-size:22px}.back{font-size:13px}
@media(max-width:860px){.wrap{width:calc(100% - 64px)}.hero{gap:12px}.mast{gap:24px;min-height:74px}nav{gap:19px}.hero h1{font-size:clamp(61px,8vw,75px)}.hero .lead{font-size:16px}.kicker{font-size:9px}.hero .btn{padding:12px 14px}.actions{gap:12px}.sample-grid,.offer-layout,.studio-grid,.contact-grid{gap:6%}.sample-sheet{padding:24px}.aside-label{display:none!important}.picks{gap:5px}.picks button{padding:7px 9px}}
@media(max-width:670px){.wrap{width:calc(100% - 40px)}.mast{min-height:66px;gap:10px;flex-wrap:wrap}.wordmark{font-size:25px}.mast nav{order:3;width:100%;margin:0;padding:6px 0 11px;gap:23px;font-size:13px}.mast-cta{margin-left:auto;padding:6px 10px;font-size:13px}.mast>.wordmark,.mast>.mast-cta{margin-top:12px}.hero{grid-template-columns:1fr;padding:36px 0 32px;gap:24px}.hero h1{font-size:clamp(65px,13.7vw,87px)}.kicker{margin-bottom:20px}.lead{margin:18px 0 20px;max-width:425px}.actions{gap:19px}.hero-figure{width:min(100%,475px);justify-self:center}.plate img{height:clamp(210px,59vw,300px);width:100%}.hero-figure figcaption{font-size:15px}.specimen{padding:20px 0 38px}.sample-grid,.offer-layout,.studio-grid,.contact-grid{grid-template-columns:1fr;gap:29px}.sample-grid{margin-top:28px}.sample-intro h2 br,.offer-layout h2 br{display:none}.sample-intro h2 em:before,.offer-layout h2 em:before{content:' '}.sample-intro>p,.intro-text{margin:15px 0 18px}.sample-sheet{margin-inline:3px}.sheet-text{min-height:195px}.sheet-foot{margin-top:15px}h2{font-size:clamp(45px,9vw,60px)}.offer-layout{padding:27px 0 42px;gap:10px}.detail{padding-left:26px}.studio-grid{padding:29px 0 46px}.studio-copy{grid-row:1}.note{margin:2px 5px}.contact-grid{padding-top:24px}.contact{padding-bottom:36px}.contact h2 br{display:none}.contact h2 em:before{content:' '}.back{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Service catalogue and workshop pages */
.service-entry{display:grid;grid-template-columns:23px 1fr;gap:10px;border-bottom:1px solid var(--line);padding:22px 8px 22px 0}
.service-entry .no{padding-top:5px}.service-entry h3,.steps h3{font:500 clamp(21px,2vw,30px)/1.17 var(--sans);letter-spacing:-.045em;margin:0}
.service-entry p,.steps p{font-size:16px;line-height:1.55;margin:7px 0 10px}.entry-label{font-size:13px;font-weight:600;color:var(--red)}
.service-entry:hover .entry-label,.crosslinks a:hover{text-decoration:underline;text-underline-offset:4px}
.voice-service summary{font-size:clamp(20px,1.65vw,25px)}.voice-service .textlink,.course .textlink{display:inline-block}
.crumb{margin:24px 0 0;font-size:13px}.crumb a:hover{text-decoration:underline}.chapter{display:grid;grid-template-columns:1.13fr .87fr;gap:8%;align-items:center;padding:34px 0 clamp(45px,5.5vw,88px)}
.chapter h1{font-size:clamp(61px,6.4vw,100px)}.chapter h1 em{font-size:1.03em}.chapter .lead{max-width:510px}.chapter .actions{gap:18px}
.worknote{background:#eeeada;border-top:4px solid #b58c70;box-shadow:3px 4px 0 #dedbcb;padding:clamp(23px,2.9vw,46px);transform:rotate(-.8deg)}
.worknote-title{font:normal clamp(29px,2.6vw,41px)/1.12 var(--serif);letter-spacing:-.04em;margin:26px 0 12px}.worknote ul{list-style:none;margin:0;padding:0}.worknote li{border-bottom:1px solid #cbcbb8;padding:10px 0;line-height:1.42}
.work-steps{background:#e8ebdf;padding-top:25px}.work-steps .offer-layout{padding-bottom:clamp(38px,5vw,75px)}.steps{list-style:none;padding:0;margin:0;border-top:1px solid var(--ink)}.steps li{display:grid;grid-template-columns:22px 1fr;gap:12px;padding:20px 0 10px;border-bottom:1px solid var(--line)}.steps .no{padding-top:5px}.steps h3{font-size:22px}.programs .offer-layout{padding-bottom:48px}
.course-line{font:italic 25px/1.17 var(--serif)!important;letter-spacing:-.03em}.course-facts{margin:18px 0}.course-facts dt{font-weight:bold;font-size:14px;margin-top:13px;color:var(--red)}.course-facts dd{margin:4px 0 0;font-size:16px;line-height:1.5}.class-copy p{font-size:17px;line-height:1.55;margin:0 0 16px}
.crosslinks{padding-top:24px;display:flex;align-items:baseline;gap:20px}.crosslinks div{font-size:14px;line-height:1.7}.crosslinks a{text-underline-offset:3px;text-decoration:underline}
@media(max-width:860px){.chapter{gap:5%}.chapter .btn{padding:12px 14px}.chapter h1{font-size:clamp(54px,7vw,70px)}}
@media(max-width:670px){.chapter{grid-template-columns:1fr;gap:32px;padding:26px 0 38px}.chapter h1{font-size:clamp(53px,12vw,75px)}.crumb{margin-top:18px}.worknote{margin-inline:3px}.crosslinks{display:block}.crosslinks div{margin-top:6px}.service-entry{padding-block:19px}.programs .offer-layout{gap:12px}.course summary{padding-block:18px}}
/* Published work and first consultation */
.case-file{padding-top:clamp(45px,5vw,76px)}
.case-layout,.review-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:8%;align-items:start;padding-top:clamp(32px,4vw,56px)}
.case-layout .kicker,.review-layout .kicker{margin-bottom:14px;color:var(--red)}
.case-story p,.review-layout p:not(.kicker){font-size:clamp(16px,1.24vw,19px);line-height:1.56;margin:0 0 15px}
.case-story .textlink{display:inline-block}.first-review{background:#e8ebdf;padding:24px 0 clamp(42px,5vw,75px)}
.review-layout h3{font:normal clamp(27px,2.6vw,40px)/1.14 var(--serif);letter-spacing:-.04em;margin:0 0 16px}.review-layout .btn{margin-top:4px}
.contact-grid .review-option{font-size:14px;margin:18px 0 0}.review-option a{text-decoration:underline;text-underline-offset:4px}
@media(max-width:670px){.case-layout,.review-layout{grid-template-columns:1fr;gap:22px}.case-story p,.review-layout p:not(.kicker){line-height:1.52}}

/* The free end withdraws into the pinch, then pays out as a handwritten greeting. */
.plate .thread-scene{display:block;width:100%;height:auto;max-height:475px}
.thread-hand{transform-origin:690px 450px}
.thread-loose{opacity:0}
.thread-pen{stroke-dasharray:1 1;stroke-dashoffset:0}
.thread-replay{order:3;display:inline-flex;align-items:center;gap:5px;flex-shrink:0;background:none;border:0;border-bottom:1px solid currentColor;padding:5px 0;color:var(--red);font:600 12px/1.3 var(--sans)}
.thread-replay span{font-size:16px}.thread-replay[hidden]{display:none}
@media (prefers-reduced-motion:no-preference){
  .is-weaving .thread-hand{animation:thread-pull 3.25s .15s cubic-bezier(.38,0,.24,1) both}
  .is-weaving .thread-loose{animation:thread-hide 1.1s .15s both}
  .is-weaving .thread-loose path{stroke-dasharray:1 1;animation:thread-gather 1.08s .15s cubic-bezier(.57,0,.73,.55) both}
  .is-weaving .thread-pen{animation:thread-letter 2.75s 1.1s cubic-bezier(.28,.01,.42,1) both}
}
@keyframes thread-pull{0%{transform:rotate(0)}14%{transform:rotate(-1.65deg)}34%{transform:rotate(4.7deg)}52%{transform:rotate(1.15deg)}65%{transform:rotate(2.05deg)}86%{transform:rotate(-.5deg)}100%{transform:rotate(0)}}
@keyframes thread-hide{0%,97%{opacity:1}100%{opacity:0}}
@keyframes thread-gather{0%,15%{stroke-dashoffset:0}100%{stroke-dashoffset:-1}}
@keyframes thread-letter{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media(max-width:670px){.plate .thread-scene{height:clamp(210px,59vw,300px)}.hero-figure figcaption{flex-wrap:wrap;gap:6px 9px}.hero-figure figcaption:after{min-width:0}.thread-replay{font-size:11px}}
@media(prefers-reduced-motion:reduce){.thread-replay{display:none}}
.sample-next{display:flex;align-items:baseline;gap:20px;padding-block:23px;border-bottom:1px solid var(--line);flex-wrap:wrap}.sample-next p{font:italic 26px/1.2 var(--serif);letter-spacing:-.03em;margin:0 auto 0 0}
.guide-fragments{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}.guide-fragments article{padding:26px;background:#eeeada;border-top:3px solid #b58c70}.guide-fragments .mono{font-size:9px;color:var(--red);margin:0 0 17px}.guide-fragments blockquote{font-size:clamp(23px,2vw,30px);line-height:1.22;letter-spacing:-.025em}.guide-source{font-size:12px;margin:12px 0 0}
.contact-grid .contact-phone{font-size:14px;margin:12px 0 0}.contact-phone a{text-decoration:underline;text-underline-offset:4px}
.training-experience{padding:10px 0 30px}.training-experience>p:last-child{font-size:17px;line-height:1.55;max-width:770px}.training-experience .mono{color:var(--red)}
@media(max-width:670px){.guide-fragments{grid-template-columns:1fr;gap:15px}.sample-next{gap:12px}.sample-next p{width:100%}.sample-next .textlink{font-size:13px}.guide-fragments article{padding:22px}}
.review-layout .review-price{display:flex;align-items:baseline;gap:12px;margin:18px 0}.review-price strong{font:normal 54px/1 var(--serif);letter-spacing:-.055em}.review-price span{font-size:13px}.review-includes{padding-left:19px;margin:0 0 18px;font-size:16px;line-height:1.5}.review-includes li{padding-left:3px;margin:7px 0}.review-layout .review-credit{font-size:15px;line-height:1.55}
.hero h1 em{font-size:1em}
.studio-photo,.training-proof figure,.training-detail{margin:0}
.studio-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:75% center;display:block}
.studio-photo figcaption,.training-proof figcaption,.training-detail figcaption{font:italic 17px/1.3 var(--serif);padding-top:10px}
.training-proof{display:grid;grid-template-columns:.8fr 1.2fr;gap:6%;align-items:center;padding:38px 0 30px}
.training-proof h2{font-size:clamp(48px,4.3vw,67px)}.training-proof p{font-size:17px;line-height:1.55}
.training-proof img{width:100%;height:auto;display:block}
.training-detail{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center;margin:6px 0 25px}
.training-detail img{width:100%;height:auto;display:block}.training-detail figcaption{font-size:26px;max-width:300px}
.site-owner{font:11px/1.5 var(--sans)}
@media(max-width:670px){.hero h1 em{font-size:.94em}.training-proof{grid-template-columns:1fr;gap:20px}.training-detail{grid-template-columns:1fr;gap:0}.training-detail figcaption{font-size:17px;max-width:none}.studio-photo img{aspect-ratio:4/3}.site-owner{width:100%;order:3;font-size:10px}footer{flex-wrap:wrap;row-gap:13px}}
@media(max-width:370px){.hero h1 em{font-size:.80em}}
.legal-page{max-width:900px;padding-bottom:45px}.legal-page .kicker{margin-top:38px}.legal-page h1{font-size:clamp(60px,7vw,100px);line-height:1.05}.legal-page h1 em{font-size:1em;color:var(--red)}
.legal-updated{font:12px/1.5 var(--sans);margin:20px 0 35px}.legal-page section{border-top:1px solid var(--line);padding:25px 0 5px;margin-top:20px}
.legal-page section h2{font:normal 32px/1.15 var(--serif);letter-spacing:-.035em;margin:0 0 16px}.legal-page section p{font-size:16px;line-height:1.65;max-width:780px}
.legal-data{display:grid;grid-template-columns:170px 1fr;font-size:16px;line-height:1.6;gap:10px 24px;margin:24px 0}.legal-data dt{font-weight:600}.legal-data dd{margin:0}.legal-page a,.legal-link{text-decoration:underline;text-underline-offset:3px}.legal-link{font-size:12px;white-space:nowrap}footer{column-gap:18px}.legal-page .legal-reference{font-size:13px}
@media(max-width:670px){.legal-data{grid-template-columns:1fr;gap:3px}.legal-data dd{margin-bottom:12px}.legal-page section h2{font-size:28px}}
