@font-face{font-family:Manrope;src:url(/fonts/manrope-variable.ttf)format("truetype");font-style:normal;font-weight:200 800;font-display:swap}@layer reset{*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body,h1,h2,h3,p{margin:0}button,input,textarea{font:inherit}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}img,svg{max-width:100%;display:block}button{cursor:pointer}[hidden]{display:none!important}}@layer base{:root{color-scheme:light dark;--paper:light-dark(#f5f5f5,#000);--ink:light-dark(#202020,#eee);--muted:light-dark(#595959,#aaa);--subtle:light-dark(#636363,#929292);--accent:light-dark(#303030,#ddd);--border:light-dark(#d7d7d7,#2a2a2a);--hover:light-dark(#e9e9e9,#161616);--selection:light-dark(#d0d0d0,#3c3c3c);--surface:light-dark(#e7e7e7,#141414);--font-sans:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;isolation:isolate;font-size:15px;line-height:1.75}::selection{color:var(--ink);background:var(--selection)}html{scrollbar-color:var(--border) var(--paper)}a{text-underline-offset:5px;text-decoration:none}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:3px}main:focus{outline:none}p{text-wrap:pretty}h1,h2,h3{text-wrap:balance}h1{letter-spacing:-.04em;font-size:clamp(36px,4.3vw,62px);font-weight:550;line-height:1.16}h2{letter-spacing:-.035em;font-size:26px;font-weight:550;line-height:1.3}h3{letter-spacing:-.025em;font-size:20px;font-weight:600;line-height:1.4}strong{color:var(--ink);font-weight:600}}@layer layout{.site-header{z-index:3;border-bottom:1px solid var(--border);background:var(--paper);position:relative}.header-inner,.home-content{width:min(1080px,100% - 96px);margin-inline:auto}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:88px;display:flex}.home-content{z-index:1;position:relative}.hero{padding:78px 0 84px;position:relative}.hero-copy{width:min(100%,490px)}.home-section{margin-bottom:112px;scroll-margin-top:40px}.section-heading{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:28px;display:flex}.reading-page{width:min(100% - 48px,720px);margin:0 auto;padding:64px 0;position:relative}.not-found{flex-direction:column;justify-content:center;gap:22px;min-height:80svh;display:flex}}@layer components{.arrow-icon{vertical-align:middle;flex:none;transition:transform .18s;display:inline-block}.wordmark{letter-spacing:-.04em;white-space:nowrap;align-items:center;gap:10px;font-size:19px;font-weight:650;display:inline-flex}.wordmark .identity-mark{width:39px;height:30px;color:var(--ink)}.wordmark-period,.heading-period{color:var(--accent)}.main-nav{align-items:center;gap:30px;margin-left:auto;margin-right:36px;display:flex}.main-nav a{color:var(--muted);padding-block:18px;font-size:13px;transition:color .18s}.main-nav a:hover,.header-resume:hover{color:var(--ink)}.header-tools{align-items:center;gap:22px;display:flex}.display-controls{align-items:center;gap:8px;display:flex}.header-resume{color:var(--muted);white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:inline-flex}.header-resume .arrow-icon{width:14px;height:14px}.theme-toggle{border:1px solid var(--border);color:var(--muted);background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;gap:8px;width:38px;height:38px;padding:0;display:inline-flex}.theme-toggle:hover{color:var(--ink);background:var(--hover)}.theme-toggle [data-theme-label]{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.hero h1{letter-spacing:-.035em;width:fit-content;font-size:40px;font-weight:500}.hero-intro{color:var(--muted);margin-top:18px;font-size:16px;line-height:1.85}.hero-intro a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:4px}.hero-intro a:hover{text-decoration-color:var(--ink)}.hero-links{align-items:center;gap:25px;width:fit-content;margin-top:24px;display:flex}.hero-links a{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.hero-links a:hover{color:var(--ink)}.hero-links .arrow-icon{width:14px;height:14px}.motion-toggle{width:38px;height:38px;color:var(--muted);border:1px solid var(--border);background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.motion-toggle:hover{color:var(--ink);border-color:var(--subtle)}.text-link{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.text-link .arrow-icon{width:16px;height:16px}.text-link:hover{color:var(--ink)}.work-project,.career-row,.playground-link,.about-body,.section-heading{background:var(--paper);box-shadow:0 0 28px 16px var(--paper);isolation:isolate}.hero-copy{isolation:isolate;position:relative}.hero-copy:before{content:"";z-index:-1;pointer-events:none;background:color-mix(in srgb, var(--paper) 78%, transparent);box-shadow:0 0 75px 45px color-mix(in srgb, var(--paper) 78%, transparent);position:absolute;inset:-12px}:root[data-theme=dark] .hero-copy:before{display:none}:root[data-theme=dark] [data-scene-quiet],.section-description,.about-heading>*,.writing-link,.footer-invitation>p,.footer-contact>a,.footer-bottom>*{background:var(--paper);box-shadow:0 0 18px 8px var(--paper)}.about-heading>*,.section-description{width:fit-content}@media (width<=699px){.hero-copy:before{top:64px}}.work-row{border-top:1px solid var(--border);grid-template-columns:80px minmax(0,1fr) 190px;align-items:center;gap:28px;padding:30px 0;display:grid;position:relative}.work-project:last-child{border-bottom:1px solid var(--border)}.work-row:before{content:"";z-index:-1;background:var(--hover);opacity:0;border-radius:10px;transition:opacity .18s;position:absolute;inset:0 -18px}.work-row:hover:before{opacity:.7}.project-logo{place-items:center;width:80px;height:80px;display:grid}.project-logo img{object-fit:contain;width:60px;height:60px}.work-copy h3{margin-bottom:7px;font-size:22px}.work-copy p{max-width:590px;color:var(--muted);font-size:13px;line-height:1.85}.work-stack{color:var(--subtle);margin-top:12px;font-size:10px}.work-meta{color:var(--subtle);justify-content:space-between;align-items:center;gap:15px;font-size:10px;display:flex}.work-meta .arrow-icon{width:21px;height:21px}.work-row:hover .work-meta .arrow-icon{color:var(--ink);transform:translate(3px,-3px)}.career-list{margin:0;padding:0;list-style:none}.career-row{--company-accent:var(--accent);--career-meta:var(--subtle);border-top:1px solid var(--border);grid-template-columns:245px minmax(0,1fr);gap:32px;padding:30px 0;display:grid;position:relative}.career-row:before{content:"";z-index:-1;background:color-mix(in srgb, var(--company-accent) 7%, transparent);opacity:0;border-radius:10px;transition:opacity .18s;position:absolute;inset:0 -18px}.career-row:hover:before,.career-row:focus-within:before{opacity:1}.career-period{color:var(--career-meta);font-variant-numeric:tabular-nums;padding-top:12px;font-size:12px}.career-heading{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:18px;display:grid}.career-heading-text{display:block}.career-heading-text~.career-description,.career-heading-text~.career-stack{margin-left:0}.company-logo{place-items:center;width:48px;height:48px;display:grid}.company-logo img{object-fit:contain;width:48px;height:48px}.career-dizzaract .company-logo{background:#1b1b1b;border-radius:12px}.career-dizzaract .company-logo img{width:32px;height:30px}.career-arcanica .company-logo img{border-radius:12px}.career-copy h3{flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:18px;display:flex}.company-link:hover,.company-link:focus-visible{color:var(--accent)}.company-arrow{color:var(--subtle);margin-left:.35em;font-size:.8em;display:inline-block}.career-row .company-link{align-items:center;gap:8px;display:inline-flex}.career-row .company-link .arrow-icon{width:14px;height:14px;color:var(--company-accent)}.career-row .company-link:hover,.career-row .company-link:focus-visible{color:var(--company-accent)}.company-note{color:var(--career-meta);letter-spacing:0;font-size:11px;font-weight:400}.career-role{color:var(--muted);margin-top:3px;font-size:12px}.career-description{color:var(--muted);max-width:70ch;margin-top:17px;margin-left:66px;font-size:13px;line-height:1.9}.career-stack{color:var(--career-meta);margin-top:15px;margin-left:66px;font-size:10px}.section-description{color:var(--muted);margin:-13px 0 30px;font-size:14px}.playground-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:44px;margin:0;padding:0;list-style:none;display:grid}.playground-list[data-masonry-ready]{grid-auto-rows:1px}.playground-list li{border-top:1px solid var(--border);align-self:start;min-width:0}.playground-link{flex-direction:column;padding:26px 0 31px;display:flex}.playground-media{margin:2px 0 22px}.playground-media figcaption{color:var(--muted);margin-top:8px;font-size:10px}.playground-image{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:100%;height:auto;display:block}.playground-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.playground-heading h3{font-size:17px}.playground-heading .arrow-icon{width:16px;height:16px;color:var(--subtle)}.playground-link p{color:var(--muted);max-width:53ch;margin:12px 0 20px;font-size:13px;line-height:1.85}.playground-meta{color:var(--subtle);flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:auto;font-size:10px;display:flex}.playground-meta>span:first-child,a.playground-link:hover h3{color:var(--accent)}a.playground-link:hover .arrow-icon{transform:translate(2px,-2px)}.playground-note{color:var(--muted);align-self:flex-start;align-items:center;gap:6px;margin-top:14px;padding-block:6px;font-size:11px;display:inline-flex}.playground-note .arrow-icon{width:12px;height:12px}.playground-note:hover{color:var(--accent)}.about-section{border-top:1px solid var(--border);grid-template-columns:245px minmax(0,1fr);gap:32px;padding-top:48px;display:grid}.about-heading h2{font-size:29px}.about-location{color:var(--subtle);max-width:190px;margin-top:23px;font-size:11px;display:block}.about-copy{color:var(--muted);max-width:70ch;font-size:14px;line-height:1.95}.about-copy p+p{margin-top:20px}.about-links{flex-wrap:wrap;gap:26px;margin-top:27px;display:flex}.home-footer{border-top:1px solid var(--border);padding:44px 0 85px}.footer-invitation{justify-content:space-between;align-items:center;gap:24px;padding-bottom:54px;display:flex}.footer-invitation>p{color:var(--muted);font-size:16px}.footer-contact{align-items:center;gap:24px;display:flex}.footer-contact>a{letter-spacing:-.04em;align-items:center;gap:24px;font-size:48px;font-weight:500;line-height:1.2;display:inline-flex}.footer-contact>a>.arrow-icon{width:36px;height:36px}.footer-contact>a:hover{color:var(--accent)}.footer-bottom{color:var(--subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;font-size:10px;display:flex}.footer-bottom a:hover{color:var(--ink)}.back-top{align-items:center;gap:8px;display:inline-flex}.back-top .arrow-icon{width:13px;height:13px;transform:rotate(-45deg)}.writing-link{border-top:1px solid var(--border);grid-template-columns:48px minmax(0,1fr) 20px;align-items:baseline;gap:16px;padding:16px 0;font-size:14px;display:grid}.writing-year{color:var(--subtle);font-size:12px}.eyebrow{color:var(--muted);font-size:12px;font-weight:500}.back-link,.reading-description,.article-meta,.reading-footer{color:var(--muted)}.back-link:hover,.reading-footer a:hover,.project-links a:hover{color:var(--accent)}.prose{color:var(--muted);overflow-wrap:break-word;font-size:16px;line-height:1.9}.prose p+p{margin-top:1.25em}.prose h2{letter-spacing:-.03em;color:var(--ink);margin:2.5em 0 1em;font-size:23px}.prose h3{color:var(--ink);margin:2em 0 .8em;font-size:18px}.prose strong{color:var(--ink)}.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--border)}.prose a:hover{text-decoration-color:var(--accent)}.prose ul,.prose ol{margin:1.3em 0;padding-left:1.3em}.prose li+li{margin-top:.6em}.prose blockquote{border-left:1px solid var(--accent);margin:2em 0;padding-left:1.4em}.prose code{font-family:var(--font-mono);background:var(--hover);border-radius:4px;padding:2px 5px;font-size:.85em}.prose pre{border:1px solid var(--border);border-radius:6px;margin:1.6em 0;padding:22px;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose hr{border:0;border-top:1px solid var(--border);margin:2.5em 0}}@layer utilities{.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:20;background:var(--ink);color:var(--paper);padding:8px 16px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}@media (width<=1100px){.header-inner,.home-content{width:calc(100% - 80px)}.main-nav{gap:22px;margin-right:12px}.work-row{grid-template-columns:80px minmax(0,1fr) 28px;gap:24px}.work-meta>span{display:none}.career-row,.about-section{grid-template-columns:200px minmax(0,1fr)}}@media (width<=760px){.header-inner,.home-content{width:calc(100% - 40px)}.header-inner{flex-wrap:wrap;gap:8px;padding-top:15px}.wordmark{font-size:18px}.header-tools{gap:12px;margin-left:auto}.display-controls{gap:6px}.header-resume{font-size:12px}.main-nav{order:3;justify-content:flex-start;gap:28px;width:100%;margin:3px 0 0}.main-nav a{padding-block:13px;font-size:12px}.hero{padding:50px 0 64px}.hero-copy{width:min(100%,490px)}.hero h1{font-size:32px}.hero-intro{margin-top:16px;font-size:14px;line-height:1.9}.hero-links{gap:24px;margin-top:20px}.home-section{margin-bottom:72px}.section-heading{gap:16px;margin-bottom:22px}h2{font-size:24px}.work-row{grid-template-columns:64px minmax(0,1fr) 18px;align-items:start;gap:17px;padding:25px 0}.project-logo{width:64px;height:64px}.project-logo img{width:48px;height:48px}.work-copy h3{font-size:19px}.work-copy p{font-size:12px;line-height:1.8}.work-stack{margin-top:10px;font-size:9px;line-height:1.9}.work-meta{padding-top:4px}.work-meta .arrow-icon{width:17px;height:17px}.career-row{grid-template-columns:1fr;gap:14px;padding:26px 0}.career-row:before{inset-inline:-12px}.career-period{padding-top:0;font-size:10px}.career-heading{grid-template-columns:44px minmax(0,1fr);gap:14px}.company-logo,.company-logo img{width:44px;height:44px}.career-dizzaract .company-logo img{width:30px;height:28px}.career-copy h3{font-size:18px}.career-description{margin-top:18px;margin-left:0;font-size:13px}.career-stack{margin-left:0;line-height:1.9}.playground-list{grid-template-columns:1fr}.playground-link{padding-block:23px 27px}.section-description{margin-top:-8px;font-size:13px}.about-section{grid-template-columns:1fr;gap:25px;padding-top:34px}.about-heading h2{font-size:30px}.about-location{max-width:none;margin-top:15px}.about-copy{font-size:13px}.footer-invitation{flex-direction:column;align-items:flex-start;gap:15px;padding-bottom:40px}.footer-contact{gap:12px}.footer-contact>a{gap:14px;font-size:36px}.footer-contact>a>.arrow-icon{width:28px;height:28px}.footer-invitation>p{font-size:14px}.footer-bottom{justify-content:flex-start;font-size:10px}.back-top{margin-left:auto}.home-footer{padding-bottom:94px}}@media (width<=360px){.main-nav{gap:22px}.hero h1{font-size:29px}.work-row{grid-template-columns:48px minmax(0,1fr) 16px;gap:12px}.project-logo{width:48px;height:54px}.project-logo img{width:38px;height:38px}.header-tools{gap:10px}.header-resume{display:none}.footer-contact>a{gap:10px;font-size:30px}.footer-contact>a>.arrow-icon{width:24px;height:24px}}@media (pointer:coarse){.main-nav a,.text-link,.hero-links a,.header-resume{min-height:44px}.theme-toggle,.motion-toggle{width:44px;height:44px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:0s!important}}@media print{.site-header,.motion-toggle,.lunar-scene{display:none!important}}}@layer light-cards{@media screen{:root[data-theme=light] .home-content{--card-radius:24px;--card-padding:32px;--card-gap:20px;--gallery-bottom-gap:0px}:root[data-theme=light] :is(.work-project,.career-row,.playground-link,.about-section,.hero-copy,.footer-invitation,.footer-bottom,.writing-link){--paper:#fff;padding:var(--card-padding);border-radius:var(--card-radius);background:var(--paper);box-shadow:none;isolation:isolate;border:0;position:relative}:root[data-theme=light] :is(.work-project,.career-row,.playground-link):before{content:"";z-index:-1;border-radius:inherit;background:var(--paper);opacity:1;pointer-events:none;transition:inset .18s ease-out;position:absolute;inset:0}:root[data-theme=light] :is(.work-project,.career-row,a.playground-link):focus-within:before{inset:-3px}:root[data-theme=light] .work-project+.work-project{margin-top:var(--card-gap)}:root[data-theme=light] .work-row{border:0;padding:0 0 28px}:root[data-theme=light] .work-row:before{display:none}:root[data-theme=light] .career-list{gap:12px;display:grid}:root[data-theme=light] .career-row{grid-template-columns:213px minmax(0,1fr)}:root[data-theme=light] .playground-list{column-gap:24px}:root[data-theme=light] .playground-list li{border:0}:root[data-theme=light] .playground-image{border:0;border-radius:8px}:root[data-theme=light] .hero-copy{width:min(100%,550px)}:root[data-theme=light] .hero-copy:before{display:none}:root[data-theme=light] .section-heading{padding:18px var(--card-padding);border-radius:var(--card-radius);box-shadow:none;background:#fff;align-items:center}:root[data-theme=light] .section-description{padding:12px var(--card-padding);box-shadow:none;background:#fff;border-radius:16px;margin-top:-16px}:root[data-theme=light] .about-section{align-items:start}:root[data-theme=light] .about-heading{padding:0}:root[data-theme=light] .about-body{box-shadow:none;background:0 0;padding:0}:root[data-theme=light] :is(.about-heading>*,.footer-invitation>p,.footer-contact>a,.footer-bottom>*){box-shadow:none;background:0 0}:root[data-theme=light] .home-footer{border:0;padding-top:0}:root[data-theme=light] .footer-invitation{margin-bottom:var(--card-gap)}:root[data-theme=light] .footer-bottom{padding-block:18px}:root[data-theme=light] .writing-link+.writing-link{margin-top:12px}@media (hover:hover){:root[data-theme=light] :is(.work-project,.career-row,a.playground-link):hover:before{inset:-3px}}@media (width<=1100px){:root[data-theme=light] .career-row{grid-template-columns:168px minmax(0,1fr)}}@media (width<=760px){:root[data-theme=light] .home-content{--card-radius:20px;--card-padding:22px;--card-gap:16px}:root[data-theme=light] .work-row{grid-template-columns:48px minmax(0,1fr) 18px;gap:14px;padding-bottom:24px}:root[data-theme=light] .project-logo{width:48px;height:48px}:root[data-theme=light] .career-row{grid-template-columns:1fr}:root[data-theme=light] .playground-list{row-gap:var(--card-gap)}:root[data-theme=light] .section-heading{flex-wrap:wrap;gap:10px 18px}:root[data-theme=light] .footer-contact{gap:8px}:root[data-theme=light] .footer-contact>a{gap:10px;font-size:clamp(26px,7.5vw,36px)}:root[data-theme=light] .footer-contact>a>.arrow-icon{width:24px;height:24px}:root[data-theme=light] .footer-bottom{gap:12px 20px}}@media (width<=360px){:root[data-theme=light] .home-content{--card-padding:18px}:root[data-theme=light] .work-row{grid-template-columns:38px minmax(0,1fr) 16px;gap:10px}:root[data-theme=light] .project-logo{width:38px;height:44px}}}}site-scrollbar{display:none}@media (hover:hover) and (pointer:fine){html:has(site-scrollbar){scrollbar-width:none}html:has(site-scrollbar)::-webkit-scrollbar{display:none}site-scrollbar{z-index:40;touch-action:none;width:14px;display:block;position:fixed;top:0;bottom:0;right:0}site-scrollbar[data-idle],:root[data-gallery-open] site-scrollbar{display:none}.scrollbar-thumb{background:var(--border);border-radius:999px;width:6px;transition:width .16s,background-color .16s;position:absolute;top:0;right:3px}site-scrollbar:hover .scrollbar-thumb,site-scrollbar[data-dragging] .scrollbar-thumb{background:var(--subtle);width:8px}}@media print{site-scrollbar{display:none!important}}
