@font-face{font-family:"DM Sans";src:url("assets/fonts/dm-sans-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"DM Sans";src:url("assets/fonts/dm-sans-medium.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"DM Sans";src:url("assets/fonts/dm-sans-semibold.ttf") format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("assets/fonts/instrument-serif-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("assets/fonts/instrument-serif-italic.ttf") format("truetype");font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"Outfit";src:url("assets/fonts/outfit-semibold.woff2") format("woff2");font-weight:600;font-display:swap}

:root {
  --paper:#f5f3ed;
  --ink:#273027;
  --muted:#5d675d;
  --accent:#526b45;
  --line:#dcded5;
  --soft:#eceee6;
  --serif:"Instrument Serif",Georgia,serif;
  --sans:"DM Sans",sans-serif;
  --column-gap:clamp(32px,5vw,72px);
  --reading-width:60ch;
  --ease:cubic-bezier(.22,.68,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.8 var(--sans);-webkit-font-smoothing:antialiased}
::selection{background:#d9e0ce;color:var(--ink)}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
a,button,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:3px}
main:focus{outline:none}
svg,img{display:block}
[hidden]{display:none!important}
h1,h2,h3,p,figure{margin:0}
p{text-wrap:pretty;hyphens:none}
.brand-word{font-family:"Outfit",var(--sans);font-weight:600;font-style:normal;font-size:1em;letter-spacing:-.025em;white-space:nowrap}
h1,h2{font-family:var(--serif);font-weight:400;line-height:1.16;letter-spacing:-.015em}
em{font-weight:400;color:var(--accent)}
.wrap{width:calc(100% - 40px);max-width:1160px;margin-inline:auto}
.icon-library{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.brand-icon{height:31px;width:31px;fill:#8677b7}
.eyebrow{font-size:12px;line-height:1.6;color:var(--muted);letter-spacing:.15px}
.skip-link{position:fixed;z-index:40;left:12px;top:12px;padding:10px 18px;background:var(--ink);color:var(--paper);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.skip-link:focus{clip-path:none;width:auto;height:auto;overflow:visible}

/* The contact action owns its colours in every navigation state. */
.site-header{position:sticky;top:0;z-index:20;background:rgba(245,243,237,.96);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:border-color .25s}
.site-header[data-scrolled="true"]{border-color:var(--line)}
.site-header::after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:#b6c1ac;transform:scaleX(var(--reading-progress,0));transform-origin:left}
.header-inner{height:66px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.identity{display:flex;align-items:center;gap:12px;flex-shrink:0}
.monogram{display:block;width:60px;height:42px;flex-shrink:0}
.monogram img{width:100%;height:100%;object-fit:contain}
.identity-name{font-size:11px;font-weight:500;line-height:1.35}
.identity-name>span{display:block}
.site-header nav{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:500}
.site-header nav>a{display:flex;align-items:center;justify-content:center;position:relative;min-height:44px;min-width:44px;padding-inline:6px}
.site-header nav>a:not(.nav-contact){color:var(--muted)}
.site-header nav>a:not(.nav-contact):is(:hover,[aria-current]){color:var(--ink)}
.site-header nav>a:not(.nav-contact)::after{content:"";position:absolute;bottom:7px;left:6px;right:6px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.site-header nav>a:not(.nav-contact):is(:hover,[aria-current])::after{transform:scaleX(1)}
.site-header nav>.nav-contact{padding-inline:14px;margin-left:4px;border-radius:24px;background:var(--ink);color:var(--paper);transition:background .25s}
.site-header nav>.nav-contact:is(:hover,:focus-visible,[aria-current]){color:var(--paper);background:#42583a}

/* Scale and spacing support the content instead of competing with it. */
.hero{display:grid;grid-template-columns:1fr 1fr;position:relative;padding-top:39px;border-bottom:1px solid var(--line)}
.hero-copy{grid-column:1/-1;min-width:0;animation:arrive .65s var(--ease) both}
h1{font-size:clamp(52px,14.1vw,84px);letter-spacing:-.035em}
.hero h1{margin:20px 0 25px;line-height:1.08}
.hero-description{text-wrap:pretty;font-size:15px;line-height:1.85;color:var(--muted);max-width:44ch}
.hero-actions{display:flex;align-items:center;gap:24px;margin-top:24px}
.primary-link{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:46px;padding:10px 19px;border-radius:28px;background:var(--ink);color:var(--paper);font-size:12px;font-weight:500;transition:background .25s}
.primary-link:is(:hover,:focus-visible){background:#42583a}
.primary-link .icon,.text-link .icon{transition:transform .25s var(--ease)}
.primary-link:hover .icon{transform:translateX(3px)}
.text-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:12px;font-weight:500}
.text-link:hover .icon{transform:translateX(3px)}
.text-link[href^="https:"]:hover .icon{transform:translate(2px,-2px)}
.hero-art{grid-column:2;grid-row:2;width:165px;justify-self:end;align-self:center;margin:6px -9px 0 0;animation:arrive .8s var(--ease) both}
.art-frame{perspective:800px;isolation:isolate}
.orbit-art{width:100%;height:auto;overflow:visible;transform:translate(var(--shift-x,0px),var(--shift-y,0px)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .8s var(--ease)}
.orbit-rings,.orbit-grid,.orbit-nodes{transform-origin:260px 262px;transition:transform .9s var(--ease)}
.orbit-rings{transform:rotate(var(--orbit-turn,0deg))}
.orbit-grid{transform:rotate(var(--grid-turn,0deg))}
.orbit-nodes{transform:rotate(var(--node-turn,0deg))}
.art-frame[data-active="true"] .orbit-art{transition-duration:.22s}
.art-frame[data-active="true"] :is(.orbit-rings,.orbit-grid,.orbit-nodes){transition-duration:.45s}
.hero-footnote{grid-column:1;grid-row:2;align-self:center;padding:20px 0 23px;display:flex;flex-direction:column;gap:14px;font-size:10px;line-height:1.65;color:var(--muted)}
.hero-footnote>div{display:flex;flex-direction:column;gap:2px}
.hero-footnote strong{font-size:10px;font-weight:500;color:var(--ink)}
.section{padding-top:43px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.section-heading h2{font:500 16px/1.5 var(--sans);letter-spacing:-.2px}
.section-heading>span{font-size:11px;color:var(--muted)}
.featured-project{display:flex;flex-direction:column;border:1px solid #dce1d3;background:#eef0e8;border-radius:14px;overflow:hidden;transition:border-color .3s,box-shadow .3s}
.featured-copy{display:flex;flex-direction:column;align-items:start;padding:26px 25px 20px}
.project-brand{display:flex;align-items:center;gap:12px}
.project-brand>span{font:600 31px/1 "Outfit",var(--sans);letter-spacing:-1px}
.featured-description{font-size:14px;line-height:1.85;color:#55604f;max-width:42ch;margin-top:20px}
.project-status{font-size:10px;color:var(--muted);margin-top:13px}
.featured-link{display:inline-flex;align-items:center;gap:15px;font-size:12px;font-weight:500;min-height:44px;margin-top:9px}
.featured-link .icon{transition:transform .3s var(--ease)}
.featured-project:is(:hover,:focus-visible){border-color:#acb99c;box-shadow:0 14px 30px -26px #34482e55}
.featured-project:is(:hover,:focus-visible) .featured-link .icon{transform:translateX(4px)}
.featured-visual{padding:5px 17px 19px}
.featured-visual img{width:100%;height:auto;border:1px solid #d9dddf;border-radius:5px;box-shadow:0 10px 24px #2730270d;transition:transform .45s var(--ease)}
.featured-project:hover .featured-visual img{transform:translateY(-2px)}

.contact-section{display:grid;gap:23px;margin-top:44px;padding-top:29px;padding-bottom:33px;border-top:1px solid var(--line)}
.contact-heading h2{font-size:49px;line-height:1.12}
.contact-heading p{font-size:13px;color:var(--muted);margin-top:12px;max-width:37ch}
.contact-booking{margin-top:5px;color:var(--muted)}
.contact-email-row{display:flex;align-items:center;gap:12px}
.contact-email{display:flex;align-items:center;gap:12px;min-height:44px;font-size:13px;font-weight:500;letter-spacing:-.25px;border-bottom:1px solid #b9c3ac}
.contact-email .icon{width:16px;height:16px;transition:transform .25s var(--ease)}
.contact-email:hover .icon{transform:translate(2px,-2px)}
.copy-email{display:grid;place-items:center;width:44px;height:44px;padding:11px;flex-shrink:0;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--muted);transition:background .25s,color .25s}
.copy-email .icon{width:16px;height:16px}
.copy-email:hover,.copy-email[data-copied="true"]{color:var(--accent);background:#e7ecdf}
.copy-email[data-copied="true"] .icon{display:none}
.copy-email[data-copied="true"]::after{content:"✓";font-size:17px;line-height:1}
.copy-status{display:block;min-height:19px;margin-top:7px;font-size:11px;color:var(--accent)}
.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:7px;padding-top:18px;padding-bottom:max(18px,env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
.footer-name{display:flex;align-items:center;gap:15px;min-height:30px;color:var(--ink);font-size:11px}
.footer-name>span{font-size:10px;color:var(--muted)}
.site-footer nav{display:flex;gap:21px;align-items:center;width:100%}
.site-footer nav>a{display:inline-flex;align-items:center;min-height:44px}
.site-footer nav>a:last-child{margin-left:auto}
.site-footer nav>a:hover{color:var(--ink)}

/* Biography: the contribution is visible; the disclosure holds the context. */
.about-page{padding-top:32px}
.about-grid{display:grid;gap:36px}
.page-title{font-size:56px;line-height:1.16;margin:16px 0 23px}
.about-copy>p:not(.eyebrow){text-wrap:pretty;font-size:15px;line-height:1.85;color:var(--muted);max-width:48ch}
.about-copy>p+p{margin-top:16px}
.inline-link{color:var(--ink);text-decoration:underline;text-decoration-color:#a7b698;text-underline-offset:4px}
.download-link{display:inline-flex;align-items:center;gap:13px;min-height:44px;font-size:12px;font-weight:500;margin-top:18px;border-bottom:1px solid #bdc7b2}
.download-link .icon{width:16px;height:16px}
.education,.languages,.beyond-work{margin-top:27px;padding-top:22px;border-top:1px solid var(--line)}
.education h2,.languages h2,.beyond-work h2,.experience>h2{font:500 16px/1.5 var(--sans);letter-spacing:-.2px}
.institution{font-size:13px;font-weight:500;margin-top:15px}
.education-record{margin-top:15px}
.education-record>div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:3px 12px;font-size:11px}
.education-record strong{font-weight:500;font-size:12px}
.education-record>div>span{color:var(--muted)}
.education-record p{font-size:12px;line-height:1.8;color:var(--muted);margin-top:5px;max-width:47ch}
.languages p,.beyond-work p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:12px}
.experience>h2{padding-bottom:18px}
.experience-item{border-top:1px solid var(--line)}
.experience-item:last-of-type{border-bottom:1px solid var(--line)}
details>summary{list-style:none;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
.experience-item>summary{display:block;padding:21px 0;transition:color .25s}
.experience-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.experience-heading{display:flex;flex-direction:column;gap:5px}
.experience-heading>strong{font-size:15px;line-height:1.5;font-weight:500;letter-spacing:-.25px}
.experience-heading>span{font-size:11px;color:var(--muted)}
.experience-meta{display:flex;align-items:center;gap:14px;font-size:10px;color:var(--muted);white-space:nowrap;flex-shrink:0}
.expand-icon{width:16px;height:16px;transition:transform .3s var(--ease)}
details[open]>summary .expand-icon,details[open]>summary .experience-top .expand-icon{transform:rotate(45deg)}
.experience-summary{display:block;font-size:14px;line-height:1.8;color:var(--muted);margin-top:15px;max-width:55ch}
.experience-item>summary:is(:hover,:focus-visible) .experience-heading>strong{color:var(--accent)}
.experience-detail{padding:0 22px 23px 0;font-size:13px;line-height:1.85;color:var(--muted)}
.experience-detail p+p{margin-top:14px}
.experience-detail strong{display:inline-block;font-size:12px;font-weight:500;line-height:1.7;color:var(--ink);margin-bottom:5px}
.experience-detail h3{font-size:12px;font-weight:500;color:var(--ink);margin:22px 0 14px}
.experience-link{margin-top:13px}
.page-outro{display:flex;flex-direction:column;align-items:start;gap:5px;margin-top:37px;padding-top:19px;padding-bottom:23px;border-top:1px solid var(--line)}
.page-outro>p{font-size:13px;color:var(--muted)}

.founder-invitation{display:grid;gap:23px;margin-top:40px;padding-block:30px 35px;border-top:1px solid var(--line)}
.founder-invitation h2{font-size:38px;line-height:1.2;margin-top:12px}
.founder-invitation>div>p:not(.eyebrow){font-size:14px;line-height:1.85;color:var(--muted);max-width:var(--reading-width)}
.founder-links{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:16px}
.founder-profile{color:var(--muted)}

/* Research keeps full titles readable, with publication type and direct PDF links. */
.research-summary{padding-bottom:23px;border-bottom:1px solid var(--line)}
.research-summary h2{font:500 16px/1.5 var(--sans);letter-spacing:-.2px}
.research-summary p{font-size:13px;line-height:1.85;color:var(--muted);margin-top:12px;max-width:44ch}
.research-summary .text-link{margin-top:7px}
.background-details>.research-summary+.education{margin-top:23px;padding-top:0;border:0}
.research-teaser{display:flex;flex-direction:column;align-items:start;gap:12px;padding-top:27px;margin-top:30px;border-top:1px solid var(--line)}
.research-teaser h2{font:500 16px/1.5 var(--sans);letter-spacing:-.2px}
.research-teaser p{font-size:13px;color:var(--muted);margin-top:7px}
.research-intro{padding-top:19px}
.research-intro .back-link{margin-bottom:25px}
.research-title{font-size:clamp(54px,6.4vw,76px);line-height:1.14;margin-block:16px 23px}
.research-profiles{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:13px}
.research-profiles .text-link{color:var(--muted)}
.research-body{margin-top:30px}
.research-section{display:grid;gap:15px;margin-bottom:31px}
.research-section>h2{font:500 16px/1.5 var(--sans);letter-spacing:-.2px}
.research-list{border-top:1px solid var(--line);min-width:0}
.research-entry{padding:21px 0 23px;border-bottom:1px solid var(--line)}
.publication-meta{font-size:11px;color:var(--muted);line-height:1.8}
.research-entry h3{font-size:18px;line-height:1.45;font-weight:500;letter-spacing:-.25px;margin-block:9px}
.publication-title{display:flex;align-items:start;justify-content:space-between;gap:18px;transition:color .2s}
.publication-title .icon{margin-top:5px;color:var(--accent);transition:transform .25s var(--ease)}
.publication-title:hover{color:var(--accent)}
.publication-title:hover .icon{transform:translate(2px,-2px)}
.publication-authors{font-size:11px;line-height:1.8;color:var(--muted);margin-bottom:9px}
.publication-description{font-size:13px;line-height:1.85;color:var(--muted);max-width:65ch}
.publication-links{display:flex;flex-wrap:wrap;align-items:center;gap:0 23px;margin-top:8px}
.publication-note{font-size:11px;color:var(--muted);line-height:1.8}
@media(min-width:600px){
  .research-teaser{flex-direction:row;align-items:center;justify-content:space-between;gap:30px}
}
@media(min-width:800px){
  .research-teaser{margin-top:40px;padding-top:30px}
  .research-teaser h2{font-size:17px}
  .research-teaser p{font-size:14px}
  .research-intro{padding-top:24px}
  .research-intro .back-link{margin-bottom:32px}
  .research-body{margin-top:38px}
  .research-section{grid-template-columns:170px minmax(0,1fr);gap:var(--column-gap);margin-bottom:41px}
  .research-section>h2{padding-top:23px;border-top:1px solid var(--line)}
  .research-entry{padding-block:24px 26px}
  .research-entry h3{font-size:21px;line-height:1.45;max-width:60ch}
  .publication-meta,.publication-authors{font-size:12px}
  .publication-description{font-size:14px}
  .publication-note{font-size:12px}
}

/* Case study: a real product image, then the interactive domain detail. */
.case-intro{padding-top:32px}
.case-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 32px;margin:19px 0 25px}
.case-title{font:600 59px/1.1 "Outfit",var(--sans);letter-spacing:-2px}
.case-deck{font:400 35px/1.24 var(--serif);letter-spacing:0;color:var(--ink);margin-top:23px;text-wrap:balance}
.case-visit{align-self:start;margin-top:2px}
.page-lead{font-size:15px;line-height:1.85;color:var(--muted);max-width:65ch;text-wrap:pretty}
.project-facts{display:grid;gap:13px;margin:25px 0 28px;padding-top:20px;border-top:1px solid var(--line)}
.project-facts>div{display:flex;justify-content:space-between;align-items:baseline;gap:20px}
.project-facts dt{font-size:11px;color:var(--muted)}
.project-facts dd{font-size:12px;margin:0;text-align:right}
.product-figure{margin:0}
.preview-trigger{display:block;position:relative;padding:12px;background:#e8ebe4;border:1px solid #dce1d5;border-radius:9px}
.preview-trigger>img{width:100%;height:auto;border:1px solid #d9dddf;border-radius:4px}
.image-enlarge{display:flex;align-items:center;gap:8px;position:absolute;bottom:20px;right:20px;padding:4px 10px;background:var(--paper);border:1px solid var(--line);border-radius:5px;font-size:10px;min-height:30px}
.image-enlarge .icon{width:13px;height:13px}
.product-figure figcaption{font-size:10px;line-height:1.7;color:var(--muted);margin-top:10px}
.project-introduction{display:grid;gap:18px;margin-top:33px;margin-bottom:26px}
.project-introduction h2{font-size:36px;line-height:1.22}
.project-introduction>p{font-size:14px;line-height:1.85;color:var(--muted);max-width:65ch}
.explorer-toolbar{padding:20px 0 0;border-top:1px solid var(--line)}
.workspace-tabs{display:inline-flex;gap:2px;padding:3px;border-radius:28px;border:1px solid var(--line);background:var(--soft)}
.workspace-tab{min-height:44px;min-width:73px;padding:7px 17px;border:0;border-radius:24px;background:transparent;color:var(--muted);font-size:12px;transition:background .25s,color .25s,box-shadow .25s}
.workspace-tab[aria-selected="true"]{background:var(--paper);color:var(--ink);box-shadow:0 1px 4px #27302713}
.workspace-tab:is(:hover,:focus-visible){color:var(--ink)}
.workspace-panel:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:3px}
.workspace-stories{display:grid;gap:26px;padding:25px 0 29px}
.workspace-stories h3{font:600 26px/1.2 "Outfit",var(--sans);letter-spacing:-.5px}
.workspace-stories h3>span:not(.brand-word){display:block;font:400 11px/1.6 var(--sans);color:var(--muted);letter-spacing:0;margin-top:6px}
.workspace-stories p{font-size:14px;line-height:1.85;color:var(--muted);margin-top:12px}
.workspace-focus{display:grid;gap:24px;padding:25px 0 29px}
.workspace-focus h3{font:400 31px/1.24 var(--serif);letter-spacing:0;text-wrap:balance}
.workspace-focus p{font-size:14px;line-height:1.85;color:var(--muted);margin-top:14px;max-width:55ch}
.workspace-focus .text-link{margin-top:12px}
.capability-list{list-style:none;padding:0;margin:0;align-self:center}
.capability-list>li{padding:12px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.capability-list>li:last-child{border-bottom:1px solid var(--line)}
.workspace-panel:not([hidden]){animation:panel-arrive .3s var(--ease)}
.project-details{border-block:1px solid var(--line)}
.project-details>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:61px;padding:17px 0;font-size:13px;font-weight:500}
.project-details>summary:is(:hover,:focus-visible){color:var(--accent)}
.project-details-body{font-size:14px;color:var(--muted);line-height:1.85;max-width:83ch;padding:1px 0 24px}
.project-details-body p+p{margin-top:15px}
.technology-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:20px 0 0}
.technology-list>li{font-size:10px;padding:4px 9px;border:1px solid var(--line);border-radius:4px}
.project-scope{display:grid;gap:8px;padding-top:22px}
.project-scope h3{font-size:12px;font-weight:500}
.project-scope p{font-size:12px;color:var(--muted);line-height:1.85;max-width:var(--reading-width)}
.image-viewer{width:min(1400px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow:hidden;border:1px solid #cdd3c2;border-radius:10px;padding:12px;background:var(--paper);color:var(--ink);box-shadow:0 24px 70px #17221940}
.image-viewer[open]{display:flex;flex-direction:column}
.image-viewer::backdrop{background:#152014a6;backdrop-filter:blur(5px)}
.viewer-toolbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 3px 10px;font-size:11px;color:var(--muted)}
.viewer-close{min-height:44px;display:flex;gap:12px;align-items:center;padding:0 10px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);font-size:12px}
.viewer-close>span{font-size:20px;line-height:1}
body:has(.image-viewer[open]){overflow:hidden}

/* The vision has its own reading pace, with detail available on demand. */
.vision-teaser{display:grid;gap:22px;padding-block:31px 34px;margin-bottom:22px;border-top:1px solid var(--line)}
.vision-teaser h2{font-size:37px;line-height:1.2;margin-top:12px}
.vision-teaser>div>p:not(.eyebrow){font-size:14px;line-height:1.85;color:var(--muted);max-width:58ch;text-wrap:pretty}
.vision-teaser .text-link{margin-top:13px}
.vision-intro{padding-top:19px}
.back-link{color:var(--muted);gap:9px;margin-bottom:26px}
.back-link .icon{width:15px;height:15px;transform:rotate(180deg)}
.back-link:hover .icon{transform:rotate(180deg) translateX(3px)}
.vision-intro h1{font-size:clamp(43px,6.4vw,76px);line-height:1.15;letter-spacing:-.02em;margin-block:18px 25px;max-width:20ch}
.vision-lead{font-size:15px;line-height:1.85;color:var(--muted);max-width:65ch;text-wrap:pretty}
.ecosystem-map{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:23px;margin-top:32px}
.ecosystem-map figcaption{font-size:11px;color:var(--muted)}
.ecosystem-path{list-style:none;margin:23px 0 0;padding:0;display:grid;gap:21px}
.ecosystem-path li{position:relative;padding-top:17px;border-top:1px solid #d0d7c8}
.ecosystem-number{font-size:10px;color:var(--accent);font-variant-numeric:tabular-nums}
.ecosystem-path h2{font:500 17px/1.5 var(--sans);letter-spacing:-.2px;margin-block:7px}
.ecosystem-path p{font-size:13px;line-height:1.8;color:var(--muted);max-width:29ch}
.ecosystem-return{border-top:1px solid #d0d7c8;padding-top:18px;margin-top:25px;font-size:11px;color:var(--muted);max-width:75ch}
.vision-editorial{display:grid;gap:23px;margin-block:38px}
.vision-editorial h2{font-size:36px;line-height:1.2}
.vision-prose{font-size:14px;line-height:1.85;color:var(--muted);max-width:65ch;text-wrap:pretty}
.vision-prose p+p{margin-top:18px}
.vision-prose .related-foundation{font-size:13px;line-height:1.85}
.vision-progress{border-top:1px solid var(--line);padding-top:26px}
.vision-progress .section-heading{align-items:baseline;gap:15px}
.vision-progress .section-heading>span{white-space:nowrap;font-size:10px}
.vision-stage{border-top:1px solid var(--line)}
.vision-stage:last-child{border-bottom:1px solid var(--line)}
.vision-stage>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:85px;padding-block:20px}
.vision-stage>summary>span{display:flex;flex-direction:column;gap:4px}
.vision-stage strong{font-size:14px;font-weight:500}
.vision-stage>summary>span>span{font-size:11px;color:var(--muted)}
.vision-stage>summary:is(:hover,:focus-visible){color:var(--accent)}
.vision-stage>div{padding-bottom:23px;max-width:76ch;font-size:14px;line-height:1.85;color:var(--muted);text-wrap:pretty}
.vision-closing{font-size:14px;line-height:1.85;color:var(--muted);max-width:60ch;margin-top:28px}

@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes panel-arrive{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}
[data-reveal]{transition:opacity .55s var(--ease),transform .55s var(--ease)}
[data-reveal].will-reveal{opacity:0;transform:translateY(12px)}
[data-reveal].will-reveal:focus-within{opacity:1;transform:none}

@media(min-width:600px){
  .wrap{width:calc(100% - 72px)}
  .identity-name{font-size:12px}
  .identity-name>span{display:inline}
  .site-header nav{gap:14px;font-size:12px}
  .hero-art{width:210px}
  .hero-footnote,.hero-footnote strong{font-size:11px}
  .hero-description{max-width:49ch}
  .featured-project{display:grid;grid-template-columns:1fr 1.15fr;align-items:center}
  .featured-copy{padding:29px 27px}
  .featured-visual{padding:25px 22px 25px 0}
  .featured-description{font-size:13px}
  .contact-section{grid-template-columns:1fr 1.2fr;align-items:center;gap:25px}
  .contact-copy{justify-self:end}
  .contact-email{font-size:13px}
  .contact-heading p{font-size:12px}
  .site-footer{flex-wrap:nowrap;gap:20px}
  .site-footer nav{width:auto;font-size:11px;gap:23px}
  .page-title{font-size:64px}
  .education-record>div{font-size:11px}
  .experience-meta{font-size:11px;gap:24px}
  .page-outro{flex-direction:row;align-items:center;justify-content:space-between;gap:25px}
  .case-heading{flex-wrap:nowrap}
  .case-visit{align-self:end;margin:0 0 3px}
  .project-facts{grid-template-columns:repeat(3,1fr);gap:30px}
  .project-facts>div{display:block}
  .project-facts dd{margin-top:4px;text-align:left}
  .project-introduction{grid-template-columns:.9fr 1.1fr;align-items:start;gap:35px}
  .workspace-stories{grid-template-columns:1fr 1fr;gap:40px}
  .workspace-focus{grid-template-columns:1.2fr 1fr;gap:40px}
  .workspace-focus p{font-size:13px}
  .capability-list>li{font-size:11px}
}
@media(min-width:800px){
  .founder-invitation{grid-template-columns:1fr 1fr;gap:var(--column-gap);align-items:center;padding-block:38px 42px;margin-top:48px}
  .founder-invitation h2{font-size:44px}
  .founder-invitation>div>p:not(.eyebrow){font-size:15px}
  .vision-teaser{grid-template-columns:1fr 1fr;gap:var(--column-gap);padding-block:39px 42px;margin-bottom:0;align-items:center}
  .vision-teaser h2{font-size:44px}
  .vision-teaser>div>p:not(.eyebrow){font-size:15px}
  .vision-intro{padding-top:24px}
  .vision-intro .back-link{margin-bottom:32px}
  .vision-lead{font-size:16px}
  .ecosystem-map{padding:30px 34px;margin-top:42px}
  .ecosystem-path{grid-template-columns:repeat(3,1fr);gap:45px;margin-top:27px}
  .ecosystem-path li+li::before{content:"↔";position:absolute;left:-33px;top:50px;color:#829277;font-size:18px}
  .ecosystem-return{margin-top:28px;font-size:12px}
  .vision-editorial{grid-template-columns:1fr 1fr;gap:var(--column-gap);margin-block:48px}
  .vision-editorial h2{font-size:44px}
  .vision-prose{font-size:15px}
  .vision-progress{padding-top:32px}
  .vision-stage>summary>span{display:grid;grid-template-columns:230px 1fr;gap:25px;align-items:baseline}
  .vision-stage strong{font-size:15px}
  .vision-stage>summary>span>span{font-size:12px}
  .vision-stage>div{padding-left:255px;max-width:100%;font-size:15px}
  .vision-stage>div>p{max-width:65ch}
  .vision-closing{font-size:15px;margin-top:30px}
  .wrap{width:calc(100% - 96px)}
  .header-inner{height:74px}
  .monogram{width:70px;height:46px}
  .identity{gap:17px}
  .identity-name{font-size:13px}
  .site-header nav{gap:21px}
  .site-header nav>.nav-contact{padding-inline:18px;margin-left:6px}
  .hero{grid-template-columns:1.4fr 1fr;gap:0 35px;padding-top:51px}
  .hero-copy{grid-column:1;align-self:center}
  .hero h1{font-size:clamp(73px,7.4vw,106px);margin-top:22px;margin-bottom:24px}
  .hero-description{font-size:15px;max-width:47ch}
  .hero-actions{margin-top:26px}
  .hero-art{grid-column:2;grid-row:1;width:calc(100% + 15px);max-width:380px;margin:0 -15px 0 0;justify-self:center}
  .hero-footnote{grid-column:1/-1;grid-row:2;flex-direction:row;gap:46px;padding-top:34px;padding-bottom:27px}
  .hero-footnote>div{flex-direction:row;align-items:center;gap:12px}
  .hero-footnote strong{font-weight:500}
  .hero-footnote span{font-size:10px}
  .section{padding-top:49px}
  .featured-project{grid-template-columns:.9fr 1.3fr}
  .featured-copy{padding:33px}
  .featured-description{font-size:14px}
  .featured-visual{padding:27px 26px 27px 0}
  .contact-section{margin-top:49px;padding-top:30px;padding-bottom:29px}
  .contact-heading h2{font-size:58px}
  .contact-heading p{font-size:13px}
  .contact-email{font-size:15px;gap:20px}
  .site-footer{padding-block:17px;min-height:79px}
  .about-page{padding-top:43px}
  .about-grid{grid-template-columns:1fr 1fr;gap:var(--column-gap)}
  .about-copy>p:not(.eyebrow){font-size:14px}
  .page-title{font-size:61px;margin-top:16px;margin-bottom:25px}
  .experience{padding-top:3px}
  .experience-heading>strong{font-size:16px}
  .experience-meta{font-size:10px;gap:15px}
  .experience-summary{font-size:14px;max-width:55ch}
  .experience-item>summary{padding-block:24px}
  .experience-detail{font-size:13px}
  .education-record>div{flex-direction:column;gap:1px}
  .education-record strong{font-size:12px}
  .education-record>div>span{font-size:10px}
  .languages p{font-size:11px}
  .page-outro{margin-top:36px;padding-top:19px;padding-bottom:24px}
  .case-intro{padding-top:43px}
  .case-title{font-size:65px}
  .case-deck{font-size:39px}
  .page-lead{font-size:16px;max-width:65ch}
  .project-facts{margin:27px 0 32px;padding-top:22px}
  .preview-trigger{padding:23px}
  .image-enlarge{bottom:34px;right:34px;font-size:11px;padding:6px 12px;min-height:38px}
  .product-figure figcaption{font-size:11px;margin-top:12px}
  .project-introduction{grid-template-columns:1fr 1fr;margin-top:46px;margin-bottom:33px;gap:var(--column-gap)}
  .project-introduction h2{font-size:43px}
  .project-introduction>p{font-size:14px}
  .workspace-stories{gap:var(--column-gap);padding-block:32px 35px;min-height:240px}
  .workspace-stories h3>span:not(.brand-word){display:inline;margin-left:12px}
  .workspace-focus{grid-template-columns:1fr 1fr;gap:var(--column-gap);padding-block:32px 35px;min-height:240px}
  .workspace-focus h3{font-size:35px}
  .workspace-focus p{font-size:14px}
  .capability-list>li{font-size:12px}
  .project-scope{grid-template-columns:1fr 1fr;gap:var(--column-gap);padding-top:24px}
  .project-scope h3{padding-top:1px}
  .project-details-body{font-size:14px;padding-bottom:26px}
}
@media(min-width:1100px){
  .wrap{width:calc(100% - 112px)}
  .header-inner{height:76px}
  .monogram{width:78px;height:50px}
  .site-header nav{gap:24px;font-size:12px}
  .hero{padding-top:59px}
  .hero-description{font-size:16px;max-width:45ch}
  .hero-actions{gap:28px;margin-top:28px}
  .primary-link{font-size:13px;padding-inline:20px;gap:23px}
  .hero-art{max-width:400px}
  .hero-footnote{padding-top:34px;padding-bottom:26px;gap:57px}
  .hero-footnote,.hero-footnote strong{font-size:11px}
  .hero-footnote span{font-size:11px}
  .section{padding-top:52px}
  .section-heading{margin-bottom:22px}
  .section-heading h2{font-size:17px}
  .section-heading>span{font-size:12px}
  .featured-project{grid-template-columns:.85fr 1.3fr}
  .featured-copy{padding:38px}
  .project-brand>span{font-size:33px}
  .featured-description{font-size:15px;margin-top:23px}
  .featured-visual{padding:29px 29px 29px 0}
  .featured-link{font-size:13px;margin-top:14px}
  .project-status{font-size:11px;margin-top:15px}
  .contact-section{margin-top:54px;padding-top:32px;padding-bottom:32px}
  .contact-heading h2{font-size:62px}
  .contact-heading p{font-size:14px}
  .contact-email{font-size:16px}
  .site-footer{font-size:11px}
  .footer-name{font-size:12px;gap:18px}
  .about-page{padding-top:48px}
  .page-title{font-size:68px;margin-top:17px;margin-bottom:27px}
  .about-copy>p:not(.eyebrow){font-size:15px}
  .experience-meta{font-size:10px;gap:21px}
  .experience-item>summary{padding-block:27px}
  .experience-summary{font-size:14px}
  .experience-heading>strong{font-size:17px}
  .experience-heading>span{font-size:12px}
  .experience>h2{font-size:17px;padding-bottom:19px}
  .experience-detail{font-size:14px}
  .education-record>div{flex-direction:row;gap:4px 12px}
  .education-record>div>span{font-size:11px}
  .languages p{font-size:12px}
  .page-outro{margin-top:39px;padding-top:22px;padding-bottom:25px}
  .case-intro{padding-top:46px}
  .case-deck{font-size:44px}
  .case-heading{margin-block:21px 28px}
  .project-introduction h2{font-size:46px}
  .project-introduction>p{font-size:15px}
  .workspace-stories p{font-size:15px}
  .workspace-focus p{font-size:15px}
  .project-details-body{font-size:15px}
  .project-scope p{font-size:13px}
}
@media(max-width:359px){
  .wrap{width:calc(100% - 32px)}
  .identity-name{display:block;font-size:10px}
  .header-inner{gap:7px}
  .identity{gap:7px}
  .monogram{width:50px;height:37px}
  .site-header nav{gap:6px}
  .site-header nav>.nav-contact{padding-inline:12px}
  .hero .eyebrow{font-size:11px}
  .hero-description{font-size:14px}
  .hero-art{width:148px;margin-right:-9px}
  .hero-footnote strong{font-size:9px}
  .hero-footnote{font-size:9px;gap:13px}
  .hero-footnote>div:nth-child(2)>strong{max-width:115px}
  .hero-actions{gap:20px}
  .featured-copy{padding:23px}
  .featured-description{font-size:13px}
  .section-heading>span{font-size:10px}
  .contact-email{font-size:11px;gap:8px}
  .contact-email-row{gap:8px}
  .experience-heading>strong{font-size:14px}
  .experience-meta{font-size:9px;gap:10px}
  .experience-summary{font-size:13px}
  .case-deck{font-size:32px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  [data-reveal].will-reveal{opacity:1;transform:none}
  .orbit-art,.orbit-rings,.orbit-grid,.orbit-nodes{transform:none}
}
@media print{
  body{background:white;font-size:11px}
  .wrap{width:100%}
  .site-header{position:static;background:white;border:0}
  .header-inner{height:45px}
  .site-header nav,.hero-art,.hero-footnote,.hero-actions,.site-footer,.page-outro,.explorer-toolbar,.copy-email,.download-link,.image-viewer{display:none!important}
  .hero{display:block;padding-top:20px}
  .hero h1{font-size:55px}
  .about-page,.case-intro{padding-top:15px}
  .page-title{font-size:45px}
  .about-grid{grid-template-columns:1fr 1.1fr;gap:35px}
  .experience-item>summary{padding-block:12px}
  .featured-project,.featured-visual,.product-figure{break-inside:avoid}
  .preview-trigger{padding:0}
  .image-enlarge{display:none}
  .project-introduction{margin-top:20px}
  .workspace-stories{grid-template-columns:1fr 1fr;gap:25px}
  [data-reveal].will-reveal{opacity:1;transform:none}
}

.background-details>.education{margin-top:0}
@media(min-width:800px){
  .about-grid{grid-template-areas:"intro experience" "background experience";grid-template-rows:auto 1fr;row-gap:27px}
  .about-copy{grid-area:intro}
  .experience{grid-area:experience}
  .background-details{grid-area:background}
}

.viewer-actions{display:flex;align-items:center;gap:8px}
.viewer-zoom{min-height:44px;padding:0 11px;border:1px solid var(--line);border-radius:5px;background:var(--soft);color:var(--ink);font-size:12px}
.viewer-image{min-height:0;max-height:calc(100dvh - 114px);overflow:auto;overscroll-behavior:contain;border-radius:4px}
.viewer-image>img{width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 114px);margin-inline:auto}
.image-viewer[data-zoomed="true"] .viewer-image>img{width:var(--zoom-width);height:auto;max-width:none;max-height:none;margin:0}
@media(max-width:359px){.viewer-toolbar{gap:8px;font-size:10px}.viewer-actions{gap:5px}.viewer-close,.viewer-zoom{font-size:11px;padding-inline:8px}}
