*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{color-scheme:dark;--background:#050806;--panel:#0b1210;--panel-raised:#101a16;--text:#e7f3ec;--text-muted:#a6b9af;--line:#294137;--line-strong:#47695a;--signal:#62f6b5;--cyan:#5ad7ff;--copper:#d99a55;--error:#ff7a70;--page-gutter:clamp(20px,4vw,48px);--shell:1180px;--font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}*{box-sizing:border-box}html{max-width:100%;scroll-behavior:smooth;scroll-padding-top:82px}body{min-height:100vh;margin:0;overflow-x:hidden;background-color:var(--background);background-image:linear-gradient(rgba(98,246,181,.024) 1px,transparent 0),linear-gradient(90deg,rgba(98,246,181,.024) 1px,transparent 0),radial-gradient(circle at 73% 3%,rgba(90,215,255,.055),transparent 29rem);background-size:24px 24px,24px 24px,100% 100%;color:var(--text);font-family:var(--font-sans);font-size:1rem;line-height:1.7;text-rendering:optimizeLegibility}a,body,button{-webkit-font-smoothing:antialiased}a{text-decoration:none}a,button{color:inherit}button{font:inherit}img,svg{display:block;max-width:100%}::-moz-selection{background:var(--signal);color:var(--background)}::selection{background:var(--signal);color:var(--background)}:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}#main-content:focus{outline:none}.site-shell{min-height:100vh;overflow:clip}.section-shell{width:min(calc(100% - (var(--page-gutter) * 2)),var(--shell));margin-inline:auto}.brand,.button,.contact-section__links,.project-row__meta,.section-label,.site-nav,.skill-panel,.tag-list{font-family:var(--font-mono)}.section-label{margin:0 0 12px;color:var(--signal);font-size:.78rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.section-label:before{display:inline-block;width:18px;height:1px;margin:0 9px 3px 0;background:currentColor;content:""}.skip-link{position:fixed;top:10px;left:10px;z-index:100;padding:10px 14px;border:1px solid var(--cyan);background:var(--panel-raised);color:var(--text);font-weight:750;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:rgba(5,8,6,.88);backdrop-filter:blur(16px)}.site-header:after{position:absolute;right:0;bottom:-1px;left:0;height:1px;background:linear-gradient(90deg,transparent,var(--signal),transparent);opacity:.18;content:""}.site-header__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:min(calc(100% - (var(--page-gutter) * 2)),var(--shell));min-height:70px;margin-inline:auto;gap:28px}.brand{display:inline-flex;width:-moz-fit-content;width:fit-content;min-height:44px;align-items:center;gap:12px;color:var(--text);font-size:.84rem;font-weight:750;letter-spacing:.08em}.brand__mark{position:relative;display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line-strong);background:var(--panel-raised);color:var(--signal);box-shadow:inset 0 0 16px rgba(98,246,181,.05);animation:chip-idle 4.8s ease-in-out infinite}.brand__mark:after,.brand__mark:before{position:absolute;top:6px;bottom:6px;width:3px;background:repeating-linear-gradient(to bottom,var(--copper) 0 2px,transparent 2px 6px);content:""}.brand__mark:before{left:-4px}.brand__mark:after{right:-4px}.brand__copy{display:flex;flex-direction:column;line-height:1.15}.brand__copy small{margin-top:4px;color:var(--text-muted);font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.site-nav{display:flex;align-items:center}.site-nav a{position:relative;display:inline-flex;min-height:44px;align-items:center;padding:0 14px;color:var(--text-muted);font-size:.75rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;transition:color .16s ease}.site-nav a:after{position:absolute;right:14px;bottom:5px;left:14px;height:1px;background:linear-gradient(90deg,transparent,var(--signal),var(--cyan));content:"";transform:scaleX(0);transform-origin:left;transition:transform .22s cubic-bezier(.22,1,.36,1)}.site-nav a span{margin-right:5px;color:var(--copper)}.site-nav a:focus-visible,.site-nav a:hover{color:var(--signal)}.site-nav a:focus-visible:after,.site-nav a:hover:after{transform:scaleX(1)}.site-header .button{justify-self:end}.button{position:relative;display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:11px;padding:10px 15px;border:1px solid var(--line-strong);border-radius:2px;background:var(--panel);color:var(--text);cursor:pointer;font-size:.75rem;font-weight:750;letter-spacing:.05em;line-height:1.25;text-transform:uppercase;overflow:hidden;transition:transform .16s ease,border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.button:after{position:absolute;top:-60%;bottom:-60%;left:-35%;width:22%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.22),transparent);content:"";pointer-events:none;transform:translateX(-220%) skewX(-18deg)}.button:before{position:absolute;top:-1px;left:-1px;width:8px;height:8px;border-top:1px solid;border-left:1px solid;content:""}.button:focus-visible,.button:hover{border-color:var(--cyan);transform:translateY(-2px)}.button:focus-visible:after,.button:hover:after{animation:control-sweep .62s ease-out}.button--small{min-height:40px;padding:8px 13px;font-size:.75rem}.button--signal{border-color:var(--signal);background:var(--signal);color:var(--background)}.button--signal:focus-visible,.button--signal:hover{border-color:var(--signal);background:#7dffc5;box-shadow:0 0 24px rgba(98,246,181,.14)}.button--ghost{background:rgba(11,18,16,.56)}.button__status{width:6px;height:6px;border-radius:50%;background:var(--background);animation:status-pulse 2.2s ease-in-out infinite}.about-section{position:relative;padding:clamp(72px,9vw,116px) 0;overflow:clip;border-bottom:1px solid var(--line);background:rgba(10,16,13,.38);scroll-margin-top:70px}.about-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);gap:clamp(42px,8vw,112px);align-items:end}.about-section__copy{max-width:780px}.about-section h1{margin:0;font-size:clamp(3.3rem,7.5vw,6.8rem);font-weight:770;letter-spacing:-.07em;line-height:.88}.about-section__body{display:grid;gap:12px;max-width:760px;margin-top:30px}.about-section__body p{margin:0;color:var(--text-muted);font-size:1.0625rem;line-height:1.75}.about-section__body p:first-child{color:var(--text)}.hero-circuit{position:relative;isolation:isolate;width:min(100%,390px);aspect-ratio:1;justify-self:end}.hero-circuit:before{position:absolute;inset:8%;z-index:-1;border-radius:50%;background:radial-gradient(circle,rgba(98,246,181,.085),transparent 68%);box-shadow:0 0 80px rgba(90,215,255,.04);content:""}.hero-circuit__map,.hero-circuit__rings{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.hero-circuit__map{opacity:.72}.hero-circuit__rings{z-index:2}.hero-circuit__portrait-slot{position:absolute;top:50%;left:50%;z-index:1;width:79.5%;aspect-ratio:1;transform:translate(-50%,-50%)}.about-section__portrait{position:relative;display:block;width:100%;height:100%;margin:0;overflow:hidden;border:1px solid var(--line-strong);border-radius:50%;background:var(--panel)}.about-section__portrait:after,.about-section__portrait:before{position:absolute;z-index:1;width:10px;height:10px;pointer-events:none;content:""}.about-section__portrait:before{top:-1px;left:-1px;border-top:2px solid var(--signal);border-left:2px solid var(--signal)}.about-section__portrait:after{right:-1px;bottom:-1px;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan)}.about-section__portrait img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.hero-circuit__pins path,.tech-ring,.tech-tick,.tech-trace{fill:none;stroke:var(--line-strong);stroke-width:1.2;vector-effect:non-scaling-stroke}.tech-trace--copper{stroke:var(--copper)}.tech-node{fill:var(--panel-raised);stroke:var(--cyan);stroke-width:1;vector-effect:non-scaling-stroke}.tech-node--signal{fill:var(--signal);stroke:var(--signal)}.tech-node--copper{fill:var(--copper);stroke:var(--copper)}.hero-circuit__map .tech-trace{stroke-dasharray:.18 .08;animation:signal-travel 6s linear infinite}.hero-circuit__map .tech-trace:nth-of-type(2n){animation-delay:-2.4s}.hero-circuit__map .tech-node{animation:node-pulse 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.hero-circuit__map .tech-node:nth-of-type(3n){animation-delay:-1.4s}.hero-circuit__rotor{animation:diagnostic-rotate 18s linear infinite;transform-origin:center}.tech-ring{opacity:.65;stroke-dasharray:2 5}.tech-ring--inner{opacity:.55;stroke-dasharray:.4 7}.tech-ring--signal{stroke:var(--signal);stroke-dasharray:none;stroke-width:2}.tech-ring--cyan{stroke:var(--cyan);stroke-dasharray:none;stroke-width:2}.hero-circuit__pins path,.tech-tick{stroke:var(--copper)}.hero-circuit__current circle{fill:var(--signal);filter:drop-shadow(0 0 5px rgba(98,246,181,.8));animation:node-pulse 2.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.hero-circuit__current circle:nth-child(2){fill:var(--cyan);animation-delay:-.9s}.hero-circuit__current circle:nth-child(3){animation-delay:-1.8s}.hero-circuit__readout{position:absolute;z-index:3;padding:3px 6px;border:1px solid var(--line);background:rgba(5,8,6,.88);color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;font-weight:700;letter-spacing:.08em}.hero-circuit__readout--top{top:8%;left:4%;color:var(--signal)}.hero-circuit__readout--bottom{right:2%;bottom:10%;color:var(--cyan)}.reveal--visible .hero-circuit{animation:circuit-power-on .72s cubic-bezier(.22,1,.36,1) both}.projects-section{padding:clamp(52px,7vw,78px) 0 72px;scroll-margin-top:70px}.projects-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.52fr);gap:24px 48px;align-items:end;margin-bottom:34px}.projects-heading .section-label{grid-column:1/-1;margin-bottom:-10px}.projects-heading h2{margin:0;font-size:clamp(3rem,6vw,5.5rem);font-weight:770;letter-spacing:-.065em;line-height:.92}.projects-heading>p:last-child{margin:0;color:var(--text-muted);font-size:1rem;line-height:1.7}.project-list{border-bottom:1px solid var(--line-strong)}.project-row{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);gap:clamp(28px,5vw,62px);align-items:center;min-height:310px;padding:28px 0;border-top:1px solid var(--line-strong)}.project-row__image{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--panel);transition:box-shadow .22s ease,transform .22s cubic-bezier(.22,1,.36,1)}.project-row__image img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top left;object-position:top left;transform:scale(1);transform-origin:center;transition:transform .52s cubic-bezier(.22,1,.36,1);will-change:transform}.project-row__image-scan{position:absolute;z-index:1;right:0;left:0;height:18%;background:linear-gradient(180deg,transparent,rgba(98,246,181,.08),rgba(90,215,255,.13),transparent);opacity:0;pointer-events:none;transform:translateY(-120%)}.project-row__image-status{position:absolute;z-index:3;right:14px;bottom:14px;padding:4px 7px;border:1px solid rgba(98,246,181,.52);background:rgba(5,8,6,.84);color:var(--signal);font-family:var(--font-mono);font-size:.75rem;font-weight:750;letter-spacing:.08em}.project-row__image-status:before{display:inline-block;width:5px;height:5px;margin-right:6px;border-radius:50%;background:currentColor;box-shadow:0 0 7px currentColor;content:"";animation:node-pulse 2.5s ease-in-out infinite}.project-row:focus-within .project-row__image,.project-row:hover .project-row__image{box-shadow:0 14px 44px rgba(0,0,0,.22);transform:translateY(-2px)}.project-row:focus-within .project-row__image img,.project-row:hover .project-row__image img{transform:scale(1.045)}.project-row:focus-within .project-row__image-scan,.project-row:hover .project-row__image-scan{animation:image-scan 1.25s ease-out}.project-row__content{width:100%;max-width:650px}.project-row__heading{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;margin-bottom:12px}.project-row__meta{padding-right:18px;border-right:1px solid var(--line-strong);color:var(--copper);font-size:clamp(1.05rem,1.65vw,1.4rem);font-weight:800;letter-spacing:.04em;line-height:.9;text-transform:uppercase}.project-row h3{margin:0;font-size:clamp(1.8rem,3.5vw,3rem);letter-spacing:-.045em;line-height:1}.project-row__content>p{max-width:610px;margin:0;color:var(--text-muted);font-size:1rem;line-height:1.7}.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0 0;padding:0;list-style:none}.tag-list li{padding:4px 7px;border:1px solid var(--line);background:var(--panel);color:var(--text-muted);font-size:.75rem;font-weight:650}.tag-list li:before{color:var(--copper);content:"# "}.project-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.skills-section{padding:clamp(68px,8vw,96px) 0;border-top:1px solid var(--line);background:rgba(10,16,13,.52);scroll-margin-top:70px}.section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.52fr);gap:24px 48px;align-items:end;margin-bottom:34px}.section-heading .section-label{grid-column:1/-1;margin-bottom:-10px}.section-heading h2{margin:0;font-size:clamp(2.8rem,5.5vw,5rem);font-weight:770;letter-spacing:-.055em;line-height:.95}.section-heading>p:last-child{margin:0;color:var(--text-muted);font-size:1rem;line-height:1.7}.skills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.skills-grid>.reveal{height:100%}.skill-panel{position:relative;height:100%;min-height:250px;padding:22px;border:1px solid var(--line-strong);background-color:var(--panel);background-image:linear-gradient(135deg,rgba(98,246,181,.035),transparent 45%);overflow:hidden;transition:border-color .22s ease,box-shadow .22s ease,transform .22s cubic-bezier(.22,1,.36,1)}.skill-panel:before{position:absolute;top:-1px;left:-30%;width:30%;height:1px;background:linear-gradient(90deg,transparent,var(--signal),transparent);content:"";opacity:0}.skill-panel:after{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan);content:""}.skill-panel__heading{display:flex;align-items:center;gap:12px;padding-bottom:17px;border-bottom:1px solid var(--line)}.skill-panel__heading>span{color:var(--copper);font-size:.75rem;font-weight:750}.skill-panel h3{margin:0;color:var(--text);font-size:.88rem;letter-spacing:.04em;text-transform:uppercase}.skill-panel ul{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;margin:15px 0 0;padding:0;list-style:none}.skill-panel li{padding:6px 8px;border:1px solid var(--line);background:var(--panel-raised);color:var(--text-muted);font-size:.75rem;font-weight:650;transition:border-color .16s ease,color .16s ease,transform .16s ease}.skill-panel li:before{color:var(--signal);content:"> "}.skill-panel:focus-within,.skill-panel:hover{border-color:var(--line-strong);box-shadow:0 14px 40px rgba(0,0,0,.16);transform:translateY(-3px)}.skill-panel:focus-within:before,.skill-panel:hover:before{animation:panel-signal 1.1s ease-out}.skill-panel li:hover{border-color:rgba(98,246,181,.5);color:var(--text);transform:translateY(-1px)}.skill-schematic{width:100%;height:56px;margin-top:15px;color:var(--text-muted)}.skill-schematic .tech-trace,.skill-schematic__block,.skill-schematic__code,.skill-schematic__network,.skill-schematic__pins,.skill-schematic__terminal{fill:none;stroke:var(--line-strong);stroke-width:1;vector-effect:non-scaling-stroke}.skill-schematic__block{fill:rgba(16,26,22,.8);stroke:var(--copper)}.skill-schematic__code,.skill-schematic__pins{stroke:var(--copper)}.skill-schematic .tech-trace--active{stroke:var(--signal);stroke-dasharray:1;stroke-dashoffset:1}.reveal--visible .skill-schematic .tech-trace--active{animation:trace-draw .88s cubic-bezier(.22,1,.36,1) .26s forwards}.reveal--visible .skill-schematic__block,.reveal--visible .skill-schematic__network,.reveal--visible .skill-schematic__terminal{animation:schematic-power .62s cubic-bezier(.22,1,.36,1) .16s both;transform-box:fill-box;transform-origin:center}.contact-section{padding:clamp(72px,9vw,110px) 0;border-top:1px solid var(--line);background:var(--panel);scroll-margin-top:70px}.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(40px,8vw,110px);align-items:end}.contact-section__copy{max-width:710px}.contact-section h2{margin:0 0 20px;font-size:clamp(2.8rem,6vw,5.2rem);letter-spacing:-.06em;line-height:.92}.contact-section__copy>p:last-child{max-width:660px;margin:0;color:var(--text-muted);font-size:1rem;line-height:1.7}.contact-section__links{position:relative;display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px;min-width:280px}.contact-section__links:before{position:absolute;top:-15px;right:0;left:0;height:1px;background:linear-gradient(90deg,var(--line-strong),var(--signal),var(--line-strong));content:"";opacity:.58}.contact-section__links:after{position:absolute;top:-18px;left:0;width:7px;height:7px;border-radius:50%;background:var(--signal);box-shadow:0 0 8px rgba(98,246,181,.72);content:"";animation:contact-signal 4.2s ease-in-out infinite}.contact-section__links .button{grid-column:1/-1}.contact-section__links>a:not(.button){display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line-strong);background:var(--background);color:var(--text-muted);font-size:.75rem;font-weight:700;transition:border-color .16s ease,color .16s ease,transform .16s ease}.contact-section__links>a:not(.button):focus-visible,.contact-section__links>a:not(.button):hover{border-color:var(--cyan);color:var(--cyan);transform:translateY(-2px)}.state-page{display:grid;min-height:100vh;place-items:center;padding:24px}.state-card{position:relative;width:min(100%,580px);padding:32px;border:1px solid var(--line-strong);border-top:3px solid var(--error);background:var(--panel)}.state-card:after{position:absolute;right:14px;bottom:14px;width:8px;height:8px;border-right:1px solid var(--cyan);border-bottom:1px solid var(--cyan);content:""}.state-card h1{margin:0 0 16px;font-size:clamp(2rem,7vw,3.7rem);letter-spacing:-.05em;line-height:1}.state-card>p:not(.section-label){color:var(--text-muted)}.state-card__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.error-details,.state-card>.button{margin-top:24px}.error-details summary{color:var(--text-muted);cursor:pointer;font-family:var(--font-mono);font-size:.75rem}.error-details pre{max-width:100%;overflow:auto;padding:12px;border:1px solid var(--line);background:var(--background);color:var(--error);font-size:.75rem}.reveal{opacity:1;transform:none}.reveal--ready:not(.reveal--visible){opacity:0;transform:translateY(8px)}.reveal--ready{transition:opacity .42s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms),transform .42s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}.reveal--visible{opacity:1;transform:translateY(0)}@keyframes status-pulse{0%,to{opacity:.45;transform:scale(.88)}50%{opacity:1;transform:scale(1)}}@keyframes chip-idle{0%,to{border-color:var(--line-strong);box-shadow:inset 0 0 16px rgba(98,246,181,.05)}50%{border-color:rgba(98,246,181,.58);box-shadow:inset 0 0 18px rgba(98,246,181,.11),0 0 16px rgba(98,246,181,.04)}}@keyframes control-sweep{0%{transform:translateX(-220%) skewX(-18deg)}to{transform:translateX(820%) skewX(-18deg)}}@keyframes diagnostic-rotate{to{transform:rotate(1turn)}}@keyframes signal-travel{to{stroke-dashoffset:-1}}@keyframes node-pulse{0%,to{opacity:.45;transform:scale(.86)}50%{opacity:1;transform:scale(1.18)}}@keyframes circuit-power-on{0%{opacity:0;transform:scale(.96)}48%{opacity:.65}to{opacity:1;transform:scale(1)}}@keyframes trace-draw{to{stroke-dashoffset:0}}@keyframes schematic-power{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes image-scan{0%{opacity:0;transform:translateY(-120%)}18%{opacity:1}to{opacity:0;transform:translateY(560%)}}@keyframes panel-signal{0%{left:-30%;opacity:0}20%,75%{opacity:1}to{left:100%;opacity:0}}@keyframes contact-signal{0%,12%{left:0;opacity:0}24%,72%{opacity:1}88%,to{left:calc(100% - 7px);opacity:0}}@media (max-width:900px){.about-layout,.contact-layout{grid-template-columns:1fr}.hero-circuit{width:min(100%,370px);justify-self:center}.about-section__portrait{width:100%}.contact-section__links{width:min(100%,440px)}.project-row{grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);gap:28px}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){html{scroll-padding-top:70px}.site-header__inner{grid-template-columns:1fr auto;min-height:62px}.site-nav{display:none}.brand{font-size:.78rem}.brand__mark{width:30px;height:30px}.brand__copy small{display:none}.about-section{padding:62px 0}.about-section h1{font-size:clamp(3rem,15vw,5rem)}.hero-circuit{width:min(100%,350px)}.hero-circuit__map{opacity:.55}.hero-circuit__map .tech-node:nth-of-type(n+5),.hero-circuit__map .tech-trace:nth-of-type(n+5){display:none}.projects-section{padding:46px 0 56px}.projects-heading{grid-template-columns:1fr;gap:15px;margin-bottom:28px}.projects-heading .section-label{grid-column:auto;margin-bottom:0}.projects-heading h2{font-size:clamp(2.8rem,14vw,4.3rem)}.project-row{grid-template-columns:1fr;gap:24px;min-height:0;padding:25px 0 30px}.project-row__image{width:100%}.project-row h3{font-size:clamp(1.8rem,9vw,2.7rem)}.contact-section,.skills-section{padding:56px 0}.section-heading{grid-template-columns:1fr;gap:15px;margin-bottom:28px}.section-heading .section-label{grid-column:auto;margin-bottom:0}.section-heading h2{font-size:clamp(2.7rem,13vw,4.2rem)}.skills-grid{grid-template-columns:1fr}.skill-panel{min-height:0}}@media (max-width:520px){:root{--page-gutter:18px}.site-header .button{min-height:38px;padding:8px 10px;font-size:.75rem}.project-row__heading{gap:10px}.project-row__meta{padding-right:12px}.project-links{align-items:stretch;flex-direction:column}.project-links .button{width:100%}.contact-section__links{grid-template-columns:1fr;min-width:0}.contact-section__links:after{display:none}.contact-section__links .button{grid-column:auto}.state-card{padding:24px 20px}}@media (max-width:360px){.brand__copy{display:none}.hero-circuit__readout{font-size:.75rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.reveal--ready,.reveal--ready:not(.reveal--visible),.reveal--visible{opacity:1;transform:none;transition:none}.button__status{animation:none}.button,.contact-section__links>a:not(.button),.project-row__image,.project-row__image img,.skill-panel,.skill-panel li{transition:none}.brand__mark,.button:after,.contact-section__links:after,.hero-circuit *,.project-row__image-status:before,.skill-panel:before,.skill-schematic *{animation:none!important;transition:none!important}.skill-schematic .tech-trace--active{stroke-dasharray:none;stroke-dashoffset:0}.contact-section__links:after,.project-row__image-scan{display:none}.hero-circuit,.skill-schematic__block,.skill-schematic__network,.skill-schematic__terminal{opacity:1;transform:none}}