@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/poppins-latin-300-normal-Dku2WoCh.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/poppins-latin-400-normal-cpxAROuN.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/poppins-latin-500-normal-C8OXljZJ.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/poppins-latin-600-normal-zEkxB9Mr.woff2)format("woff2")}:root{--font-body:"Poppins", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--font-display:var(--font-body);--font-mono:var(--font-body);font-family:var(--font-body);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;color:#14120f;--paper:#eee6d3;--paper-bright:#f7f2e6;--ink:#14120f;--ink-soft:#3f392f;--muted:#6b6356;--accent:#b72d21;--line:#14120f1f;--line-strong:#14120f3d;--surface:#f7f2e69e;--radius-md:10px;--radius-lg:16px;--ease:cubic-bezier(.2, .7, .2, 1);--gutter:clamp(24px, 5.2vw, 100px);scroll-behavior:smooth;background:#eee6d3}*{box-sizing:border-box}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;overflow-x:clip}input,textarea,[contenteditable],.legal-body{-webkit-user-select:text;user-select:text}body.dialog-open{overflow:hidden}body.logo-hover{cursor:grab}body.dragging,body.dragging *{cursor:grabbing!important}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:4px}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}::selection{background:var(--accent);color:var(--paper)}[hidden]{display:none!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:100;color:var(--paper);background:var(--ink);border-radius:999px;padding:12px 20px;position:fixed;top:14px;left:20px;transform:translateY(-200%)}.skip-link:focus{transform:none}.red-dot{color:var(--accent)}.section-eyebrow{color:var(--muted);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;margin-bottom:14px;font-size:11px;font-weight:500;display:flex}.section-eyebrow:before{content:"";background:var(--accent);width:7px;height:7px;transform:rotate(45deg)}.world{z-index:0;pointer-events:none;background:var(--paper);position:fixed;inset:0;overflow:hidden}.world .atmosphere{background:var(--paper);position:absolute;inset:0}.world-grid,.world-horizon{display:none}.world canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.world .vignette{background:radial-gradient(#0000 50%,#402b1114);position:absolute;inset:0}.world .grain{opacity:.1;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E");position:absolute;inset:0}.fallback-object{width:min(50vw,650px);color:var(--ink);transition:left .8s,opacity .8s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-7deg)}.fallback-object svg{width:100%}.scene-ready .fallback-object{opacity:0}.scene-fallback:not([data-phase=home]) .fallback-object{opacity:.12;left:24%}main{z-index:1;position:relative}.hero{touch-action:pan-y;height:100svh;min-height:100svh;position:relative}.site-header{z-index:20;top:0;left:var(--gutter);right:var(--gutter);height:80px;transition:opacity .45s var(--ease), transform .45s var(--ease);justify-content:space-between;align-items:center;gap:28px;display:flex;position:fixed}.site-header:before{content:"";z-index:-1;inset:0 calc(-1 * var(--gutter));pointer-events:none;background:linear-gradient(#eee6d3d1,#eee6d359 70%,#eee6d300);position:absolute}.site-header.is-hidden{opacity:0;pointer-events:none;transform:translateY(-100%)}.brand{letter-spacing:-.045em;align-items:center;gap:11px;font-size:22px;font-weight:600;display:flex}.brand svg{width:27px;height:22px}.site-header nav{border:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(14px)saturate(1.2);border-radius:999px;gap:2px;padding:4px;display:flex;box-shadow:0 8px 24px -16px #1e180e59}.site-header nav a{min-height:36px;color:var(--ink-soft);border-radius:999px;align-items:center;padding:0 16px;font-size:13px;font-weight:500;transition:color .2s,background-color .2s;display:flex}.site-header nav a:hover{color:var(--ink);background:#14120f0f}.site-header nav a[aria-current]{color:var(--paper);background:var(--ink)}.site-header nav a:focus-visible{outline-offset:2px;border-radius:999px}.page-section{padding:124px var(--gutter) 60px;position:relative}.site-footer{border-top:1px solid var(--line-strong);color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px 28px;padding-top:22px;font-size:13px;display:flex}.footer-domain{color:var(--ink);letter-spacing:-.045em;font-size:22px;font-weight:600}.footer-meta{font-family:var(--font-mono);letter-spacing:.02em;font-size:12px}.experience-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.experience-controls button{border:1px solid var(--line-strong);min-height:36px;color:var(--ink-soft);background:var(--surface);font-family:var(--font-mono);border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:12px;font-weight:500;transition:color .2s,background-color .2s,border-color .2s;display:inline-flex}.experience-controls button:before{content:"";background:var(--line-strong);border-radius:50%;width:6px;height:6px;transition:background-color .2s}.experience-controls button:hover{color:var(--ink);border-color:var(--ink)}.experience-controls button[aria-pressed=true]{color:var(--paper);background:var(--ink);border-color:var(--ink)}.experience-controls button[aria-pressed=true]:before{background:var(--accent)}.experience-controls button:focus-visible{outline-offset:3px;border-radius:999px}.copyright{flex-basis:100%;font-size:12px}.project-dialog{width:min(1040px,100vw - 40px);max-height:90svh;color:var(--ink);background:var(--paper-bright);border:0;border-radius:20px;padding:0;overflow:auto;box-shadow:0 40px 120px -30px #0a080699}.project-dialog[open]{animation:dialog-in .45s var(--ease)}@keyframes dialog-in{0%{opacity:0;transform:translateY(18px)scale(.985)}}.project-dialog::backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14120f9e}.dialog-close{z-index:2;float:right;border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f7f2e6d9;border-radius:999px;align-items:center;gap:10px;min-height:40px;margin:18px 18px 0 0;padding:0 8px 0 16px;font-size:13px;font-weight:500;transition:color .2s,background-color .2s;display:flex;position:sticky;top:18px}.dialog-close span{background:var(--ink);width:26px;height:26px;color:var(--paper);border-radius:50%;place-items:center;font-size:17px;line-height:1;display:grid}.dialog-close:hover{color:var(--paper);background:var(--ink)}.dialog-close:hover span{background:var(--accent)}.dialog-content{padding:44px clamp(22px,5vw,56px) 48px}.dialog-content>.mini-label{color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:12px}.dialog-content h2{font-family:var(--font-display);letter-spacing:-.055em;margin:12px 0 28px;font-size:clamp(38px,5.4vw,76px);font-weight:600;line-height:1.02}.dialog-content>img{aspect-ratio:1.6;object-fit:cover;border-radius:var(--radius-lg);width:100%;height:auto;box-shadow:0 0 0 1px var(--line)}.dialog-description{grid-template-columns:1.1fr 1fr;gap:48px;margin-top:34px;display:grid}.dialog-description>p{letter-spacing:-.01em;font-size:22px;line-height:1.5}.dialog-description>div>p{color:var(--ink-soft);margin-bottom:12px;font-size:15px;line-height:1.75}.portfolio-tags{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.portfolio-tags span{border:1px solid var(--line-strong);color:var(--ink-soft);font-family:var(--font-mono);border-radius:999px;padding:6px 12px;font-size:11px}@media (width<=700px){:root{--gutter:22px}.site-header{gap:14px;height:68px}.brand{gap:8px;font-size:20px}.brand svg{width:24px;height:20px}.site-header nav a{min-height:34px;padding:0 12px;font-size:12px}.page-section{padding-top:98px}.site-footer{gap:14px 16px}.footer-domain{font-size:20px}.footer-meta{margin-left:auto}.experience-controls{flex:100%;margin-left:0}.experience-controls button{min-height:38px}.copyright{font-size:11px}.project-dialog{border-radius:16px;width:calc(100vw - 20px);max-height:92svh}.dialog-close{margin:12px 12px 0 0;top:12px}.dialog-content{padding-top:30px}.dialog-description{grid-template-columns:1fr;gap:16px;margin-top:24px}.dialog-description>p{font-size:18px}.fallback-object{width:85vw}.scene-fallback:not([data-phase=home]) .fallback-object{opacity:.06;left:65%}}@media (width<=360px){:root{--gutter:16px}.site-header nav a{padding:0 9px;font-size:11px}.brand>span{display:none}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.reveal-ready [data-reveal]{opacity:0;filter:blur(6px);transition:opacity .9s var(--ease), transform 1.1s var(--ease), filter .9s var(--ease);transition-delay:var(--reveal-delay,0s);transform:translateY(32px)}.reveal-ready [data-reveal].is-revealed{opacity:1;filter:none;transform:none}.footer-legal{gap:18px;margin-left:4px;font-size:13px;display:flex}.footer-legal a{color:var(--muted);transition:color .2s}.footer-legal a:hover{color:var(--accent)}.fade-image{opacity:0;transition:opacity .7s var(--ease), transform .8s var(--ease)}.fade-image.is-loaded{opacity:1}
