/* BASE */
@font-face{font-family:Inter;src:url(/fonts/inter.woff2) format("woff2");font-weight:400 600;font-display:swap}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:64px;-webkit-text-size-adjust:100%}
body{margin:0;background:#f9f9f9;color:#2a2a2a;font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body:has(.viewer[open]){overflow:hidden}
h1,h2,h3,p,figure,blockquote{margin:0}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
a:hover{color:#9e16d4}
:focus-visible{outline:2px solid #c430f9;outline-offset:3px}
.container{max-width:1184px;margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
.label{font-size:13px;font-weight:500;letter-spacing:2.5px;color:#6b6b6b}
.pill{border:1px solid #2a2a2a;border-radius:30px;transition:background .3s,color .3s}
.pill:hover{background:#2a2a2a;color:#fff}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* NAVBAR */
.navbar{position:sticky;top:0;z-index:10;background:rgb(249 249 249/.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgb(0 0 0/.06)}
.navbar .container{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}
.brand{font-size:17px;font-weight:600;letter-spacing:-.01em}
nav{display:flex;align-items:center;gap:clamp(16px,3vw,32px);font-size:14px;font-weight:500}
nav .pill{padding:9px 16px}

/* HERO */
.hero{display:flex;flex-direction:column;align-items:center;gap:20px;padding-block:clamp(56px,9vw,96px) clamp(48px,8vw,88px);text-align:center}
h1{font-size:clamp(56px,10vw,96px);line-height:1;font-weight:600;letter-spacing:-.04em;color:#313131}
.view-work{margin-top:20px;font-size:14px;font-weight:500;letter-spacing:1px}

/* WORK */
.work{padding-block:clamp(64px,9vw,96px);background:#1f1f1f;color:#fff}
.work-intro{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:clamp(40px,5vw,56px);text-align:center}
.work-intro h2{max-width:760px;font-size:clamp(32px,5vw,48px);line-height:1.1;font-weight:600;letter-spacing:-.03em;color:#e6e6e6;text-wrap:balance}
.work-intro p{max-width:620px;font-size:17px;line-height:1.6;color:#bebebe;text-wrap:pretty}
.cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:48px 32px}
.case{display:flex;flex-direction:column;gap:18px}
.case:hover{color:inherit}
.case-image{aspect-ratio:3/2;overflow:hidden;border-radius:6px;background:#2a2a2a}
.case img{width:100%;height:100%;object-fit:cover;transition:scale .6s cubic-bezier(.2,.7,.2,1)}
.case:is(:hover,:focus-visible) img{scale:1.04}
.case-text{display:flex;flex-direction:column;gap:6px}
.case h3{font-size:20px;line-height:1.3;font-weight:600;letter-spacing:-.01em}
.case p{font-size:15px;line-height:1.55;color:#bebebe;text-wrap:pretty}
.case-cta{margin-top:6px;font-size:14px;font-weight:500;color:#e6e6e6}

/* ABOUT */
.about{padding-top:clamp(64px,9vw,112px)}
.intro{display:flex;flex-direction:column;align-items:center;gap:24px;max-width:880px;margin-inline:auto;text-align:center}
.intro img{width:160px;height:160px;border-radius:50%;object-fit:cover}
.intro h2{margin-top:16px;font-size:clamp(26px,3.6vw,36px);line-height:1.25;font-weight:600;letter-spacing:-.02em;text-wrap:balance}
.intro p{max-width:720px;font-size:17px;line-height:1.65;color:#6b6b6b;text-wrap:pretty}
.quote{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:720px;margin:clamp(64px,8vw,96px) auto 0;text-align:center}
.quote blockquote{font-size:clamp(22px,2.8vw,28px);line-height:1.4;letter-spacing:-.01em;color:#7a7a7a;text-wrap:balance}
hr{height:1px;margin:clamp(48px,6vw,72px) 0;border:0;background:#dadada}

/* CONTACT */
.contact{display:flex;flex-direction:column;align-items:center;gap:24px;padding-bottom:72px;text-align:center}
.contact h2{max-width:720px;font-size:clamp(32px,4.4vw,44px);line-height:1.15;font-weight:600;letter-spacing:-.03em;text-wrap:balance}
.buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.buttons .pill{padding:16px 24px;font-size:15px;font-weight:500}
.pill-solid{background:#2a2a2a;color:#fff}
.pill-solid:hover{background:#555;border-color:#555}

/* FOOTER */
.footer{padding:24px;font-size:14px;color:#6b6b6b;text-align:center}

/* VIEWER */
.viewer{position:fixed;inset:0;width:auto;height:auto;max-width:none;max-height:none;margin:0;padding:clamp(12px,3vw,40px);border:0;background:rgb(14 13 19/.8);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0}
.viewer[open]{display:flex;align-items:center;justify-content:center}
.viewer::backdrop{background:none}
.viewer.shown{opacity:1}
.viewer-panel{display:flex;flex-direction:column;width:100%;max-width:1200px;height:100%;max-height:820px;overflow:hidden;border-radius:10px;background:#1f1f1f;color:#fff;transform:translateY(16px) scale(.98)}
.viewer.shown .viewer-panel{transform:none}
.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px 14px 24px;border-bottom:1px solid #333}
.viewer-title{overflow:hidden;font-size:16px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.viewer-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.viewer-tab{padding:8px 14px;border:1px solid #555;border-radius:18px;font-size:13px;font-weight:500;color:#e6e6e6}
.viewer-tab:hover{border-color:#e6e6e6;color:#fff}
.viewer-close{width:36px;height:36px;border:0;border-radius:18px;background:#333;color:#fff;font-size:18px;line-height:1;cursor:pointer}
.viewer-close:hover{background:#555}
.viewer iframe{flex:1;width:100%;border:0;background:#2a2a2a}

/* NOT FOUND */
.not-found{display:grid;place-content:center;gap:16px;min-height:100svh;padding:20px;font-size:18px;line-height:1.6;text-align:center}
.not-found a{text-decoration:underline}

/* MOTION */
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  .viewer{transition:opacity .3s ease}
  .viewer-panel{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
}
@media (scripting:enabled) and (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;translate:0 24px;transition:opacity .7s ease,translate .7s cubic-bezier(.2,.7,.2,1)}
  .reveal.visible{opacity:1;translate:none}
  .delay-80ms{transition-delay:80ms}
  .delay-100ms{transition-delay:100ms}
  .delay-160ms{transition-delay:160ms}
  .delay-240ms{transition-delay:240ms}
}
