:root{--bg: #faf0ea;--surface: #fffdfb;--ink: #241f1c;--ink-soft: #4b423d;--muted: #8c8079;--line: #ece0d8;--line-strong: #dccbc0;--accent: #9e4059;--accent-soft: rgba(158, 64, 89, .1);--on-accent: #ffffff;--sky: #82b0ce;--sky-ink: #2f6f91;--rose: #e19aa6;--rose-ink: #9e4059;--on-color: #ffffff;--display: "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--body: "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--maxw: 1120px;--gutter: clamp(20px, 5vw, 64px);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #14100f;--surface: #1e1917;--ink: #f3ece7;--ink-soft: #cfc6c0;--muted: #9a8f88;--line: rgba(255, 255, 255, .11);--line-strong: rgba(255, 255, 255, .2);--accent: #e59aab;--accent-soft: rgba(229, 154, 171, .16);--on-accent: #1a1210;--sky: #82b0ce;--sky-ink: #9cc4dd;--rose: #e7a9b4;--rose-ink: #e59aab;--on-color: #16100f;color-scheme:dark}}:root[data-theme=dark]{--bg: #14100f;--surface: #1e1917;--ink: #f3ece7;--ink-soft: #cfc6c0;--muted: #9a8f88;--line: rgba(255, 255, 255, .11);--line-strong: rgba(255, 255, 255, .2);--accent: #e59aab;--accent-soft: rgba(229, 154, 171, .16);--on-accent: #1a1210;--sky: #82b0ce;--sky-ink: #9cc4dd;--rose: #e7a9b4;--rose-ink: #e59aab;--on-color: #16100f;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);width:100%}main{flex:1 0 auto}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:13.5px;letter-spacing:.01em;padding:13px 20px;border-radius:10px;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.btn .arrow{transition:transform .2s ease}.btn:hover .arrow{transform:translate(3px)}.btn-primary{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent)}.btn-primary:hover{transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(150%) blur(10px);border-bottom:1px solid var(--line)}.nav-inner{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:-.01em}.brand span{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:4px}.nav-links a{font-family:var(--mono);font-size:12.5px;letter-spacing:.02em;color:var(--muted);padding:8px 10px;border-radius:6px;transition:color .18s ease,background .18s ease}.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--ink);background:var(--accent-soft)}.nav-links a.contact-link{color:var(--ink)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line-strong);border-radius:8px;background:transparent;color:var(--ink);cursor:pointer;padding:0;margin-left:4px;transition:border-color .18s ease,background .18s ease}.theme-toggle:hover{background:var(--accent-soft);border-color:var(--accent)}.theme-toggle svg{width:16px;height:16px;display:block}.theme-toggle .moon{display:none}:root[data-theme=dark] .theme-toggle .sun{display:none}:root[data-theme=dark] .theme-toggle .moon{display:block}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .theme-toggle .sun{display:none}:root:not([data-theme=light]) .theme-toggle .moon{display:block}}@media (max-width: 620px){.nav-links .nav-only{display:none}}section{scroll-margin-top:84px}.band{padding-block:clamp(56px,9vw,104px)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:clamp(28px,5vw,52px)}.section-head h2{font-family:var(--display);font-weight:700;font-size:clamp(28px,5vw,50px);letter-spacing:-.03em;line-height:1;margin:0;text-wrap:balance}.section-head .count{font-family:var(--mono);font-size:13px;color:var(--muted)}.section-head a.count:hover{color:var(--accent)}.metrics{border-block:1px solid var(--line);background:var(--surface)}.metrics-grid{max-width:var(--maxw);margin-inline:auto;display:grid;grid-template-columns:repeat(4,1fr)}.metric{padding:clamp(22px,3vw,34px) var(--gutter);border-left:1px solid var(--line)}.metric:first-child{border-left:none}.metric .num{font-family:var(--display);font-weight:700;font-size:clamp(26px,3.6vw,40px);letter-spacing:-.02em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}.metric .cap{margin-top:10px;font-size:13.5px;color:var(--muted);line-height:1.4}@media (max-width: 760px){.metrics-grid{grid-template-columns:1fr 1fr}.metric{border-top:1px solid var(--line)}.metric:nth-child(odd){border-left:none}.metric:nth-child(-n+2){border-top:none}}@media (max-width: 420px){.metrics-grid{grid-template-columns:1fr}.metric{border-left:none;border-top:1px solid var(--line)}.metric:first-child{border-top:none}}.tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:4px 9px;border-radius:100px;border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap}.tag.client{background:var(--sky);color:#14262f;border-color:var(--sky)}.tag.personal{background:var(--rose);color:#3a1b24;border-color:var(--rose)}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{font-family:var(--mono);font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:4px 8px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2.4vw,24px)}.cards.stagger .card.lead{grid-column:1 / -1}@media (max-width: 720px){.cards{grid-template-columns:1fr}}.card{display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:clamp(22px,3vw,32px);transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;position:relative}.card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));transform:translateY(-3px)}@media (prefers-reduced-motion: reduce){.card:hover{transform:none}}.card .kind{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.card h3{font-family:var(--display);font-weight:600;font-size:clamp(21px,2.6vw,27px);letter-spacing:-.02em;line-height:1.05;margin:0}.card.lead h3{font-size:clamp(26px,4vw,40px);font-weight:700}.card p{margin:0;color:var(--ink-soft);font-size:15px;line-height:1.6}.card.lead p{font-size:clamp(15px,1.9vw,18px);max-width:60ch}.card .card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:6px}.card .go{font-family:var(--mono);font-size:12.5px;color:var(--accent);display:inline-flex;align-items:center;gap:6px}.card .go .arrow{transition:transform .2s ease}.card:hover .go .arrow{transform:translate(3px)}.card .result-val{font-size:13px;color:var(--muted);text-align:right;max-width:20ch}.hero{padding-block:clamp(32px,5vw,64px) clamp(36px,7vw,76px)}.hero-grid{display:grid;grid-template-columns:1fr;gap:clamp(24px,4vw,40px);align-items:start}.hero-media{order:-1}.hero-media img{display:block;width:100%;max-width:240px;height:300px;object-fit:cover;object-position:center 18%;border-radius:18px;border:1px solid var(--line-strong);box-shadow:0 24px 60px -34px #00000073}@media (min-width: 860px){.hero-grid{grid-template-columns:1.4fr .6fr;gap:clamp(32px,5vw,60px);align-items:center}.hero-media{order:0;justify-self:end}.hero-media img{max-width:320px;height:400px}.hero h1{font-size:clamp(44px,6.6vw,84px)}.hero .lede{max-width:17ch}}.hero .status{display:inline-flex;align-items:center;gap:9px;margin-bottom:26px}.dot{width:8px;height:8px;border-radius:50%;background:var(--rose);position:relative}.dot:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--rose);opacity:.4}.hero h1{font-family:var(--display);font-weight:700;font-size:clamp(44px,10.5vw,118px);line-height:.94;letter-spacing:-.035em;margin:0;text-wrap:balance}.hero .lede{font-family:var(--display);font-weight:500;font-size:clamp(21px,3.6vw,38px);line-height:1.12;letter-spacing:-.02em;max-width:19ch;margin:.5em 0 0;color:var(--ink-soft);text-wrap:balance}.hero .lede em{font-style:normal;color:var(--accent)}.hero .intro{max-width:56ch;margin-top:28px;color:var(--muted);font-size:clamp(16px,1.9vw,18.5px);line-height:1.65}.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}.page-head{padding-block:clamp(48px,8vw,92px) clamp(24px,4vw,44px)}.page-head h1{font-family:var(--display);font-weight:700;font-size:clamp(38px,8vw,82px);letter-spacing:-.035em;line-height:.96;margin:14px 0 0;text-wrap:balance}.page-head .sub{margin-top:20px;color:var(--muted);font-size:clamp(16px,2vw,19px);max-width:60ch;line-height:1.6}.back-link{font-family:var(--mono);font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:7px;transition:color .18s ease}.back-link:hover{color:var(--accent)}.back-link .arrow{transition:transform .2s ease}.back-link:hover .arrow{transform:translate(-3px)}.about-grid{display:grid;grid-template-columns:1fr;gap:clamp(40px,6vw,72px)}@media (min-width: 880px){.about-grid{grid-template-columns:1.1fr .9fr}}.about-copy p{font-size:clamp(17px,2.1vw,20px);line-height:1.62;color:var(--ink-soft);margin:0 0 20px;max-width:56ch}.about-copy p:last-child{margin-bottom:0}.about-copy strong{color:var(--ink);font-weight:600}.skills{display:flex;flex-direction:column;gap:22px}.skill-group .sg-title{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.skill-group ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.skill-group li{font-size:13.5px;color:var(--ink-soft);border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:6px 11px}.timeline{display:flex;flex-direction:column}.tl-row{display:grid;grid-template-columns:160px 1fr;gap:clamp(16px,3vw,40px);padding-block:26px;border-top:1px solid var(--line)}.tl-row:first-child{border-top:none}.tl-when{font-family:var(--mono);font-size:12.5px;color:var(--muted);padding-top:4px}.tl-role{font-family:var(--display);font-weight:600;font-size:clamp(18px,2.2vw,22px);letter-spacing:-.01em;margin:0}.tl-org{color:var(--accent);font-size:15px;margin-top:3px}.tl-note{color:var(--muted);font-size:14.5px;margin-top:8px;max-width:62ch;line-height:1.55}@media (max-width: 600px){.tl-row{grid-template-columns:1fr;gap:8px}}.case-hero{padding-block:clamp(20px,3vw,32px) clamp(36px,6vw,64px)}.case-title{font-family:var(--display);font-weight:700;font-size:clamp(34px,7vw,74px);letter-spacing:-.035em;line-height:.98;margin:18px 0 0;text-wrap:balance}.case-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:20px}.case-lead{font-size:clamp(18px,2.3vw,22px);line-height:1.55;color:var(--ink-soft);max-width:62ch;margin:24px 0 0}.case-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:32px}.case-facts .fact{background:var(--surface);padding:20px 22px}.case-facts .fk{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.case-facts .fv{margin-top:8px;font-size:14.5px;color:var(--ink);line-height:1.4}.case-facts .fv.accent{font-family:var(--display);font-weight:600;font-size:16px}.case-video-wrap{padding-block:0 clamp(36px,6vw,64px)}.case-video{margin:0}.case-video video{display:block;width:100%;height:auto;aspect-ratio:16 / 9;background:#000;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px -24px #00000080}.case-video figcaption{margin-top:12px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--muted)}.case-body{display:flex;flex-direction:column;gap:clamp(28px,4vw,44px);max-width:72ch}.case-section h2{font-family:var(--display);font-weight:600;font-size:clamp(20px,2.6vw,27px);letter-spacing:-.02em;margin:0 0 12px;line-height:1.1}.case-section h2:before{content:"";display:inline-block;width:22px;height:2px;background:var(--accent);vertical-align:middle;margin-right:12px;transform:translateY(-4px)}.case-section p{margin:0;font-size:clamp(16px,1.9vw,18px);line-height:1.66;color:var(--ink-soft)}.case-stack{margin-top:8px}.case-nav{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-top:clamp(40px,6vw,64px);padding-top:28px;border-top:1px solid var(--line)}.contact{border-top:1px solid var(--line);background:var(--surface)}.contact-inner{padding-block:clamp(64px,11vw,128px)}.contact h2{font-family:var(--display);font-weight:700;font-size:clamp(34px,7vw,84px);letter-spacing:-.035em;line-height:.95;margin:0;text-wrap:balance}.contact .mailto{display:inline-flex;align-items:center;gap:14px;margin-top:28px;font-family:var(--display);font-weight:500;font-size:clamp(19px,3.2vw,30px);letter-spacing:-.02em;color:var(--accent);border-bottom:2px solid transparent;transition:border-color .2s ease}.contact .mailto:hover{border-color:var(--accent)}.contact .mailto .arrow{transition:transform .2s ease}.contact .mailto:hover .arrow{transform:translate(3px,-3px)}.contact .avail{margin-top:28px;color:var(--muted);font-size:15.5px;max-width:48ch;line-height:1.6}.contact .avail b{color:var(--ink);font-weight:600}.contact .socials{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}footer{border-top:1px solid var(--line);flex-shrink:0}.foot-inner{padding-block:26px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:12px;color:var(--muted)}.foot-inner a:hover{color:var(--accent)}.foot-links{display:flex;gap:16px;flex-wrap:wrap}.journey-stat{font-family:var(--mono);font-size:12.5px;letter-spacing:.02em;color:var(--muted);margin-top:20px;display:flex;flex-wrap:wrap;gap:8px 20px}.journey-stat b{color:var(--ink);font-weight:600}.journey-stat .sky{color:var(--sky-ink)}.journey-stat .rose{color:var(--rose-ink)}.journey{list-style:none;margin:0;padding:0;position:relative}.j-item{position:relative;padding-left:40px;padding-bottom:clamp(26px,4vw,46px);--node: var(--sky)}.j-item.is-personal{--node: var(--rose)}.j-item:before{content:"";position:absolute;left:6px;top:8px;bottom:-2px;width:2px;background:var(--node);opacity:.6}.j-item:last-child:before{bottom:auto;height:16px}.j-node{position:absolute;left:0;top:5px;width:15px;height:15px;border-radius:50%;background:var(--bg);border:3px solid var(--node);box-shadow:0 0 0 3px var(--bg);z-index:1}.j-item.is-lead .j-node{width:20px;height:20px;left:-3px;top:3px}.j-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:clamp(15px,2.2vw,22px) clamp(16px,2.4vw,24px);transition:border-color .2s ease,box-shadow .2s ease}.j-card:hover{border-color:color-mix(in srgb,var(--node) 48%,var(--line))}.j-item.is-lead .j-card{border-color:color-mix(in srgb,var(--node) 45%,var(--line));box-shadow:0 10px 30px -22px color-mix(in srgb,var(--node) 70%,transparent)}.j-summary{list-style:none;cursor:pointer;display:block;position:relative;padding-right:32px}.j-summary::-webkit-details-marker{display:none}.j-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.j-when{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.03em}.j-card h3{font-family:var(--display);font-weight:600;font-size:clamp(19px,2.3vw,24px);letter-spacing:-.02em;line-height:1.1;margin:11px 0 0}.j-item.is-lead .j-card h3{font-size:clamp(23px,3.3vw,33px);font-weight:700}.j-one{margin:7px 0 0;color:var(--ink-soft);font-size:15px;line-height:1.55}.j-item.is-lead .j-one{font-size:clamp(15px,1.8vw,17px);max-width:58ch}.j-expand{position:absolute;right:0;top:0;width:26px;height:26px;border-radius:7px;border:1px solid var(--line-strong);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1;transition:transform .2s ease,border-color .2s ease,color .2s ease}.j-summary:hover .j-expand{border-color:var(--node);color:var(--node)}details[open]>.j-summary .j-expand{transform:rotate(45deg)}.j-more{margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.j-more p{margin:0;color:var(--ink-soft);font-size:15px;line-height:1.62;max-width:64ch}.j-more .chips{margin-top:14px}.j-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.j-foot .go{font-family:var(--mono);font-size:12.5px;color:var(--accent);display:inline-flex;align-items:center;gap:6px}.j-foot .go .arrow{transition:transform .2s ease}.j-foot .go:hover .arrow{transform:translate(3px)}.j-foot .result-val{font-size:12.5px;color:var(--muted);text-align:right;max-width:30ch}@media (prefers-reduced-motion: reduce){.j-expand,.j-foot .go .arrow{transition:none}}@media (max-width: 520px){.j-foot .result-val{text-align:left;max-width:none}}
