/* Shared grid, type and spacing. Navigation layer 10; dialog uses the native top layer. */
@font-face{font-family:'Lecario Han Web';src:url('assets/lecario-han-light.woff2') format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Lecario Han Web';src:url('assets/lecario-han-regular.woff2') format('woff2');font-weight:400 600;font-display:swap}
@font-face{font-family:'Lecario Han Web';src:url('assets/lecario-han-bold.woff2') format('woff2');font-weight:700 900;font-display:swap}
:root{--paper:#fff;--ink:#202022;--muted:#68686d;--line:#dedee2;--tint:#f7f7f9;--accent:#2815f5;--header:rgba(255,255,255,.96);--image-paper:#f3f3f5;--page-gutter:20px;--grid-gap:32px;--section-space:64px;--heading-size:30px;--ease:cubic-bezier(.22,1,.36,1);color-scheme:light}
:root[data-theme=dark]{--paper:#161618;--ink:#f1f1f4;--muted:#b2b2ba;--line:#3b3b42;--tint:#1f1f23;--accent:#a79eff;--header:rgba(22,22,24,.97);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:88px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Lecario Han Web','Source Han Sans SC',sans-serif;font-size:14px;font-weight:400;line-height:1.9;text-align:left;-webkit-font-smoothing:antialiased}body.dialog-open{overflow:hidden}
h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h2{font-size:var(--heading-size);line-height:1.45;letter-spacing:-.04em}img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit;cursor:pointer;border-radius:0}button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:var(--paper)}[hidden]{display:none!important}
.page-width,.dialog-content{width:min(calc(100% - var(--page-gutter)*2),1440px);margin-inline:auto}.section-space{padding-block:var(--section-space)}
.skip-link{position:fixed;top:-100px;left:20px;padding:12px 20px;background:var(--accent);color:#fff;z-index:20}.skip-link:focus{top:12px}
.site-header,.dialog-topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-inline:max(var(--page-gutter),calc((100vw - 1440px)/2));background:var(--header);border-bottom:1px solid var(--line)}
.site-header{height:68px;position:sticky;top:0;z-index:10;gap:12px}.brand,.brand img{width:140px;flex-shrink:0}:root[data-theme=dark] .brand img{filter:brightness(0) invert(1)}
.header-controls{display:flex;align-items:center;gap:4px;margin-left:auto}.theme-toggle,.menu-toggle{width:40px;height:40px;padding:8px;border:0;background:transparent;line-height:1}.theme-toggle{font-size:23px}
.menu-toggle span{display:block;width:24px;height:1px;background:var(--ink);margin:7px 0;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
nav{display:none;position:absolute;top:67px;left:0;width:100%;background:var(--paper);padding:22px var(--page-gutter) 30px;border-bottom:1px solid var(--line)}nav.open{display:grid}nav a{position:relative;white-space:nowrap;padding:13px 0;font-size:16px}.nav-contact{color:var(--accent)}.nav-contact span{margin-left:12px}
.hero{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding-top:48px;padding-bottom:24px;align-items:center}.hero-copy{min-width:0}
.hero h1{font-size:clamp(28px,7.6vw,56px);font-weight:300;line-height:1.2;letter-spacing:-.055em;white-space:nowrap}.hero h1 span{color:var(--accent)}.hero-intro{margin-top:24px;font-size:13px;line-height:1.95;color:var(--muted)}
.text-link{display:inline-flex;align-items:center;gap:28px;font-size:13px;white-space:nowrap}.hero .text-link{margin-top:24px}.arrow-circle{display:inline-grid;place-items:center;border:1px solid var(--line);width:40px;height:40px;border-radius:50%;font-size:20px;transition:background .25s,color .25s}.text-link:hover .arrow-circle{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.hero-art{width:100%;max-width:440px;justify-self:center;aspect-ratio:2420/2300}.hero-art img{width:100%;height:100%;object-fit:contain}
.work-section{padding-top:36px}.section-heading p{color:var(--muted);margin-top:12px;font-size:13px;line-height:1.9}.work-toolbar{display:grid;gap:4px;margin:24px 0}
.filters{display:flex;gap:22px;min-width:0;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters button{flex-shrink:0;white-space:nowrap;background:none;border:0;border-bottom:1px solid transparent;padding:6px 0;color:var(--muted);font-size:12px;line-height:1.8;transition:color .2s,border-color .2s}.filters button:hover,.filters button.active{color:var(--accent)}.filters button.active{border-bottom-color:var(--accent)}.work-count{white-space:nowrap;color:var(--muted);font-size:11px;line-height:1.8}
.project-grid,.case-gallery{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}.project-card{display:block;min-width:0}.project-visual,.case-gallery figure{display:block;position:relative;margin:0;overflow:hidden;background:var(--image-paper);aspect-ratio:4/3}.project-visual img,.case-gallery img{width:100%;height:100%;object-fit:contain}
.project-info{display:grid;grid-template-columns:minmax(0,1fr) 24px;align-items:start;gap:16px;margin-top:16px}.project-title{font-size:17px;line-height:1.6;letter-spacing:-.02em;min-height:1.6em}.project-category{font-size:11px;color:var(--muted);line-height:1.8;margin-top:4px}.project-arrow{font-size:21px;color:var(--accent);line-height:1.6;text-align:right}
.more-work{text-align:center;margin-top:40px}.outline-button{display:inline-flex;align-items:center;justify-content:center;gap:32px;background:none;border:1px solid var(--line);padding:12px 24px;font-size:13px;line-height:1.8;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}.outline-button:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.expertise-section{background:var(--tint)}.expertise-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}.expertise-intro>p{max-width:440px;color:var(--muted);margin-top:24px;font-size:13px;line-height:1.95}.expertise-intro .text-link{margin-top:28px}
.service-list{min-width:0}.service-list details{border-bottom:1px solid var(--line)}.service-list details:first-child{border-top:1px solid var(--line)}.service-list summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;list-style:none;cursor:pointer}.service-list summary::-webkit-details-marker{display:none}
.service-list summary>span:first-child{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:baseline;gap:12px;flex:1;font-size:18px;line-height:1.6}.service-list small{font-size:10px;line-height:1.8;color:var(--muted);font-weight:400}.service-list details>p{margin:0;padding:0 32px 24px 0;font-size:12px;color:var(--muted);line-height:1.95}
.detail-sign{position:relative;width:16px;height:16px;flex-shrink:0}.detail-sign:before,.detail-sign:after{content:'';position:absolute;top:7px;width:15px;height:1px;background:var(--ink)}.detail-sign:after{transform:rotate(90deg)}details[open] .detail-sign:after{transform:none}
.about-section{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}.eyebrow{display:block;color:var(--accent);font-size:11px;line-height:20px;letter-spacing:.13em;text-transform:uppercase;margin-bottom:24px}.about-text p{font-size:13px;line-height:1.95;color:var(--muted);margin-top:20px}.about-text .large-copy{font-size:19px;line-height:1.8;color:var(--ink);margin-top:0}
.team-grid{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr);gap:32px;margin-top:16px}.team-member{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.portrait{aspect-ratio:1;overflow:hidden;background:var(--image-paper)}.portrait img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.person-info{min-width:0;padding:0}.person-info h3{font-size:22px;line-height:1.5;margin-bottom:8px}.person-info h3 span{display:block;font-size:12px;line-height:20px;margin-top:4px;color:var(--muted)}.person-info>p{font-size:12px;line-height:1.9}.person-info .person-bio{margin-top:16px;font-size:11px;line-height:1.95;color:var(--muted)}
.clients-section{padding-top:16px;border-bottom:1px solid var(--line)}.clients-caption{color:var(--muted);font-size:12px;line-height:1.9;margin-top:12px}.client-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin-top:32px;font-size:13px;line-height:1.8}.client-index span{min-width:0}
.contact-section{padding-bottom:32px}.contact-email{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--accent);font-size:clamp(25px,7.6vw,54px);font-weight:300;letter-spacing:-.045em;line-height:1.4;padding-block:28px;border-bottom:1px solid var(--line)}.contact-email span{flex-shrink:0}.contact-bottom{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start;padding-top:32px;font-size:12px;line-height:1.9}.contact-label{font-size:11px;line-height:1.9;color:var(--muted);margin-bottom:8px}
.copy-email{justify-self:start;border:0;background:none;color:var(--accent);padding:0;font-size:12px;line-height:1.9}.copy-email span{margin-left:20px}.copy-status{min-height:24px;font-size:12px;color:var(--accent);margin-top:16px}
.site-footer{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;border-top:1px solid var(--line);padding-block:24px;font-size:10px;line-height:1.8;color:var(--muted)}.site-footer a{white-space:nowrap}.site-footer a span{margin-left:12px}.site-footer .registration{order:3;flex-basis:100%}
dialog{border:0;padding:0;max-width:100%;max-height:100dvh;width:100%;height:100dvh;margin:0;background:var(--paper);color:var(--ink);overscroll-behavior:contain}dialog::backdrop{background:rgba(0,0,0,.5)}.dialog-topbar{height:68px;position:sticky;top:0;z-index:1}.close-dialog{display:flex;align-items:center;gap:24px;border:0;background:none;padding:12px 0;font-size:13px;line-height:1.8}.close-dialog span{font-size:28px;font-weight:300;line-height:1}
.dialog-content{padding-block:40px}.case-label{font-size:12px;line-height:1.8;color:var(--accent);margin-bottom:16px}.dialog-content h2{font-size:30px;line-height:1.45}.case-meta{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin:28px 0;font-size:13px;line-height:1.9}.case-meta dt{font-size:11px;line-height:1.9;color:var(--muted);margin-bottom:8px}.case-meta dd{margin:0;color:var(--ink)}.case-description{max-width:800px;font-size:13px;line-height:1.95;color:var(--muted);margin-bottom:32px}.case-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:24px;margin-top:40px}.case-footer button{display:flex;align-items:center;gap:20px;padding:10px 0;background:none;border:0;color:var(--accent);font-size:12px;line-height:1.8}
.reveal{opacity:1}.js-motion .reveal{opacity:0;transition:opacity .5s var(--ease)}.js-motion .reveal.visible{opacity:1}
@media(min-width:768px){
  :root{--page-gutter:36px;--section-space:88px;--heading-size:36px}
  html{scroll-padding-top:100px}.site-header{height:80px;gap:24px}.brand,.brand img{width:170px}.header-controls{margin-left:0}.menu-toggle{display:none}
  nav,nav.open{display:flex;position:static;width:auto;padding:0;border:0;background:none;gap:24px;margin-left:auto;align-items:center}nav a{padding:8px 0;font-size:12px}nav a:after{content:'';position:absolute;bottom:3px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s}nav a:hover:after{transform:scaleX(1)}
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;min-height:560px;padding-top:56px;padding-bottom:64px}.hero h1{font-size:clamp(34px,5.15vw,72px)}.hero-intro{font-size:14px;margin-top:28px}.hero .text-link{margin-top:32px}.hero-art{max-width:560px}
  .work-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-block:32px}.filters{gap:26px}.filters button{font-size:13px}.work-count{font-size:12px}.project-grid,.case-gallery{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--grid-gap);row-gap:40px}.project-title{font-size:18px}.project-category{font-size:12px}.more-work{margin-top:48px}
  .expertise-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap)}.expertise-intro>p{font-size:14px}.service-list summary>span:first-child{grid-template-columns:100px minmax(0,1fr);gap:16px;font-size:19px}.service-list small{font-size:11px}.service-list details>p{font-size:13px}
  .about-section{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--grid-gap);row-gap:48px}.about-text{padding-top:44px}.about-text p{font-size:14px}.about-text .large-copy{font-size:20px}.team-member{grid-template-columns:240px minmax(0,1fr);gap:32px}.person-info h3{font-size:24px}.person-info>p{font-size:13px}.person-info .person-bio{font-size:12px;margin-top:24px}
  .client-index{font-size:15px;gap:24px 32px;margin-top:40px}.contact-email{font-size:clamp(50px,6vw,86px);padding-block:32px}.contact-bottom{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;font-size:13px}.contact-bottom>div:nth-child(2){grid-column:2/span 2}.copy-email{align-self:end;justify-self:end;font-size:12px}.contact-section{padding-bottom:48px}
  .site-footer{font-size:11px}.site-footer .registration{order:0;flex-basis:auto}.dialog-topbar{height:80px}.dialog-content{padding-block:64px}.dialog-content h2{font-size:42px}.case-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap);margin-block:32px}.case-description{font-size:14px;margin-bottom:40px}.case-footer button{font-size:13px}
}
@media(min-width:1024px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap)}.team-member{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.client-index{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1101px){:root{--page-gutter:56px;--section-space:112px;--heading-size:42px}.brand,.brand img{width:180px}nav{gap:38px}nav a{font-size:13px}.hero{min-height:660px;padding-top:64px;padding-bottom:80px}.hero h1{font-size:clamp(56px,5.15vw,80px)}.hero-intro{font-size:15px}.section-heading p{font-size:14px}.service-list summary>span:first-child{grid-template-columns:112px minmax(0,1fr);font-size:20px}.about-text .large-copy{font-size:21px}}
@media(min-width:1600px){.hero{min-height:720px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1}}
