@font-face{font-family:Work Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/work-sans-latin-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/work-sans-latin-ext-var.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #ffffff;--ink: #1f1f23;--ink-2: #3f3f45;--ink-3: #55555b;--heading: #4a4a50;--line: #dcdce0;--line-soft: #e4e4e8;--sketch: #6e6e74;--frame: #9a9aa0;--accent: #2b2b30;--tint: #f5f5f6;--on-accent: #ffffff;--accent-hover: #000000;--placeholder: #ededef;--menu-bg: #e0e0dc;--shadow: rgba(31, 31, 35, .1);--name: #000000;color-scheme:light;--sans: "Work Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--corner: 4px 14px 4px 14px}html.dark{--paper: #141416;--ink: #ececee;--ink-2: #c9c9ce;--ink-3: #a0a0a8;--heading: #dadadf;--line: #2e2e33;--line-soft: #2a2a2f;--sketch: #8e8e96;--frame: #5a5a62;--accent: #ececee;--tint: #1c1c20;--on-accent: #141416;--accent-hover: #ffffff;--placeholder: #232327;--menu-bg: #1c1c20;--shadow: rgba(0, 0, 0, .45);--name: #ffffff;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}img{max-width:100%;height:auto;display:block}a{color:var(--ink)}a:hover{color:var(--ink-3)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3{margin:0}[id]{scroll-margin-top:24px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:12px;top:-56px;padding:10px 14px;display:inline-flex;align-items:center;min-height:44px;background:var(--accent);color:var(--on-accent);z-index:10;text-decoration:none;border-radius:var(--corner)}.skip-link:focus{top:12px;color:var(--on-accent)}.mono,.mono-label{font-family:var(--mono)}.mono-label{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--sketch)}.wrap{max-width:1080px;margin:0 auto;padding-left:40px;padding-right:40px}.wrap-wide{max-width:1200px;margin:0 auto;padding-left:40px;padding-right:40px}.wrap-narrow{max-width:1120px;margin:0 auto;padding-left:40px;padding-right:40px}@media(max-width:600px){.wrap,.wrap-wide,.wrap-narrow{padding-left:20px;padding-right:20px}}.site-header{padding:18px 28px;display:grid;grid-template-columns:1fr auto 1fr;gap:8px 16px;align-items:center}.site-header>.site-nav{justify-self:start}.site-header>.site-name{justify-self:center;text-align:center}.site-header>.header-tools{justify-self:end}@media(max-width:1000px){.site-header .site-nav{gap:0;font-size:14px}.site-header .site-nav a{padding:12px 6px}}.site-nav{display:flex;flex-wrap:wrap;gap:0 8px;font-size:15px;font-weight:500}.site-nav a{padding:12px 10px;text-decoration:none}.site-nav a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}.site-name{display:inline-flex;align-items:center;min-height:44px;font-size:17px;font-weight:700;text-decoration:none}.site-social{display:flex;gap:4px}.site-social a{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center}@media(max-width:800px){.site-header{padding:12px 16px}.site-name{order:-1;width:100%;padding:6px 10px 0}}.site-footer{max-width:1080px;margin:0 auto;padding:24px 40px 48px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:14px;color:var(--ink-3);border-top:1px solid var(--line)}@media(max-width:600px){.site-footer{padding-left:20px;padding-right:20px}}.site-footer a{display:inline-flex;align-items:center;min-height:44px;margin:-14px 0}.btn,.pill,.arrow-btn,.theme-btn,.menu-btn,.strip-card,.site-social a{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}::-moz-selection{background:var(--ink);color:var(--paper)}::selection{background:var(--ink);color:var(--paper)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:220px;min-height:44px;padding:0 20px;background:var(--accent);color:var(--on-accent);border:1.5px solid var(--accent);border-radius:var(--corner);text-decoration:none;font-size:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:background-color .2s ease,color .2s ease}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.btn-outline{background:transparent;color:var(--accent)}.btn-outline:hover{background:var(--accent);color:var(--on-accent)}.stack-buttons{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:36px}.row-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:32px}.row-buttons.start{justify-content:flex-start;margin-top:28px}.row-buttons.start .btn{min-width:160px}.pill{display:inline-flex;align-items:center;margin-top:14px;min-height:30px;padding:0 18px;background:var(--accent);color:var(--on-accent);border-radius:3px 10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.deco{position:absolute;pointer-events:none;overflow:visible}@media(max-width:900px){.deco{display:none}}.draw :is(path,rect,circle,ellipse,polyline):not([stroke-dasharray]){stroke-dasharray:1000;stroke-dashoffset:1000;animation:cm-draw 1.8s cubic-bezier(.4,0,.2,1) forwards;animation-delay:var(--d, 0s)}.draw [stroke-dasharray],.draw text{opacity:0;animation:cm-fade .6s ease-out forwards;animation-delay:calc(var(--d, 0s) + 1.3s)}@keyframes cm-draw{to{stroke-dashoffset:0}}@keyframes cm-fade{to{opacity:1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.draw *{animation:none!important;stroke-dashoffset:0!important;opacity:1!important}}.hero{max-width:1320px;padding-top:64px;padding-bottom:96px;display:flex;flex-wrap:wrap;gap:48px;align-items:center}.portrait{flex:1 1 400px;max-width:500px;min-width:0;aspect-ratio:1056 / 1008;-o-object-fit:cover;object-fit:cover;border-radius:48px;background:var(--placeholder)}.hero-text{flex:1 1 520px;min-width:0;position:relative;padding:112px 0;text-align:center}.hero-text{container-type:inline-size}.hero-text h1{font-size:clamp(40px,10.5cqi,84px);line-height:1;font-weight:800;letter-spacing:-.035em;color:var(--name);white-space:nowrap}.hero-role{display:flex;align-items:center;justify-content:center;gap:14px;margin:20px 0 0;font-family:var(--mono);font-size:clamp(12px,2.1cqi,15px);line-height:1.5;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}.hero-role:before,.hero-role:after{content:"";flex:0 1 56px;min-width:20px;height:1px;background:var(--frame)}@media(max-width:600px){.hero-text h1{font-size:clamp(44px,14vw,60px);white-space:normal;line-height:.98}.hero-role{font-size:12px;letter-spacing:.1em;gap:10px;text-wrap:balance}}.lead{margin:28px auto 0;max-width:520px;font-size:16px;line-height:1.6;font-weight:400;color:var(--ink-2)}.lead.muted{margin-top:14px;font-weight:400;color:var(--ink-3)}.hero-art-1{width:210px;height:172px;right:-40px;top:-70px}.hero-art-2{width:180px;height:155px;left:-50px;bottom:-10px}.hero-art-3{width:210px;height:150px;right:-60px;bottom:-70px}@media(max-width:1040px){.portrait{margin:0 auto}}@media(max-width:900px){.hero-text{padding:8px 0 0}}@media(max-width:600px){.hero{padding-top:24px;padding-bottom:56px}.portrait{border-radius:32px}}@media(max-width:600px){.hero{gap:28px}.portrait{flex:0 0 auto;width:200px;border-radius:28px}.hero .lead{margin-top:20px}.hero .lead.muted{margin-top:10px}.hero .stack-buttons{flex-direction:row;align-items:stretch;gap:8px;margin-top:24px}.hero .stack-buttons .btn{flex:1 1 0;min-width:0;padding:0 8px}}.projects-strip{padding:48px 0 96px}.strip .carousel-row{gap:40px;padding:0 28px 20px;scroll-padding-inline:28px}.strip-card{flex:0 0 min(340px,80vw);scroll-snap-align:start;text-decoration:none;display:flex;flex-direction:column;align-items:flex-start}.strip-img{display:block;width:100%;aspect-ratio:16 / 10;overflow:hidden;border-radius:6px;background:var(--placeholder);border:1px solid var(--line-soft);transform:perspective(900px) rotateY(-6deg);transition:transform .3s ease}.strip-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.strip-card:hover .strip-img{transform:perspective(900px) rotateY(0)}.strip-title{margin-top:20px;font-size:28px;line-height:1.15;font-weight:700}.strip-meta{margin-top:8px;font-size:15px;line-height:1.5;color:var(--ink-3)}@media(prefers-reduced-motion:reduce){.strip-img,.sheet{transition:none!important}}@keyframes cm-in{0%{opacity:0}to{opacity:1}}@keyframes cm-wipe{0%{clip-path:polygon(0 0,10% 0,0 100%,0 100%)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}@media(prefers-reduced-motion:no-preference){.site-header>*,.hero-text>:is(h1,p,.stack-buttons){animation:cm-in .65s ease both;animation-delay:var(--in, 0s)}.site-header>:nth-child(2){--in: .05s}.site-header>:nth-child(3){--in: .1s}.hero-text>.hero-role{--in: .06s}.hero-text>.lead{--in: .12s}.hero-text>.lead.muted{--in: .2s}.hero-text>.stack-buttons{--in: .28s}.portrait{animation:cm-wipe .65s ease both}.p-hero-text>*{animation:cm-in .65s ease both;animation-delay:var(--in, 0s)}.p-hero-text>h1{--in: .05s}.p-hero-text>.p-hero-meta{--in: .12s}.p-hero-text>.p-hero-result{--in: .16s}.p-hero-text>.p-hero-lead{--in: .2s}.p-hero-text>.row-buttons{--in: .28s}.reveal-on [data-reveal]{transition:opacity .65s ease var(--rd, 0s)}.reveal-on [data-reveal=clip]{transition:clip-path .65s ease var(--rd, 0s)}.reveal-on [data-reveal]:not([data-shown]){opacity:0}.reveal-on [data-reveal=clip]:not([data-shown]){opacity:1;clip-path:polygon(0 0,10% 0,0 100%,0 100%)}.reveal-on [data-reveal=clip][data-shown]{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.reveal-on [data-reveal]:not([data-shown]) .draw *,.reveal-on .draw[data-reveal]:not([data-shown]) *{animation-play-state:paused}}.section{padding-top:80px;padding-bottom:80px}.section-title{text-align:center;font-size:clamp(36px,4vw,52px);font-weight:700;color:var(--heading)}.sheets{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(310px,100%),1fr));gap:36px 28px;margin-top:64px}.sheet{position:relative;display:flex;flex-direction:column;padding:12px;background:var(--paper);border:1.5px solid var(--ink-2);transition:transform .25s ease,box-shadow .25s ease}.sheet-0{transform:rotate(-1deg)}.sheet-1{transform:rotate(.6deg)}.sheet-2{transform:rotate(-.4deg)}.sheet:hover{transform:rotate(0) translateY(-4px);box-shadow:0 12px 28px var(--shadow)}@media(max-width:700px){.sheet,.sheet:hover{transform:none}}.reg{position:absolute}.reg-tl{top:-8px;left:-8px}.reg-tr{top:-8px;right:-8px}.reg-bl{bottom:-8px;left:-8px}.reg-br{bottom:-8px;right:-8px}.sheet-frame{flex-grow:1;display:flex;flex-direction:column;border:1px solid var(--frame)}.sheet-ruler{height:6px;border-bottom:1px solid var(--frame);background:repeating-linear-gradient(90deg,var(--frame) 0 1px,transparent 1px 12px)}.sheet-body{flex-grow:1;padding:22px 20px 20px}.sheet-body h3{margin-top:10px;font-size:22px;line-height:1.2;font-weight:700}.wins{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.5;color:var(--ink-2)}.wins li{display:flex;gap:10px}.wins span{font-family:var(--mono);color:var(--accent)}.title-block{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--frame)}.title-block>div{padding:7px 10px;border-top:1px solid var(--frame);border-left:1px solid var(--frame)}.title-block>div:nth-child(1),.title-block>div:nth-child(2){border-top:0}.title-block>div:nth-child(1),.title-block>div:nth-child(3),.title-block>div:nth-child(6){border-left:0}.title-block .tb-company{grid-column:span 2}.title-block .tb-stack{grid-column:span 3}.title-block dt{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--sketch)}.title-block dd{margin:2px 0 0;font-size:13px;font-weight:600}.title-block dd strong{font-size:14px}.title-block dd.mono{font-size:11.5px;font-weight:400;letter-spacing:-.01em}@media(max-width:380px){.title-block{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr)}}.skill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:24px;margin-top:56px;text-align:center}.skill-card{padding:28px 20px 26px;border:1px solid var(--line-soft);border-radius:4px 22px}.skill-art{max-width:100%;height:auto;margin:0 auto;display:block}.skill-card h3{margin:18px 0 8px;font-size:18px;font-weight:700}.skill-card p{margin:0;font-size:15px;line-height:1.7;color:var(--ink-2)}.skill-card strong{color:var(--ink)}.edu-line{margin:64px 0 0;text-align:center;font-size:15px;line-height:1.7;color:var(--ink-3)}.contact{position:relative;padding-top:96px;padding-bottom:72px;text-align:center;border-top:1px solid var(--line)}.contact .lead{margin-top:20px;font-weight:400}.contact-art-1{left:-10px;top:28px}.contact-art-2{right:-20px;top:16px}.back-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:15px;font-weight:500;text-decoration:none}.p-hero{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:640px;padding:120px 0 72px;background:#141416;color:#fff;overflow:hidden}.p-hero-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;-o-object-fit:cover;object-fit:cover}.p-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#141416eb,#141416b8 45%,#1414164d)}.p-hero-text{position:relative;width:100%;max-width:1280px;margin:0 auto;padding:0 40px}.p-hero .back-link{color:#dadadf}.p-hero .back-link:hover{color:#fff}.p-hero h1{margin-top:12px;max-width:820px;font-size:clamp(40px,6.4vw,88px);line-height:1.02;font-weight:800;letter-spacing:-.01em;color:#fff}.p-hero-meta{margin:18px 0 0;font-size:15px;font-weight:500;color:#dadadf}.p-hero-lead{margin:18px 0 0;max-width:620px;font-size:18px;line-height:1.55;color:#c9c9ce}.btn-light{background:#fff;border-color:#fff;color:#141416}.btn-light:hover{background:#dadadf;border-color:#dadadf;color:#141416}.btn-ghost{background:transparent;border-color:#fff;color:#fff}.btn-ghost:hover{background:#fff;border-color:#fff;color:#141416}@media(max-width:600px){.p-hero{min-height:0;padding:104px 0 48px}.p-hero-text{padding:0 20px}.p-hero-lead{font-size:16px}}.site-header.overlay{position:absolute;top:0;left:0;right:0;z-index:5}.site-header.overlay>.site-nav a,.site-header.overlay>.site-name,.site-header.overlay .header-tools>.theme-btn,.site-header.overlay .header-tools>.site-social a,.site-header.overlay .header-tools>.menu-btn{color:#fff}.site-header.overlay .header-tools>.theme-btn:hover{background:#ffffff1f}.site-header.overlay :focus-visible{outline-color:#fff}.story{padding:64px 0 24px}.chapters .carousel-row{gap:40px;padding:0 40px 24px;scroll-padding-inline:40px}.chapter{flex:0 0 min(420px,84vw);scroll-snap-align:start}.tile{aspect-ratio:4 / 3;border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--tint);border:1px solid var(--line-soft)}.tile>svg{width:82%;max-width:300px;height:auto}.tile.dark{background:#1f1f23;border-color:#1f1f23}.tile.dark>img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.tile.stats-tile{overflow:visible;min-height:0;height:auto}@media(max-width:600px){.tile.stats-tile{aspect-ratio:auto}.tile-stats{padding:16px;gap:10px}:where(.project) .tile-stat-value{font-size:22px}}.tile-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;padding:22px}.tile-stats>div{padding:14px 16px;border:1px solid #3a3a40;border-radius:var(--corner)}:where(.project) .tile-stat-value{margin:0;font-size:26px;font-weight:700;color:#ececee}:where(.project) .tile-stat-label{margin:4px 0 0;font-size:12.5px;line-height:1.4;color:#a0a0a8}.phones-tile{gap:18px}.iphone.mini{flex:0 0 34%;padding:5px;border-radius:26px;box-shadow:0 0 0 2px #9c9ca3,0 0 0 3.5px #5f5f66,0 18px 40px var(--shadow)}.iphone.mini img{border-radius:21px}.iphone.mini .iphone-island{top:10px;width:36px;height:11px;margin-left:-18px}.chart-tile{padding:14px;background:#fff}.chart-tile .chart{margin:0;width:100%;padding:12px}.chapter>.mono-label{margin-top:24px}.chapter h3{margin-top:8px;font-size:30px;line-height:1.15;font-weight:700;color:var(--heading)}.chapter-body p,.chapter-body li{font-size:16px;line-height:1.75}.chapter-body p{margin:14px 0 0}.chapter-body ul{margin:14px 0 0;padding-left:18px}.chapter-body strong{color:var(--ink)}.chapter-body .small{font-size:14px;line-height:1.6;color:var(--ink-3)}.mini-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:14px 0 0}.mini-stats dt{font-size:20px;font-weight:700}.mini-stats dd{margin:2px 0 0;font-size:13px;line-height:1.4;color:var(--ink-3)}@media(max-width:600px){.chapters .carousel-row{gap:24px;padding:0 20px 20px;scroll-padding-inline:20px}}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:24px;margin:40px 0 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.facts dt{font-family:var(--mono);font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.facts dd{margin:8px 0 0;font-size:16px;font-weight:600}:where(.project) :where(p,li){color:var(--ink-2)}.project-nav{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;padding:32px 0 64px}.project-nav a{display:inline-flex;align-items:center;gap:10px;min-height:48px;text-decoration:none}.project-nav a.next{text-align:right;margin-left:auto}.project-nav .mono-label{display:block;letter-spacing:0;text-transform:none;color:var(--ink-3)}.project-nav strong{display:block;font-size:18px}.carousel-title{padding:0 40px 20px}.carousel-stage{position:relative}.carousel-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.carousel-row::-webkit-scrollbar{display:none}.carousel-arrows[hidden]{display:none}.carousel-row [inert] [data-reveal],.carousel-row [data-reveal][inert]{opacity:1!important;clip-path:none!important}.arrow-btn{position:absolute;z-index:2;top:var(--arrow-top, 40%);transform:translateY(-50%);display:inline-flex;width:60px;height:60px;align-items:center;justify-content:center;padding:0;background:#1f1f23c7;color:#fff;border:0;border-radius:50%;cursor:pointer;transition:background-color .2s ease}.arrow-btn:hover:not(:disabled){background:#1f1f23}.arrow-btn:disabled{opacity:.3;cursor:default}html.dark .arrow-btn{box-shadow:0 0 0 1px #ffffff73}.arrow-btn.prev{left:16px}.arrow-btn.next{right:16px}.strip{--arrow-top: calc(min(340px, 80vw)/3.2) }.chapters{--arrow-top: calc(min(420px, 84vw)*.375) }@media(max-width:600px){.carousel-title{padding:0 20px 16px}.carousel-arrows{display:flex;justify-content:flex-end;gap:12px;padding:12px 20px 0}.arrow-btn{position:static;transform:none;width:48px;height:48px;background:var(--accent);color:var(--on-accent)}.arrow-btn:hover{background:var(--accent-hover)}.arrow-btn svg{width:24px}.chapters .carousel-arrows{position:fixed;left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:6;justify-content:space-between;padding:0 12px;pointer-events:none;opacity:0;transform:translateY(12px);transition:opacity .2s ease,transform .2s ease}.chapters .carousel-arrows.on-screen{opacity:1;transform:none}.chapters .carousel-arrows.on-screen .arrow-btn{pointer-events:auto}.chapters .arrow-btn{pointer-events:none;width:52px;height:52px;background:#1f1f23d1;color:#fff;box-shadow:0 6px 18px #00000040}html.dark .chapters .arrow-btn{box-shadow:0 0 0 1px #ffffff73,0 6px 18px #0006}.chapters .carousel-arrows.on-screen .arrow-btn:disabled{opacity:0;pointer-events:none}}.legal{max-width:820px;margin:0 auto;padding:48px 40px 64px}@media(max-width:600px){.legal{padding-left:20px;padding-right:20px}}.legal-head{display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:space-between;padding-bottom:40px}.legal-head>div{flex:1 1 420px;min-width:0}.legal-head svg{width:150px;height:150px}@media(max-width:900px){.legal-head svg{display:none}}.legal h1{margin-top:12px;font-size:clamp(24px,7.5vw,46px);hyphens:auto;line-height:1.08;font-weight:700;color:var(--heading)}.legal h2{display:flex;align-items:baseline;gap:14px;font-size:22px;line-height:1.3;font-weight:700;color:var(--ink);hyphens:auto;overflow-wrap:break-word}.legal h2>:last-child,.legal h2{min-width:0}.legal h2 span{font-family:var(--mono);font-size:13px;font-weight:400;color:var(--sketch)}.legal p,.legal li{font-size:16px;line-height:1.7;color:var(--ink-2);overflow-wrap:anywhere}.legal p{margin:12px 0 0}.legal ul{margin:12px 0 0;padding-left:20px}.legal section{padding:32px 0;border-top:1px solid var(--line-soft)}.legal section.summary{margin-top:24px;padding:32px;background:var(--tint);border:0;border-radius:4px 24px}.not-found{max-width:720px;margin:0 auto;padding:64px 40px 96px;text-align:center}.not-found svg{width:220px;height:auto;margin:0 auto 24px;display:block}.not-found h1{font-size:clamp(36px,5vw,56px);font-weight:700;color:var(--heading)}.not-found p{margin:20px auto 0;max-width:520px;font-size:17px;line-height:1.6;color:var(--ink-2)}.float{animation:cm-float 6s ease-in-out 3s infinite}@keyframes cm-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.march{animation:cm-march 1.6s linear infinite}.draw .march{animation-name:cm-fade,cm-march;animation-duration:.6s,1.6s;animation-timing-function:ease-out,linear;animation-iteration-count:1,infinite;animation-fill-mode:forwards,none;animation-delay:calc(var(--d, 0s) + 1.3s),0s}@keyframes cm-march{to{stroke-dashoffset:-20}}.blink{animation:cm-blink 2.4s ease-in-out infinite}@keyframes cm-blink{0%,to{opacity:1}50%{opacity:.15}}.bob{animation:cm-bob 4s ease-in-out infinite}@keyframes cm-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.drift{animation:cm-drift 5s ease-in-out infinite}@keyframes cm-drift{0%,to{transform:translate(0)}50%{transform:translate(4px,-5px)}}.pop{transform-box:fill-box;transform-origin:center;animation:cm-pop 4s ease-in-out infinite}@keyframes cm-pop{0%,78%,to{transform:scale(1)}88%{transform:scale(1.15)}}.swap-a{animation:cm-swap 5s ease-in-out infinite}.swap-b{animation:cm-swap 5s ease-in-out 2.5s infinite}@keyframes cm-swap{0%,40%{opacity:1}50%,90%{opacity:.35}to{opacity:1}}@media(prefers-reduced-motion:reduce){.float,.march,.blink,.bob,.drift,.pop,.swap-a,.swap-b{animation:none!important}}.menu-btn,.mobile-menu{display:none}@media(max-width:800px){.site-header>.site-nav,.header-tools>.site-social{display:none}.site-header{display:flex;flex-wrap:nowrap;justify-content:space-between;padding:14px 20px}.site-name{order:0;width:auto;padding:0}.menu-btn{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;margin-right:-8px;background:none;border:0;color:var(--ink);cursor:pointer}.mobile-menu:not([hidden]){display:flex;flex-direction:column;position:fixed;inset:0;z-index:20;padding:14px 20px 32px;background:var(--menu-bg);animation:cm-menu .25s ease-out}.mobile-menu-top{display:flex;align-items:center;justify-content:space-between}.mobile-menu nav{margin:auto 0;display:flex;flex-direction:column}.mobile-menu nav a{font-size:44px;line-height:1.25;font-weight:500;text-decoration:none;padding:2px 0}.mobile-menu .site-social{display:flex;gap:12px}.mobile-menu .site-social svg{width:30px;height:30px}}@keyframes cm-menu{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.mobile-menu:not([hidden]){animation:none}}body.menu-open{overflow:hidden}.header-tools{display:flex;align-items:center;gap:4px}.theme-btn{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;background:none;border:0;color:var(--ink);cursor:pointer;border-radius:50%}.theme-btn:hover{background:var(--tint)}.theme-btn .icon-sun,html.dark .theme-btn .icon-moon{display:none}html.dark .theme-btn .icon-sun{display:block}svg[stroke="#6E6E74"]{stroke:var(--sketch)}svg[stroke="#55555B"]{stroke:var(--ink-3)}svg [fill="#FFFFFF"]{fill:var(--paper)}svg [fill="#6E6E74"]{fill:var(--sketch)}svg text[fill="#55555B"]{fill:var(--ink-3)}.chart{padding:16px 18px 12px;border:1px solid var(--line);border-radius:4px 18px;background:#fff}.chart img{width:100%}.chart figcaption{margin-top:8px;color:#55555b}.iphone{position:relative;margin:0;padding:8px;border-radius:48px;background:#0b0b0d;box-shadow:0 0 0 2px #9c9ca3,0 0 0 3.5px #5f5f66,0 24px 50px var(--shadow)}.iphone img{width:100%}.iphone-island{position:absolute;left:50%;top:19px;width:72px;height:21px;margin-left:-36px;border-radius:11px;background:#000}@media(hover:none){.btn-outline:hover{background:transparent;color:var(--accent)}.btn-ghost:hover{background:transparent;border-color:#fff;color:#fff}.btn:not(.btn-outline):not(.btn-ghost):not(.btn-light):hover{background:var(--accent);border-color:var(--accent)}.btn-light:hover{background:#fff;border-color:#fff}.theme-btn:hover,.site-header.overlay .header-tools>.theme-btn:hover{background:none}}.btn:active,.pill:active,.arrow-btn:active:not(:disabled){transform:scale(.97)}.arrow-btn:active:not(:disabled){transform:translateY(-50%) scale(.97)}@media(max-width:600px){.arrow-btn:active:not(:disabled){transform:scale(.97)}}.legal code{font-family:var(--mono);font-size:.9em}@media(max-width:900px){.hero-text{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));-moz-column-gap:12px;column-gap:12px}.hero-text>:not(.deco){grid-column:1 / -1}.hero-text>.deco{display:block;position:static;order:10;width:100%;height:96px;margin-top:36px}.contact .contact-art-1{display:block;position:static;width:150px;height:auto;margin:-24px auto 20px}}@media(max-width:600px){.chapters .carousel-row{align-items:flex-start;overflow-y:hidden;transition:height .25s ease}}@media(max-width:600px)and (prefers-reduced-motion:reduce){.chapters .carousel-row{transition:none}}:where(.project) .p-hero-result{margin:18px 0 0;max-width:720px;padding-left:16px;border-left:3px solid #fff;font-size:21px;line-height:1.4;font-weight:700;color:#fff}@media(max-width:600px){:where(.project) .p-hero-result{font-size:18px}}.project-nav{border-top:1px solid var(--line);margin-top:24px}
