@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/stix-two-text-cyrillic-400-normal.BeBP8F9c.woff2)format("woff2"),url(/_astro/stix-two-text-cyrillic-400-normal.BfV63fuA.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/stix-two-text-greek-400-normal.DURI2LrF.woff2)format("woff2"),url(/_astro/stix-two-text-greek-400-normal.B05reu_N.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/stix-two-text-vietnamese-400-normal.D0hKSraj.woff2)format("woff2"),url(/_astro/stix-two-text-vietnamese-400-normal.CWKP4bwO.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/stix-two-text-latin-ext-400-normal.BsQBoqgu.woff2)format("woff2"),url(/_astro/stix-two-text-latin-ext-400-normal.DJAp0_Pt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/stix-two-text-latin-400-normal.Dm29J5Fl.woff2)format("woff2"),url(/_astro/stix-two-text-latin-400-normal.rLRKR-Xb.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,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)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/stix-two-text-cyrillic-600-normal.kcc242MQ.woff2)format("woff2"),url(/_astro/stix-two-text-cyrillic-600-normal.zdEMPwZf.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/stix-two-text-greek-600-normal.B4g_sZ5N.woff2)format("woff2"),url(/_astro/stix-two-text-greek-600-normal.Cd_Bfzy_.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/stix-two-text-vietnamese-600-normal.DPFVgXT7.woff2)format("woff2"),url(/_astro/stix-two-text-vietnamese-600-normal.BR32KHbT.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/stix-two-text-latin-ext-600-normal.BIZc76hK.woff2)format("woff2"),url(/_astro/stix-two-text-latin-ext-600-normal.cArr9DC0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:STIX Two Text;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/stix-two-text-latin-600-normal.B8BS22os.woff2)format("woff2"),url(/_astro/stix-two-text-latin-600-normal.CdpSAr85.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer tokens{:root,[data-theme=light]{color-scheme:light;--color-bg:#f4f3ee;--color-surface:#fcfbf7;--color-surface-raised:#fff;--color-surface-tint:#eae8e0;--color-text:#181a17;--color-text-body:#30322e;--color-text-muted:#50534b;--color-text-faint:#696c63;--color-border:#d6d6cd;--color-border-strong:#bdbeb4;--color-primary:#146c67;--color-primary-hover:#0e514e;--color-primary-active:#083b39;--color-primary-wash:#dcedea;--color-on-primary:#fff;--color-rust:#a64b2a;--color-rust-wash:#f2e1d9;--color-error:#b3261e;--color-success:#3d6a3e;--page-scrim:linear-gradient(90deg, #f4f3ee6b, #fcfbf738 42%, #f4f3ee6b), linear-gradient(180deg, #fcfbf724, transparent 34%, #f4f3ee42);--fallback-bg:linear-gradient(90deg, #f4f3eef5, #fcfbf7fa, #f4f3eef5);--terminal-bg:linear-gradient(180deg, #fff, #fcfbf7)}[data-theme=dark]{color-scheme:dark;--color-bg:#171a18;--color-surface:#1e2320;--color-surface-raised:#272d29;--color-surface-tint:#303733;--color-text:#f7f7f1;--color-text-body:#e3e5dd;--color-text-muted:#bdc1b7;--color-text-faint:#9fa49a;--color-border:#3c443f;--color-border-strong:#566058;--color-primary:#77bdb4;--color-primary-hover:#9bd3cc;--color-primary-active:#c5e7e1;--color-primary-wash:#203b37;--color-on-primary:#10201e;--color-rust:#d68a68;--color-rust-wash:#442d26;--color-error:#ffb4ab;--color-success:#a8d9a0;--page-scrim:linear-gradient(90deg, #171a188c, #171a1859 42%, #171a188c), linear-gradient(180deg, #171a182e, transparent 34%, #171a184d);--fallback-bg:linear-gradient(90deg, #171a18f5, #1e2320fa, #171a18f5);--terminal-bg:linear-gradient(180deg, #272d29, #1e2320)}:root{--font-display:"STIX Two Text", Georgia, "Times New Roman", serif;--font-body:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--space-9:6rem;--space-10:9rem}}@layer base{*{box-sizing:border-box}html{background:var(--color-bg);scroll-behavior:smooth}body{background:var(--color-bg);min-width:320px;color:var(--color-text);font-family:var(--font-body);text-rendering:optimizelegibility;margin:0;line-height:1.55;transition:background .24s,color .24s}body:before{z-index:1;pointer-events:none;content:"";background:var(--page-scrim);opacity:var(--scrim-fade,1);position:fixed;inset:0}a{color:inherit}button,input,textarea,select{font:inherit}::selection{background:var(--color-primary-wash);color:var(--color-text)}}@layer layout{.experience{isolation:isolate;min-height:100vh;position:relative}.experience-canvas{z-index:0;background:var(--color-bg);pointer-events:none;position:fixed;inset:0}.experience-canvas canvas{width:100%;height:100%;display:block}@media (width>=821px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.experience-canvas:after{content:"";background:radial-gradient(circle 190px at var(--pointer-x,50%) var(--pointer-y,50%), color-mix(in srgb, var(--color-primary) 12%, transparent), transparent 72%);opacity:calc(var(--pointer-wash,0) * .72);pointer-events:none;position:absolute;inset:0}}.experience-canvas--fallback{background:var(--fallback-bg)}.experience-canvas--fallback:after{border:1px solid var(--color-border);content:"";position:absolute;inset:14vh 12vw;transform:skewY(-4deg)}}@layer components{.top-controls{z-index:20;gap:var(--space-2);display:flex;position:fixed;top:clamp(.85rem,2vw,1.25rem);right:clamp(.85rem,2vw,1.25rem)}.flip-button{cursor:pointer;perspective:600px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:0 0;border:0;padding:0;font-size:.78rem}.flip-button-inner{transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,.2,.2,1);display:block;position:relative}.flip-button-inner.is-flipped{transform:rotateY(180deg)}.flip-sizer{visibility:hidden;white-space:nowrap;padding:.6rem .8rem;display:block}.flip-face{border:1px solid var(--color-border);color:var(--color-text);background:var(--color-surface-raised);backface-visibility:hidden;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.flip-face--back{transform:rotateY(180deg)}.flip-button:hover .flip-face,.flip-button:focus-visible .flip-face{border-color:var(--color-primary);color:var(--color-primary-hover)}.flip-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.section-nav{z-index:20;width:11rem;position:fixed;top:50%;left:clamp(.9rem,1.6vw,1.5rem);transform:translateY(-50%)}.section-nav ol{--nav-row-height:2rem;--nav-row-gap:.125rem;isolation:isolate;padding:var(--space-2) 0 var(--space-2) var(--space-3);gap:var(--nav-row-gap);flex-direction:column;margin:0;list-style:none;display:flex;position:relative}.section-nav ol:before{top:var(--space-2);bottom:var(--space-2);z-index:0;border-left:1px solid var(--color-border);content:"";position:absolute;left:0}.section-nav ol:after{top:var(--space-2);z-index:0;height:var(--nav-row-height);border-left:2px solid var(--color-rust);content:"";background:color-mix(in srgb, var(--color-rust-wash) 78%, var(--color-surface));pointer-events:none;transform:translateY(calc(var(--active-index) * (var(--nav-row-height) + var(--nav-row-gap))));transition:transform .4s cubic-bezier(.33,1,.68,1),background-color .24s;position:absolute;left:0;right:0}.section-nav li{z-index:1;height:var(--nav-row-height);position:relative}.section-nav a{width:100%;height:100%;padding:0 var(--space-3);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;grid-template-columns:2rem minmax(0,1fr);align-items:center;font-size:.72rem;text-decoration:none;transition:color .18s,background-color .18s,transform .18s;display:grid}.section-nav-number{color:var(--color-text-muted);font-size:.68rem;transition:color .18s}.section-nav-label{color:inherit;text-overflow:ellipsis;white-space:nowrap;transition:color .18s,transform .24s cubic-bezier(.33,1,.68,1);overflow:hidden}.section-nav a:not(.is-active):hover{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary-wash) 62%, transparent);transform:translate(2px)}.section-nav a:not(.is-active):hover .section-nav-number{color:var(--color-primary)}.section-nav a:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;background:color-mix(in srgb, var(--color-primary-wash) 62%, transparent)}.section-nav a:active{transform:translate(1px)}.section-nav a.is-active{color:var(--color-rust);font-weight:600}.section-nav a.is-active .section-nav-number{color:var(--color-rust)}.section-nav a.is-active .section-nav-label{transform:translate(3px)}.scroll-sections{z-index:2;position:relative}.scroll-section{flex-direction:column;justify-content:center;width:min(100%,1420px);min-height:110vh;margin:0 auto;padding:clamp(5rem,10vw,10rem) clamp(1.25rem,5vw,5rem);display:flex}.scroll-section--intro{align-items:flex-start;max-width:1160px;min-height:100svh}.scroll-section--profile{width:min(100%,1180px);margin-left:max(0px,50vw - 710px)}.profile-layout{grid-template-columns:minmax(0,1fr) minmax(260px,390px);align-items:center;gap:clamp(2.5rem,6vw,6rem);display:grid}.profile-copy{min-width:0}.profile-portrait{border:1px solid var(--color-border);background:var(--color-surface-raised);margin:0;padding:clamp(.75rem,1.5vw,1.1rem);position:relative;transform:translateY(5vh)}.profile-portrait:before{z-index:-1;border:1px solid var(--color-border);content:"";position:absolute;inset:-1.25rem 1.5rem 1.5rem -1.25rem}.profile-portrait img{aspect-ratio:4/5;object-fit:cover;filter:saturate(.94)contrast(1.02);width:100%;display:block}.profile-portrait figcaption{margin-top:var(--space-3);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem}:root[data-portrait-mode="3d"] .profile-portrait{background:0 0}:root[data-portrait-mode="3d"] .profile-portrait img{opacity:0;transition:opacity .4s}.scroll-section--services{align-items:flex-start;min-height:78vh;padding-top:clamp(3.5rem,6vw,6rem);padding-bottom:clamp(3.5rem,6vw,6rem)}.scroll-section--printprojects{align-items:flex-start;min-height:190vh}#printprojects-overview{scroll-margin-top:clamp(4rem,10vh,6rem)}.scroll-section--skills{align-items:flex-end;min-height:78vh;padding-top:clamp(3.5rem,6vw,6rem);padding-bottom:clamp(3.5rem,6vw,6rem)}.scroll-section--security{align-items:flex-start;width:min(100%,900px);margin-right:max(0px,50vw - 710px)}.scroll-section--contact{align-items:flex-start;gap:var(--space-8);width:min(100%,1240px);min-height:100vh}.contact-copy{width:min(100%,820px)}.section-kicker{margin:0 0 var(--space-4);color:var(--color-primary);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:clamp(.75rem,.72rem + .1vw,.82rem)}h1,h2,h3,p{max-width:75ch}h1,h2{color:var(--color-text);font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-weight:600;line-height:1.12}h1{max-width:18ch;font-size:clamp(3rem,5.5vw,5.2rem)}h2{max-width:24ch;font-size:clamp(1.9rem,3.4vw,3.1rem)}h3{margin:0 0 var(--space-3);color:var(--color-text);font-family:var(--font-mono);letter-spacing:.02em;font-size:clamp(.92rem,.88rem + .25vw,1.12rem);font-weight:500}.section-lede{margin:var(--space-5) 0 0;max-width:52ch;color:var(--color-text-body);font-family:var(--font-display);font-size:clamp(1.1rem,1rem + .6vw,1.5rem);line-height:1.4}.section-body{margin:var(--space-5) 0 0;max-width:62ch;color:var(--color-text-body);font-size:clamp(.98rem,.94rem + .22vw,1.12rem)}.section-status{width:fit-content;margin:var(--space-6) 0 0;padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-mono);letter-spacing:.04em;background:color-mix(in srgb, var(--color-surface) 92%, transparent);font-size:.78rem;display:inline-flex}.intro-actions{margin-top:var(--space-6);align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.intro-actions .section-status{margin:0}.intro-contact-cta{align-items:center;text-decoration:none;transition:border-color .18s,color .18s,background .18s}.intro-contact-cta:after{margin-left:var(--space-3);color:var(--color-primary);content:"↓"}.intro-contact-cta:hover,.intro-contact-cta:focus-visible{border-color:var(--color-primary);color:var(--color-primary-hover);background:var(--color-primary-wash);outline:none}.intro-contact-cta:active{color:var(--color-primary-active)}.intro-contact-cta:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.intro-projects-cta{color:var(--color-text);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;align-items:center;font-size:.78rem;text-decoration:none;display:inline-flex}.intro-projects-cta:after{margin-left:var(--space-3);color:var(--color-primary);content:"↓"}.intro-projects-cta:hover,.intro-projects-cta:focus-visible{color:var(--color-primary-hover)}.intro-projects-cta:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.intro-projects-cta:active{color:var(--color-primary-active)}.highlight-list{max-width:760px;margin:var(--space-6) 0 0;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.highlight-list li{border-left:2px solid var(--color-border-strong);padding:var(--space-3) var(--space-4);color:var(--color-text-body);background:color-mix(in srgb, var(--color-surface) 90%, transparent)}.skill-index{width:min(100%,900px);margin-top:var(--space-6);background:var(--color-border);border:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.skill-item{background:color-mix(in srgb, var(--color-surface) 94%, transparent);min-height:200px;padding:clamp(1.25rem,3vw,2.25rem)}.skill-item p{color:var(--color-text-body);margin:0}.skill-item a{margin-top:var(--space-5);color:var(--color-text);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;text-decoration:none;display:inline-flex}.skill-item a:after{margin-left:var(--space-2);color:var(--color-primary);content:"->"}.skill-item a:hover,.skill-item a:focus-visible{color:var(--color-primary-hover)}.skill-item a:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.service-index{grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,1080px)}.project-cta{margin-top:var(--space-7);align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.project-cta a{color:var(--color-text);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;text-decoration:none;display:inline-flex}.project-cta a:after{margin-left:var(--space-2);color:var(--color-primary);content:"->"}.project-cta a:hover,.project-cta a:focus-visible{color:var(--color-primary-hover)}.project-cta a:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.project-cta-primary{border:1px solid var(--color-border-strong);padding:var(--space-3) var(--space-4);background:var(--color-primary-wash)}.contact-index{gap:var(--space-3);flex-wrap:wrap;width:min(100%,980px);display:flex}.contact-item{min-width:0;min-height:auto;padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--color-border-strong);background:color-mix(in srgb, var(--color-surface) 94%, transparent);flex:260px;text-decoration:none;transition:border-color .18s,background .18s,transform .18s;display:flex}.contact-channel{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;flex:none;font-size:.75rem}.contact-handle{min-width:0;color:var(--color-text);font-family:var(--font-display);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.9rem,.84rem + .25vw,1.05rem);line-height:1.3;overflow:hidden}.contact-item:hover .contact-handle,.contact-item:focus-visible .contact-handle{color:var(--color-primary-hover)}.contact-item:hover,.contact-item:focus-visible{border-color:var(--color-primary);background:var(--color-primary-wash);transform:translateY(-2px)}.contact-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.product-section{min-height:160vh}.product-section--tall{min-height:190vh}.product-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,5rem);width:100%;display:grid}.product-stage{min-height:46vh}.product-copy h2{overflow-wrap:anywhere;max-width:none}#glowlight .product-copy,#gcodescribe .product-copy{padding-left:clamp(1rem,3vw,3rem)}.product-section--left .product-copy{order:2}.product-section--left .product-stage{order:1}.spec-list{max-width:560px;margin:var(--space-6) 0 0;background:var(--color-border);border:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.spec-row{padding:var(--space-3) var(--space-4);background:color-mix(in srgb, var(--color-surface) 94%, transparent)}.spec-row:last-child:nth-child(odd){grid-column:1/-1}.spec-list dt{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem}.spec-list dd{margin:var(--space-1) 0 0;color:var(--color-text-body)}.model-caption{max-width:none;margin:var(--space-5) 0 0;color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}.model-status--error{color:var(--color-error)}.terminal-shell{border:1px solid var(--color-border);background:var(--terminal-bg);width:min(100%,980px);min-height:430px;color:var(--color-text);font-family:var(--font-mono);position:relative}.terminal-bar{border-bottom:1px solid var(--color-border);height:42px;padding:0 var(--space-4);align-items:center;gap:.42rem;display:flex}.terminal-bar span{border:1px solid var(--color-border-strong);background:var(--color-surface-tint);border-radius:999px;width:.52rem;height:.52rem}.terminal-bar span:first-child{border-color:var(--color-primary)}.terminal-title{top:.72rem;right:var(--space-4);color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;position:absolute}.terminal-screen{max-height:520px;padding:var(--space-5) var(--space-5) var(--space-8);scroll-padding-bottom:var(--space-8);scrollbar-color:var(--color-primary) var(--color-surface);overflow:auto}.terminal-entry{margin-bottom:var(--space-4)}.terminal-command-line,.terminal-input-line{align-items:baseline;gap:var(--space-3);display:flex}.terminal-prompt{color:var(--color-primary);white-space:nowrap;flex:none}.terminal-output-block{margin:var(--space-2) 0 0;color:var(--color-text-body);font:inherit;white-space:pre-wrap;line-height:1.55}.terminal-entry--error .terminal-output-block{color:var(--color-error)}.terminal-input-line{width:100%;margin-top:var(--space-4)}.terminal-input-line input{width:100%;min-width:0;color:var(--color-text);caret-color:var(--color-primary);background:0 0;border:0;outline:0}.terminal-shell:focus-within{border-color:var(--color-primary);outline:2px solid var(--color-primary);outline-offset:2px}.snake-overlay{z-index:30;background:color-mix(in srgb, var(--color-bg) 82%, transparent);place-items:center;padding:clamp(1rem,4vw,4rem);display:grid;position:fixed;inset:0}.snake-panel{border:1px solid var(--color-border);background:var(--color-surface-raised);width:min(100%,940px)}.snake-panel-header{justify-content:space-between;align-items:flex-start;gap:var(--space-5);border-bottom:1px solid var(--color-border);padding:var(--space-5);display:flex}.snake-kicker{margin:0 0 var(--space-2);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem}.snake-panel h2{max-width:none;font-size:clamp(2rem,5vw,3.4rem)}.snake-close,.snake-start{border:1px solid var(--color-border);padding:var(--space-2) var(--space-4);color:var(--color-text);background:var(--color-surface);cursor:pointer;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem}.snake-close:hover,.snake-start:hover,.snake-close:focus-visible,.snake-start:focus-visible{border-color:var(--color-primary);color:var(--color-primary-hover);background:var(--color-primary-wash)}.snake-close:focus-visible,.snake-start:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.snake-content{gap:var(--space-6);padding:var(--space-5);grid-template-columns:minmax(280px,400px) minmax(220px,1fr);display:grid}.snake-canvas{border:1px solid var(--color-border);background:#171a18;width:min(100%,400px);height:auto}.snake-meta{justify-content:center;gap:var(--space-4);color:var(--color-text-body);font-family:var(--font-mono);flex-direction:column;display:flex}.snake-meta p{color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.75rem}.snake-meta strong{color:var(--color-text);font-family:var(--font-display);letter-spacing:-.015em;font-size:clamp(3rem,8vw,6rem);font-weight:600;line-height:.9}.snake-meta span{max-width:34ch}.snake-start{width:fit-content}.snake-state{color:var(--color-error)}}@layer overrides{@media (width<=1380px){.section-nav{display:none}}@media (width<=820px){.scroll-section,.scroll-section--profile,.scroll-section--security,.scroll-section--contact{width:100%;margin:0;padding:clamp(3.5rem,14vw,4.5rem) 1.25rem}.scroll-section{justify-content:flex-start;min-height:auto}.scroll-section--intro{min-height:100svh;padding-top:max(6rem, env(safe-area-inset-top));justify-content:center}.scroll-section--printprojects,.product-section{justify-content:center;min-height:135svh}.product-section--tall{min-height:150svh}.scroll-section--services,.scroll-section--skills,.scroll-section--contact{align-items:stretch}.scroll-section--contact{gap:var(--space-6)}.top-controls{top:max(.75rem, env(safe-area-inset-top));right:max(.75rem, env(safe-area-inset-right));flex-wrap:nowrap;left:auto}.profile-layout{gap:var(--space-6);grid-template-columns:1fr}.profile-portrait{justify-self:center;width:min(100% - 1.5rem,22rem);max-width:none;margin-inline:auto;transform:none}.profile-portrait:before{inset:-.75rem}h1{font-size:clamp(2.2rem,9vw,3.2rem)}h2{font-size:clamp(1.7rem,7vw,2.4rem)}.section-body{font-size:1rem;line-height:1.65}.highlight-list,.skill-index{grid-template-columns:1fr}.skill-item{min-height:auto}.skill-index,.contact-index{margin-left:auto;margin-right:auto}.product-layout{grid-template-columns:1fr}.contact-item{flex-basis:100%}.product-section--left .product-copy,.product-section--right .product-copy{order:2}.product-section--left .product-stage,.product-section--right .product-stage{order:1}.product-stage{min-height:34vh}.product-copy{border:1px solid var(--color-border);width:100%;padding:var(--space-5);background:color-mix(in srgb, var(--color-surface) 94%, transparent)}.spec-list{grid-template-columns:1fr}.spec-row:last-child:nth-child(odd){grid-column:auto}.spec-list dt,.spec-list dd{overflow-wrap:anywhere}.intro-actions,.project-cta{justify-content:center;width:100%}.flip-sizer{min-height:44px;padding:.5rem .6rem}.terminal-shell{display:none}.snake-content{grid-template-columns:1fr}.snake-panel-header{flex-direction:column;align-items:flex-start}.snake-meta{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}}
