@font-face{font-family:Inter;src:url(/fonts/InterVariable.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:100 900}@font-face{font-family:Inter;src:url(/fonts/InterVariable-Italic.woff2)format("woff2");font-display:swap;font-style:italic;font-weight:100 900}:root{color-scheme:dark;--cursor-x:76vw;--cursor-y:14vh;--bg:#10141f;--paper:#181c27;--paper-strong:#222838;--paper-warm:#f2eadc;--ink:#f7efe5;--muted:#b9afa3;--line:#c26a3d3d;--blue:#4f8cff;--blue-dark:#7c97c5;--violet:#b98bff;--yellow:#e0b256;--green:#9fb8a6;--copper:#c26a3d;--sage:#9fb8a624;--slate:#e6d8c7;--shadow:0 28px 90px #00000052;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--text-main:#f8fafc;--text-muted-blue:#94a3b8;--grid-line:#1e293b;--point-blue:#38bdf8;--terminal-blue:#19bfff;--point-red:#fb7185;font-family:var(--font-sans)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--ink);background:radial-gradient(circle at 76% 14%,#4f8cff14,#0000 30rem),radial-gradient(circle at 10% 24%,#c26a3d0f,#0000 26rem),repeating-linear-gradient(#0000 0 43px,#f2eadc0e 44px),linear-gradient(135deg,#10141f 0%,#131923 48%,#0c111a 100%);margin:0;line-height:1.6;position:relative}body:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(circle at var(--cursor-x) var(--cursor-y), #4f8cff06, transparent 14rem);position:fixed;inset:0}a{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}[id]{scroll-margin-top:120px}.site-shell{z-index:1;width:min(1040px,100% - 380px);margin:0 220px 0 max(160px,50% - 540px);transition:filter .18s,opacity .18s;position:relative}body.project-detail-open{overflow:hidden}body.project-detail-open .site-shell{filter:blur(8px);opacity:.34}.site-header{z-index:10;backdrop-filter:blur(18px)saturate(1.15);background:#10141fd1;border:1px solid #f2eadc24;border-right-color:#c26a3d6b;border-radius:24px 6px 6px 24px;flex-direction:column;align-items:stretch;gap:16px;width:172px;margin:0;padding:14px;display:flex;position:fixed;top:50%;right:24px;transform:translateY(-50%);box-shadow:0 18px 70px #00000042}.site-header:before{content:"index";color:var(--copper);letter-spacing:.22em;text-transform:uppercase;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.66rem;font-weight:700}.brand{width:42px;height:42px;color:var(--paper-warm);letter-spacing:-.08em;background:#c26a3d21;border:1px solid #c26a3d6b;border-radius:50%;place-items:center;font-weight:800;text-decoration:none;display:inline-grid}nav{color:var(--muted);gap:6px;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.78rem;display:grid}.toc-nav a,.text-link{text-decoration:none}.toc-nav a{border-radius:999px;align-items:center;gap:8px;padding:8px 10px;font-weight:700;transition:color .18s,background .18s,transform .18s;display:flex;position:relative}.toc-nav a:before{content:"";opacity:.42;border:1px solid;border-radius:50%;flex:none;width:6px;height:6px}.toc-nav a:hover,.toc-nav a.is-active,.toc-nav a[aria-current=location],.text-link:hover{color:var(--paper-warm)}.toc-nav a:hover,.toc-nav a.is-active,.toc-nav a[aria-current=location]{background:#c26a3d24;transform:translate(-2px)}.toc-nav a.is-active:before,.toc-nav a[aria-current=location]:before{background:var(--copper);opacity:1;box-shadow:0 0 0 5px #c26a3d29}.language-pill{color:var(--green);letter-spacing:.12em;background:#f2eadc12;border:1px solid #f2eadc24;border-radius:999px;padding:9px 12px;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.78rem;font-weight:800}.hero{align-items:center;min-height:100vh;padding:72px 0 80px}.section-grid{grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:42px;display:grid}.eyebrow{color:var(--paper-warm);letter-spacing:.02em;text-transform:none;align-items:center;gap:16px;margin:0 0 14px;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.86rem;font-weight:800;display:flex}.eyebrow:before{content:"";background:#f2eadc9e;width:42px;height:1px}.text-accent{color:#19bfff}.hero-intro,.about-lead,.spec-item p,.experience-feedback blockquote,.project-card .project-summary,.credential-card p,.contact-section p,.project-panel-section p,.project-panel-section li{font-feature-settings:"ss07"}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-sans);letter-spacing:-.035em;line-height:1.05}h1{text-shadow:0 0 34px #c26a3d1f;max-width:780px;margin-bottom:24px;font-size:clamp(3.4rem,7vw,6.7rem)}.hero-greeting{color:var(--green);letter-spacing:.04em;margin-bottom:0;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:clamp(.95rem,1.15vw,1.2rem);font-weight:700;line-height:1.2}.hero-name{max-width:none;color:var(--paper-warm);font-family:var(--font-sans);letter-spacing:-.06em;margin-bottom:16px;font-size:clamp(4rem,6.5vw,6.5rem);font-weight:700;line-height:.94}.hero-signature-heading{width:min(560px,92vw);height:clamp(270px,24vw,340px);margin:-6px 0 8px;line-height:0;overflow:hidden}.hero-signature{filter:drop-shadow(0 18px 34px #00000057)drop-shadow(0 0 26px #f2eadc24);width:clamp(560px,48vw,760px);height:auto;display:block;transform:translate(-15%,-27%)}h2{max-width:780px;margin-bottom:0;font-size:clamp(2.1rem,4.2vw,4.2rem)}h3{margin-bottom:12px;font-size:clamp(1.3rem,2vw,1.8rem)}.hero-intro{max-width:700px;color:var(--slate);margin-bottom:34px;font-size:clamp(1.08rem,1.8vw,1.3rem)}.hero-traits{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;max-width:760px;margin-bottom:34px;display:grid}.trait-item{min-height:58px;color:var(--slate);border-left:1px solid #f2eadc29;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:0 18px;font-size:.95rem;line-height:1.25;display:grid}.trait-item:first-child{border-left:0;padding-left:0}.trait-icon{min-width:38px;min-height:38px;color:var(--copper);place-items:center;font-family:IBM Plex Mono,SFMono-Regular,Consolas,ui-monospace,monospace;font-size:.95rem;font-weight:900;display:inline-grid}.trait-item:nth-child(2) .trait-icon{color:var(--blue)}.trait-item:nth-child(3) .trait-icon{color:var(--yellow)}.trait-item:nth-child(4) .trait-icon{color:var(--green)}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.button{border:1px solid var(--line);border-radius:12px;justify-content:center;align-items:center;min-height:48px;padding:13px 18px;font-weight:800;text-decoration:none;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #c26a3d61}.button.primary{border-color:var(--copper);color:#160f0b;background:var(--copper)}.button.secondary{color:var(--ink);background:#f2eadc0f}.button.ghost{color:var(--green);background:0 0}.build-trace{--tilt-x:0deg;--tilt-y:0deg;width:100%;min-width:0;transform:perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transform-style:preserve-3d;will-change:transform;background:linear-gradient(#19bfff0b,#0000 42%),#0a0f18;border:1px solid #19bfff47;border-radius:12px;align-self:center;padding:5px;transition:transform .16s ease-out,box-shadow .22s,border-color .22s;position:relative;box-shadow:0 28px 90px #00000061,0 0 0 1px #19bfff09,0 0 58px #19bfff0e}.build-trace:before{content:"";background:linear-gradient(90deg, transparent, var(--terminal-blue), transparent);border-radius:999px;height:1px;position:absolute;top:-1px;left:20px;right:20px;box-shadow:0 0 18px #19bfff52}.build-trace:after{content:"";z-index:3;opacity:.9;pointer-events:none;filter:saturate(1.06);-webkit-mask-composite:xor;background:linear-gradient(115deg,#ff7ab8,#9b7cff 21%,#19bfff 43%,#65ddc2 63%,#d9df63 82%,#ff9d57);border-radius:13px;padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.build-trace:hover{border-color:#0000;box-shadow:0 34px 100px #00000070,0 0 0 1px #19bfff0a,0 0 68px #19bfff17}.build-trace-frame{background:linear-gradient(#0c111a,#0a0f17);border:1px solid #7c97c533;border-radius:8px;min-height:428px;display:grid;overflow:hidden;box-shadow:inset 0 1px #f2eadc06,inset 0 0 36px #19bfff05}.build-trace-header,.build-trace-product,.build-trace-status,.build-label,.trace-step-number,.trace-step-copy>span,.output-status{font-family:var(--font-mono)}.build-trace-header{background:#090e16;border-bottom:1px solid #7c97c533;justify-content:space-between;align-items:center;gap:16px;min-height:46px;padding:0 20px 0 24px;display:flex}.build-trace-product{color:#b7c9e8;letter-spacing:.1em;font-size:.7rem;font-weight:700}.build-trace-product:before{content:"$";color:var(--terminal-blue);margin-right:8px}.build-trace-status{color:var(--green);letter-spacing:.08em;text-transform:uppercase;grid-template-columns:auto 7px;align-items:center;gap:8px;font-size:.68rem;font-weight:800;display:grid;position:relative}.status-running,.status-ready{grid-area:1/1}.status-running{color:var(--terminal-blue);opacity:0;animation:12s linear infinite statusRunning}.status-ready{opacity:1;animation:12s linear infinite statusReady}.status-light{background:currentColor;border-radius:50%;grid-column:2;width:7px;height:7px;animation:12s linear infinite statusLight;box-shadow:0 0 0 4px #9fb8a61a}.build-brief,.build-system-plan,.build-output{padding-left:24px;padding-right:20px}.build-brief{background:#0e1521c2;border-bottom:1px solid #7c97c529;padding-top:15px;padding-bottom:14px}.build-label{color:var(--blue-dark);letter-spacing:.14em;text-transform:uppercase;margin-bottom:7px;font-size:.62rem;font-weight:700;display:block}.build-brief p{color:var(--ink);font-family:var(--font-mono);grid-template-columns:12px minmax(0,1fr);gap:8px;margin:0;font-size:clamp(.8rem,1.12vw,.9rem);font-weight:550;line-height:1.4;display:grid}.terminal-prompt{color:var(--terminal-blue);font-weight:800}.brief-command{min-width:0;display:block}.brief-line{white-space:nowrap;width:fit-content;max-width:100%;display:block;overflow:hidden}.brief-line-one{animation:12s steps(24,end) infinite typeBriefOne}.brief-line-two{animation:12s steps(42,end) infinite typeBriefTwo}.brief-cursor{color:var(--terminal-blue);font-family:var(--font-mono);animation:12s step-end infinite briefCursor}.build-system-plan{padding-top:13px;padding-bottom:12px}.trace-steps{gap:3px;margin:0;padding:0;list-style:none;display:grid;position:relative}.trace-steps:before{content:"";background:linear-gradient(to bottom, var(--terminal-blue), #9fb8a66b);width:1px;position:absolute;top:10px;bottom:10px;left:6px}.trace-step{min-height:42px;color:var(--green);border-radius:3px;grid-template-columns:14px 23px minmax(0,1fr);align-items:center;gap:8px;margin:0;padding:5px 4px;display:grid;position:relative}.trace-step-one{animation:12s linear infinite traceStepOne}.trace-step-two{animation:12s linear infinite traceStepTwo}.trace-step-three{animation:12s linear infinite traceStepThree}.trace-step-four{animation:12s linear infinite traceStepFour}.trace-node{z-index:1;background:#0b1019;border-radius:50%;place-items:center;width:14px;height:14px;display:grid;position:relative}.trace-dot,.trace-check{grid-area:1/1}.trace-dot{opacity:0;border:1px solid #7c97c5b8;border-radius:50%;width:7px;height:7px}.trace-check{color:var(--green);font-family:var(--font-mono);font-size:.68rem;font-weight:800;line-height:1}.trace-step-one .trace-dot{animation:12s linear infinite traceDotOne}.trace-step-two .trace-dot{animation:12s linear infinite traceDotTwo}.trace-step-three .trace-dot{animation:12s linear infinite traceDotThree}.trace-step-four .trace-dot{animation:12s linear infinite traceDotFour}.trace-step-one .trace-check{animation:12s linear infinite traceCheckOne}.trace-step-two .trace-check{animation:12s linear infinite traceCheckTwo}.trace-step-three .trace-check{animation:12s linear infinite traceCheckThree}.trace-step-four .trace-check{animation:12s linear infinite traceCheckFour}.trace-step-number{color:currentColor;opacity:.78;font-size:.64rem;font-weight:700}.trace-step-copy{gap:1px;min-width:0;display:grid}.trace-step-copy strong{color:currentColor;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:.79rem;font-weight:650;line-height:1.35;overflow:hidden}.trace-step-copy>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.65rem;font-weight:500;line-height:1.4;overflow:hidden}.validation-count{min-height:.8rem;display:grid;position:relative}.validation-progress{opacity:0;grid-area:1/1}.validation-zero{animation:12s linear infinite validationZero}.validation-four{animation:12s linear infinite validationFour}.validation-eight{animation:12s linear infinite validationEight}.validation-complete{opacity:1;animation:12s linear infinite validationComplete}.build-output{background:#0e1521e0;border-top:1px solid #19bfff33;margin-top:auto;padding-top:13px;padding-bottom:14px;animation:12s infinite revealOutput}.build-output-row{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.build-output-row>div{gap:2px;min-width:0;display:grid}.build-output-row strong{color:var(--ink);font-family:var(--font-mono);font-size:.82rem;font-weight:650;line-height:1.3}.build-output-row div>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;line-height:1.4;overflow:hidden}.output-status{color:var(--green);letter-spacing:.06em;text-transform:uppercase;background:#9fb8a614;border:1px solid #9fb8a64d;border-radius:3px;flex:none;padding:5px 7px;font-size:.55rem;font-weight:800}.build-trace.is-paused *,.build-trace.is-paused :before,.build-trace.is-paused :after{animation-play-state:paused!important}.profile-notebook{background:linear-gradient(145deg,#30394ec7,#181d29eb);border:1px solid #7c97c538;border-radius:18px 7px 20px 8px;align-self:center;min-height:388px;padding:8px 8px 8px 20px;position:relative;transform:rotate(.4deg);box-shadow:0 24px 72px #00000052}.notebook-binding{background:linear-gradient(to bottom, var(--copper), #c26a3d38);border-radius:999px;width:4px;position:absolute;top:18px;bottom:18px;left:12px;box-shadow:0 0 14px #c26a3d33}.notebook-page{background:linear-gradient(90deg,#c26a3d24 0 1px,#0000 1px 100%) 26px 0/1px 100% no-repeat,repeating-linear-gradient(#0000 0 30px,#f2eadc0d 31px),#141925;border:1px solid #f2eadc21;border-radius:13px 5px 15px;grid-template-rows:auto auto minmax(96px,1fr);min-height:370px;padding:22px 22px 18px 34px;display:grid;position:relative;overflow:hidden}.notebook-page:after{content:"01";color:#f2eadc33;font-family:var(--font-mono);letter-spacing:.1em;font-size:.54rem;font-weight:700;position:absolute;bottom:7px;right:11px}.notebook-topline,.notebook-clear,.notebook-hint{font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace}.notebook-topline{z-index:3;color:var(--blue-dark);letter-spacing:.14em;justify-content:space-between;align-items:center;gap:14px;margin-bottom:17px;font-size:.62rem;font-weight:800;display:flex;position:relative}.notebook-topline>span{color:var(--blue-dark);font-family:var(--font-mono);font-size:inherit;letter-spacing:.12em;text-transform:uppercase;font-weight:750}.notebook-clear{z-index:3;color:var(--paper-warm);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:#7c97c50f;border:1px solid #7c97c53d;border-radius:3px;padding:5px 7px;font-size:.56rem;font-weight:800;transition:opacity .18s,border-color .18s,background .18s,transform .18s;position:relative}.notebook-clear:not(:disabled):hover{background:#c26a3d24;border-color:#c26a3d94;transform:translateY(-1px)}.notebook-clear:disabled{opacity:.3;cursor:default}.notebook-clear:focus-visible{outline-offset:3px;outline:3px solid #c26a3d61}.notebook-copy{z-index:1;max-width:440px;color:var(--paper-warm);gap:18px;font-family:Caveat,Segoe Print,Bradley Hand,cursive;display:grid;position:relative}.notebook-note-group{gap:8px;display:grid}.profile-notebook h2{max-width:420px;color:var(--paper-warm);letter-spacing:-.02em;margin:0;font-family:Caveat,Segoe Print,Bradley Hand,cursive;font-size:clamp(1.75rem,2.7vw,2.55rem);font-weight:700;line-height:.95}.notebook-notes{max-width:430px;color:var(--slate);gap:3px;margin:0;padding-left:0;font-size:clamp(1.22rem,1.85vw,1.5rem);font-weight:600;line-height:1.2;list-style:none;display:grid}.notebook-notes li{grid-template-columns:16px 1fr;gap:10px;display:grid}.notebook-notes li:before{content:"•";color:var(--copper);font-weight:900}.notebook-hint{z-index:1;color:#f2eadc6b;letter-spacing:.1em;text-transform:uppercase;justify-content:center;align-items:center;gap:8px;margin:0;font-size:.62rem;transition:opacity .18s;display:flex;position:absolute;inset:0}.notebook-hint span{color:var(--copper);font-size:.9rem}.notebook-sketch{border-top:1px dashed #7c97c540;min-height:104px;margin-top:17px;transition:border-color .18s;position:relative}.notebook-sketch:hover{border-top-color:#c26a3d75}.notebook-sketch-label{z-index:3;color:var(--blue-dark);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;background:#141925;padding:0 8px;font-size:.54rem;font-weight:700;position:absolute;top:-.52rem;left:50%;transform:translate(-50%)}.notebook-sketch.has-drawing .notebook-hint{opacity:0}.notebook-canvas{z-index:2;cursor:crosshair;touch-action:none;width:100%;height:calc(100% - 10px);position:absolute;inset:10px 0 0}.about-notebook{justify-self:end;width:min(95%,420px);min-height:388px;transform:rotate(.45deg);box-shadow:0 22px 64px #00000047}.about-notebook .notebook-page{min-height:370px;padding:22px 22px 18px 34px}.about-notebook .notebook-topline{margin-bottom:17px}.about-notebook .notebook-topline>span{font-size:.62rem}.about-section .about-notebook h2{margin-bottom:0;font-size:clamp(1.65rem,2.2vw,2.1rem);line-height:.95}.about-notebook .notebook-notes{font-size:clamp(1.05rem,1.45vw,1.28rem)}@keyframes typeBriefOne{0%,4%{clip-path:inset(0 100% 0 0);opacity:1}11%,95%{clip-path:inset(0);opacity:1}98%,to{clip-path:inset(0);opacity:0}}@keyframes typeBriefTwo{0%,11%{clip-path:inset(0 100% 0 0);opacity:1}18%,95%{clip-path:inset(0);opacity:1}98%,to{clip-path:inset(0);opacity:0}}@keyframes briefCursor{0%,3%,6%,9%,12%,15%,18%,95%{opacity:1}1.5%,4.5%,7.5%,10.5%,13.5%,16.5%,96%,to{opacity:0}}@keyframes traceStepOne{0%,17%{color:var(--muted);box-shadow:none;background:0 0}18%,26%{color:var(--paper-warm);box-shadow:inset 2px 0 var(--terminal-blue);background:#19bfff13}27%,95%{color:var(--green);box-shadow:none;background:0 0}98%,to{color:var(--muted);box-shadow:none;background:0 0}}@keyframes traceStepTwo{0%,27%{color:var(--muted);box-shadow:none;background:0 0}28%,36%{color:var(--paper-warm);box-shadow:inset 2px 0 var(--terminal-blue);background:#19bfff13}37%,95%{color:var(--green);box-shadow:none;background:0 0}98%,to{color:var(--muted);box-shadow:none;background:0 0}}@keyframes traceStepThree{0%,37%{color:var(--muted);box-shadow:none;background:0 0}38%,47%{color:var(--paper-warm);box-shadow:inset 2px 0 var(--terminal-blue);background:#19bfff13}48%,95%{color:var(--green);box-shadow:none;background:0 0}98%,to{color:var(--muted);box-shadow:none;background:0 0}}@keyframes traceStepFour{0%,48%{color:var(--muted);box-shadow:none;background:0 0}49%,64%{color:var(--paper-warm);box-shadow:inset 2px 0 var(--terminal-blue);background:#19bfff13}65%,95%{color:var(--green);box-shadow:none;background:0 0}98%,to{color:var(--muted);box-shadow:none;background:0 0}}@keyframes traceDotOne{0%,26%,98%,to{opacity:1}18%,26%{border-color:var(--terminal-blue);background:var(--terminal-blue);box-shadow:0 0 0 4px #19bfff1c}27%,95%{opacity:0}}@keyframes traceDotTwo{0%,36%,98%,to{opacity:1}28%,36%{border-color:var(--terminal-blue);background:var(--terminal-blue);box-shadow:0 0 0 4px #19bfff1c}37%,95%{opacity:0}}@keyframes traceDotThree{0%,47%,98%,to{opacity:1}38%,47%{border-color:var(--terminal-blue);background:var(--terminal-blue);box-shadow:0 0 0 4px #19bfff1c}48%,95%{opacity:0}}@keyframes traceDotFour{0%,64%,98%,to{opacity:1}49%,64%{border-color:var(--terminal-blue);background:var(--terminal-blue);box-shadow:0 0 0 4px #19bfff1c}65%,95%{opacity:0}}@keyframes traceCheckOne{0%,26%,98%,to{opacity:0}27%,95%{opacity:1}}@keyframes traceCheckTwo{0%,36%,98%,to{opacity:0}37%,95%{opacity:1}}@keyframes traceCheckThree{0%,47%,98%,to{opacity:0}48%,95%{opacity:1}}@keyframes traceCheckFour{0%,64%,98%,to{opacity:0}65%,95%{opacity:1}}@keyframes validationZero{0%,48%,52%{opacity:1}53%,to{opacity:0}}@keyframes validationFour{0%,52%{opacity:0}53%,56%{opacity:1}57%,to{opacity:0}}@keyframes validationEight{0%,56%{opacity:0}57%,60%{opacity:1}61%,to{opacity:0}}@keyframes validationComplete{0%,60%,98%,to{opacity:0}61%,95%{opacity:1}}@keyframes revealOutput{0%,64%{opacity:0;transform:translateY(5px)}73%,95%{opacity:1;transform:translateY(0)}98%,to{opacity:0;transform:translateY(0)}}@keyframes statusRunning{0%,72%{opacity:1}74%,to{opacity:0}}@keyframes statusReady{0%,72%{opacity:0}74%,95%{opacity:1}98%,to{opacity:0}}@keyframes statusLight{0%,72%{color:#ff3b5c;box-shadow:0 0 0 4px #ff3b5c38,0 0 14px #ff3b5cb8}74%,95%{color:var(--green);box-shadow:0 0 0 4px #9fb8a61a}98%,to{opacity:0}}.content-section,.about-section,.contact-section{margin-bottom:120px}.section-heading{gap:6px;margin-bottom:34px;display:grid}.content-section .section-heading h2{max-width:720px;color:var(--text-main);letter-spacing:-.045em;font-size:1.8rem;font-weight:700;line-height:1.3}.section-heading.compact{margin-bottom:0}.credential-grid,.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.credential-card,.skill-card,.contact-section{background:#181c27b8;border:1px solid #f2eadc26;box-shadow:0 18px 70px #0003}.credential-card,.skill-card{border-radius:6px;padding:2rem}.project-card{min-height:360px;color:inherit;cursor:pointer;font:inherit;text-align:left;background:#0d1320b8;border:1px solid #4f8cff2e;border-radius:6px;flex-direction:column;padding:2rem;transition:border-color .18s,box-shadow .18s,transform .18s,background .18s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #f2eadc08}.project-card:hover,.project-card:focus-visible{background:#0d1524db;border-color:#12bfff;transform:translateY(-6px);box-shadow:0 0 0 1px #12bfff33,0 20px 60px #12bfff14,0 24px 70px #00000047}.project-card:focus-visible{outline-offset:4px;outline:2px solid #12bfffa3}.project-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.project-card h3{color:#fff7ee;letter-spacing:-.04em;max-width:15ch;margin-bottom:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.1rem;font-weight:800;line-height:1.4}.project-badge{color:#30d1ff;letter-spacing:.09em;text-align:center;text-transform:uppercase;background:#12bfff0e;border:1px solid #12bfff;border-radius:4px;flex:none;max-width:13ch;padding:4px 8px;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.65rem;font-weight:700;line-height:1}.project-meta,.credential-topline{color:var(--point-blue);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:12px;margin-bottom:1rem;font-size:.72rem;font-weight:700;display:flex}.project-card p,.credential-card p,.profile-copy p,.contact-section p{color:var(--text-muted-blue)}.project-card .project-summary{color:#b7c9e8;max-width:32ch;margin-bottom:1.5rem;font-size:.85rem;line-height:1.6}.tag-row{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.tag-row span{border:1px solid var(--line);color:var(--slate);background:#f2eadc0e;border-radius:8px;padding:7px 10px;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.8rem;font-weight:750}.project-card .tag-row span{color:#c9dcfa;background:#81a2cc14;border-color:#81a2cc42;border-radius:4px;padding:4px 8px;font-size:.7rem;font-weight:700}.text-link{width:fit-content;color:var(--copper);margin-top:22px;font-weight:850;display:inline-flex}.project-link{color:#30d1ff;font-size:.9rem}.project-detail{z-index:40;pointer-events:none;grid-template-columns:minmax(0,1fr) minmax(420px,44vw);display:grid;position:fixed;inset:0}.project-detail[hidden]{display:none}.project-detail.is-open{pointer-events:auto}.project-scrim{backdrop-filter:blur(7px);cursor:default;opacity:0;background:#060b16c2;border:0;padding:0;transition:opacity .18s;position:absolute;inset:0}.project-detail.is-open .project-scrim{opacity:1}.project-panel{z-index:1;opacity:0;background:radial-gradient(circle at 80% 10%,#12bfff14,#0000 18rem),radial-gradient(circle at 15% 38%,#4f8cff14,#0000 15rem),radial-gradient(circle,#30d1ff33 1px,#0000 1px) 0 0/26px 26px,#0b1221;border-left:1px solid #12bfff40;outline:0;grid-column:2;min-height:100vh;max-height:100vh;padding:clamp(34px,4vw,56px);transition:opacity .22s,transform .22s;position:relative;overflow-y:auto;transform:translate(100%);box-shadow:-34px 0 90px #00000073}.project-detail.is-open .project-panel{opacity:1;transform:translate(0)}.project-close{color:#c9dcfa;cursor:pointer;background:#0d1320c2;border:1px solid #f2eadc2e;border-radius:999px;padding:7px 10px;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-weight:800;position:absolute;top:20px;right:22px}.project-close:hover,.project-close:focus-visible{color:#fff7ee;border-color:#12bfff;outline:none}.project-panel-badge{width:fit-content;margin-bottom:18px;display:inline-flex}.project-panel h2{max-width:760px;color:var(--text-main);letter-spacing:-.055em;margin-bottom:1rem;font-size:2rem;font-weight:700;line-height:1.2}.project-panel-tags{flex-wrap:wrap;gap:10px;margin-bottom:38px;display:flex}.project-panel-tags span{color:var(--point-blue);font-family:var(--font-mono);font-size:.75rem;font-weight:700}.project-preview{background:radial-gradient(circle at 28% 24%,#12bfff29,#0000 12rem),radial-gradient(circle at 72% 72%,#c26a3d1a,#0000 13rem),#0d1320d6;border:1px dashed #12bfffad;border-radius:6px;place-items:center;min-height:280px;margin:0 0 38px;display:grid;overflow:hidden}.project-preview img{object-fit:cover;width:100%;height:100%;min-height:280px;display:block}.project-preview img[data-fallback=true]{object-fit:contain;opacity:.72;filter:drop-shadow(0 18px 38px #00000073);width:min(78%,460px);height:auto;min-height:0}.project-panel-section{margin-bottom:34px}.project-panel-section h3{color:var(--point-blue);font-family:var(--font-mono);letter-spacing:.04em;margin-bottom:16px;font-size:1rem;font-weight:400}.project-panel-section p,.project-panel-section li{color:var(--text-muted-blue);font-size:.95rem;line-height:1.6}.project-panel-section p{max-width:720px;margin-bottom:0}.project-panel-section ul{gap:12px;margin:0;padding-left:22px;display:grid}.project-panel-link{width:fit-content}.about-section{grid-template-columns:minmax(0,1.2fr) minmax(260px,1fr);align-items:center;gap:4rem;margin-bottom:8rem;padding:0;display:grid;position:relative}.about-copy{gap:0;max-width:640px;display:grid}.about-kicker{color:var(--paper-warm);letter-spacing:.02em;align-items:center;gap:16px;margin-bottom:10px;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.86rem;font-weight:800;display:flex}.about-kicker:before{content:"";background:#f2eadc9e;width:42px;height:1px}.about-section h2{max-width:640px;color:var(--text-main);letter-spacing:-.045em;margin-bottom:1.5rem;font-size:1.8rem;font-weight:700;line-height:1.3}.about-lead{color:#b7c9e8;max-width:620px;margin-bottom:1.25rem;font-size:1rem;line-height:1.6}.about-process-summary{color:var(--blue-dark);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.25rem;font-size:.68rem;font-weight:700}.about-specs{border-left:1px solid #19bfff47;flex-direction:column;gap:1.35rem;max-width:610px;margin-bottom:0;padding-left:1.5rem;display:flex}.spec-item{flex-direction:column;gap:.4rem;display:flex;position:relative}.spec-item:before{content:"";border:1px solid var(--terminal-blue);background:#10141f;border-radius:50%;width:7px;height:7px;position:absolute;top:.35rem;left:calc(-1.5rem - 4px);box-shadow:0 0 0 4px #19bfff0e}.spec-item p{color:var(--text-muted-blue);margin:0;font-size:.9rem;line-height:1.5}.spec-label{color:var(--terminal-blue);font-family:var(--font-mono);letter-spacing:.08em;font-size:.8rem;font-weight:700}.about-mark{text-align:center;justify-self:center;width:min(90%,320px);margin:0;position:relative}.about-mark img{object-fit:contain;opacity:.82;filter:drop-shadow(0 0 25px #38bdf847);width:100%;max-height:420px;margin:0 auto;display:block}.credential-card{min-height:280px}.credential-card h3,.skill-card h3{color:var(--text-main);letter-spacing:-.035em;margin-bottom:1rem;font-size:1.15rem;font-weight:700;line-height:1.35}.credential-card p,.skill-card p{color:var(--text-muted-blue);margin-bottom:1rem;font-size:.9rem;line-height:1.6}.credential-card p:last-child,.skill-card p:last-child{margin-bottom:0}.credential-focus{font-weight:600;color:var(--text-main)!important}.resume-viewer{background:#0a0f18;border:1px solid #19bfff38;border-radius:6px;width:min(100%,820px);margin:0 auto;overflow:hidden;box-shadow:0 24px 80px #0000004d,0 0 54px #19bfff0a}.resume-toolbar{background:linear-gradient(90deg,#19bfff0b,#0000 58%),#090e16;border-bottom:1px solid #7c97c533;justify-content:space-between;align-items:center;gap:20px;min-height:58px;padding:10px 14px 10px 18px;display:flex}.resume-meta{font-family:var(--font-mono);text-transform:uppercase;gap:2px;display:grid}.resume-meta span:first-child{color:var(--paper-warm);letter-spacing:.1em;font-size:.68rem;font-weight:750}.resume-meta span:last-child{color:var(--blue-dark);letter-spacing:.08em;font-size:.56rem;font-weight:600}.resume-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.resume-actions a{color:#b7c9e8;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:#19bfff0e;border:1px solid #19bfff40;border-radius:3px;padding:7px 9px;font-size:.61rem;font-weight:700;text-decoration:none;transition:border-color .18s,color .18s,background .18s}.resume-actions a:hover{border-color:var(--terminal-blue);color:var(--paper-warm);background:#19bfff1a}.resume-actions a:focus-visible{outline-offset:3px;outline:2px solid #19bfff94}.resume-document{background:#eef1f5;border:0;width:100%;height:clamp(640px,78vh,900px);display:block}.resume-fallback{width:min(100%,820px);color:var(--muted);font-family:var(--font-mono);margin:10px auto 0;font-size:.64rem;line-height:1.5}.resume-fallback a{color:var(--terminal-blue)}.experience-feedback{border:1px solid #19bfff2e;border-left:2px solid var(--terminal-blue);background:linear-gradient(100deg,#19bfff13,#0000 68%),#0a0f1875;border-radius:4px;max-width:620px;margin:1.5rem 0 0;padding:18px 20px 17px;position:relative;overflow:hidden;box-shadow:inset 0 1px #f2eadc06}.resume-feedback{margin:24px auto 0}.experience-feedback:after{content:"“";color:#19bfff17;pointer-events:none;font-family:Georgia,serif;font-size:6.5rem;line-height:1;position:absolute;top:-24px;right:14px}.feedback-topline{z-index:1;color:var(--terminal-blue);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:16px;font-size:.62rem;font-weight:750;display:flex;position:relative}.feedback-topline span:last-child{color:var(--blue-dark);letter-spacing:.08em;font-weight:600}.experience-feedback blockquote{z-index:1;max-width:520px;color:var(--paper-warm);letter-spacing:-.025em;margin:12px 0 10px;font-size:clamp(1rem,1.45vw,1.18rem);font-weight:650;line-height:1.42;position:relative}.experience-feedback figcaption{z-index:1;color:var(--muted);font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;font-size:.64rem;font-weight:600;position:relative}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-card .tag-row{margin-top:0}.contact-section{background:radial-gradient(circle at 100% 0,#38bdf81f,#0000 22rem),#0f172ab8;border-radius:6px;padding:2rem}.contact-section h2{max-width:720px;color:var(--text-main);letter-spacing:-.045em;margin-bottom:1rem;font-size:1.8rem;font-weight:700;line-height:1.3}.contact-section p{max-width:650px;color:var(--text-muted-blue);margin-bottom:2rem;font-size:.95rem;line-height:1.6}@media (width<=1180px){.site-shell{width:min(960px,100% - 260px);margin:0 220px 0 24px}.hero-traits{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}.trait-item:nth-child(3){border-left:0;padding-left:0}}@media (width<=980px){.site-shell{width:min(1180px,100% - 32px);margin:0 auto}.site-header{border-radius:24px;grid-template-columns:auto 1fr;align-items:center;gap:12px;width:auto;margin:12px 0 42px;padding:10px 12px;display:grid;position:sticky;top:12px;transform:none}.site-header:before{display:none}.toc-nav{order:3;grid-column:1/-1;justify-content:flex-start;gap:6px;padding:4px 2px;display:flex;overflow-x:auto}.toc-nav a{white-space:nowrap}.toc-nav a:hover,.toc-nav a.is-active,.toc-nav a[aria-current=location]{transform:translateY(-1px)}.language-pill{justify-self:end}.section-grid,.about-section{grid-template-columns:1fr}.about-section{min-height:auto;padding-bottom:24px}.about-mark{width:min(100%,240px)}.about-mark img{width:100%;max-height:440px}.hero{min-height:auto;padding-top:40px}.hero-name{font-size:clamp(3.3rem,12vw,6rem)}.hero-signature-heading{width:min(520px,86vw);height:clamp(250px,40vw,320px)}.hero-signature{width:clamp(520px,78vw,700px)}.build-trace{justify-self:center;width:min(100%,520px)}.profile-notebook{min-height:auto}.about-notebook{justify-self:center;width:min(100%,440px);transform:none}.project-grid,.credential-grid,.skills-grid{grid-template-columns:1fr 1fr}.project-detail{grid-template-columns:1fr}.project-panel{border-left:0;grid-column:1}}@media (width<=680px){.site-shell{width:min(100% - 24px,1180px)}.site-header{margin-bottom:42px}h1{font-size:clamp(2.7rem,13vw,4.3rem)}.hero-name{font-size:clamp(3rem,15vw,4.6rem)}.hero-signature-heading{width:min(100%,390px);height:clamp(210px,62vw,285px);margin-bottom:6px}.hero-signature{width:clamp(430px,118vw,610px);transform:translate(-17%,-27%)}.hero-traits{grid-template-columns:1fr}.trait-item,.trait-item:nth-child(3){border-top:1px solid #f2eadc29;border-left:0;padding:14px 0}.trait-item:first-child{border-top:0}.hero-actions,.button{width:100%}.about-section{padding:26px}.profile-notebook{padding:8px 8px 8px 20px}.build-trace{padding:4px}.build-trace:before{left:12px;right:12px}.build-trace-frame{min-height:430px}.build-trace-header,.build-brief,.build-system-plan,.build-output{padding-left:18px;padding-right:16px}.build-output-row{flex-direction:column;align-items:flex-start;gap:7px}.about-section{gap:18px}.about-copy{gap:0}.about-specs{border-top:2px solid var(--grid-line);border-left:0;gap:16px;padding-top:1.5rem;padding-left:0}.spec-item:before{display:none}.about-mark img{width:100%;max-height:320px}.notebook-page{min-height:390px;padding:20px 18px 16px 30px}.profile-notebook h2{font-size:clamp(2rem,11vw,3rem)}.notebook-topline{flex-direction:row;align-items:center}.notebook-sketch{min-height:116px}.content-section,.about-section,.contact-section{margin-bottom:82px}.project-grid,.credential-grid,.skills-grid{grid-template-columns:1fr}.resume-toolbar{flex-direction:column;align-items:flex-start;padding:14px}.resume-actions{justify-content:flex-start;width:100%}.resume-document{height:68vh;min-height:480px;max-height:680px}.experience-feedback{margin-top:1.25rem;padding:16px}.feedback-topline{flex-direction:column;align-items:flex-start;gap:4px}.project-card{min-height:300px;padding:28px}.project-card-header{flex-direction:column-reverse;align-items:flex-start}.project-panel{padding:72px 22px 34px}.project-preview,.project-preview img{min-height:210px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.brief-cursor,.status-running,.trace-dot,.validation-zero,.validation-four,.validation-eight{opacity:0}.status-ready,.trace-check,.validation-complete,.build-output{opacity:1}.build-trace{transform:none!important}}
