@font-face{font-family:Inter;src:url(assets/InterVariable.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{color-scheme:light;--paper:#fff8f0;--ink:#35283c;--soft-ink:#594a61;--violet:#593681;--lavender:#d9c7f4;--coral:#a43b49;--peach:#fbe0cb;--line:#d2bdce;--shadow:0 12px 30px #5d36621a,0 1px 0 #fff inset;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--paper)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;line-height:1.58}
[hidden]{display:none!important}
img{display:block;max-inline-size:100%;block-size:auto}
figure{margin:0}
a{color:var(--violet);text-underline-offset:.2em}
h1,h2,h3,h4,p{margin:0}
p+p{margin-top:.8em}
h1,h2,h3,h4{font-family:Georgia,serif;line-height:1.06;font-weight:700;overflow-wrap:break-word}
h1{font-size:clamp(2.75rem,6vw,6.35rem);letter-spacing:-.057em}
h2{font-size:clamp(2rem,3.75vw,3.7rem);letter-spacing:-.048em}
h3{font-size:clamp(1.35rem,2.3vw,2.1rem);letter-spacing:-.035em}
h4{font-size:1.24rem}
h2+p,h3+p,h4+p{margin-top:.55em}
.eyebrow{font-size:.73rem;font-weight:780;letter-spacing:.14em;text-transform:uppercase;color:var(--violet);margin-bottom:.65rem}
.lead{font-size:clamp(1.05rem,1.5vw,1.23rem);max-width:53ch;color:var(--soft-ink)}
.fine{color:var(--soft-ink);font-size:.88rem}
.wrap{width:min(calc(100% - clamp(2rem,9vw,8rem)),76rem);margin-inline:auto}
.actions{display:flex;gap:.7rem 1rem;align-items:center;flex-wrap:wrap;margin-top:1.3rem}
.button,button{min-block-size:2.75rem;display:inline-flex;align-items:center;justify-content:center;gap:.65em;border:1px solid transparent;border-radius:999px;background:var(--violet);color:white;padding:.63em 1.12em;font:inherit;font-size:.94rem;font-weight:720;text-decoration:none;cursor:pointer;line-height:1.3;text-align:center}
.button:hover,button:hover{box-shadow:0 0 0 2px currentColor inset}
button:disabled{cursor:default;opacity:.68}
.quiet{background:#fffdf8;color:var(--violet);border-color:var(--line)}
.text-link{font-weight:700}
:focus-visible{outline:3px solid #642b92;outline-offset:4px}
.skip,.sr-only{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%)}
.skip:focus{inline-size:auto;block-size:auto;clip-path:none;z-index:5;background:white;padding:.7rem}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem}
.wordmark{font:700 clamp(1.25rem,2.5vw,1.65rem)/1 Georgia,serif;text-decoration:none;white-space:nowrap;color:inherit}
.wordmark span{color:#8659b1}
nav{display:flex;align-items:center;gap:.45rem clamp(.7rem,2vw,1.8rem);flex-wrap:wrap}
nav a:not(.button){font-size:.9rem;color:var(--ink);font-weight:640;text-decoration:none;padding-block:.5rem}
nav a:not(.button):hover,nav a[aria-current]{text-decoration:underline}
nav .button,.hero .button{background:var(--coral)}
.menu-toggle{display:none}
.hero{min-height:min(45vw,620px);display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(1.1rem,4vw,4rem);align-items:center;padding-block:clamp(2rem,5vw,5rem) clamp(3rem,7vw,7rem)}
.hero-label{display:inline-flex;align-items:center;gap:.55rem;padding:.45rem .8rem;background:#ffe4d5;border-radius:99px;margin-bottom:1rem}
.hero-copy{container-type:inline-size;min-inline-size:0}
.hero h1{
 font-size:clamp(1.9rem,10.8cqi,4.85rem);
 overflow-wrap:normal;
 text-wrap:balance;
}
.hero-words{font-size:min(1em,15.5cqi)}
.hero h1 em{color:var(--violet);font-weight:500}
.hero-accent{color:var(--coral)}
.hero h1+p{margin-top:1.25rem}
.hero-visual{position:relative;isolation:isolate;min-width:0}
.hero-art{inline-size:100%;aspect-ratio:4/3;object-fit:cover;border-radius:48% 40% 27% 26% / 33% 36% 24% 28%;box-shadow:var(--shadow)}
.hero-visual::before{content:"";position:absolute;inset:2% -4% -4% 5%;background:#ffd6b8;border-radius:51% 44% 35% 30%;z-index:-1;transform:rotate(6deg)}
.hero-spark{position:absolute;inset:-.7em auto auto 4%;font-size:clamp(2rem,5vw,4rem);color:#7c49aa;pointer-events:none}
.margin-note,.closing-note{font:italic 1.15rem/1.35 Georgia,serif}
.margin-note{position:absolute;right:3%;bottom:-.7em;transform:rotate(-8deg);color:var(--violet);background:#fff9f0;padding:.35em .8em;border-radius:99px;box-shadow:var(--shadow)}
.work-band,.services-band{position:relative;isolation:isolate;padding-block:clamp(2.5rem,5vw,5rem);margin-block:1rem 0;background:var(--lavender)}
.work-band::before,.services-band::before{position:absolute;inset:-2.15rem 0 auto;block-size:3rem;z-index:-1;content:"";background:inherit;clip-path:path(evenodd,"M0 30 Q120 0 240 22 T480 22 T720 22 T960 22 T1200 22 T1440 22 T1680 22 T1920 22 T2160 22 T2400 22 T2640 22 T2880 22 V48 H0 Z")}
.services-band{background:var(--peach)}
.section-head{margin-bottom:clamp(1.25rem,3vw,2.2rem)}
.section-head .lead{margin-top:.75rem}
.work-band .section-head{text-align:center}
.work-band .lead{margin-inline:auto}
.home-work,.work-index,.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.8rem,1.65vw,1.5rem)}
.work-card{background:#fffdf9;box-shadow:var(--shadow);border-radius:1.35rem;overflow:clip;border:1px solid #ffffffa0;min-width:0}
.work-card:focus-within{outline:3px solid var(--violet);outline-offset:3px}
.work-card a{display:block;text-decoration:none;color:var(--ink);height:100%}
.work-card a:hover h3{text-decoration:underline;text-underline-offset:.16em}
.work-card img{inline-size:100%;aspect-ratio:1.34;object-fit:cover;background:var(--tint)}
.work-card img.output-cover{object-fit:contain;padding:clamp(.5rem,1.5vw,1rem)}
.case-link{display:block;margin-top:.7rem;color:var(--violet);font-size:.86rem;font-weight:700}
.card-copy{padding:1rem 1.1rem;position:relative;min-height:9.25rem;padding-inline-end:3rem}
.card-copy .eyebrow{letter-spacing:.06em}
.round-arrow{position:absolute;inset:auto .75rem .85rem auto;display:grid;place-items:center;width:2rem;height:2rem;background:var(--tint);border-radius:50%;color:var(--violet);font-weight:800}
.band-link{margin-top:1.25rem;text-align:center}
.process-band,.journal-band,.faq-band,.brief-layout,.service-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);gap:clamp(1.5rem,5vw,5rem);align-items:center;margin-block:clamp(2.5rem,7vw,6rem)}
.process-band .stages{grid-template-columns:repeat(4,minmax(0,1fr))}
.stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:0;gap:1.15rem}
.stages h3{font-size:1.22rem}
.stages p{font-size:.92rem}
.medallion{width:3.65rem;margin-bottom:.65rem;filter:drop-shadow(0 4px 5px #633d6b29)}
.service-card,.context-grid article,.annotation,.brief-panel,.decision-grid article,.journal-card{background:#fffdfa;border:1px solid #fff;border-radius:1.45rem;padding:clamp(1rem,2.4vw,1.75rem);box-shadow:var(--shadow)}
.service-card{display:flex;flex-direction:column;align-items:flex-start}
.service-card a:not(.text-link){text-decoration:none;color:inherit}
.service-card .text-link{margin-top:auto;padding-top:.75rem}
.journal-band img,.service-intro>img,.brief-layout img{inline-size:100%;border-radius:35% 35% 1.5rem 1.5rem / 18% 18% 1.5rem 1.5rem;max-height:30rem;object-fit:cover;box-shadow:var(--shadow)}
.journal-band img+h2,.journal-band img+.eyebrow,.brief-layout img{margin-top:1.25rem}
.journal-card{margin-bottom:.7rem}
.journal-card h3 a{color:inherit}
.faq-band{align-items:start;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
details{border-bottom:1px solid var(--line);padding-block:.85rem}
details p{margin-block:.5rem}
summary{cursor:pointer;font-weight:700}
.closing{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:2rem;padding:clamp(1.5rem,5vw,4rem);margin-block:clamp(2.5rem,6vw,5rem);background:linear-gradient(115deg,#ffd5c0,#f9b1ad 75%,#e6c6f4);border-radius:3rem 2rem 4rem 2rem / 2rem 3rem 2rem 4rem;box-shadow:var(--shadow)}
.closing .button{margin-top:1rem;background:var(--coral)}
.closing-note{justify-self:center;transform:rotate(-8deg);padding:1rem 1.5rem;background:#fff4df;color:#723c58;border-radius:.35rem 1.15rem .4rem .75rem;box-shadow:var(--shadow);font-size:clamp(1.15rem,2.1vw,1.9rem)}
.closing-note span{color:var(--violet)}
footer{background:#4f3470;color:#fff8f0;padding-block:2.4rem}
footer a{color:inherit;display:block}
footer h2{font:740 1rem/1.25 Inter,sans-serif;margin-bottom:.65rem}
footer p,footer a:not(.wordmark){font-size:.9rem;margin-top:.35rem}
.footer-grid{display:grid;grid-template-columns:1.45fr 1fr 1fr 1fr;gap:1.2rem}
.footer-grid .wordmark{white-space:normal}
.footer-grid>div{min-inline-size:0;overflow-wrap:anywhere}
.page-intro{width:min(calc(100% - clamp(2rem,9vw,8rem)),76rem);margin:clamp(2.5rem,6vw,5.2rem) auto clamp(1.5rem,4vw,3.5rem)}
.page-intro .lead{margin-top:.75rem}
.page-intro h1{max-width:18ch}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.1rem,3vw,2.5rem)}
.work-index{grid-template-columns:repeat(2,minmax(0,1fr))}
.work-index img,.related img{aspect-ratio:1.55}
.peach{--tint:#f9ddcb}.mint{--tint:#dceadd}.blue{--tint:#deeaf7}.lilac{--tint:#e7dcf7}
.project-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.2rem,4vw,3.5rem);align-items:center;padding:clamp(1.15rem,3.7vw,3rem);border-radius:2rem 3.5rem 2rem 3.5rem;background:var(--tint);margin-block:1.6rem 2.5rem}
.project-hero .page-intro,.service-intro .page-intro,.brief-layout .page-intro{width:auto;margin:0 0 .85rem}
.project-hero img{width:100%;aspect-ratio:1.25;object-fit:cover;border-radius:1.5rem;box-shadow:var(--shadow)}
.project-hero.mint img{aspect-ratio:1.6;border-radius:2rem .8rem 2rem .8rem}
.project-hero.blue{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.project-hero.lilac img{border-radius:45% 45% 1.5rem 1.5rem / 25% 25% 1.5rem 1.5rem}
.project-hero .button{margin-top:1rem}
.context-grid,.decision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.85rem,2.2vw,1.75rem);margin-block:2rem}
.context-grid h2,.decision-grid h2{font-size:clamp(1.4rem,2.5vw,2.3rem)}
.design-outputs{margin-block:clamp(2rem,5vw,4rem);scroll-margin-top:1rem}
.output-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.9rem,2.3vw,1.6rem)}
.output-grid figure{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;min-width:0;background:#fffdfa;border:1px solid var(--line);border-radius:1.45rem;box-shadow:var(--shadow)}
.output-image{display:grid;place-items:center;aspect-ratio:5/4;padding:clamp(.65rem,1.7vw,1.2rem);background:var(--tint);border-radius:1.4rem 1.4rem 0 0}
.output-image img{inline-size:100%;block-size:100%;max-block-size:100%;min-block-size:0;object-fit:contain}
.output-grid figcaption{padding:1rem 1.15rem;overflow-wrap:anywhere}
.output-grid figcaption h3{font-size:clamp(1.35rem,2vw,1.65rem)}
.output-grid figcaption p{font-size:.95rem;color:var(--soft-ink)}
.output-grid .text-link{display:inline-block;margin-top:.7rem}
.decision-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.annotation{background:#f0e4fa}
.prototype{margin-block:clamp(2.25rem,6vw,5rem);background:var(--tint);padding:clamp(.9rem,3vw,2.3rem);border-radius:1.5rem;scroll-margin-top:1rem}
.prototype-live,.static-walkthrough{margin-top:1.25rem;background:#fffdfa;border:1px solid #fff;border-radius:1.35rem;padding:clamp(.8rem,2.7vw,1.8rem);box-shadow:var(--shadow)}
.static-walkthrough img{border-radius:.75rem;margin-bottom:.85rem}
.prototype-head{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:start;gap:.7rem;margin-bottom:1rem}
.prototype-controls,.filters{display:flex;align-items:end;flex-wrap:wrap;gap:.8rem;margin-bottom:.85rem}
label{display:block;font-weight:690;font-size:.91rem;max-width:100%}
input,select,textarea{display:block;font:inherit;color:inherit;background:#fffefa;border:1px solid #907b9c;border-radius:.65rem;padding:.55rem .65rem;margin-top:.3rem;max-width:100%;min-width:0}
textarea{width:100%;resize:vertical}
[aria-invalid=true]{border:2px solid var(--coral)}
.bloom-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.bloom-picker button{display:grid;gap:.2rem;border-radius:1rem;background:#f7e8d8;color:var(--ink);border-color:#c5ad99}
.bloom-picker button[aria-pressed=true]{border:2px solid var(--violet);background:#efe0f8}
.bloom-picker span{font-size:1.55rem;color:#416b51}
.prototype-surface,.status-strip,.petal-specimen,#reading-preview{background:#f1ecf9;padding:1rem;border-radius:1rem;margin-block:.9rem}
.prototype-surface button{margin-top:.6rem}
.prototype [role=status]{margin-top:.65rem}
.reading-frame{container-type:inline-size;inline-size:100%;margin:.85rem auto 0;padding:.65rem;background:#d9e9de;border-radius:1rem}
.reading-frame[data-width=tablet]{max-inline-size:35rem}
.reading-frame[data-width=phone]{max-inline-size:20rem}
.reading-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}
@container(max-width:42rem){.reading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container(max-width:25rem){.reading-grid{grid-template-columns:minmax(0,1fr)}}
.reading-grid article{background:#fffef6;border-radius:.75rem;padding:.7rem}
.reading-grid button,#reading-preview button{margin-top:.6rem}
.task-list{padding:0;list-style:none;margin-bottom:0}
.task-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.55rem;padding:.65rem;border-bottom:1px solid var(--line)}
.task-list span{font-weight:680;color:#3f346f}
.petal-specimen{display:flex;align-items:center;flex-wrap:wrap;gap:1.1rem}
.petal-specimen>div{min-inline-size:0;overflow-wrap:anywhere}
[data-specimen]{border-radius:1rem;padding:.45rem .85rem;background:#593681;color:white;font-weight:760}
[data-variant=quiet],[data-variant=informative]{background:#e2d4f4;color:#412766}
[data-variant=positive]{background:#dcebdd;color:#23452f}
[data-state=focus]{outline:3px solid #3e226b;outline-offset:3px}
[data-state=unavailable],[data-state=muted]{background:#ded8de;color:#564d56;border:1px dashed currentColor}
.related,.faq-list,.reading-copy,.process-detail{margin-block:clamp(1.5rem,4vw,3.5rem)}
.portraits img{aspect-ratio:1.35;object-fit:cover;object-position:center 38%;width:100%;border-radius:2rem}
.portraits h2{margin-top:.65rem}
.reading-copy section+section{margin-top:1.5rem}
.reading-copy h2{font-size:clamp(1.5rem,3vw,2.55rem)}
.reading-copy p{max-width:67ch;margin-bottom:1rem}
.brief-layout{align-items:start}
.brief-panel fieldset{border:0;padding:0;margin:0;min-inline-size:0}
.brief-panel fieldset+fieldset,.brief-panel label,.brief-panel [data-review-text] section{margin-top:1rem}
legend{font:700 1.5rem/1.2 Georgia,serif}
#brief-error{color:#8c2636;font-weight:700;margin-top:.65rem}
[data-inspiration]{background:#eee3f8;padding:.75rem;border-radius:.75rem;margin-block:.8rem}
[data-review-text] p{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}
[data-copy-status]{margin-top:.7rem}
@media(max-width:980px){
 .home-work,.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .process-band{grid-template-columns:1fr}
 .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
 .hero{grid-template-columns:minmax(0,1fr)}
 .hero-copy{max-inline-size:38rem}
 .hero-visual{width:100%;max-inline-size:36rem;justify-self:center}
}
@media(max-width:760px){
 .output-grid{grid-template-columns:minmax(0,1fr)}
 .output-grid figure{max-inline-size:36rem}
 .site-header{flex-wrap:wrap}
 .js .menu-toggle{display:inline-flex}
 nav{width:100%}
 .js nav:not(.open){display:none}
 .hero,.project-hero,.project-hero.blue,.journal-band,.faq-band,.brief-layout,.service-intro{grid-template-columns:minmax(0,1fr)}
 .hero{padding-top:1.6rem;gap:1.6rem}
 .hero-art{width:min(100%,32rem);margin-inline:auto}
 .hero-visual::before{inset:2% -1% -2%}
 .context-grid,.decision-grid{grid-template-columns:1fr}
 .stages,.process-band .stages{grid-template-columns:repeat(2,minmax(0,1fr))}
 .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .brief-layout img{max-height:14rem}
}
@media(max-width:460px){
 .home-work,.work-index,.service-grid,.two,.decision-grid.two,.closing,.bloom-picker{grid-template-columns:minmax(0,1fr)}
 .home-work img,.work-index img{aspect-ratio:1.6}
 .card-copy{min-height:0}
 .closing-note{justify-self:start}
 .footer-grid{grid-template-columns:minmax(0,1fr)}
}
@media(forced-colors:active){
 .button,button,[data-specimen],.work-card,.prototype-live{border:1px solid ButtonText}
 :focus-visible,[data-state=focus]{outline:3px solid Highlight}
}
@media print{
 .site-header,footer,.skip,.brief-panel .actions,.brief-panel [data-copy-status],.brief-layout img{display:none!important}
 .brief-layout{display:block;margin:0;width:auto}
 .brief-panel{box-shadow:none;border:none}
 body.reviewing .brief-layout aside,body.reviewing [data-review]>label,body.reviewing [data-review] button{display:none}
}
