@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#303a36;--green:#8bc34a;--paper:#f6f7f2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #82b644;outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:8px;z-index:9;background:white;padding:15px}.preview{background:#e6eddd;font-size:10px;letter-spacing:1px;text-align:center;padding:9px 20px}.preview a{margin-left:20px;text-decoration:underline;letter-spacing:0}header{display:flex;align-items:center;justify-content:space-between;padding:15px 4%;gap:24px;background:#fff}.brand{width:220px;flex-shrink:0;display:flex;flex-direction:column;align-items:center}.brand img{width:100%;height:61px;object-fit:contain}.brand span{font-size:10px;letter-spacing:.5px;margin-top:-5px}nav{display:flex;align-items:center;gap:23px;font-size:12px;font-weight:600}.nav-contact{border-bottom:1px solid;padding:10px 0}.login{border:1px solid #dce3d3;border-radius:25px;padding:12px 17px}.menu{display:none}.hero{position:relative;min-height:740px;isolation:isolate;background:#1b2620;color:white;overflow:hidden}.hero-photo{position:absolute;inset:0;background:url('workshop-group.jpg') center right/cover no-repeat;animation:photodrift 22s ease-in-out infinite alternate;z-index:-3;opacity:.8}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#142119f5 2%,#142119d9 34%,#14211937 78%),linear-gradient(0deg,#142119db,transparent 35%);z-index:-2}.threads{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:.4;pointer-events:none}.threads path{fill:none;stroke:#a4db67;stroke-width:1;stroke-dasharray:600 900;animation:flow 20s linear infinite}.threads path:nth-child(2){opacity:.5;animation-delay:-7s}.threads path:nth-child(3){opacity:.25;animation-delay:-13s}.hero-content{padding:62px 5% 125px;max-width:1000px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;line-height:1.7;margin:0 0 24px}.eyebrow>span{display:inline-block;height:6px;width:6px;background:var(--green);border-radius:100%;margin-right:8px}h1,h2,h3{font-family:Manrope,Arial,sans-serif}h1{font-size:clamp(54px,6.7vw,98px);font-weight:600;line-height:.99;letter-spacing:-5px;margin:0 0 28px}em{font-style:normal;color:var(--green)}.hero-lead{font-size:21px;line-height:1.55;color:#e1e7dd}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;border-radius:40px;font-size:13px;font-weight:700;padding:16px 22px}.primary{background:var(--green);color:#26351d}.button span{background:#fff9;border-radius:50%;height:28px;width:28px;display:grid;place-items:center;font-size:19px}.text-link{font-size:13px;font-weight:600;border-bottom:1px solid currentColor;padding-bottom:7px;display:inline-block}.corner{position:absolute;right:7%;top:17%;width:160px;height:160px;border-top:14px solid var(--green);border-right:14px solid var(--green);animation:cornerfloat 8s ease-in-out infinite}.photo-note{position:absolute;right:7%;top:42%;font-size:11px;font-weight:600;letter-spacing:3px;line-height:1.8;text-align:right}.hero-bottom{position:absolute;bottom:30px;left:5%;right:5%;display:flex;gap:32px;border-top:1px solid #ffffff35;padding-top:20px;font-size:11px;color:#e0e7d9}.motion-toggle{position:absolute;right:5%;bottom:86px;border:1px solid #ffffff50;background:#14211988;color:white;border-radius:25px;padding:10px 16px;font-size:11px}.wrap{max-width:1440px;margin:auto;padding-left:5%;padding-right:5%}.services{position:relative;margin-top:-1px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding-top:24px}.service{display:block;padding:30px 32px;background:#fff;border:1px solid #e0e5db;border-radius:16px;transition:transform .25s,box-shadow .25s}.service:hover{transform:translateY(-6px);box-shadow:0 16px 30px #26341a10}.service-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px}.service-top i{font-size:24px;font-style:normal;letter-spacing:0}.service h2{font-size:32px;font-weight:600;line-height:1.14;letter-spacing:-1.2px;margin:30px 0 15px}.service p{font-size:14px;line-height:1.7;max-width:290px;opacity:.8}.service-link{display:block;font-size:11px;font-weight:600;margin-top:30px;padding-top:16px;border-top:1px solid #a4b29255}.dark{background:#303d35;color:#fff;border-color:#303d35}.green{background:#dfedcf}.workshops{padding-top:100px;padding-bottom:90px}.section-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:38px}.section-head h2,.about h2,.contact h2{font-size:clamp(36px,4.3vw,64px);font-weight:500;line-height:1.07;letter-spacing:-2.5px;margin:0}.section-head p:not(.eyebrow){font-size:15px;line-height:1.8;color:#657063}.section-head em,.about em{color:#537d30}.workshop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.workshop-grid>a{border-top:2px solid #bed99d;padding-top:20px}.workshop-grid span{font-size:9px;letter-spacing:1.5px;font-weight:700}.workshop-grid h3{font-size:24px;letter-spacing:-.8px;line-height:1.2;min-height:60px}.workshop-grid p{font-size:14px;line-height:1.7;min-height:50px;color:#657063}.workshop-grid a>div{display:flex;justify-content:space-between;border-top:1px solid #dce3d5;padding-top:18px;font-size:12px}.workshop-grid b{font-size:20px}.about{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding-top:30px;padding-bottom:100px}.about-photo{height:490px;position:relative}.about-photo:after{content:'';position:absolute;right:-10px;top:-10px;width:100px;height:100px;border-top:10px solid var(--green);border-right:10px solid var(--green)}.about-photo img{width:100%;height:100%;object-fit:cover}.about p:not(.eyebrow){max-width:390px;font-size:16px;line-height:1.8;color:#657063;margin:28px 0}.contact{background:#303d35;color:white;padding-top:70px;padding-bottom:70px;position:relative}.contact .button{position:absolute;right:8%;bottom:80px}.direction{font-size:13px;line-height:1.8;color:#657063;padding-top:45px;padding-bottom:45px}.direction p{max-width:850px}footer{display:flex;justify-content:space-between;gap:20px;padding-top:25px;padding-bottom:30px;border-top:1px solid #dde3d6;font-size:11px}footer strong span{display:block;font-weight:400;margin-top:7px}body.paused .hero-photo,body.paused .corner,body.paused .threads path{animation-play-state:paused}@keyframes photodrift{to{transform:scale(1.07) translateX(-1%)}}@keyframes flow{to{stroke-dashoffset:-1500}}@keyframes cornerfloat{50%{transform:translateY(16px)}}@media(min-width:1600px){.hero-content{padding-left:max(5%,calc((100vw - 1296px)/2))}.hero{min-height:800px}}@media(max-width:1100px){nav{gap:13px;font-size:11px}.brand{width:185px}.hero{min-height:680px}h1{letter-spacing:-3px}.service{padding:26px}.service h2{font-size:27px}.about{gap:40px}.hero-content{padding-top:55px}}@media(max-width:800px){header{flex-wrap:wrap}.menu{display:block;border:1px solid #dce3d3;border-radius:25px;background:white;padding:11px 16px;font-size:12px}nav{display:none;flex-wrap:wrap;width:100%;padding:18px 0;gap:20px}nav.open{display:flex}.hero{min-height:720px}.hero-photo{background-position:65% center;opacity:.6}.hero:before{background:linear-gradient(90deg,#142119ef,#14211977)}.hero-content{padding-top:48px}.hero-content h1{font-size:65px}.corner{width:90px;height:90px;border-width:9px;top:42%;right:7%}.photo-note{top:58%}.hero-bottom{flex-wrap:wrap;gap:10px 20px;font-size:10px}.services{gap:10px}.service{padding:21px}.service h2{font-size:22px}.service p{font-size:12px}.section-head{align-items:start}.about-photo{height:420px}.about h2{font-size:42px}.contact h2{font-size:48px}.workshop-grid h3{font-size:21px}}@media(max-width:600px){.preview{font-size:8px}.preview a{display:none}.hero{min-height:720px}.hero-content{padding:42px 6% 150px}.eyebrow{font-size:8px;letter-spacing:1.4px}.hero-content h1{font-size:clamp(41px,10.8vw,62px);letter-spacing:-2.8px}.hero-lead{font-size:18px}.hero-actions{align-items:start;flex-direction:column;gap:22px}.photo-note{display:none}.corner{top:51%;width:70px;height:70px}.motion-toggle{bottom:94px}.hero-bottom{left:6%;right:6%;font-size:10px;gap:10px;flex-direction:column}.services,.workshop-grid,.about{grid-template-columns:1fr}.services{padding-top:18px;gap:14px}.service{padding:26px}.service h2{font-size:31px}.service p{font-size:14px}.service-link{margin-top:22px}.section-head{display:block}.section-head>div+div{margin-top:26px}.workshops{padding-top:65px;padding-bottom:50px}.workshop-grid{gap:35px}.workshop-grid h3{min-height:0}.workshop-grid p{min-height:0}.about{gap:35px;padding-bottom:60px}.about-photo{height:330px}.contact{padding-top:45px;padding-bottom:45px}.contact h2{font-size:42px}.contact .button{position:static;margin-top:30px}footer{flex-wrap:wrap}.direction{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-photo,.corner,.threads path{animation:none}.service{transition:none}}

/* Brand geometry: straight strokes and square corners. */
.threads{opacity:.23}.threads path{stroke-width:2;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;animation:lineglow 12s ease-in-out infinite}
.threads path:nth-child(2){animation-delay:-4s;opacity:.7}.threads path:nth-child(3){animation-delay:-8s;opacity:.45}
.corner{animation:cornerglow 8s ease-in-out infinite}
@keyframes lineglow{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes cornerglow{0%,100%{opacity:.8}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.threads path,.corner{animation:none}}
/* Visible motion follows the brand's horizontal and vertical geometry. */
.threads{opacity:.65}.threads path{stroke-width:3;stroke-dasharray:280 1100;stroke-dashoffset:1380;animation:angulartrace 6s linear infinite;opacity:.65}.threads path:nth-child(2){animation-delay:-2s;opacity:.55}.threads path:nth-child(3){animation-delay:-4s;opacity:.4}
.corner{animation:cornermove 6s linear infinite}
@keyframes angulartrace{to{stroke-dashoffset:0}}
@keyframes cornermove{0%,100%{transform:translate(0,0)}25%{transform:translate(-24px,0)}50%{transform:translate(-24px,24px)}75%{transform:translate(0,24px)}}
@media(prefers-reduced-motion:reduce){.threads path,.corner{animation:none;stroke-dasharray:none}}
/* The primary brand corner stays fixed; only background traces move. */
.corner{animation:none;transform:none;opacity:1}
/* Main logo at 120% of the original preview size. */
.brand{width:264px}.brand img{height:73.2px}
@media(max-width:1100px){.brand{width:222px}}
/* Keep the tagline optically aligned beneath the enlarged wordmark. */
.brand span{align-self:flex-start;margin-top:-5px;margin-left:35px;font-size:12px;letter-spacing:.5px;line-height:1.3;white-space:nowrap}
@media(max-width:1100px){.brand span{margin-left:29px;font-size:11px}}
/* Distinct chapters below the opening service cards. */
.services{padding-bottom:72px}
.workshops{max-width:none;background:#e7eede;border-top:1px solid #d3dfc6;border-bottom:1px solid #d3dfc6;padding-top:80px;padding-bottom:85px}
.workshops .section-head,.workshops .workshop-grid{max-width:1296px;margin-left:auto;margin-right:auto}
.workshops .section-head{margin-bottom:42px}.workshops .eyebrow{display:flex;align-items:center;gap:12px}.workshops .eyebrow:before{content:'';width:5px;height:30px;background:#76ac38}
.workshop-grid{gap:18px}.workshop-grid>a{background:#fff;padding:28px;border:1px solid #d6dfcd;border-top:4px solid #8bc34a;border-radius:0;transition:transform .2s,box-shadow .2s}
.workshop-grid>a:hover{transform:translateY(-4px);box-shadow:0 10px 24px #34492c10}.workshop-grid h3{margin-top:28px}.workshop-grid a>div{margin-top:28px}
.about{background:#fff;max-width:none;padding-top:100px;padding-bottom:100px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;border-bottom:1px solid #e0e5db}
.about>div:first-child{justify-self:end;width:min(100%,600px)}.about>div:last-child{justify-self:start;width:min(100%,600px)}.about .eyebrow{max-width:340px}.about-photo{height:480px}
.contact{max-width:none;background:#28382e;padding-top:80px;padding-bottom:85px;border-top:10px solid #8bc34a}.contact .eyebrow{color:#c6d8b8}.contact h2{font-size:clamp(44px,5vw,76px)}
.direction{max-width:none;background:#edf0e8;padding-top:35px;padding-bottom:35px;border-top:1px solid #dce3d5}footer{max-width:none;background:#fff;padding-top:32px;padding-bottom:32px}
@media(max-width:800px){.about{gap:40px;padding-top:70px;padding-bottom:70px}.workshop-grid>a{padding:22px}.services{padding-bottom:50px}}
@media(max-width:600px){.workshops{padding-top:48px;padding-bottom:50px}.workshops .section-head{margin-bottom:30px}.workshop-grid{gap:18px}.workshop-grid h3{margin-top:22px}.about{grid-template-columns:1fr;gap:35px;padding-top:60px;padding-bottom:60px}.about-photo{height:330px}.contact{padding-top:48px;padding-bottom:50px}.services{padding-bottom:42px}}
@media(prefers-reduced-motion:reduce){.workshop-grid>a{transition:none}}
.workshop-grid>a{display:flex;flex-direction:column}.workshop-grid h3{min-height:0}.workshop-grid p{padding-bottom:18px}.workshop-grid a>div{margin-top:auto}
/* Three visible workshops drawn from the shared catalogue collection. */
.workshop-grid>a{min-height:330px;opacity:1;transition:opacity .22s,transform .22s,box-shadow .22s}.workshop-grid>a.deck-changing{opacity:0;transform:translateY(8px)}
.deck-controls{max-width:1296px;margin:24px auto 0;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:12px;color:#56634c}.deck-controls>div{display:flex;gap:12px}.deck-controls button{border:1px solid #aebea0;background:transparent;border-radius:0;padding:11px 15px;color:#34492c;font-size:12px}.deck-controls button:hover{background:#d7e4ca}.deck-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:600px){.deck-controls{align-items:start;flex-direction:column;gap:16px}.deck-controls>div{flex-wrap:wrap}.workshop-grid>a{min-height:290px}}
@media(prefers-reduced-motion:reduce){.workshop-grid>a{transition:none}}
/* Workshop categories use an accessible brand green on white. */
.workshop-grid>a>span{color:#527e29}
/* Workshop cards echo the charcoal and green logo strokes. */
.workshop-grid>a{border-top:4px solid #454a4d;border-bottom:4px solid #8bc34a}

/* Keep the enlarged logo and menu on one line on narrow phones. */
@media(max-width:600px){.brand{width:calc(100% - 100px);max-width:222px;flex-shrink:1}}
