:root{--bg: #0a0907;--surface: #12100e;--border: #1f1f1f;--text: #f2efe9;--text-muted: #9a958d;--accent: #f2efe9;--font-display: "Raleway", system-ui, sans-serif;--font-body: "Lato", system-ui, sans-serif;--weight-display: 800;--radius: 20px;--max-width: 1120px;--gutter: clamp(16px, 4vw, 48px);--ease: cubic-bezier(.2, .7, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-display);letter-spacing:-.03em;line-height:1.05}h1{font-size:clamp(44px,8vw,104px)}h2{font-size:clamp(32px,5vw,56px);margin-bottom:24px}h3{font-size:24px;letter-spacing:-.02em;margin-bottom:12px}main,.nav,.footer{max-width:var(--max-width);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.nav-bar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) var(--nav-bg-top),transparent);transition:background-color .3s var(--ease),backdrop-filter .3s var(--ease)}.nav-bar.is-scrolled{background:color-mix(in srgb,var(--bg) var(--nav-bg-scrolled),transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}:root{--nav-bg-top: 0%;--nav-bg-scrolled: 85%}.nav{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:24px;padding-bottom:24px}.nav-name{font-family:var(--font-display);font-weight:700;font-size:1.21em}.nav nav{display:flex;gap:24px;flex-wrap:wrap}.nav nav a{color:var(--text-muted);font-size:15px;transition:color .2s var(--ease)}.nav nav a:hover{color:var(--text)}.hero{padding:clamp(80px,16vh,180px) 0 clamp(80px,12vh,140px)}.eyebrow{color:var(--text-muted);font-size:15px;margin-bottom:24px}.lede{color:var(--text-muted);font-size:clamp(18px,2vw,22px);max-width:680px;margin-top:24px}.section{padding:clamp(64px,10vh,120px) 0;border-top:1px solid var(--border)}.section>h2+.lede{margin-top:0}.principles{list-style:none;display:grid;gap:16px;margin-top:48px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.principles li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px}.principle-index,.card-index{display:block;color:var(--text-muted);font-size:14px;margin-bottom:32px}.principles p{color:var(--text-muted)}.cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-top:48px}.card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;min-height:320px;transition:border-color .3s var(--ease),transform .3s var(--ease)}.card:hover{border-color:var(--text-muted);transform:translateY(-4px)}.card p{color:var(--text-muted);flex:1}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.tags li{font-size:13px;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:4px 12px}.back{display:inline-block;color:var(--text-muted);margin-bottom:48px;transition:color .2s var(--ease)}.back:hover{color:var(--text)}.case-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:clamp(48px,7vw,112px);align-items:start;padding:64px 0 160px}.case-nav{position:sticky;top:120px;padding-right:32px}.case-progress{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:6px;margin-bottom:32px}.case-progress-value{font-family:var(--font-display);font-weight:800;font-size:28px;font-variant-numeric:lining-nums tabular-nums;color:var(--text)}.case-progress-label{color:var(--text-muted);font-size:13px}.case-progress-track{grid-column:1 / -1;height:2px;background:var(--border);border-radius:2px;overflow:hidden;margin-top:10px}.case-progress-fill{height:100%;background:var(--text);transform-origin:left;transition:transform .15s linear}.case-nav-list{list-style:none;position:relative;display:grid;gap:4px}.case-nav-list:before{content:"";position:absolute;top:0;bottom:0;right:-33px;width:2px;background:var(--border);border-radius:999px}.case-nav-list a{display:block;padding:8px 0;font-size:15px;color:var(--text-muted);transition:color .25s var(--ease)}.case-nav-list a:hover,.case-nav-list a.is-active{color:var(--text)}.case-nav-indicator{position:absolute;top:0;right:-33px;width:2px;z-index:1;background:var(--text);border-radius:999px}.case-nav-list.is-ready .case-nav-indicator{transition:transform .45s var(--ease),height .45s var(--ease)}.case-header{padding-bottom:clamp(48px,8vh,96px)}.case-header h1{font-size:clamp(40px,5.5vw,72px);line-height:1.08}.case-section{scroll-margin-top:110px;padding:clamp(72px,12vh,140px) 0;border-top:1px solid var(--border)}.case-section h2{font-size:clamp(36px,5vw,64px);margin-bottom:40px}.case-body{color:var(--text-muted);font-size:clamp(18px,1.5vw,21px);line-height:1.65;max-width:720px}.case-body+.case-body{margin-top:20px}.case-image+.case-body{margin-top:56px}.case-list{list-style:none;display:grid;gap:10px}.case-list li{position:relative;padding-left:24px}.case-list li:before{content:"";position:absolute;left:4px;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--text-muted)}.case-points{list-style:none;display:grid;gap:40px;max-width:720px;counter-reset:point}.case-points li{counter-increment:point;padding-left:56px;position:relative}.case-points li:before{content:counter(point,decimal-leading-zero);position:absolute;left:0;top:4px;color:var(--text-muted);font-size:14px}.case-points h3{font-size:clamp(22px,2vw,28px);margin-bottom:10px}.case-points p{color:var(--text-muted);font-size:clamp(17px,1.4vw,19px);line-height:1.65}.case-meta{display:grid;gap:32px;margin-bottom:48px}.case-meta-list{display:flex;flex-wrap:wrap;gap:24px 64px}.case-meta-list dt,.case-meta-label{display:block;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}.case-meta-list dd{font-family:var(--font-display);font-weight:700;font-size:20px}.case-meta .tags{margin-top:0}.case-contribution{margin-top:40px;max-width:720px;padding:28px 32px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.case-contribution-label{display:block;font-family:var(--font-display);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--cream-headline);margin-bottom:12px}.case-contribution p{font-size:clamp(18px,1.5vw,21px);line-height:1.6}.case-image{margin-top:56px}.case-image-placeholder{display:block;width:100%;aspect-ratio:16 / 10;border-radius:var(--radius);border:1px solid var(--border)}.case-image-frame{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.case-image-frame img,.case-image-frame video{display:block;width:100%;height:auto}.case-image.is-phone{max-width:320px;margin-left:auto;margin-right:auto}.case-image.is-phone .case-image-frame{border-radius:36px}.case-image.is-phone figcaption{text-align:center}.case-gallery{display:grid;grid-template-columns:repeat(var(--cols, 2),minmax(0,1fr));gap:16px}@media (max-width: 760px){.case-image:not(.is-phone) .case-gallery{grid-template-columns:1fr}}.case-image.is-phone.is-gallery{max-width:680px}.case-image-placeholder{display:grid;place-items:center;background:var(--surface);color:var(--text-muted);font-size:13px;letter-spacing:.14em;text-transform:uppercase}.case-header .case-image{margin:0 0 clamp(40px,6vh,64px)}.case-video{aspect-ratio:16 / 9;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;background:var(--surface)}.case-video iframe{display:block;width:100%;height:100%;border:0}.case-image figcaption{margin-top:14px;color:var(--text-muted);font-size:14px}@media (max-width: 900px){.case-layout{grid-template-columns:1fr;padding-top:32px}.case-nav{display:none}}@media (prefers-reduced-motion: reduce){.case-nav-indicator,.case-progress-fill{transition:none}}.footer{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:48px;padding-bottom:48px;border-top:1px solid var(--border);color:var(--text-muted);font-size:15px}.footer div{display:flex;gap:24px}@media (max-width: 600px){.nav{flex-direction:column;align-items:flex-start;gap:12px}.principles,.cards{grid-template-columns:1fr}}.page{padding:clamp(64px,12vh,140px) 0 120px}.prose{max-width:820px}.nav nav a.active{color:var(--text)}.contact-links{list-style:none;margin-top:48px;display:grid;gap:16px}.contact-links a{font-family:var(--font-display);font-weight:700;font-size:clamp(24px,3vw,32px);letter-spacing:-.02em;border-bottom:1px solid var(--border);transition:border-color .2s var(--ease)}.contact-links a:hover{border-color:var(--text-muted)}:root{--cream: #f7eedb;--cream-text: #1a1814;--cream-muted: #5e584d}.hero{display:grid;gap:clamp(40px,6vw,96px);align-items:center;grid-template-columns:minmax(0,2.4fr) minmax(0,1fr)}.hero-photo{aspect-ratio:4 / 5;border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid var(--border)}.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}.hero h1{font-size:clamp(28px,3.2vw,46px);line-height:1.3;letter-spacing:-.01em}.hero .lede{font-size:clamp(16px,1.4vw,19px);max-width:560px}.experience{display:grid;grid-auto-flow:column;grid-auto-columns:248px;grid-template-rows:repeat(4,auto);column-gap:12px;margin-top:48px;margin-right:calc((100vw - 100%)/-2);padding-right:var(--gutter);padding-bottom:16px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--border) transparent}@media (min-width: 761px){.experience{grid-auto-columns:280px}}.role-card{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0;background:var(--cream);color:var(--cream-text);border-radius:16px;padding:20px;scroll-snap-align:start}.role-dates{color:var(--cream-muted);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;white-space:nowrap}.role-card h3{font-size:18px;margin-bottom:24px;align-self:start}.role-company{justify-self:start;align-self:start;font-size:12px;font-weight:500;color:var(--cream-text);background:#1a181414;border-radius:999px;padding:3px 10px;margin-bottom:14px}.role-summary{font-size:13px;line-height:1.5;white-space:pre-line}.plain-list{list-style:none;display:grid;gap:12px;color:var(--text-muted)}@media (max-width: 760px){.hero{grid-template-columns:1fr}.hero-visual{order:-1;max-width:280px;margin-top:32px}}:root{--top-bar-height: 6px;--top-bar: linear-gradient(90deg, #ff3b30, #ff9500, #ffcc00, #34c759, #00c7be, #007aff, #5856d6, #af52de, #ff2d55)}body:before{content:"";position:fixed;top:0;left:0;right:0;z-index:20;height:var(--top-bar-height);background:var(--top-bar)}.nav-bar{top:var(--top-bar-height)}body{padding-top:var(--top-bar-height)}:root{--cream-headline: #ead6ad}.hero h1{color:var(--cream-headline)}:root{--glint-width: 220px;--glint-duration: 9s}body:after{content:"";position:fixed;top:0;left:0;right:0;z-index:21;height:var(--top-bar-height);pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent) no-repeat;background-size:var(--glint-width) 100%;background-position:calc(var(--glint-width) * -1) 0;mix-blend-mode:soft-light;animation:glint var(--glint-duration) ease-in-out infinite}@keyframes glint{0%{background-position:calc(var(--glint-width) * -1) 0}55%{background-position:100vw 0}to{background-position:100vw 0}}@media (prefers-reduced-motion: reduce){body:after{animation:none;display:none}}:root{--wave-deep: #120870;--wave-mid: #2410c4;--wave-violet: #4612d2;--wave-bright: #6236ee;--wave-light: #c6a8ff}html,body{overflow-x:clip}.hero{position:relative;isolation:isolate}.hero-visual{position:relative;width:100%;justify-self:end}.hero-visual .hero-photo{position:relative;z-index:1}.hero-pattern{position:absolute;z-index:-1;pointer-events:none;top:-60px;left:50%;width:100vw;height:calc(100% + 180px);transform:translate(-50%)}.hero-dots{position:absolute;z-index:2;top:50%;right:-28px;display:grid;gap:10px}.hero-dots span,.hero-dots button{display:block;width:5px;height:5px;border-radius:50%;border:0;padding:0;cursor:pointer;transition:transform .2s var(--ease)}.hero-dots button{position:relative}.hero-dots button:before{content:"";position:absolute;top:-6px;right:-10px;bottom:-6px;left:-10px}.hero-dots button:hover,.hero-dots button:focus-visible,.hero-dots button.is-active{transform:scale(1.8)}.hero-dots button:focus-visible{outline:1px solid var(--text);outline-offset:3px}.hero-photo{position:relative}.hero-photo-alt{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .35s var(--ease)}.hero-photo-alt.is-active{opacity:1}@media (prefers-reduced-motion: reduce){.hero-photo-alt,.hero-dots button{transition:none}}.hero-visual{perspective:1400px}.hero-visual .hero-photo{transform:rotateY(-10deg) rotateX(3deg) translateZ(32px);transform-origin:center;box-shadow:0 30px 60px -20px #000000e6,0 60px 120px -40px #000c}:root{--glow-pulse-duration: 7s}.hp-light{animation:glow-pulse var(--glow-pulse-duration) ease-in-out infinite}@keyframes glow-pulse{0%,to{opacity:.5}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.hp-light{animation:none}}@media (max-width: 760px){.hero-visual{width:100%;justify-self:start}}.hero-line{display:block}.hero-keywords{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:28px;font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--text)}.hero-keywords li+li:before{content:"·";margin-right:14px;color:var(--text-muted)}.hero-keywords+.lede{margin-top:20px}.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}.card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.card-top .card-index{margin-bottom:0}.card-lock{color:var(--text-muted);display:inline-flex}.card-lock.is-open{color:var(--text)}html.is-scroll-locked,html.is-scroll-locked body{overflow:hidden}.case-gate-wrap{transition:filter .5s var(--ease)}.case-gated{filter:blur(14px);pointer-events:none;-webkit-user-select:none;user-select:none}.gate-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;background:color-mix(in srgb,var(--bg) 55%,transparent)}.gate-modal{width:min(440px,100%);padding:40px;border-radius:28px;background:var(--surface);border:1px solid var(--border);box-shadow:0 30px 80px #0009;text-align:center}.gate-icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:999px;border:1px solid var(--border);color:var(--text);margin-bottom:24px}.gate-modal h2{font-size:24px;line-height:1.25;letter-spacing:-.01em;margin-bottom:8px}.gate-form{display:flex;gap:8px;margin-top:28px}.gate-form input{flex:1;min-width:0;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:12px 18px;outline:none;transition:border-color .2s var(--ease)}.gate-form input:focus{border-color:var(--text-muted)}.gate-form input[aria-invalid]{border-color:#e0806a}.gate-form button{font:inherit;font-weight:700;cursor:pointer;color:var(--bg);background:var(--text);border:0;border-radius:999px;padding:12px 22px;transition:opacity .2s var(--ease)}.gate-form button:hover{opacity:.85}.gate-form button:focus-visible{outline:2px solid var(--text);outline-offset:3px}.gate-error{height:20px;line-height:20px;margin-top:12px;font-size:14px;color:#e0806a;overflow:hidden}.gate-modal{overflow:hidden}.gate-track{--gate-gap: 96px;display:grid;grid-template-columns:100% 100%;column-gap:var(--gate-gap);align-items:start;transition:transform .45s var(--ease)}.gate-track.is-request{transform:translate(calc(-100% - var(--gate-gap)))}.gate-panel{position:relative;min-width:0}.gate-links{display:flex;justify-content:center;gap:24px;margin-top:8px}.gate-link{font:inherit;font-size:14px;color:var(--text-muted);background:none;border:0;padding:0;cursor:pointer;transition:color .2s var(--ease)}.gate-link:hover,.gate-link:focus-visible{color:var(--text)}.gate-icon-back{position:absolute;top:-12px;left:-12px;display:grid;place-items:center;width:40px;height:40px;border-radius:999px;border:0;background:none;color:var(--text-muted);cursor:pointer;transition:color .2s var(--ease),background-color .2s var(--ease)}.gate-icon-back:hover,.gate-icon-back:focus-visible{color:var(--text);background:var(--border)}.gate-panel:last-child h2{margin-top:40px}.gate-note{margin-top:24px;color:var(--text-muted)}.gate-note a{color:var(--text);border-bottom:1px solid var(--border)}@media (prefers-reduced-motion: reduce){.gate-track{transition:none}}@media (max-width: 480px){.gate-modal{padding:32px 24px}.gate-form{flex-direction:column}}:root{--success: #34c759}.gate-scrim{transition:opacity .5s var(--ease)}.gate-scrim.is-leaving{opacity:0;pointer-events:none}.gate-form button{position:relative;transition:opacity .2s var(--ease),background-color .25s var(--ease)}.gate-form button.is-success{background:var(--success);color:#fff;opacity:1;cursor:default}.gate-form button.is-success .gate-btn-label{visibility:hidden}.gate-check{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:22px;height:22px;stroke-dasharray:24;stroke-dashoffset:24;animation:gate-check-draw .4s .15s var(--ease) forwards}@keyframes gate-check-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){.gate-scrim,.case-gate-wrap{transition:none}.gate-check{animation:none;stroke-dashoffset:0}}.skills-section{position:relative;isolation:isolate;text-align:center}.skills-section>h2,.skills-lede{margin-left:auto;margin-right:auto}.skills-lede{max-width:640px}.skills-section:before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - 50vw);width:100vw;background-image:linear-gradient(rgba(242,239,233,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(242,239,233,.07) 1px,transparent 1px),linear-gradient(rgba(242,239,233,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(242,239,233,.03) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;background-position:center top;-webkit-mask-image:linear-gradient(transparent,#000 25%,#000 75%,transparent);mask-image:linear-gradient(transparent,#000 25%,#000 75%,transparent);pointer-events:none}.skills{list-style:none;margin-top:48px;display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:12px}.skill{display:grid;grid-template-rows:3em auto;gap:16px}.skill-name{align-self:end;font-family:var(--font-display);font-weight:700;font-size:14px;line-height:1.3}.skill-boxes{display:grid;grid-template-rows:repeat(5,56px);gap:6px}.skill-box{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:10px}.skill-box-fill{position:absolute;inset:auto 0 0 0;height:calc(var(--fill) * 100%);background:var(--top-bar);background-size:calc(var(--n) * 100%) 100%;background-position:calc(var(--i) / (var(--n) - 1) * 100%) 0;transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease) var(--delay)}.skills.is-shown .skill-box-fill{transform:scaleY(1)}@media (max-width: 760px){.skills{grid-template-columns:repeat(3,1fr);row-gap:32px}.skill-boxes{grid-template-rows:repeat(5,36px)}.skill-name{font-size:12px}}@media (prefers-reduced-motion: reduce){.skill-box-fill{transition:none}}
