/* Shared component contract. Loaded after legacy presentation layers. */
:root{--space-1:8px;--space-2:12px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--space-7:64px;--radius-control:16px;--radius-card:24px;--radius-media:24px;--surface-mint:#dcecc8;--surface-pink:#faecec;--surface-lilac:#e6daf4;--surface-light:#edf5e2;--text-primary:#1f2921;--text-secondary:#374338;--focus:#812b36;--stroke:#687461;--shadow-rest:0 7px 22px rgba(31,41,33,.06);--shadow-hover:0 12px 28px rgba(31,41,33,.12)}
html{scrollbar-gutter:stable}
button,a,input,select,textarea{touch-action:manipulation}
button{font-family:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:5px}
.site-footer :focus-visible{outline-color:#f4d56d}
.btn,.page-subnav a,.exp-filter-btn{border-radius:var(--radius-control);min-height:44px}
.btn,.exp-filter-btn{padding:12px 18px}
.nav-links>a,.footer-grid>nav a,.footer-socials a{min-height:44px}
.nav-links a[aria-current]{font-weight:700;text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px}
.entry-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);align-items:start}
.entry-link{padding:0 0 var(--space-4);gap:var(--space-3);min-width:0;border:0}
.entry-link img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:var(--radius-media);box-shadow:var(--shadow-rest)}
.entry-link h3{margin:0 0 var(--space-2);font-size:clamp(22px,2.3vw,30px)}
.entry-link p{line-height:1.6;max-width:32ch}
.entry-link:hover img{box-shadow:var(--shadow-hover)}
.work-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6) var(--space-5)}
.work-list .work-item:nth-child(n){grid-column:auto;margin:0;min-width:0}
[data-page=work] .work-item .work-thumb,[data-page=work] .work-item[href*='the-coastierge'] .work-thumb{aspect-ratio:8/5;padding:var(--space-2);border-radius:var(--radius-media);background:var(--paper-2);transform:none!important}
[data-page=work] .work-thumb img,[data-page=work] .work-item[href*='the-coastierge'] .work-thumb img{width:100%;height:100%;object-fit:contain;transform:none!important;border-radius:12px;will-change:auto}
.work-copy{padding:var(--space-4) 0 0}
.work-copy p{margin-top:var(--space-3);max-width:48ch;line-height:1.75}
#three-d .three-d-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6) var(--space-5)}
#three-d .three-d-card:nth-child(n){max-width:none;width:100%;margin:0;justify-self:stretch}
#three-d .three-d-card:nth-child(n) .three-d-media{aspect-ratio:1;width:100%;max-width:none;border-radius:var(--radius-media)}
#three-d .three-d-card:nth-child(n) video{width:100%;height:100%;aspect-ratio:auto;object-fit:contain}
.illustration-grid{gap:var(--space-6) var(--space-4)}
.illustration-grid .illustration-card:nth-child(n){margin:0;min-width:0}
.illustration-image{border-radius:var(--radius-media);box-shadow:var(--shadow-rest)}
.illustration-copy,#three-d .three-d-caption{padding:var(--space-4) 0 0}
.illustration-copy p,#three-d .three-d-caption p{line-height:1.75;margin-top:var(--space-3);max-width:42ch}
.illustration-open{border-radius:var(--radius-control);min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:10px 14px}
.illustration-open .icon{width:18px;height:18px}
.visual-toolbar{margin:0 0 var(--space-5)}
.visual-toolbar .btn{border:1px solid var(--stroke);border-radius:var(--radius-control);padding:12px 18px;background:var(--surface-light);gap:10px}
.visual-toolbar .btn:hover{background:var(--surface-pink);border-color:var(--focus);color:var(--text-primary)}
.process{gap:var(--space-4);align-items:stretch}
.process .process-step{border:1px solid rgba(55,67,56,.24);border-radius:var(--radius-card);padding:var(--space-5);box-shadow:var(--shadow-rest);min-width:0}
.process .process-step:nth-child(1){background:var(--surface-light)}
.process .process-step:nth-child(2){background:var(--surface-pink)}
.process .process-step:nth-child(3){background:var(--surface-lilac)}
.process .process-step h3{font-size:clamp(24px,2.3vw,30px);line-height:1.15;margin:var(--space-4) 0 var(--space-3)}
.process .process-step p{font-size:1rem;line-height:1.75;max-width:42ch;color:var(--text-secondary)}
.step-index{min-height:32px;padding:7px 12px;border:1px solid var(--stroke);background:var(--surface-light);border-radius:var(--radius-control)}
.skills-ledger{gap:var(--space-3)}
.skills-ledger .skill-row,.skills-ledger .skill-row:first-child{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:start;gap:var(--space-4);padding:var(--space-4);border:1px solid rgba(55,67,56,.24);border-radius:var(--radius-card);background:var(--surface-light)}
.skills-ledger .skill-label{padding-top:9px;font-size:1rem;line-height:1.5}
.chip-row{gap:10px;align-items:flex-start}
.skills-ledger .skill-row .chip{padding:9px 14px;min-height:40px;border:1px solid rgba(55,67,56,.26);border-radius:16px;background:var(--paper);font-size:.88rem;line-height:1.45;font-weight:500;white-space:normal;overflow-wrap:anywhere;max-width:100%}
.skills-ledger .skill-row:nth-child(2) .chip{background:var(--surface-pink)}
.skills-ledger .skill-row:nth-child(3) .chip{background:var(--surface-lilac)}
.skills-ledger .skill-row:nth-child(4) .chip{background:#fbf2d5}
.skills-ledger .skill-row:nth-child(5) .chip{background:var(--blue-soft)}
.about-copy p,.case-content p{line-height:1.8;max-width:62ch}
.about-copy>p+p{margin-top:var(--space-4)}
.artwork-dialog{padding:0;border:1px solid var(--stroke);border-radius:var(--radius-card);background:var(--paper);color:var(--ink);width:min(1100px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 20px 80px rgba(0,0,0,.22)}
.artwork-dialog::backdrop{background:rgba(20,27,22,.78)}
body.artwork-open{overflow:hidden}
.artwork-shell{padding:var(--space-4)}
.artwork-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:var(--space-3)}
.artwork-count{font-family:var(--mono);font-size:.8rem;color:var(--ink-soft)}
.artwork-close{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--stroke);border-radius:var(--radius-control);background:var(--surface-light);color:var(--ink);cursor:pointer}
.artwork-close .icon{width:22px;height:22px}
.artwork-dialog figure{margin:0}
.artwork-dialog img{display:block;width:100%;height:min(58dvh,650px);object-fit:contain;border-radius:16px;background:var(--paper-2)}
.artwork-dialog figcaption{padding-top:var(--space-4)}
.artwork-dialog h2{font-size:clamp(26px,3vw,40px);line-height:1.15;letter-spacing:-.035em}
.artwork-dialog figcaption p{font-size:1rem;line-height:1.7;white-space:pre-line;max-width:65ch;margin-top:var(--space-3)}
.artwork-navigation{display:flex;justify-content:space-between;gap:16px;margin-top:var(--space-4)}
.artwork-navigation .btn{gap:10px;cursor:pointer}
.illustration-image:hover,.illustration-image:focus-visible{box-shadow:var(--shadow-hover)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.entry-link img{transition:transform .25s ease,box-shadow .25s ease}.entry-link:nth-child(odd):hover img{transform:translateY(-4px) rotate(-.6deg)}.entry-link:nth-child(even):hover img{transform:translateY(-4px) rotate(.6deg)}.process .process-step:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}}
@media(max-width:1100px){.process{grid-template-columns:1fr}.process .process-step{display:grid;grid-template-columns:150px minmax(0,1fr);column-gap:var(--space-5);align-items:start}.process .process-step .step-index{grid-row:span 2;justify-self:start}.process .process-step h3{margin:0 0 var(--space-3)}}
@media(max-width:920px){.skills-ledger .skill-row,.skills-ledger .skill-row:first-child{grid-template-columns:1fr}.skills-ledger .skill-label{padding:0}}
@media(max-width:600px){.entry-grid{grid-template-columns:1fr}.entry-link{grid-template-columns:96px minmax(0,1fr) auto;gap:var(--space-3)}.entry-link img{width:96px;height:96px;aspect-ratio:1;grid-column:auto;border-radius:20px}.entry-link h3{font-size:22px}.entry-link p{font-size:.85rem}.work-list,#three-d .three-d-grid{grid-template-columns:1fr;gap:var(--space-6)}.process .process-step{display:block;padding:var(--space-4)}.process .process-step h3{margin:var(--space-4) 0 var(--space-3)}.skills-ledger .skill-row,.skills-ledger .skill-row:first-child{padding:var(--space-4)}.artwork-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:20px}.artwork-shell{padding:16px}.artwork-dialog img{height:48dvh}.artwork-navigation .btn{font-size:.85rem;padding:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.entry-link img,.illustration-image,.process .process-step{transition:none!important;transform:none!important}}
@media(forced-colors:active){.btn,.chip,.process-step,.skill-row,.page-subnav a,.artwork-close{border:1px solid ButtonText!important}.page-subnav a[aria-current]{outline:2px solid Highlight}.artwork-dialog::backdrop{background:Canvas}}
.nav-links a[aria-current]::after{display:none}
.artwork-header{position:sticky;top:0;background:var(--paper);z-index:3}
.artwork-dialog img{height:min(50dvh,600px)}
@media(max-width:600px){.artwork-dialog img{height:48dvh}}
@media(max-width:360px){.site-nav .wrap{gap:10px}.nav-mark{font-size:1rem}.nav-identity{gap:7px}.language-switch{font-size:.66rem}}
.exp-filter-btn .icon,.exp-filter-btn.is-active .icon{color:inherit}
[hidden]{display:none!important}
.exp-filter-status{margin-top:20px;font-size:.78rem;color:var(--ink-soft);min-height:1.6em}
.exp-filter-btn.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* An illustrated editorial rhythm: expressive frames, generous reading space. */
.section-head{gap:32px;padding-block:32px 48px}
.section-head .lede{margin-top:28px;max-width:50ch;line-height:1.75}
.section-head .page-title{max-width:19ch}
.hero-art-frame{border-radius:48% 44% 24% 30%;background:#9588bc}
.hero-art-note{border-radius:18px 18px 18px 4px;box-shadow:0 5px 0 rgba(31,41,33,.10)}
.hero-next-idea{display:inline-flex;align-items:center;gap:10px;min-height:44px;border:1px solid var(--stroke);border-radius:999px;padding:10px 16px;background:var(--surface-pink);color:var(--ink);font: .76rem var(--mono);margin-top:18px;cursor:pointer}
.hero-next-idea:hover{background:var(--surface-lilac)}
.entry-grid{gap:32px}
.entry-link{border:1px solid rgba(55,67,56,.28);border-radius:28px;padding:18px;background:var(--surface-light);position:relative}
.entry-link:nth-child(2){background:var(--surface-lilac)}
.entry-link:nth-child(3){background:var(--surface-pink)}
.entry-link img{box-shadow:none;border-radius:20px}
.entry-link>div{padding:8px 0}
.entry-link>.icon{margin-right:8px}
.entry-link h3{font-size:clamp(24px,2.8vw,34px)}
.entry-link p{max-width:27ch}
.work-list{row-gap:64px}
.work-copy{padding:24px 4px 0}
.work-copy h3{font-size:clamp(28px,3vw,42px);line-height:1.12;max-width:24ch}
.work-meta{line-height:1.7;row-gap:6px;margin-bottom:18px}
.work-highlight{display:inline-block;margin-top:20px;border-radius:999px;padding:8px 14px;background:var(--surface-light);border:1px solid rgba(55,67,56,.3);font-size:.78rem}
[data-page=work] .misspop-card .work-thumb{padding:0;background:var(--surface-pink)}
[data-page=work] .misspop-card .work-thumb img{object-fit:cover;object-position:center 38%;border-radius:var(--radius-media)}
.case-content h2{margin-bottom:28px;max-width:20ch}
.case-content p+p{margin-top:24px}
.case-body{padding-block:64px;gap:32px}
.case-meta{row-gap:24px}
.case-header>.case-back{margin-right:16px;margin-bottom:20px}
.case-header>.eyebrow{display:block;margin:4px 0 24px}
.misspop-cover{margin:32px 0 48px}
.misspop-cover img{display:block;width:100%;height:clamp(320px,50vw,680px);object-fit:cover;object-position:50% 35%;border-radius:48px 48px 120px 24px}
.misspop-cover figcaption,.misspop-architecture figcaption{font: .78rem/1.7 var(--mono);color:var(--ink-soft);max-width:70ch;margin-top:18px}
.misspop-image-pair{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.misspop-image-pair img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:24px}
.misspop-architecture{margin-block:24px 48px}
.misspop-architecture .process{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.misspop-architecture .process-step{display:block}
.misspop-architecture .process-step h3{margin-top:24px}
.skill-items{line-height:1.9}
[data-page=experience] .page-title{font-size:clamp(36px,4.6vw,64px);max-width:24ch}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.work-thumb{transition:border-radius .3s ease}.work-item:hover .work-thumb{border-radius:48px 24px 48px 24px!important}.hero-art-frame{transition:border-radius .4s ease}.hero-art:hover .hero-art-frame{border-radius:30% 48% 38% 44%}}
@media(max-width:920px){.section-head{padding-bottom:36px}.misspop-architecture .process{grid-template-columns:1fr}.misspop-architecture .process-step{padding:24px}}
@media(max-width:600px){.entry-grid{gap:18px}.entry-link{padding:16px;grid-template-columns:80px minmax(0,1fr) 20px;gap:14px}.entry-link img{width:80px;height:80px}.entry-link h3{font-size:22px}.entry-link>div{padding:0}.entry-link p{font-size:.78rem}.work-copy{padding-top:24px}.work-copy h3{font-size:30px}.work-meta{font-size:.7rem}.case-body{padding-block:40px}.case-content h2{margin-bottom:24px}.misspop-cover img{height:420px;border-radius:28px 28px 64px 20px}.misspop-image-pair{gap:16px}.misspop-image-pair img{border-radius:18px}.section-head .lede{margin-top:24px}}

/* Phosphor Regular is the single interface icon family. No layered fills. */
.icon[data-library=phosphor]{fill:currentColor!important;stroke:none!important;opacity:1!important;filter:none!important}
.icon[data-library=phosphor] *{opacity:1!important;stroke:none!important;filter:none!important}
.fact-symbol{display:inline-grid;place-items:center;flex:0 0 auto;width:48px;height:48px;border:1px solid var(--stroke);border-radius:16px;background:var(--paper);color:var(--ink)}
.fact-symbol>.icon{width:28px;height:28px;margin:0;color:inherit}
.about-tags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:36px 0 0;padding:0;align-items:stretch}
.fact-card{min-width:0;padding:24px;border:1px solid var(--stroke);border-radius:var(--radius-card);background:var(--surface-light)}
.fact-card:nth-child(2),.case-meta>div:nth-child(2){background:var(--surface-pink)}
.fact-card:nth-child(3),.case-meta>div:nth-child(3){background:var(--surface-lilac)}
.fact-card:nth-child(4),.case-meta>div:nth-child(4){background:#fbf2d5}
.fact-card dt{display:flex;align-items:center;gap:14px;font:600 clamp(17px,1.5vw,21px)/1.3 var(--display);letter-spacing:-.025em}
.fact-card dd{margin:18px 0 0;font-size:.9rem;line-height:1.7;color:var(--ink-soft);max-width:33ch}
.case-meta{gap:20px;align-items:stretch}
.case-meta>div{min-width:0;padding:24px;border:1px solid var(--stroke);border-radius:var(--radius-card);background:var(--surface-light)}
.case-meta dt,.coast-case .case-meta dt{display:flex;align-items:center;gap:12px;font:500 .76rem/1.4 var(--mono);color:var(--ink);margin:0 0 20px;text-transform:none}
.case-meta .fact-symbol{width:40px;height:40px;border-radius:13px}
.case-meta .fact-symbol>.icon{width:24px;height:24px}
.case-meta dd,.coast-case .case-meta dd{margin:0;font-size:.94rem;line-height:1.65;color:var(--ink);text-align:left}
.work-meta span{display:inline-flex;align-items:center;gap:6px}
.work-meta .icon{width:17px;height:17px;color:var(--ink)}
.process-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%}
.process-heading>.icon{width:32px;height:32px;color:var(--ink)}
.skills-ledger.skills-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:64px}
.skills-ledger.skills-catalog .skill-row,.skills-ledger.skills-catalog .skill-row:first-child{display:flex;flex-direction:column;gap:24px;padding:28px;min-width:0;background:var(--surface-light);border:1px solid var(--stroke);border-radius:var(--radius-card)}
.skills-ledger.skills-catalog .skill-row:nth-child(3n+2){background:var(--surface-pink)}
.skills-ledger.skills-catalog .skill-row:nth-child(3n){background:var(--surface-lilac)}
.skills-catalog .skill-label{display:flex;align-items:center;gap:14px;padding:0;margin:0;font:500 clamp(21px,2.1vw,28px)/1.2 var(--display);letter-spacing:-.03em;max-width:none}
.skills-catalog .chip-row{gap:10px}
.skills-ledger.skills-catalog .skill-row .chip,.chip{padding:9px 14px;min-height:40px;border:1px solid rgba(55,67,56,.35);border-radius:14px;background:var(--surface-light);font-size:.85rem;line-height:1.5;font-weight:500;white-space:normal;overflow-wrap:anywhere;max-width:100%;box-shadow:none}
.skills-catalog .chip:hover{transform:none;box-shadow:none}
.home-explore h2{font-size:clamp(36px,5.8vw,76px);letter-spacing:-.055em;max-width:14ch;line-height:1.02;margin-bottom:36px}
.home-explore h2 em{font-family:Georgia,serif;font-weight:400;color:var(--coral-deep)}
.entry-link{border-radius:32px;padding:20px;gap:20px}
.entry-link img{border-radius:48% 48% 24px 24px}
.entry-link:nth-child(2) img{border-radius:24px 48% 24px 48%}
.entry-link:nth-child(3) img{border-radius:48% 24px 48% 24px}
.entry-link[href$="/work/"] img{border-radius:24px}
.entry-index{display:block;font:.72rem/1.5 var(--mono);margin-bottom:12px;color:var(--ink-soft)}
.entry-link h3{font-size:clamp(26px,2.8vw,38px);letter-spacing:-.045em}
.footer-invitation{display:flex;align-items:center;gap:28px;padding:30px 0;margin-top:30px;border-top:1px solid #889281}
.site-footer>.wrap{display:block}
.footer-invitation>img{display:block;width:96px;height:96px;object-fit:cover;border-radius:45% 50% 35% 50%;transform:rotate(-7deg)}
.footer-invitation>p{margin:0;font:500 clamp(28px,4vw,50px)/1.05 var(--display);letter-spacing:-.04em;color:var(--paper);max-width:none}
.footer-invitation em{font-family:Georgia,serif;font-weight:400;color:#f4d56d}
.footer-invitation>a{display:grid;place-items:center;margin-left:auto;width:64px;height:64px;flex-shrink:0;border:1px solid #b3c29f;border-radius:50%;color:var(--paper);text-decoration:none}
.footer-invitation>a>.icon{width:30px;height:30px}
.footer-invitation>a:hover{background:var(--paper);color:var(--ink)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.fact-symbol{transition:transform .2s ease}.fact-card:hover .fact-symbol,.case-meta>div:hover .fact-symbol{transform:rotate(-8deg)}.footer-invitation>a{transition:transform .2s ease,background .2s ease}.footer-invitation>a:hover{transform:rotate(12deg)}}
@media(max-width:1100px){.process .process-step{display:block}.process .process-step h3{margin-top:24px}}
@media(max-width:600px){.about-tags,.skills-ledger.skills-catalog{grid-template-columns:1fr;gap:16px}.fact-card,.case-meta>div,.skills-ledger.skills-catalog .skill-row,.skills-ledger.skills-catalog .skill-row:first-child{padding:24px}.fact-card dt{font-size:21px}.fact-card dd{font-size:.94rem}.fact-symbol{width:44px;height:44px}.skills-ledger.skills-catalog{margin-top:40px}.entry-link{grid-template-columns:80px minmax(0,1fr) 20px;padding:16px;gap:14px}.entry-link img{border-radius:22px!important}.entry-link h3{font-size:22px}.entry-index{margin-bottom:6px;font-size:.65rem}.home-explore h2{font-size:46px;margin-bottom:28px}.footer-invitation{gap:16px;flex-wrap:wrap}.footer-invitation>img{width:64px;height:64px}.footer-invitation>p{font-size:29px;max-width:10ch}.footer-invitation>a{width:48px;height:48px}.footer-invitation>a>.icon{width:24px;height:24px}}

.coast-case .coast-grid.coast-single{grid-template-columns:minmax(0,1fr);max-width:720px;margin:32px auto}
