:root{color-scheme:dark;--bg:oklch(17% .015 50);--surface:oklch(22% .02 50);--text:oklch(93% .012 85);--dim:oklch(68% .015 75);--accent:oklch(74% .17 55);--plum:oklch(30% .06 350);--line:oklch(32% .02 50);--on-accent:oklch(16% .015 50);--img-well:oklch(18% .018 50);--chrome:oklch(16.5% .018 50);--dot:oklch(50% .02 50);--glow:oklch(74% .17 55/.14);--glow-strong:oklch(74% .17 55/.28);--shadow-color:#00000080;--shadow-strong:#000000d9;--shadow-card:#000000bf;--logo-shadow:#0009;--vignette:oklch(12% .02 50/.6);--scrollbar:oklch(30% .02 50);--selection-fg:var(--on-accent);--ring-blend:screen}:root[data-theme=light]{color-scheme:light;--bg:oklch(96.5% .008 85);--surface:oklch(99.5% .004 90);--text:oklch(26% .022 55);--dim:oklch(47% .02 60);--accent:oklch(60% .19 47);--plum:oklch(45% .08 350);--line:oklch(88% .012 75);--on-accent:oklch(99% .01 90);--img-well:oklch(93% .008 80);--chrome:oklch(91% .01 80);--dot:oklch(80% .012 70);--glow:oklch(70% .16 50/.12);--glow-strong:oklch(60% .18 47/.18);--shadow-color:#281e161f;--shadow-strong:#281e1629;--shadow-card:#281e162e;--logo-shadow:#281e1629;--vignette:oklch(70% .02 80/0);--scrollbar:oklch(82% .012 70);--ring-blend:normal}@media (prefers-color-scheme:light){:root:not([data-theme]){color-scheme:light;--bg:oklch(96.5% .008 85);--surface:oklch(99.5% .004 90);--text:oklch(26% .022 55);--dim:oklch(47% .02 60);--accent:oklch(60% .19 47);--plum:oklch(45% .08 350);--line:oklch(88% .012 75);--on-accent:oklch(99% .01 90);--img-well:oklch(93% .008 80);--chrome:oklch(91% .01 80);--dot:oklch(80% .012 70);--glow:oklch(70% .16 50/.12);--glow-strong:oklch(60% .18 47/.18);--shadow-color:#281e161f;--shadow-strong:#281e1629;--shadow-card:#281e162e;--logo-shadow:#281e1629;--vignette:oklch(70% .02 80/0);--scrollbar:oklch(82% .012 70);--ring-blend:normal}}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg)}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--selection-fg)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:10px}::-webkit-scrollbar-track{background:0 0}.theme-toggle{border:1px solid var(--line);width:34px;height:34px;color:var(--dim);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:color .3s,border-color .3s,transform .45s cubic-bezier(.16,1,.3,1);display:inline-flex}.theme-toggle:hover{color:var(--text);border-color:var(--accent)}.theme-toggle svg{display:block}.featured-case{border:1px solid var(--line);transition:border-color .3s,box-shadow .4s;position:relative}.featured-case:before{content:"";z-index:0;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(72% 64% at 50% 24%, var(--glow-strong), transparent 72%);transition:opacity .45s;position:absolute;inset:0}.featured-case:hover:before{opacity:1}.featured-case>*{z-index:1;position:relative}.featured-case:hover{border-color:var(--accent);box-shadow:0 36px 80px -42px var(--shadow-card), 0 16px 52px -32px var(--glow-strong)}.case-cta{transition:color .3s,transform .35s cubic-bezier(.16,1,.3,1);display:inline-block}.featured-case:hover .case-cta{color:var(--accent);transform:translate(5px)}.nav-link{transition:color .3s}.nav-link:hover{color:var(--text)}.btn-primary{transition:filter .3s}.btn-primary:hover{filter:brightness(1.08)}.btn-outline{transition:border-color .3s,color .3s}.btn-outline:hover{border-color:var(--accent)}.contact-row{position:relative}.contact-row:after{content:"";background:var(--accent);width:0;height:1px;transition:width .5s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-1px;left:0}.contact-row:hover:after{width:100%}.c-name{transition:color .3s}.contact-row:hover .c-name{color:var(--text)}.c-tag{transition:color .3s,transform .35s cubic-bezier(.16,1,.3,1)}.contact-row:hover .c-tag{color:var(--accent);transform:translate(5px)}.grain{z-index:35;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.marquee{--mq-gap:clamp(2rem, 4vw, 3.5rem);gap:var(--mq-gap);user-select:none;display:flex;position:relative;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000)}.marquee__track{align-items:center;gap:var(--mq-gap);min-width:100%;padding-right:var(--mq-gap);flex-shrink:0;animation:34s linear infinite marquee;display:flex}.marquee:hover .marquee__track{animation-play-state:paused}.marquee__item{align-items:center;gap:var(--mq-gap);white-space:nowrap;letter-spacing:-.02em;color:var(--text);font-family:Bricolage Grotesque,sans-serif;font-size:clamp(26px,4vw,54px);font-weight:600;display:inline-flex}.marquee__item:after{content:"";background:var(--accent);border-radius:50%;flex-shrink:0;width:9px;height:9px}@keyframes marquee{to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){.marquee__track{animation:none}}.exp-timeline:before{content:"";background:var(--line);width:2px;position:absolute;top:0;bottom:0;left:-1px}.exp-progress{background:var(--accent);pointer-events:none;z-index:1;width:2px;height:0;position:absolute;top:0;left:-1px}.exp-runner{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 3px var(--glow), 0 0 10px 1px var(--accent);opacity:0;pointer-events:none;z-index:2;border-radius:50%;transition:opacity .4s;position:absolute;top:0;left:-3px;transform:translateY(-50%)}.exp-seg{background:var(--accent);width:2px;box-shadow:0 0 8px var(--accent);opacity:0;transform-origin:50%;pointer-events:none;z-index:1;transition:opacity .5s,transform .55s cubic-bezier(.16,1,.3,1);position:absolute;top:6px;bottom:20px;left:-1px;transform:scaleY(.35)}.exp-job.is-active .exp-seg{opacity:.9;transform:scaleY(1)}.exp-dot{transition:box-shadow .45s,transform .45s cubic-bezier(.16,1,.3,1)}.exp-job.is-past .exp-dot{box-shadow:0 0 9px var(--accent)}.exp-job.is-active .exp-dot{box-shadow:0 0 0 4px var(--glow), 0 0 14px var(--accent);transform:scale(1.4)}.exp-role{transition:color .45s}.exp-job.is-active .exp-role{color:var(--accent)!important}@media (prefers-reduced-motion:reduce){.exp-progress,.exp-runner,.exp-seg{display:none}.exp-dot{transition:none}}
