:root{--bg: #f2eee7;--bg-2: #ece7dd;--ink: #1a1814;--ink-2: #2a2620;--muted: #6b665d;--rule: #d9d3c6;--accent: oklch(.65 .15 55);--accent-ink: #1a1814;--display: "Instrument Serif", "Newsreader", Georgia, serif;--sans: "Geist", "Plus Jakarta Sans", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;--max: 1440px;--pad: clamp(24px, 4vw, 56px)}html[data-theme=dark]{--bg: #14130f;--bg-2: #1c1a16;--ink: #f0ece4;--ink-2: #d8d3c8;--muted: #8e887d;--rule: #2a2722;--accent: oklch(.72 .16 60);--accent-ink: #14130f}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.wrap{max-width:var(--max);margin:0 auto;padding-left:max(var(--pad),env(safe-area-inset-left));padding-right:max(var(--pad),env(safe-area-inset-right))}.mono{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:500}.display{font-family:var(--display);font-weight:400;letter-spacing:-.01em;line-height:.95}.italic{font-style:italic}.status{border-bottom:1px solid var(--rule);color:var(--muted)}.status .row{display:flex;justify-content:space-between;align-items:center;padding-top:10px;padding-bottom:10px;gap:24px;flex-wrap:wrap}.status .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#54b85b;margin-right:8px;vertical-align:middle;box-shadow:0 0 0 3px color-mix(in oklch,oklch(.7 .16 145),transparent 75%)}.status .meta{display:flex;gap:28px}nav.top{position:sticky;top:0;z-index:30;background:color-mix(in oklch,var(--bg) 92%,transparent);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--rule)}nav.top .row{display:flex;justify-content:space-between;align-items:center;padding-top:18px;padding-bottom:18px;gap:24px}.brand{display:flex;align-items:baseline;gap:10px;font-family:var(--display);font-size:22px;letter-spacing:-.01em}.brand .glyph{display:inline-block;width:22px;height:22px;border-radius:50%;background:var(--accent);transform:translateY(4px);box-shadow:inset 0 -6px color-mix(in oklch,var(--accent),black 20%)}.brand .v{font-family:var(--mono);font-size:10px;color:var(--muted);margin-left:6px;letter-spacing:.1em}.brand--logo{padding:0;line-height:0}.brand--logo img{display:block;height:32px;width:auto;max-width:none}.brand--logo-sm img{height:22px}nav .links{display:flex;gap:28px}nav .links a{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);padding:6px 2px;border-bottom:1px solid transparent;transition:border-color .2s}nav .links a:hover{border-bottom-color:var(--ink)}nav .links a .num{color:var(--muted);margin-right:6px}.btn{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:999px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--ink);cursor:pointer;transition:transform .15s ease,background .2s}.btn:hover{transform:translateY(-1px)}.btn.accent{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.ghost{background:transparent;color:var(--ink)}.btn .arrow{font-family:var(--sans);font-size:14px;transform:translateY(-1px)}.hero{padding-top:clamp(40px,7vw,96px);padding-bottom:clamp(40px,6vw,80px);position:relative}.hero .eyebrow{display:flex;gap:28px;align-items:center;color:var(--muted);margin-bottom:clamp(40px,6vw,80px)}.hero .eyebrow .bar{flex:1;height:1px;background:var(--rule)}.hero h1{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(56px,10vw,168px);line-height:.92;letter-spacing:-.02em;color:var(--ink)}.hero h1 .it{font-style:italic;color:var(--ink)}.hero h1 .amp{font-style:italic;color:var(--accent);font-weight:400}.hero .sub-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,80px);margin-top:clamp(40px,6vw,80px);padding-top:28px;border-top:1px solid var(--rule);align-items:start}.hero .lede{font-family:var(--display);font-size:clamp(20px,2.2vw,28px);line-height:1.3;color:var(--ink-2);max-width:36ch}.hero .meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px}.hero .meta-grid .label{color:var(--muted);margin-bottom:6px}.hero .meta-grid .val{font-size:15px;color:var(--ink-2)}.hero .cta-row{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap}.marquee{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);overflow:hidden;background:var(--bg-2)}.marquee-track{display:flex;gap:56px;padding:18px 0;animation:scroll 50s linear infinite;width:max-content;white-space:nowrap}.marquee-track span{font-family:var(--display);font-size:clamp(28px,4vw,56px);font-style:italic;color:var(--ink);display:inline-flex;align-items:center;gap:56px}.marquee-track span:after{content:"✦";color:var(--accent);font-size:.5em;font-style:normal}@keyframes scroll{to{transform:translate(-50%)}}.section{padding:clamp(64px,9vw,140px) 0;border-top:1px solid var(--rule)}.section-head{display:grid;grid-template-columns:220px 1fr;gap:clamp(24px,4vw,56px);align-items:baseline;margin-bottom:clamp(40px,5vw,72px)}.section-head .num{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.section-head .title{font-family:var(--display);font-size:clamp(40px,5.5vw,80px);line-height:1;letter-spacing:-.02em;color:var(--ink);margin:0}.section-head .title .it{font-style:italic}.work-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,2.5vw,36px) clamp(20px,2vw,28px);max-width:1100px;margin:0 auto}.work-card,.work-card.span4,.work-card.span6,.work-card.span8{grid-column:span 3;display:block;cursor:pointer}.work-card .frame{position:relative;aspect-ratio:3/2;background:var(--bg-2);border:1px solid var(--rule);overflow:hidden;transition:transform .4s ease}.work-card.tall .frame,.work-card.wide .frame{aspect-ratio:3/2}.work-card:hover .frame{transform:scale(.99)}.work-card .frame .placeholder{position:absolute;inset:0;background-size:24px 24px;opacity:.5}.work-card .frame .label{position:absolute;inset:auto 14px 12px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.1em}.work-card .frame .badge{position:absolute;top:14px;left:14px;background:var(--bg);color:var(--ink);font-family:var(--mono);font-size:10px;padding:5px 9px;border-radius:999px;letter-spacing:.1em;z-index:2}.work-card .frame .glyph{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-size:clamp(60px,9vw,140px);color:color-mix(in oklch,var(--ink),transparent 78%);font-style:italic}.work-card .frame img.screenshot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.work-card .frame.logo-frame{background:var(--bg)}.work-card .frame.logo-frame img.logo{position:absolute;inset:0;width:100%;height:100%;padding:clamp(16px,14%,36px);object-fit:contain;object-position:center;padding-bottom:clamp(28px,18%,48px)}.work-card .frame.logo-frame .label{color:var(--muted)}.work-card .meta{display:flex;justify-content:space-between;margin-top:14px;gap:16px}.work-card .meta .name{font-family:var(--display);font-size:clamp(20px,2vw,28px);line-height:1.1;letter-spacing:-.01em}.work-card .meta .name .it{font-style:italic}.work-card .meta .tags{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.06em;text-align:right;white-space:nowrap}.tint-1{background:linear-gradient(160deg,#ffdeba,#f9bf9f)}.tint-2{background:linear-gradient(140deg,#bae0e2,#8cc1d2)}.tint-3{background:linear-gradient(150deg,#dee9d4,#add0a5)}.tint-4{background:linear-gradient(135deg,#22110b,#3d2919)}.tint-5{background:linear-gradient(160deg,#fed2cb,#f19e97)}.tint-6{background:linear-gradient(140deg,#eeecdd,#d8cdb1)}.tint-7{background:linear-gradient(135deg,#2a2c42,#2d4772)}.tint-8{background:linear-gradient(150deg,#f9dfcb,#f5b6a0)}.tint-4 .glyph,.tint-7 .glyph{color:color-mix(in oklch,white,transparent 75%)}.tint-4 .label,.tint-7 .label{color:color-mix(in oklch,white,transparent 50%)}.work-foot{margin-top:clamp(40px,5vw,64px);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--rule);padding-top:24px;flex-wrap:wrap;gap:12px}.work-foot .count{color:var(--muted)}.services{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule)}.service{padding:clamp(28px,3vw,48px);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:20px;min-height:460px;position:relative;transition:background .25s}.service:hover{background:var(--bg-2)}.service .num{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.12em}.service h3{font-family:var(--display);font-weight:400;font-size:clamp(28px,3.2vw,44px);line-height:1;margin:0;letter-spacing:-.01em}.service h3 .it{font-style:italic}.service p{color:var(--ink-2);margin:0;line-height:1.55;max-width:38ch}.service .deliv{margin-top:auto;border-top:1px dashed var(--rule);padding-top:18px}.service .deliv .title{color:var(--muted);margin-bottom:10px}.service .deliv ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}.service .deliv li{font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:8px}.service .deliv li:before{content:"";width:4px;height:4px;background:var(--accent);border-radius:50%;flex:none}.approach-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--rule)}.step{padding:clamp(28px,3vw,44px) clamp(20px,2vw,28px);border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:18px}.step:last-child{border-right:none}.step .num{font-family:var(--display);font-style:italic;font-size:clamp(48px,6vw,96px);line-height:1;color:var(--accent)}.step h4{font-family:var(--display);font-weight:400;font-size:clamp(22px,2.4vw,32px);margin:0;letter-spacing:-.01em}.step p{color:var(--ink-2);margin:0;line-height:1.5;font-size:14px}.step .week{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.1em;margin-top:10px}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px)}.person .portrait{aspect-ratio:4/5;background:var(--bg-2);border:1px solid var(--rule);position:relative;overflow:hidden;margin-bottom:18px}.person .portrait .initials{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-style:italic;font-size:clamp(80px,10vw,180px);color:var(--ink);opacity:.18}.person .portrait .meta{position:absolute;inset:auto 14px 14px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.08em}.person .portrait .stripes{position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 14px,color-mix(in oklch,var(--ink),transparent 95%) 14px 15px)}.person .portrait img.photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:saturate(.95)}.person .name{font-family:var(--display);font-size:clamp(24px,2.4vw,36px);letter-spacing:-.01em}.person .role{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:4px}.person .bio{color:var(--ink-2);margin-top:10px;font-size:14px;max-width:32ch}.quote-wrap{border-top:1px solid var(--rule);padding:clamp(64px,8vw,120px) 0}.quote{font-family:var(--display);font-size:clamp(32px,4.5vw,64px);line-height:1.15;letter-spacing:-.01em;max-width:22ch;margin:0 auto;text-align:center}.quote .mark{color:var(--accent);font-style:italic}.quote .it{font-style:italic}.quote-cite{text-align:center;margin-top:32px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.12em}.contact-wrap{background:var(--ink);color:var(--bg)}.contact-wrap .section{border-top:none}.contact-wrap .section-head .num{color:color-mix(in oklch,var(--bg),transparent 55%)}.contact-wrap .section-head .title{color:var(--bg)}.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(32px,5vw,80px);margin-top:clamp(40px,5vw,64px)}.contact-cta{font-family:var(--display);font-size:clamp(32px,4vw,56px);line-height:1.08;color:var(--bg);letter-spacing:-.01em}.contact-cta .it{font-style:italic;color:var(--accent)}.contact-cta .email{display:inline-block;margin-top:18px;border-bottom:2px solid var(--accent);padding-bottom:4px;font-style:italic}.contact-info{display:grid;grid-template-columns:1fr 1fr;gap:32px 24px;align-content:start}.contact-info .block .label{color:color-mix(in oklch,var(--bg),transparent 55%);margin-bottom:8px}.contact-info .block .val{font-size:15px;color:var(--bg);line-height:1.55}.contact-info .block a:hover{color:var(--accent)}footer{background:var(--ink);color:color-mix(in oklch,var(--bg),transparent 30%);padding:28px 0;border-top:1px solid color-mix(in oklch,var(--bg),transparent 90%)}footer .row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}footer .row .mono{color:color-mix(in oklch,var(--bg),transparent 40%)}footer .signature .glyph{background:var(--accent)}footer .brand{color:var(--bg)}footer .links a{color:color-mix(in oklch,var(--bg),transparent 40%);margin-left:18px}footer .links a:hover{color:var(--bg)}@media (max-width: 1100px){.work-card,.work-card.span4,.work-card.span6,.work-card.span8{grid-column:span 4}}@media (max-width: 820px){.work-card,.work-card.span4,.work-card.span6,.work-card.span8{grid-column:span 6}}@media (max-width: 960px){.services{grid-template-columns:1fr}.approach-grid{grid-template-columns:1fr 1fr}.step:nth-child(2){border-right:none}.step:nth-child(1),.step:nth-child(2){border-bottom:1px solid var(--rule)}.team-grid{grid-template-columns:1fr 1fr}.hero .sub-row{grid-template-columns:1fr}.hero .meta-grid{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr}.section-head{grid-template-columns:1fr;gap:12px}nav .links{display:none}}@media (max-width: 540px){.work-card,.work-card.span4,.work-card.span6,.work-card.span8{grid-column:span 12}}@media (max-width: 600px){.approach-grid{grid-template-columns:1fr}.step{border-right:none;border-bottom:1px solid var(--rule)}.step:last-child{border-bottom:none}.team-grid,.hero .meta-grid{grid-template-columns:1fr}.status .meta{display:none}nav.top .row{padding-top:12px;padding-bottom:12px;gap:12px}.brand--logo img{height:26px}.btn{padding:10px 14px;font-size:10px;letter-spacing:.08em}.btn .arrow{font-size:13px}.section{padding:clamp(48px,14vw,80px) 0}.section-head{margin-bottom:clamp(24px,8vw,40px)}.hero h1{font-size:clamp(48px,12vw,96px)}.hero .eyebrow{gap:14px;flex-wrap:wrap}}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.reveal.is-in{opacity:1;transform:none}
