:root{--font-serif:"Fraunces", Georgia, serif;--font-sans:"PP Mori", Arial, sans-serif;--font-mono:"DM Mono", "Courier New", monospace;--font-editorial:var(--font-serif);--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:18px;--leading-body:1.45;--leading-loose:1.5;--tracking-display:-.03em;--ink:#10100f;--paper:#f4f1eb;--lime:#d7ff45;--coral:#ff6d57;--blue:#7b8dff;--cyan:#6fe3d1;--bg:var(--ink);--fg:var(--paper);--fg-muted:#a5a19a;--border:#f4f1eb38;--accent:var(--lime);--fg-muted-on-paper:#6c6963;--border-on-paper:#10100f2e;--space-2:.5rem;--space-4:1rem;--space-5:1.5rem;--section-pad:clamp(96px, 12vw, 144px);--gutter:clamp(22px, 6vw, 94px);--measure:100%;--radius-pill:999px;--ease-standard:cubic-bezier(.22, .8, .24, 1);--duration-fast:.18s;--duration-slow:.45s}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}:focus-visible{outline:2px solid var(--accent,#d7ff45);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.skip-link{top:-100%;left:var(--space-4);z-index:100;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--fg);color:var(--bg);font:500 13px var(--font-sans);text-decoration:none;position:absolute}.skip-link:focus-visible{top:var(--space-4)}h1,h2,h3{text-wrap:balance}:root{--header-h:88px;--header-anchor-gap:8px}@media (width<=800px){:root{--header-h:72px}}.site-chrome{z-index:50;background:var(--bg);--capsule-gap:12px;--capsule-inset:max(8px, var(--inset,0px) - var(--capsule-gap));transition:background-color var(--duration-slow) var(--ease-standard), border-color var(--duration-slow) var(--ease-standard);position:sticky;top:0}.site-chrome:before{content:"";z-index:-1;inset:8px var(--capsule-inset);border:1px solid color-mix(in srgb, var(--fg) 50%, transparent);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--bg) 72%, transparent);box-shadow:0 16px 40px color-mix(in srgb, var(--fg) 16%, transparent);-webkit-backdrop-filter:blur(14px);opacity:0;pointer-events:none;transition:opacity var(--duration-slow) var(--ease-standard), transform var(--duration-slow) var(--ease-standard);position:absolute;transform:translateY(-6px)}.spotify-page>.site-chrome{--capsule-inset:calc(-1 * var(--capsule-gap))}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif)}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);line-height:var(--leading-loose);margin:0}.wrap{--inset:max(var(--gutter), (100% - var(--measure)) / 2);padding-left:var(--inset);padding-right:var(--inset)}body.nav-scrolled>.site-chrome{background:0 0;border-bottom-color:#0000}body.nav-scrolled>.site-chrome:before{opacity:1;transform:translateY(0)}.site-chrome{align-items:center;gap:var(--space-4);height:var(--header-h);border-bottom:1px solid var(--border);grid-template-columns:1fr auto 1fr;padding-block:0;display:grid}.site-chrome a{color:inherit;text-decoration:none}.ch-brand{font:700 var(--text-sm) / 1.2 var(--font-sans);letter-spacing:-.02em;align-items:center;gap:12px;margin-left:12px;display:inline-flex}.ch-mark{flex:none;grid-template-columns:1fr 1fr;gap:3px;width:22px;height:22px;display:grid;transform:rotate(45deg)}.ch-mark i{background:var(--lime);border-radius:2px}.ch-mark i:nth-child(2){background:var(--coral)}.ch-mark i:nth-child(3){background:var(--blue)}.ch-mark i:nth-child(4){background:var(--cyan)}.ch-swap{min-width:0;display:grid}.ch-swap>*{grid-area:1/1}.ch-swap-center>*{justify-self:center}.ch-swap-end>*{justify-self:end}.ch-layer{min-width:0;transition:opacity var(--duration-fast) var(--ease-standard), transform var(--duration-slow) var(--ease-standard), visibility var(--duration-slow);align-items:center;display:flex}.ch-scrolled{opacity:0;visibility:hidden;transform:translateY(10px)}body.nav-scrolled .has-section-nav .ch-rest{opacity:0;visibility:hidden;transform:translateY(-10px)}body.nav-scrolled .ch-scrolled{opacity:1;visibility:visible;transform:none}.ch-site-nav{font:600 var(--text-sm) / 1.2 var(--font-sans);align-items:center;gap:8px;display:flex}.ch-site-nav a{opacity:.68;transition:opacity var(--duration-fast) var(--ease-standard);padding:14px 10px;display:inline-block}.ch-site-nav a:hover{opacity:1}.ch-section-nav{align-items:center;gap:.4rem;display:flex}.ch-section-nav a{border:1px solid var(--border);border-radius:var(--radius-pill);font:10px/1 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;opacity:0;transition:opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);padding:.55rem .8rem;transform:translateY(6px)}body.nav-scrolled .ch-section-nav a{opacity:1;transition-delay:calc(var(--i,0) * 45ms);transform:none}.ch-section-nav a:hover,.ch-section-nav a:focus-visible{border-color:var(--accent);color:var(--accent)}.ch-section-nav a.is-active{background:var(--accent);border-color:var(--accent);color:var(--ink)}.site-chrome .ch-contact{border:1px solid var(--accent);border-radius:var(--radius-pill);background:var(--accent);color:var(--ink);font:800 var(--text-sm) / 1.5 var(--font-sans);box-shadow:0 0 0 color-mix(in srgb, var(--accent) 0%, transparent);transition:transform var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);align-items:center;gap:12px;padding:14px 18px;display:inline-flex}.ch-contact:hover{background:color-mix(in srgb, var(--accent) 88%, var(--ink));border-color:color-mix(in srgb, var(--accent) 88%, var(--ink));box-shadow:0 12px 24px color-mix(in srgb, var(--accent) 28%, transparent);transform:translateY(-3px)}.ch-contact-label{line-height:1.5}.ch-contact .ch-icon{width:1.1rem;height:1.1rem;transition:transform var(--duration-fast) var(--ease-standard);flex:none;justify-content:center;align-items:center;display:inline-flex}.ch-contact .ch-icon svg{width:100%;height:100%;display:block}.ch-contact:hover .ch-icon,.ch-contact:focus-visible .ch-icon{transform:translate(3px)rotate(-8deg)}.ch-top{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--fg);font:10px/1 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;cursor:pointer;background:0 0;align-items:center;gap:8px;padding:.6rem .9rem;display:inline-flex}.ch-top:hover{border-color:var(--accent);color:var(--accent)}.ch-top .ch-arrow{transition:transform var(--duration-fast) var(--ease-standard)}.ch-top:hover .ch-arrow{transform:translateY(-2px)}@media (width<=800px){.site-chrome{grid-template-columns:auto minmax(0,1fr) auto;gap:10px}.ch-site-nav,.ch-top-label,.has-section-nav .ch-brand-name{display:none}.ch-swap-center>*{justify-self:stretch}.ch-section-nav{scrollbar-width:none;padding-inline:2px;overflow-x:auto;mask-image:linear-gradient(90deg,#0000,#000 14px calc(100% - 14px),#0000)}.ch-section-nav::-webkit-scrollbar{display:none}.ch-contact{padding:10px 14px;font-size:12px}.site-chrome{--capsule-inset:8px}.spotify-page>.site-chrome{--capsule-inset:-8px}}@media (prefers-reduced-motion:reduce){.site-chrome:before{transform:none}.ch-layer,.ch-section-nav a,.ch-contact:hover{transition-delay:0s!important;transform:none!important}}.site-foot{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:100px;font:11px/1.2 var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);display:flex}.site-foot.wrap{position:relative}.site-foot.wrap:before{content:"";inset:0 var(--inset) auto;border-top:1px solid var(--border);position:absolute}.site-foot a{color:var(--accent);transition:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);text-decoration:none}.ft-back,.ft-top{align-items:center;gap:.5em;display:inline-flex}.ft-icon{width:1.2em;height:1.2em;transition:transform var(--duration-fast) var(--ease-standard);flex:none;display:inline-flex}.ft-icon svg{width:100%;height:100%;display:block}.ft-back:hover .ft-icon,.ft-back:focus-visible .ft-icon{transform:translate(-3px)}.ft-top:hover .ft-icon,.ft-top:focus-visible .ft-icon{transform:translateY(-3px)}@media (width<=800px){.site-foot{min-height:130px;padding-top:var(--space-5);padding-bottom:var(--space-5);flex-wrap:wrap}.ft-meta{order:3;width:100%}}@media (prefers-reduced-motion:reduce){.ft-icon{transform:none!important}}.project-cursor-page{--cursor-icon:currentColor}.project-cursor-page .portfolio-cursor{z-index:100;pointer-events:none;opacity:0;transform-origin:4px 3px;will-change:transform;width:32px;height:38px;transition:opacity .2s var(--ease-standard);display:none;position:fixed;top:0;left:0;transform:translate(-100px,-100px)}.project-cursor-page .portfolio-cursor svg{filter:drop-shadow(0 4px 4px #10100f42);width:100%;height:100%;display:block;overflow:visible}.project-cursor-page .portfolio-cursor path{fill:var(--ink);stroke:var(--lime);stroke-width:2.2px;stroke-linejoin:round}.project-cursor-page .portfolio-cursor-trail{--cursor-trail-opacity:1;z-index:99;pointer-events:none;opacity:var(--cursor-trail-opacity);transition:opacity .18s var(--ease-standard);position:fixed;inset:0;overflow:hidden}.project-cursor-page .portfolio-cursor-icon-templates{display:none}.project-cursor-page .portfolio-cursor-particle{width:80px;height:80px;color:var(--cursor-icon);opacity:0;filter:drop-shadow(0 4px 5px #10100f33);animation:.84s cubic-bezier(.22,.8,.24,1) both portfolio-icon-bloom;display:block;position:fixed}@keyframes portfolio-icon-bloom{0%{opacity:0;transform:translate(-50%,-50%)scale(.08)rotate(0)}16%{opacity:.94;transform:translate(-50%, -50%) scale(.92) rotate(calc(var(--particle-rotation) * -.35))}to{opacity:0;transform:translate(calc(-50% + var(--particle-drift-x)), calc(-50% + var(--particle-drift-y))) scale(var(--particle-scale)) rotate(var(--particle-rotation))}}@media (hover:hover) and (pointer:fine){.project-cursor-page .portfolio-cursor{display:block}.project-cursor-page .portfolio-cursor[data-visible=true]{opacity:1}.project-cursor-page,.project-cursor-page a,.project-cursor-page button,.project-cursor-page [role=button]{cursor:none}}@media (prefers-reduced-motion:reduce){.project-cursor-page .portfolio-cursor{transition:opacity .2s var(--ease-standard)}.project-cursor-page .portfolio-cursor-particle{animation:none;display:none}}.project-cursor-page [data-scroll-section]{--section-reveal:0px;--section-opacity:1;opacity:var(--section-opacity);clip-path:inset(var(--section-reveal) 0 0);will-change:opacity, clip-path}.project-cursor-page [data-scroll-parallax]{transform:translate3d(0, var(--scroll-parallax-y,0px), 0);will-change:transform}.project-cursor-page [data-scroll-reveal]{--scroll-reveal-progress:0;opacity:var(--scroll-reveal-progress);filter:blur(calc((1 - var(--scroll-reveal-progress)) * 3px));will-change:transform, opacity, filter}.project-cursor-page [data-scroll-reveal=up]{transform:translate3d(0, calc((1 - var(--scroll-reveal-progress)) * 34px), 0)}.project-cursor-page [data-scroll-reveal=wipe]{opacity:1;filter:blur(calc((1 - var(--scroll-reveal-progress)) * 7px));-webkit-mask-image:linear-gradient(90deg, #000 0%, #000 calc((var(--scroll-reveal-progress) * 100%) - 10%), transparent calc((var(--scroll-reveal-progress) * 100%) + 10%), transparent 100%);mask-image:linear-gradient(90deg, #000 0%, #000 calc((var(--scroll-reveal-progress) * 100%) - 10%), transparent calc((var(--scroll-reveal-progress) * 100%) + 10%), transparent 100%);display:inline-block}@media (prefers-reduced-motion:reduce){.project-cursor-page [data-scroll-section]{opacity:1;clip-path:none}.project-cursor-page [data-scroll-parallax]{transform:none}.project-cursor-page [data-scroll-reveal]{opacity:1;filter:none;transform:none}}
