@font-face{font-family:Geist;src:url(/fonts/Geist-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}:root{--bg:#f5f0eb;--fg:#1a1a1a;--fg-dim:#555;--fg-muted:#888;--line:#d4d0cb;--line-hi:#1a1a1a;--surface:#ebe6e0;--sans:"Geist", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:"Geist Mono", ui-monospace, "Cascadia Mono", "SFMono-Regular", Consolas, monospace;--max-w:960px;--side:clamp(20px, 5vw, 64px)}[data-theme=dark]{--bg:#111110;--fg:#e8e4df;--fg-dim:#aaa;--fg-muted:#666;--line:#2a2a28;--line-hi:#e8e4df;--surface:#1c1c1a}*,:before,:after{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;background:var(--bg);transition:background-color .28s}body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6;transition:background-color .2s ease-out,color .2s ease-out;overflow-x:hidden}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);transition:text-decoration-color .15s ease-out}a:hover,a:focus-visible{-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}:focus-visible{outline:2px solid var(--fg);outline-offset:2px}::selection{background:var(--fg);color:var(--bg)}::view-transition-group(root){animation-duration:.48s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}::view-transition-image-pair(root){animation-duration:.48s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}::view-transition-old(root){animation-duration:.48s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}::view-transition-new(root){animation-duration:.48s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}::view-transition-old(root){animation-name:theme-old-page}::view-transition-new(root){animation-name:theme-new-page}@keyframes theme-old-page{to{opacity:0}}@keyframes theme-new-page{0%{opacity:0}}html.view-transitioning body,html.view-transitioning .site-header,html.view-transitioning .site-mark,html.view-transitioning .site-nav a,html.view-transitioning .toggle-btn,html.view-transitioning .section-label,html.view-transitioning .project-num,html.view-transitioning .project-label,html.view-transitioning .project-title,html.view-transitioning .project-desc,html.view-transitioning .project-link,html.view-transitioning .project-figure,html.view-transitioning .video-fallback,html.view-transitioning .other-work-title,html.view-transitioning .other-work-details p,html.view-transitioning .about-body p,html.view-transitioning .contact-block,html.view-transitioning .site-footer,html.view-transitioning .btn,html.view-transitioning .back-to-top{transition:none!important}img{max-width:100%;display:block}.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}.shell{z-index:1;max-width:var(--max-w);padding:0 var(--side);margin:0 auto;position:relative}.site-header{border-bottom:1px solid var(--line);background:var(--bg);z-index:100;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;display:flex;position:sticky;top:0}.site-mark{font-family:var(--mono);letter-spacing:.04em;flex-shrink:0;font-size:18px;font-weight:600;text-decoration:none}.site-nav{gap:28px;list-style:none;display:flex}.site-nav a{letter-spacing:.06em;text-transform:uppercase;color:var(--fg-dim);font-size:13px;font-weight:500;text-decoration:none;transition:color .15s ease-out}.site-nav a:hover,.site-nav a:focus-visible{color:var(--fg);outline:none}.header-controls{flex-shrink:0;align-items:center;gap:8px;display:flex}.toggle-btn{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--fg-muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 10px;font-size:11px;font-weight:500;line-height:1;transition:color .15s ease-out,border-color .15s ease-out;display:inline-flex}.toggle-btn:hover{color:var(--fg);border-color:var(--fg)}.toggle-btn[aria-pressed=true]{color:var(--fg);border-color:var(--fg-muted)}.hero{padding:clamp(60px,10vh,120px) 0 clamp(40px,6vh,80px)}.hero-kicker{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:20px;font-size:12px;font-weight:500}.hero h1{letter-spacing:-.02em;max-width:18ch;margin-bottom:24px;font-size:clamp(2.2rem,5vw,3.8rem);font-weight:500;line-height:1.1}.hero-support{color:var(--fg-dim);max-width:52ch;margin-bottom:12px;font-size:clamp(1rem,1.8vw,1.25rem);line-height:1.55}.hero-explain{color:var(--fg-muted);max-width:52ch;margin-bottom:36px;font-size:clamp(.9rem,1.5vw,1.05rem);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.btn{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--fg);border:1px solid var(--line-hi);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:12px 22px;font-size:13px;font-weight:600;text-decoration:none;transition:background-color .15s ease-out,color .15s ease-out;display:inline-flex}.btn:hover,.btn:focus-visible{background:var(--fg);color:var(--bg);outline:none}.btn-secondary{border-color:var(--line);color:var(--fg-dim)}.btn-secondary:hover,.btn-secondary:focus-visible{border-color:var(--fg);color:var(--fg);background:0 0}.section{border-top:1px solid var(--line);padding:clamp(40px,6vh,72px) 0}.section-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:32px;font-size:11px;font-weight:600}.project-card{border-bottom:1px solid var(--line);padding:32px 0}.project-card:last-child{border-bottom:none}.project-meta{align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.project-num{font-family:var(--mono);letter-spacing:.1em;color:var(--fg-muted);font-size:11px;font-weight:600}.project-label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);font-size:11px;font-weight:600}.project-title{margin-bottom:10px;font-size:clamp(1.4rem,3vw,2rem);font-weight:500;line-height:1.2}.project-desc{color:var(--fg-dim);max-width:56ch;margin-bottom:14px;font-size:15px;line-height:1.55}.project-links{flex-wrap:wrap;gap:16px;margin-bottom:0;display:flex}.project-link{font-family:var(--mono);letter-spacing:.04em;text-underline-offset:3px;font-size:12px;font-weight:600;text-decoration:underline}.project-visuals{gap:12px;margin-top:20px;display:grid}.project-figure{border:1px solid var(--line);aspect-ratio:16/9;border-radius:4px;margin:0;overflow:hidden}.project-image-link{width:100%;height:100%;display:block}.project-figure img{object-fit:cover;width:100%;height:100%;transition:transform .4s ease-out;display:block}.project-figure:hover img{transform:scale(1.03)}.project-visuals--1{grid-template-columns:1fr}.project-visuals--2,.project-visuals--3{grid-template-columns:1fr 1fr}.project-card--wide .project-figure{aspect-ratio:1280/460}.project-card--product .project-figure{aspect-ratio:1262/900}@media (width>=769px){.project-card--large{grid-template-columns:2fr 3fr;align-items:start;gap:40px;display:grid}.project-card--large .project-visuals{margin-top:0}.project-card--large .project-text{padding-top:8px}.project-card--wide{grid-template-columns:1fr 2fr;align-items:start;gap:32px;display:grid}.project-card--wide .project-visuals{margin-top:0}.project-card--wide .project-visuals--2{grid-template-columns:1fr;gap:12px}.project-card--wide .project-text{padding-top:8px}.project-card--medium{grid-template-columns:1fr 1fr;align-items:center;gap:40px;display:grid}.project-card--medium .project-text{order:2}.project-card--medium .project-visuals{order:1;margin-top:0}.project-card--medium .project-desc{max-width:38ch}.project-card--ulp{grid-template-columns:1.2fr 1fr;align-items:center;gap:40px;display:grid}.project-card--ulp .project-visuals{order:2;margin-top:0}.project-card--ulp .project-figure--video-short{margin-left:auto;margin-right:auto}.project-card--ulp .video-fallback{width:min(100%,292px);margin-left:auto;margin-right:auto}.project-card--ulp .project-desc{max-width:42ch}.project-card--duo{grid-template-columns:1fr;gap:20px;display:grid}.project-card--duo .project-visuals--2{grid-template-columns:3fr 2fr;gap:12px}.project-card--duo .project-visuals--2 .project-figure:first-child{aspect-ratio:16/10}.project-card--duo .project-visuals--2 .project-figure:last-child{aspect-ratio:640/352}.project-card--product{grid-template-columns:1fr 2fr;align-items:start;gap:32px;display:grid}.project-card--product .project-visuals{margin-top:0}.project-card--product .project-text{padding-top:8px}.project-card--product .project-desc{max-width:38ch}}.other-work-list{flex-direction:column;gap:0;display:flex}.other-work-item{border-bottom:1px solid var(--line)}.other-work-item:last-child{border-bottom:none}.other-work-title{color:var(--fg-dim);cursor:pointer;align-items:center;gap:8px;padding:12px 0;font-size:15px;list-style:none;display:flex}.other-work-title::-webkit-details-marker{display:none}.other-work-title:before{content:"+";font-family:var(--mono);color:var(--fg-muted);font-size:12px;transition:transform .2s ease-out}.other-work-item[open] .other-work-title:before{content:"−"}.other-work-title:hover{color:var(--fg)}.other-work-details{padding:0 0 12px}.other-work-details p{color:var(--fg-dim);margin-bottom:8px;font-size:14px;line-height:1.55}.about-body{max-width:60ch}.about-body p{color:var(--fg-dim);margin-bottom:18px;font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.6}.about-body p:last-child{margin-bottom:0}.about-larp{font-family:var(--mono);color:var(--fg-muted);font-size:12px;font-style:italic}.contact-block{text-align:center;padding:clamp(48px,8vh,96px) 0}.contact-block h2{max-width:20ch;margin-bottom:16px;margin-left:auto;margin-right:auto;font-size:clamp(1.8rem,4vw,3rem);font-weight:500;line-height:1.15}.contact-block p{color:var(--fg-dim);max-width:42ch;margin:0 auto 32px;font-size:1rem;line-height:1.55}.contact-email{font-family:var(--mono);letter-spacing:.02em;font-size:14px;font-weight:600}.site-footer{border-top:1px solid var(--line);text-align:center;color:var(--fg-muted);padding:32px 0;font-size:12px}.reveal{opacity:0;transition:opacity .6s ease-out var(--delay,0s), transform .6s ease-out var(--delay,0s);transform:translateY(12px)}.reveal.visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.hero{opacity:1!important;transform:none!important}.project-figure:hover img{transform:none}}.project-figure--video{aspect-ratio:16/9;border:1px solid var(--line);overflow:hidden}.project-figure--video-short{aspect-ratio:9/16;width:min(100%,292px);margin-left:auto;margin-right:auto}.video-embed{border-radius:4px;width:100%;height:100%;position:relative;overflow:hidden}.video-embed iframe{border:0;width:100%;height:100%;position:absolute;top:0;left:0}.video-fallback{color:var(--fg-muted);margin-top:8px;font-size:12px}.video-fallback a{font-family:var(--mono);font-weight:500}.project-video-item{min-width:0}.back-to-top{bottom:24px;right:calc(50vw - var(--max-w) / 2 + var(--side));background:var(--surface);border:1px solid var(--line);cursor:pointer;width:40px;height:40px;color:var(--fg-dim);z-index:90;border-radius:50%;justify-content:center;align-items:center;transition:color .15s ease-out,border-color .15s ease-out,background-color .15s ease-out;display:flex;position:fixed}.back-to-top:hover{color:var(--fg);border-color:var(--fg)}@media (width<=768px){.site-header{flex-wrap:wrap;gap:8px;padding:12px 0}.site-mark{width:100%;font-size:14px}.site-nav{order:3;justify-content:center;gap:18px;width:100%;margin-top:4px}.site-nav a{font-size:12px}.header-controls{order:2;margin-left:auto}.project-visuals--2,.project-visuals--3{grid-template-columns:1fr}.project-card--product .project-figure{aspect-ratio:1262/900}.hero-actions{flex-direction:column}.hero-actions .btn{justify-content:center;width:100%}.contact-block h2{max-width:none}.back-to-top{bottom:24px;right:16px}}@media (width<=480px){.site-nav{gap:14px}.site-nav a{letter-spacing:.04em;font-size:11px}.back-to-top{width:36px;height:36px;bottom:16px;right:16px}}@media (width>=769px){.back-to-top{right:calc(50vw - var(--max-w) / 2 + var(--side))}}
