/* Workshop character: deliberate motion, generous type, a little wit. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--on-dark:oklch(98.46% .0027 106.45);--muted-on-dark:oklch(76% 0 0)}
.hero-headline{font-size:clamp(2.65rem,6.4vw,6.6rem);margin-bottom:44px}
.hero-headline .headline-line{display:block;color:var(--ink);line-height:1.09;letter-spacing:-.058em}
.hero-headline .accent-line{color:var(--blue)}
.workshop-note{align-self:end;padding:0 24px 0 0}.workshop-note p{font-size:14px;line-height:1.6;margin:14px 0 0;color:var(--ink)}
.aside-note{font:12px/1.7 var(--mono);color:var(--muted);margin-top:22px!important;margin-bottom:0}
.recognition>div:first-child .aside-note{margin-top:30px!important}
.recognition-list{list-style:none;margin:0 0 28px;padding:0;border-top:1px solid var(--line)}
.recognition-list li{display:flex;align-items:baseline;gap:24px;padding:20px 0;border-bottom:1px solid var(--line);font-size:clamp(16px,1.5vw,21px);line-height:1.45}
.recognition-list li>span{font:12px var(--mono);color:var(--blue);flex-shrink:0}.recognition-close{color:var(--ink);margin-bottom:38px}.recognition-close a{display:inline-block;margin-left:15px}.recognition .two-col{margin-top:32px}
.service>p{margin-top:18px;font-size:16px}.service>h3{font-size:clamp(24px,2.3vw,34px);margin-bottom:14px}.service{position:relative;transition:background-color .3s,color .3s}
.service::before{content:'';position:absolute;top:-1px;left:0;right:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}.service:hover::before,.service:focus-visible::before{transform:scaleX(1)}
.button{position:relative;transition:background-color .25s,border-color .25s;min-height:52px}.button span,.nav-cta span,.project-title>span{display:inline-block;transition:transform .35s var(--ease-out)}.button:hover span,.button:focus-visible span,.nav-cta:hover span,.project-cover:hover .project-title>span{transform:translate(3px,-3px)}
.text-link{text-decoration-thickness:1px;transition:color .2s,text-underline-offset .3s}.text-link:hover{text-underline-offset:9px}
.project-cover{display:block}.project img{transition:transform .8s var(--ease-out),filter .4s;will-change:auto}.project-cover:hover img,.project-cover:focus-visible img{transform:scale(1.035)}
.project-image>.project-open{left:auto;right:16px;bottom:16px;transform:translateY(8px);opacity:0;background:var(--blue);color:var(--paper);transition:opacity .25s,transform .4s var(--ease-out)}.project-cover:hover .project-open,.project-cover:focus-visible .project-open{opacity:1;transform:translateY(0)}
.project-story{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:20px}.project-story summary{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer;padding:18px 0;list-style:none;font-size:14px;line-height:1.5;min-height:58px}.project-story summary::-webkit-details-marker{display:none}.project-story summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.project-story summary span{font:24px var(--mono);color:var(--blue);transition:transform .3s var(--ease-out)}.project-story[open] summary span{transform:rotate(45deg)}.story-content{padding:8px 0 26px}.story-content p{margin:10px 0 24px;font-size:16px}.story-animating{overflow:hidden}
.manifesto{background:var(--ink);color:var(--on-dark);padding:80px 6%;margin:0 -5.56%;position:relative;overflow:hidden}.manifesto .eyebrow{color:var(--muted-on-dark)}.manifesto h2{font-size:clamp(38px,5.5vw,82px);line-height:1.12;margin:40px 0 30px;max-width:1000px;letter-spacing:-.05em}.manifesto em{font-style:normal;text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:.15em;text-decoration-thickness:2px}.manifesto p{color:var(--muted-on-dark);max-width:610px;font-size:18px;margin-bottom:36px}.manifesto::after{content:'';position:absolute;left:6%;right:6%;bottom:32px;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left}.manifesto.entered::after{animation:line-draw 1s var(--ease-out) forwards}
.process-strip a{position:relative;transition:background .25s}.process-strip a:hover{background:var(--paper)}.process-strip a::after{content:'';position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}.process-strip a:hover::after,.process-strip a:focus-visible::after{transform:scaleX(1)}
.closing h2{font-size:clamp(38px,4.5vw,66px)}
.section-heading>.text-link{position:static;grid-column:2;justify-self:end;margin-bottom:24px}
@keyframes line-draw{to{transform:scaleX(1)}}
@media(hover:none){.project-image>.project-open{opacity:1;transform:none}}
@media(max-width:700px){.section-heading>.text-link{grid-column:1;justify-self:start}}
@media(max-width:700px){.hero-headline{font-size:clamp(2.45rem,8.8vw,3.85rem)}.hero-headline .headline-line{line-height:1.12}.workshop-note{display:none}.recognition>div:first-child .aside-note{display:none}.recognition-list li{gap:16px}.recognition-close a{margin:12px 0 0;display:block}.manifesto{padding:52px 5.56% 65px}.manifesto h2{margin-top:30px}.manifesto p{font-size:16px}.project-image>.project-open{font-size:11px;padding:8px}.project-image>span:first-of-type{max-width:58%;font-size:10px}.hero-bottom .button{padding:14px 18px;gap:20px}.hero-bottom .text-link{margin-left:16px}.service>p{font-size:16px}}
@media(prefers-reduced-motion:reduce){.manifesto::after{transform:scaleX(1)}.project-cover:hover img,.project-cover:focus-visible img,.button:hover span,.button:focus-visible span,.nav-cta:hover span,.project-cover:hover .project-title>span{transform:none}*,*::before,*::after{animation:none!important;transition:none!important}}
