:root{color-scheme:light;--font-sans:"Pretendard Variable", Pretendard, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", "Cascadia Code", "Roboto Mono", Consolas, monospace;--color-canvas:#f4f1ea;--color-canvas-raised:#fbfaf7;--color-surface:#fff;--color-surface-subtle:#ece8df;--color-surface-inverse:#10171b;--color-text:#172126;--color-text-muted:#58656b;--color-text-soft:#768187;--color-text-inverse:#f2f7f5;--color-border:#17212624;--color-border-strong:#17212642;--color-accent:#086e69;--color-accent-strong:#04544f;--color-accent-soft:#086e691a;--color-signal:#8b5814;--color-signal-soft:#8b58141c;--color-danger:#9f3f4c;--color-grid:#1721260e;--surface-dark:#10171b;--surface-dark-deep:#080c0f;--on-dark-text:#f2f7f5;--on-dark-text-muted:#f2f7f5b8;--on-dark-text-soft:#f2f7f58f;--on-dark-border:#f2f7f526;--on-dark-border-strong:#f2f7f538;--on-dark-grid:#f2f7f50a;--on-dark-surface-tint:#f2f7f50f;--accent-on-dark:#84e2d5;--signal-on-dark:#efb463;--header-surface:#f4f1eadb;--header-border:#1721261f;--shadow-sm:0 8px 22px #10171b0f;--shadow-md:0 20px 54px #10171b1a;--shadow-lg:0 34px 90px #10171b29;--focus-ring:0 0 0 3px var(--color-canvas), 0 0 0 6px #086e699e;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-xs:.25rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1.25rem;--radius-pill:999px;--width-reading:47rem;--width-content:74rem;--width-wide:90rem;--header-height:4.5rem;--z-header:50;--z-overlay:40;--ease-standard:cubic-bezier(.2, .75, .25, 1);--ease-emphasized:cubic-bezier(.16, 1, .3, 1);--ease-spring:linear(0, .009, .035 2.1%, .141 4.4%, .723 12.9%, .938 16.7%, 1.017 20.6%, 1.042 25%, 1.033 31.4%, 1.006 45.7%, .999 61.2%, 1);--duration-fast:.15s;--duration-medium:.26s;--duration-reveal:.6s;--duration-emphasis:.86s;--motion-stagger:64ms;--motion-distance:1.4rem}:root[data-theme=dark]{color-scheme:dark;--color-canvas:#0b1014;--color-canvas-raised:#0f161a;--color-surface:#121a1f;--color-surface-subtle:#192328;--color-surface-inverse:#edf3f0;--color-text:#eaf1ee;--color-text-muted:#a4b0ad;--color-text-soft:#7f8b89;--color-text-inverse:#10171b;--color-border:#e2eee921;--color-border-strong:#e2eee940;--color-accent:#65d8c9;--color-accent-strong:#91eadf;--color-accent-soft:#65d8c91c;--color-signal:#efb463;--color-signal-soft:#efb4631c;--color-danger:#ff98a6;--color-grid:#e2eee90d;--header-surface:#0b1014db;--header-border:#e2eee91f;--shadow-sm:0 8px 24px #0003;--shadow-md:0 22px 58px #00000047;--shadow-lg:0 38px 100px #00000061;--focus-ring:0 0 0 3px var(--color-canvas), 0 0 0 6px #65d8c9b3}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;min-width:20rem;scroll-padding-top:calc(var(--header-height) + var(--space-4));background:var(--color-canvas)}body{min-width:20rem;min-height:100vh;color:var(--color-text);background:var(--color-canvas);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;transition:color var(--duration-medium) var(--ease-standard), background-color var(--duration-medium) var(--ease-standard);margin:0;line-height:1.6;overflow-x:clip}body.has-open-menu{overflow:hidden}@view-transition{navigation:auto}::view-transition-old(root){animation:.17s ease-in both route-leave}::view-transition-new(root){animation:route-enter .22s var(--ease-standard) both}::selection{color:var(--color-text-inverse);background:var(--color-accent)}[hidden]{display:none!important}a{color:inherit;text-decoration:none}button,input,select,textarea{color:inherit;font:inherit}button,select{cursor:pointer}button:disabled{cursor:not-allowed}img,svg{max-width:100%;display:block}img{height:auto}h1,h2,h3,p,figure,blockquote{margin-top:0}h1,h2,h3{color:var(--color-text);letter-spacing:-.035em;text-wrap:balance;font-weight:760}h1{font-size:clamp(3rem,7vw,7rem);line-height:.95}h2{font-size:clamp(2.1rem,4vw,4.5rem);line-height:1}h3{font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.15}:where(a,button,input,select,summary,[tabindex]):focus-visible{box-shadow:var(--focus-ring);outline:0}#main-content:focus{outline:0}.skip-link{z-index:100;top:var(--space-4);left:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--color-text-inverse);background:var(--color-surface-inverse);transform:translateY(calc(-100% - var(--space-8)));transition:transform var(--duration-fast) var(--ease-standard);font-weight:760;position:fixed}.skip-link:focus{transform:translateY(0)}.eyebrow{margin:0 0 var(--space-4);color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:760;line-height:1.4}.button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);min-height:3rem;padding:0 var(--space-5);transition:color var(--duration-fast) ease, background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, transform var(--duration-fast) ease;border:1px solid #0000;font-weight:760;line-height:1;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary,.button.primary{color:var(--color-text-inverse);background:var(--color-surface-inverse)}.button-secondary,.button.secondary{border-color:var(--color-border-strong);color:var(--color-text);background:var(--color-surface)}.text-link,.back-link{align-items:center;gap:var(--space-2);width:fit-content;min-height:2.75rem;color:var(--color-accent);font-weight:760;display:inline-flex}.text-link:after{content:"↗";transition:transform var(--duration-fast) ease}.text-link:hover:after{transform:translate(2px,-2px)}.tag-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.tag-list span{border:1px solid var(--color-border);border-radius:var(--radius-pill);min-height:1.75rem;color:var(--color-text-muted);background:var(--color-canvas-raised);font-family:var(--font-mono);align-items:center;padding:.22rem .65rem;font-size:.72rem;font-weight:650;line-height:1.2;display:inline-flex}.section-band{padding:clamp(4.5rem,8vw,8rem) clamp(1.25rem,5vw,4.5rem);position:relative}.section-band>:where(.section-heading,.project-grid,.resume-grid,.achievement-list,.compact-credential-list,.contact-link-list){width:min(var(--width-content), 100%);margin-left:auto;margin-right:auto}.section-heading{width:min(var(--width-content), 100%);margin:0 auto clamp(2.5rem,5vw,4.5rem)}.section-heading h2{max-width:18ch;margin:0}.section-heading>p:not(.eyebrow){max-width:44rem;margin:var(--space-5) 0 0;color:var(--color-text-muted);font-size:clamp(1rem,1.2vw,1.15rem)}.site-header{z-index:var(--z-header);min-height:var(--header-height);transition:background-color var(--duration-medium) var(--ease-standard), border-color var(--duration-medium) var(--ease-standard), box-shadow var(--duration-medium) var(--ease-standard);background:0 0;border-bottom:1px solid #0000;position:sticky;top:0}.site-header.is-scrolled,.site-header.is-menu-open{border-color:var(--header-border);background:var(--header-surface);backdrop-filter:blur(18px)saturate(135%);box-shadow:0 10px 34px #10171b12}.site-header.is-menu-open{backdrop-filter:none}.site-header-inner{gap:var(--space-6);width:min(var(--width-wide), calc(100% - clamp(2rem, 6vw, 6rem)));min-height:var(--header-height);grid-template-columns:minmax(12rem,1fr) auto minmax(12rem,1fr);align-items:center;margin:0 auto;display:grid}.site-brand{align-items:center;gap:var(--space-3);border-radius:var(--radius-sm);width:fit-content;min-height:3rem;display:inline-flex}.site-brand-mark{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);width:2.35rem;height:2.35rem;color:var(--color-text);background:var(--color-surface);font-family:var(--font-mono);letter-spacing:-.05em;place-items:center;font-size:.67rem;font-weight:800;display:inline-grid;position:relative;overflow:hidden}.site-brand-mark span{background:var(--color-accent);width:.48rem;height:.48rem;position:absolute;top:0;right:0}.site-brand-copy{line-height:1.15;display:grid}.site-brand-copy strong{font-size:.88rem}.site-brand-copy small{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.03em;margin-top:.22rem;font-size:.62rem}.site-nav{align-items:center;gap:var(--space-1);display:flex}.site-nav a{border-radius:var(--radius-sm);min-height:2.75rem;padding:0 var(--space-3);color:var(--color-text-muted);transition:color var(--duration-fast) ease, background-color var(--duration-fast) ease;align-items:center;font-size:.84rem;font-weight:700;display:inline-flex;position:relative}.site-nav a:after{content:"";right:var(--space-3);bottom:.42rem;left:var(--space-3);background:var(--color-accent);transform-origin:0;height:2px;transition:transform var(--duration-fast) var(--ease-standard);position:absolute;transform:scaleX(0)}.site-nav a:hover,.site-nav a.is-active{color:var(--color-text);background:var(--color-accent-soft)}.site-nav a.is-active:after{transform:scaleX(1)}.site-header-actions{justify-content:flex-end;gap:var(--space-2);align-items:center;display:flex}.header-icon-button,.language-switch,.mobile-menu-toggle{appearance:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:2.75rem;height:2.75rem;color:var(--color-text);background:var(--color-surface);transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, transform var(--duration-fast) ease;flex:none;place-items:center;display:inline-grid}.header-icon-button:hover,.language-switch:hover{border-color:var(--color-accent);background:var(--color-accent-soft);transform:translateY(-1px)}.header-icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:1.18rem;height:1.18rem}.theme-icon-moon,:root[data-theme=dark] .theme-icon-sun{display:none}:root[data-theme=dark] .theme-icon-moon{display:block}.language-switch{font-family:var(--font-mono);font-size:.72rem;font-weight:800}.header-contact{border-radius:var(--radius-sm);min-height:2.75rem;padding:0 var(--space-4);color:var(--color-text-inverse);background:var(--color-surface-inverse);align-items:center;font-size:.82rem;font-weight:760;display:inline-flex}.mobile-menu-toggle{align-content:center;gap:.34rem;display:none}.mobile-menu-toggle span{width:1.08rem;height:1px;transition:transform var(--duration-fast) ease, opacity var(--duration-fast) ease;background:currentColor}.mobile-menu-toggle[aria-expanded=true] span:first-child{transform:translateY(.21rem)rotate(45deg)}.mobile-menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-.21rem)rotate(-45deg)}.mobile-navigation{z-index:var(--z-overlay);inset:var(--header-height) 0 0;border-top:1px solid var(--color-border);background:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px), var(--color-canvas);background-size:3rem 3rem;padding:clamp(2rem,8vw,5rem) clamp(1.25rem,6vw,4rem);position:fixed;overflow-y:auto}.mobile-navigation nav{border-top:1px solid var(--color-border-strong);width:min(42rem,100%);margin:0 auto;display:grid}.mobile-navigation nav a{gap:var(--space-4);border-bottom:1px solid var(--color-border);grid-template-columns:3rem 1fr;align-items:center;min-height:4.75rem;display:grid}.mobile-navigation nav a span{color:var(--color-accent);font-family:var(--font-mono);font-size:.72rem}.mobile-navigation nav a strong{letter-spacing:-.025em;font-size:clamp(1.4rem,5vw,2rem)}.mobile-navigation nav a.is-active strong{color:var(--color-accent)}.mobile-navigation-meta{justify-content:space-between;gap:var(--space-6);width:min(42rem,100%);margin:var(--space-8) auto 0;color:var(--color-text-muted);font-family:var(--font-mono);font-size:.72rem;display:flex}.subpage-hero,.post-hero{border-bottom:1px solid var(--color-border);background:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px), radial-gradient(circle at 88% 10%, var(--color-accent-soft), transparent 28%), var(--color-canvas-raised);background-size:3.25rem 3.25rem,3.25rem 3.25rem,auto,auto;padding:clamp(3.5rem,6vw,6rem) clamp(1.25rem,5vw,4.5rem) clamp(2.75rem,4vw,4rem);position:relative;overflow:hidden}.page-hero-shell{width:min(var(--width-wide), 100%);margin:0 auto}.page-hero-index{justify-content:space-between;align-items:center;gap:var(--space-4);color:var(--color-text-soft);font-family:var(--font-mono);letter-spacing:.08em;margin-bottom:clamp(1.75rem,3vw,3rem);font-size:.68rem;display:flex}.page-hero-index span:first-child{background:linear-gradient(90deg, var(--color-accent), var(--color-signal), transparent);width:clamp(5rem,14vw,13rem);height:2px}.page-hero-copy{grid-template-columns:minmax(10rem,.22fr) minmax(0,1fr);align-items:end;gap:clamp(2rem,6vw,6rem);display:grid}.page-hero-meta{gap:var(--space-3);border-left:1px solid var(--color-border-strong);min-height:5rem;padding-left:var(--space-4);align-content:end;display:grid}.page-hero-meta .eyebrow{margin:0}.page-hero-back{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.72rem}.page-hero-copy h1{overflow-wrap:break-word;word-break:normal;max-width:15ch;margin:0}.page-hero-description{max-width:42rem;margin:var(--space-6) 0 0;color:var(--color-text-muted);font-size:clamp(1rem,1.3vw,1.18rem);line-height:1.7}.page-hero-proof{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-border-strong);box-shadow:var(--shadow-sm);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:clamp(2.5rem,5vw,5rem) 0 0;display:grid;overflow:hidden}.page-hero-metric{isolation:isolate;gap:var(--space-3);background:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px), radial-gradient(circle at 88% 8%, var(--color-accent-soft), transparent 34%), var(--color-surface);background-size:2rem 2rem,2rem 2rem,auto,auto;grid-template-rows:auto auto 1fr;min-height:11.5rem;padding:clamp(1.25rem,2.5vw,2rem);display:grid;position:relative;overflow:hidden}.page-hero-metric:before{content:"";z-index:0;background:linear-gradient(90deg, transparent, var(--color-accent), var(--color-signal), transparent);opacity:0;width:48%;height:2px;position:absolute;top:0;left:-48%}.motion-ready .page-hero-metric:before{animation:page-hero-metric-signal 7.2s var(--ease-standard) infinite;animation-delay:calc(var(--metric-index,0) * -1.4s)}.page-hero-metric>*{z-index:1;position:relative}.page-hero-metric dd{margin:0}.page-hero-metric-value{order:-1}.page-hero-metric-value strong{color:var(--color-accent-strong);font-family:var(--font-mono);font-size:clamp(2rem,4vw,4rem);line-height:.96}.page-hero-metric:last-child .page-hero-metric-value strong{overflow-wrap:anywhere;letter-spacing:-.04em;font-size:clamp(1.6rem,2.6vw,2.8rem)}.page-hero-metric dt{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;align-self:end;font-size:.72rem;font-weight:800}.page-hero-metric-detail{color:var(--color-text-muted);align-self:end;font-size:.9rem;line-height:1.55}@keyframes page-hero-metric-signal{0%,12%{opacity:0;transform:translate(0,0)}24%,72%{opacity:1}88%,to{opacity:0;transform:translate(310%)}}.article-hero .page-hero-copy h1{max-width:18ch;font-size:clamp(2.5rem,5.5vw,5.8rem);line-height:1}[data-motion-root]{--motion-pointer-x:0;--motion-pointer-y:0}.motion-ready [data-motion-section] [data-motion-item]{opacity:0;transform:translate3d(0, var(--motion-distance), 0);transition:opacity var(--duration-reveal) var(--ease-standard), transform var(--duration-reveal) var(--ease-emphasized);transition-delay:calc(var(--motion-index,0) * var(--motion-stagger))}.motion-ready [data-motion-section].is-visible [data-motion-item]{opacity:1;transform:translate(0,0)}[data-motion-loop][data-motion-paused=true],[data-motion-loop][data-motion-paused=true]:before,[data-motion-loop][data-motion-paused=true]:after,[data-motion-loop][data-motion-paused=true] *{animation-play-state:paused!important}[data-motion-stagger]>[data-motion-item]:first-child{--motion-index:0}[data-motion-stagger]>[data-motion-item]:nth-child(2){--motion-index:1}[data-motion-stagger]>[data-motion-item]:nth-child(3){--motion-index:2}[data-motion-stagger]>[data-motion-item]:nth-child(4){--motion-index:3}[data-motion-stagger]>[data-motion-item]:nth-child(5){--motion-index:4}[data-motion-stagger]>[data-motion-item]:nth-child(6){--motion-index:5}.portfolio-home{background:var(--color-canvas)}.portfolio-hero{--hero-flow-color:var(--accent-on-dark);--hero-signal-color:var(--signal-on-dark);min-height:calc(100svh - var(--header-height));border-bottom:1px solid var(--color-border);background:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px), radial-gradient(circle at 70% 34%, var(--color-accent-soft), transparent 28%), var(--color-canvas);background-size:3.5rem 3.5rem,3.5rem 3.5rem,auto,auto;position:relative;overflow:hidden}.portfolio-hero:after{content:"";background:linear-gradient(105deg, transparent 26%, color-mix(in srgb, var(--color-accent) 8%, transparent) 50%, transparent 74%);opacity:.58;pointer-events:none;animation:14s ease-in-out 1.2s infinite hero-light-pass;position:absolute;inset:0;transform:translate(-18%)}.landing-intro{width:min(var(--width-wide), calc(100% - clamp(2.5rem, 10vw, 9rem)));min-height:calc(100svh - var(--header-height));grid-template-columns:minmax(0,1.02fr) minmax(25rem,.98fr);align-items:center;gap:clamp(2.5rem,6vw,6.5rem);margin:0 auto;padding:clamp(2.75rem,5vw,5rem) 0;display:grid}.landing-intro-identity{margin:0 0 var(--space-4);color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.8rem;font-weight:760}.portfolio-hero .landing-intro-identity{animation:hero-copy-enter .5s var(--ease-emphasized) 80ms both}.portfolio-hero .landing-intro-body{animation:hero-copy-enter var(--duration-reveal) var(--ease-emphasized) .22s both}.portfolio-hero .landing-intro-actions{animation:hero-copy-enter .52s var(--ease-emphasized) .3s both}.landing-intro-body{max-width:42rem;margin:var(--space-6) 0 0;color:var(--color-text-muted);font-size:clamp(1.05rem,1.45vw,1.28rem);line-height:1.75}.landing-intro-actions{gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;align-items:center;display:flex}.hero-system-path{z-index:3;margin:0 var(--space-5);border-top:1px solid var(--on-dark-border);border-bottom:1px solid var(--on-dark-border);grid-template-columns:repeat(3,minmax(0,1fr));padding:0;list-style:none;display:grid;position:relative}.hero-system-path li{gap:var(--space-2);min-width:0;padding:var(--space-4);border-right:1px solid var(--on-dark-border);display:grid}.hero-system-path li:last-child{border-right:0}.hero-system-path span{color:#65d8c9;font-family:var(--font-mono);font-size:.62rem}.hero-system-path a{min-width:0;color:var(--on-dark-text-muted);overflow-wrap:anywhere;font-size:.72rem;font-weight:700}.hero-system-path a:hover{color:var(--on-dark-text)}.hero-proof-grid{z-index:1;padding:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid;position:relative}.hero-proof-grid div{gap:var(--space-2);padding-right:var(--space-4);display:grid}.hero-proof-grid dt{color:var(--on-dark-text-soft);font-family:var(--font-mono);text-transform:uppercase;font-size:.62rem;line-height:1.35}.hero-proof-grid dd{color:var(--on-dark-text);order:-1;margin:0;font-size:clamp(1.65rem,3vw,2.5rem);font-weight:760;line-height:1}.portfolio-work-preview,.portfolio-writing-preview{grid-template-columns:minmax(18rem,.34fr) minmax(0,1fr);gap:clamp(2.5rem,7vw,7rem);display:grid}.portfolio-work-preview{background:var(--color-canvas-raised)}.home-project-experience{gap:clamp(2rem,5vw,4rem);min-width:0;display:grid}.project-flow-explorer{--project-flow-x:var(--motion-pointer-x,0);--project-flow-y:var(--motion-pointer-y,0);border:1px solid var(--on-dark-border);border-radius:var(--radius-lg);min-width:0;color:var(--on-dark-text);background:linear-gradient(var(--on-dark-grid) 1px, transparent 1px), linear-gradient(90deg, var(--on-dark-grid) 1px, transparent 1px), var(--surface-dark);box-shadow:var(--shadow-md);transform:perspective(90rem) rotateX(calc(var(--project-flow-y) * -1.4deg)) rotateY(calc(var(--project-flow-x) * 1.8deg));background-size:2.5rem 2.5rem;grid-template-columns:minmax(13rem,.36fr) minmax(0,.64fr);transition:transform .18s ease-out;display:grid;position:relative;overflow:hidden}.project-flow-explorer:after{content:"";aspect-ratio:1;filter:blur(3.5rem);pointer-events:none;background:#65d8c917;border-radius:50%;width:54%;position:absolute;bottom:-48%;right:-12%}.project-flow-selector{z-index:1;border-right:1px solid var(--on-dark-border);align-content:stretch;margin:0;padding:0;list-style:none;display:grid;position:relative}.project-flow-selector li+li{border-top:1px solid var(--on-dark-border)}.project-flow-select{gap:var(--space-2);width:100%;min-height:8rem;padding:var(--space-4) var(--space-5);color:var(--on-dark-text-soft);text-align:left;transition:color var(--duration-medium) var(--ease-standard), background-color var(--duration-medium) var(--ease-standard);background:0 0;border:0;align-content:center;display:grid;position:relative}.project-flow-select:before{content:"";background:linear-gradient(var(--accent-on-dark), var(--signal-on-dark));transform-origin:50%;width:3px;transition:transform var(--duration-medium) var(--ease-emphasized);position:absolute;inset:0 auto 0 0;transform:scaleY(0)}.project-flow-select:is(:hover,:focus-visible,.is-active){color:var(--on-dark-text);background:var(--on-dark-surface-tint)}.project-flow-select:is(:focus-visible,.is-active):before{transform:scaleY(1)}.project-flow-select-label,.project-flow-select time,.project-flow-meta{font-family:var(--font-mono);font-size:.62rem;line-height:1.4}.project-flow-select-label{color:var(--accent-on-dark)}.project-flow-select strong{font-size:.8rem;line-height:1.35}.project-flow-select time{color:var(--on-dark-text-soft)}.project-flow-panels{z-index:1;min-width:0;display:grid;position:relative}.project-flow-panel{align-content:center;gap:clamp(2rem,4vw,3.5rem);min-width:0;padding:clamp(1.5rem,4vw,3rem);display:grid}.project-flow-panel+.project-flow-panel{border-top:1px solid var(--on-dark-border)}.project-flow-explorer.is-enhanced .project-flow-panel{display:none}.project-flow-explorer.is-enhanced .project-flow-panel.is-active{animation:project-flow-enter .48s var(--ease-emphasized) both;display:grid}.project-flow-header{gap:var(--space-3);display:grid}.project-flow-meta{justify-content:space-between;gap:var(--space-3);color:var(--on-dark-text-soft);flex-wrap:wrap;display:flex}.project-flow-meta span{color:var(--accent-on-dark)}.project-flow-header h3{max-width:26ch;color:var(--on-dark-text);margin:0;font-size:clamp(1.25rem,2.3vw,2rem)}.project-flow-header a:hover{color:var(--accent-on-dark)}.project-flow-track{grid-template-columns:repeat(auto-fit,minmax(5.8rem,1fr));min-width:0;margin:0;padding:0;list-style:none;display:grid}.project-flow-node{gap:var(--space-3);min-width:0;padding-right:var(--space-4);align-content:start;display:grid;position:relative}.project-flow-node-index{width:2.2rem;height:2.2rem;color:var(--accent-on-dark);background:var(--surface-dark);font-family:var(--font-mono);border:1px solid #84e2d594;border-radius:50%;place-items:center;font-size:.6rem;display:grid;box-shadow:0 0 0 .28rem #84e2d50f}.project-flow-node-label{color:var(--on-dark-text-muted);overflow-wrap:anywhere;font-size:.72rem;font-weight:720;line-height:1.35}.project-flow-connector{background:#84e2d538;height:1px;position:absolute;top:1.05rem;left:2.45rem;right:0;overflow:hidden}.project-flow-connector:after{content:"";background:linear-gradient(90deg, transparent, var(--accent-on-dark), var(--signal-on-dark), transparent);opacity:0;width:28%;animation:project-flow-packet 3.8s var(--ease-standard) calc(var(--motion-index,0) * -620ms) infinite;position:absolute;inset:0 auto 0 0}.project-highlights{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.project-highlights li{padding-left:var(--space-5);position:relative}.project-highlights li:before{content:"";background:var(--color-accent);width:.45rem;height:2px;position:absolute;top:.72em;left:0}.portfolio-writing-preview{color:var(--on-dark-text-muted);background:linear-gradient(#10171be6,#10171bf7),url(/images/hero-cloud-workbench.avif) 50%/cover;position:relative;overflow:hidden}.portfolio-writing-preview:before{content:"";background:linear-gradient(90deg, transparent 0 49.9%, #84e2d514 50%, transparent 50.1%), radial-gradient(circle at calc(18% + (var(--motion-section-progress,0) * 64%)) 12%, #84e2d51f, transparent 22%);pointer-events:none;position:absolute;inset:0}.portfolio-writing-preview>*{z-index:1;position:relative}.portfolio-writing-preview :where(h2,.home-writing-row strong){color:var(--on-dark-text)}.portfolio-writing-preview .eyebrow,.home-writing-row span{color:var(--accent-on-dark)}.home-writing-layout{grid-template-columns:minmax(19rem,.95fr) minmax(0,1.05fr);align-items:start;gap:clamp(1.5rem,4vw,4rem);display:grid}.home-writing-feature{--writing-lift:0rem;border:1px solid var(--on-dark-border);border-radius:var(--radius-md);background:var(--on-dark-surface-tint);transform:perspective(75rem) rotateX(calc(var(--motion-pointer-y,0) * -1deg)) rotateY(calc(var(--motion-pointer-x,0) * 1.2deg)) translate3d(0, var(--writing-lift), 0);transition:border-color var(--duration-medium) var(--ease-standard), background-color var(--duration-medium) var(--ease-standard), transform .18s ease-out;position:relative;overflow:hidden}.home-writing-feature:before{content:"";background:linear-gradient(var(--on-dark-grid) 1px, transparent 1px), linear-gradient(90deg, var(--on-dark-grid) 1px, transparent 1px);pointer-events:none;background-size:2.5rem 2.5rem;position:absolute;inset:0}.home-writing-feature:after{content:"";z-index:2;background:linear-gradient(90deg, var(--accent-on-dark), var(--signal-on-dark), transparent);transform-origin:0;height:2px;transition:transform .52s var(--ease-emphasized);pointer-events:none;position:absolute;bottom:0;left:0;right:0;transform:scaleX(.18)}.home-writing-feature:is(:hover,:focus-within){--writing-lift:-.2rem;background:var(--on-dark-surface-tint);border-color:#84e2d56b}.home-writing-feature:is(:hover,:focus-within):after{transform:scaleX(1)}.home-writing-feature a{z-index:1;flex-direction:column;align-items:start;min-height:20rem;padding:clamp(1.5rem,3vw,2.25rem);display:flex;position:relative}.home-writing-feature a>span{margin-bottom:auto}.home-writing-feature span{color:var(--accent-on-dark);font-family:var(--font-mono);text-transform:uppercase;font-size:.68rem}.home-writing-feature h3{margin:var(--space-5) 0 var(--space-4);color:var(--on-dark-text);font-size:clamp(1.5rem,2.2vw,2.1rem);line-height:1.12}.home-writing-feature p{color:var(--on-dark-text-muted)}.home-writing-feature time{margin-top:var(--space-4);color:var(--on-dark-text-soft);font-family:var(--font-mono);font-size:.68rem}.home-writing-list{border-top:1px solid var(--on-dark-border-strong);display:grid}.home-writing-row{gap:var(--space-3);padding:var(--space-6) 0;border-bottom:1px solid var(--on-dark-border-strong);transition:color var(--duration-fast) ease, transform var(--duration-fast) ease;display:grid;position:relative}.home-writing-row:after{content:"";background:linear-gradient(90deg, var(--accent-on-dark), transparent 72%);transform-origin:0;height:1px;transition:transform var(--duration-medium) var(--ease-emphasized);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.home-writing-row:is(:hover,:focus-visible){transform:translateX(var(--space-2))}.home-writing-row:is(:hover,:focus-visible):after{transform:scaleX(1)}.home-writing-row span{font-family:var(--font-mono);font-size:.7rem}.home-writing-row strong{font-size:clamp(1.1rem,1.8vw,1.5rem);line-height:1.2}.home-writing-row p{color:var(--on-dark-text-muted);margin:0}.portfolio-contact-strip{justify-content:space-between;align-items:end;gap:var(--space-12);border-top:1px solid var(--color-border);background:var(--color-canvas);display:flex;position:relative;overflow:hidden}.portfolio-contact-strip>:not(.portfolio-contact-signal){z-index:1;position:relative}.portfolio-contact-signal{background:linear-gradient(90deg, transparent, var(--color-border-strong), transparent);height:1px;position:absolute;top:0;left:0;right:0}.portfolio-contact-signal:after{content:"";background:linear-gradient(90deg, transparent, var(--color-accent), var(--color-signal), transparent);opacity:0;width:18%;height:3px;animation:contact-signal-ack 7s var(--ease-standard) infinite;position:absolute;top:-1px;left:0}.portfolio-contact-strip h2{max-width:15ch;margin:0}.portfolio-contact-strip .button{transform:translate3d(calc(var(--motion-pointer-x,0) * .12rem), calc(var(--motion-pointer-y,0) * .08rem), 0)}.portfolio-contact-strip .button:is(:hover,:focus-visible){transform:translate3d(calc(var(--motion-pointer-x,0) * .12rem), calc((var(--motion-pointer-y,0) * .08rem) - .12rem), 0)}.skill-marquee-section{border-bottom:1px solid var(--color-border);background:var(--color-canvas);grid-template-columns:minmax(18rem,.34fr) minmax(0,1fr);gap:clamp(2.5rem,7vw,7rem);padding:clamp(4rem,8vw,7rem) 0 clamp(4rem,8vw,7rem) clamp(1.25rem,5vw,4.5rem);display:grid;position:relative;overflow:hidden}.skill-marquee-section:after{content:"";z-index:0;background:linear-gradient(90deg, transparent, var(--color-accent-soft), transparent);pointer-events:none;height:1px;position:absolute;top:50%;left:32%;right:0}.skill-marquee-section>*{z-index:1;position:relative}.skill-marquee-section.is-compact{color:var(--on-dark-text);background:var(--surface-dark);padding:clamp(2.5rem,5vw,4rem) 0;display:block}.skill-marquee{gap:var(--space-3);align-content:center;min-width:0;display:grid;mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000)}.skill-marquee-row{overflow:hidden}.skill-marquee-track{gap:var(--space-3);width:max-content;animation:42s linear infinite marquee;display:flex}.skill-marquee-row.is-reverse .skill-marquee-track{animation-duration:48s;animation-direction:reverse}.skill-marquee:hover .skill-marquee-track,.skill-marquee:focus-within .skill-marquee-track{animation-play-state:paused}.skill-pill{align-items:center;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:10.5rem;min-height:4rem;padding:var(--space-3) var(--space-4);background:var(--color-surface);transition:border-color var(--duration-medium) var(--ease-standard), box-shadow var(--duration-medium) var(--ease-standard), transform var(--duration-medium) var(--ease-spring);font-weight:700;display:inline-flex;transform:translate(0,0)}.skill-pill:is(:hover,:focus-visible){border-color:color-mix(in srgb, var(--skill-accent,var(--color-accent)) 62%, var(--color-border));box-shadow:0 .8rem 1.8rem color-mix(in srgb, var(--skill-accent,var(--color-accent)) 12%, transparent);transform:translateY(-.24rem)}.is-compact .skill-pill{border-color:var(--on-dark-border);color:var(--on-dark-text);background:var(--on-dark-surface-tint)}.skill-icon{border:1px solid color-mix(in srgb, var(--skill-accent,var(--color-accent)) 48%, transparent);border-radius:var(--radius-sm);width:2.2rem;height:2.2rem;color:var(--skill-accent,var(--color-accent));background:color-mix(in srgb, var(--skill-accent,var(--color-accent)) 10%, transparent);transition:background-color var(--duration-medium) var(--ease-standard), transform var(--duration-medium) var(--ease-spring);flex:none;place-items:center;display:inline-grid}.skill-pill:is(:hover,:focus-visible) .skill-icon{background:color-mix(in srgb, var(--skill-accent,var(--color-accent)) 16%, transparent);transform:rotate(-4deg)scale(1.08)}.skill-icon svg{fill:currentColor;width:1.15rem;height:1.15rem}.skill-icon svg.custom-skill-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.skills-page-band{background:repeating-linear-gradient(90deg, var(--color-grid) 0 1px, transparent 1px 2.75rem), linear-gradient(180deg, var(--color-canvas-raised), color-mix(in srgb, var(--color-canvas) 88%, var(--color-surface)))}.skill-group-list{gap:clamp(3rem,7vw,7rem);width:100%;max-width:74rem;margin:0 auto;display:grid}.skill-group-panel{border-top:1px solid var(--color-border-strong);gap:clamp(1.75rem,3vw,3rem);padding-top:clamp(1.75rem,3vw,2.75rem);display:grid}.skill-group-heading{justify-content:space-between;gap:var(--space-4);align-items:baseline;display:flex}.skill-group-heading span{color:var(--color-text-soft);font-family:var(--font-mono);order:2;font-size:.72rem}.skill-group-heading h2{overflow-wrap:normal;word-break:keep-all;text-wrap:balance;margin:0;font-size:clamp(2.55rem,5vw,5.75rem);line-height:.92}.skill-grid-panel{justify-content:center;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(8.25rem,100%),10.5rem));display:grid}.skill-tile{--skill-widget-accent:var(--skill-accent);isolation:isolate;align-content:center;place-items:center;gap:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-height:8rem;padding:var(--space-5) var(--space-4);background:radial-gradient(circle at 50% 14%, color-mix(in srgb, var(--skill-widget-accent) 15%, transparent), transparent 42%), linear-gradient(145deg, var(--color-surface), color-mix(in srgb, var(--color-surface-subtle) 72%, var(--color-surface)));box-shadow:var(--shadow-sm);transition:border-color var(--duration-medium) var(--ease-standard), box-shadow var(--duration-medium) var(--ease-standard), transform var(--duration-medium) var(--ease-spring);display:grid;position:relative;overflow:hidden;transform:translate(0,0)}.skill-tile:before{content:"";top:0;right:var(--space-3);left:var(--space-3);background:linear-gradient(90deg, transparent, var(--skill-widget-accent), transparent);opacity:.52;transform-origin:50%;height:2px;transition:opacity var(--duration-medium) var(--ease-standard), transform var(--duration-medium) var(--ease-emphasized);position:absolute;transform:scaleX(.22)}.skills-page .skill-tile .skill-icon{border-color:color-mix(in srgb, var(--skill-widget-accent) 48%, transparent);width:2.625rem;height:2.625rem;color:var(--skill-widget-accent);background:color-mix(in srgb, var(--skill-widget-accent) 10%, transparent)}.skills-page .skill-tile .skill-icon svg{width:1.375rem;height:1.375rem}.skill-tile h3{text-align:center;text-wrap:balance;letter-spacing:-.01em;max-width:13ch;margin:0;font-size:clamp(.92rem,1vw,1.02rem);font-weight:750;line-height:1.16}@media (hover:hover) and (pointer:fine){.skills-page:not(.motion-ready) .skill-tile:hover,.skills-page.motion-ready .skill-group-panel.is-visible .skill-tile[data-motion-item]:hover{border-color:color-mix(in srgb, var(--skill-widget-accent) 60%, var(--color-border));box-shadow:0 1.35rem 3.5rem color-mix(in srgb, var(--skill-widget-accent) 13%, transparent);transform:translateY(-.24rem)}.skill-tile:hover:before{opacity:.94;transform:scaleX(1)}.skill-tile:hover .skill-icon{background:color-mix(in srgb, var(--skill-widget-accent) 17%, transparent);transform:rotate(-4deg)scale(1.08)}}:root[data-theme=dark] .skills-page .skill-tile{--skill-widget-accent:color-mix(in srgb, var(--skill-accent) 44%, white)}.intro-band,.resume-band,.credential-band{background:var(--color-canvas-raised)}.project-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.project-card{align-content:start;gap:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:28rem;padding:clamp(1.5rem,3vw,2.25rem);display:grid;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(90deg, var(--color-accent), var(--color-signal), transparent 70%);height:3px;position:absolute;top:0;left:0;right:0}.project-meta{justify-content:space-between;gap:var(--space-4);color:var(--color-text-muted);font-family:var(--font-mono);font-size:.7rem;display:flex}.project-meta p{color:var(--color-accent);margin:0}.project-card h3{margin:var(--space-3) 0 0}.project-card>span,.project-card li{color:var(--color-text-muted)}.project-highlights{margin:var(--space-2) 0}.project-case-study-list{gap:var(--space-6);grid-template-columns:1fr}.project-case-study{min-height:0;scroll-margin-top:calc(var(--header-height) + var(--space-5));padding:0}.project-case-study-header{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(13rem,.28fr) minmax(0,1fr);align-items:end;gap:clamp(2rem,6vw,6rem);padding:clamp(1.75rem,4vw,3.5rem);display:grid}.project-case-study-header .project-meta{align-content:end;gap:var(--space-3);display:grid}.project-case-study-header :where(h2,h3){overflow-wrap:anywhere;max-width:24ch;margin:0;font-size:clamp(1.9rem,3.7vw,3.8rem)}.project-case-study-body{grid-template-columns:minmax(13rem,.72fr) minmax(17rem,1fr) minmax(17rem,1fr);display:grid}.project-detail-section{border-right:1px solid var(--color-border);min-width:0;padding:clamp(1.5rem,3vw,2.5rem)}.project-detail-section:last-child{border-right:0}.project-detail-section :where(h3,h4){margin:0 0 var(--space-5);color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:760}.project-detail-section>p{color:var(--color-text-muted);margin:0}.project-detail-section .project-highlights{margin:0}.project-stack{margin-top:var(--space-6)}.about-profile-band,.about-skills-band{background:var(--color-canvas-raised)}.about-focus-band{background:var(--color-canvas)}.about-focus-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.about-focus-card{min-height:23rem}.about-focus-card .project-summary{color:var(--color-text-muted);margin:0}.about-focus-card .text-link{align-self:end;margin-top:auto}.about-skill-groups{gap:var(--space-4);width:min(var(--width-content), 100%);grid-template-columns:repeat(2,minmax(0,1fr));margin:0 auto;display:grid}.about-skill-group{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:clamp(1.4rem,3vw,2.25rem)}.about-skill-group h3{margin:0 0 var(--space-6)}.not-found-actions{padding-top:clamp(2rem,4vw,4rem);padding-bottom:clamp(2rem,4vw,4rem)}.not-found-korean{border-top:1px solid var(--color-border)}.resume-download-band{padding:var(--space-8) clamp(1.25rem, 5vw, 4.5rem);border-bottom:1px solid var(--color-border);background:var(--color-canvas)}.resume-download-shell{gap:var(--space-8);width:min(var(--width-content), 100%);grid-template-columns:1fr auto;align-items:center;margin:0 auto;display:grid}.resume-download-copy{gap:var(--space-2);display:grid}.resume-download-copy .eyebrow,.resume-download-copy h2{margin:0}.resume-download-copy h2{font-size:clamp(1.7rem,3vw,2.6rem)}.resume-download-actions{justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.resume-download-button{appearance:none;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:15rem;min-height:4.5rem;padding:var(--space-3) var(--space-4);color:var(--color-text);background:var(--color-surface);text-align:left;grid-template-columns:2.7rem minmax(0,1fr);align-items:center;display:grid}.resume-download-button.is-primary{border-color:var(--color-accent)}.resume-download-button.is-unavailable{opacity:.58}.resume-download-token{border-radius:var(--radius-xs);width:2.7rem;height:2.7rem;color:var(--color-text-inverse);background:var(--color-surface-inverse);font-family:var(--font-mono);place-items:center;font-size:.72rem;font-weight:800;display:grid}.resume-download-button strong,.resume-download-button small,.resume-download-status{display:block}.resume-download-button small,.resume-download-status{color:var(--color-text-muted);margin-top:.2rem;font-size:.7rem}.resume-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.portfolio-home .resume-band{position:relative;overflow:hidden}.portfolio-home .resume-band:after{content:"";background:linear-gradient(90deg, transparent, var(--color-grid) 50%, transparent), radial-gradient(circle at 88% 24%, var(--color-signal-soft), transparent 24%);pointer-events:none;position:absolute;inset:0}.portfolio-home .resume-band>*{z-index:1;position:relative}.portfolio-home .resume-grid[data-deployment-timeline]{padding-top:0;position:relative}.portfolio-home .resume-grid[data-deployment-timeline]:before{content:none}.resume-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:14rem;transition:border-color var(--duration-medium) var(--ease-standard), box-shadow var(--duration-medium) var(--ease-standard), transform var(--duration-medium) var(--ease-emphasized);padding:clamp(1.4rem,2.5vw,2rem);position:relative}.portfolio-home .resume-card:before{content:none}.portfolio-home .resume-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-.18rem)}.resume-card p{margin:0 0 var(--space-6);color:var(--color-accent);font-family:var(--font-mono);text-transform:uppercase;font-size:.72rem;font-weight:760}.resume-card h3{margin:0 0 var(--space-3)}.resume-card span{color:var(--color-text-muted)}.achievement-band{color:var(--on-dark-text);background:var(--surface-dark)}.achievement-band :where(h2,h3){color:var(--on-dark-text)}.achievement-band .eyebrow{color:var(--accent-on-dark)}.achievement-list{border-top:1px solid var(--on-dark-border-strong)}.achievement-row{gap:var(--space-8);padding:var(--space-8) 0;border-bottom:1px solid var(--on-dark-border-strong);grid-template-columns:minmax(8rem,.22fr) minmax(0,1fr);display:grid}.achievement-row h3{margin:0 0 var(--space-2)}.achievement-row p,.achievement-row time,.achievement-row span{color:var(--on-dark-text-muted);margin:0}.achievement-row>div:first-child p{color:var(--accent-on-dark);font-family:var(--font-mono);text-transform:uppercase;font-size:.72rem;font-weight:760}.achievement-row time{margin-top:var(--space-2);font-family:var(--font-mono);font-size:.72rem;display:block}.compact-credential-list{border-top:1px solid var(--color-border-strong)}.compact-credential-row{gap:var(--space-6);border-bottom:1px solid var(--color-border);min-height:4.5rem;padding:var(--space-4) 0;grid-template-columns:minmax(10rem,.25fr) minmax(14rem,.45fr) minmax(10rem,1fr);align-items:center;display:grid}.compact-credential-row time{color:var(--color-accent);font-family:var(--font-mono);font-size:.72rem}.compact-credential-row h3{margin:0;font-size:1rem}.compact-credential-row span{color:var(--color-text-muted)}.contact-page-band{background:var(--color-canvas-raised)}.contact-link-list{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.contact-link-list a{gap:var(--space-8);border-bottom:1px solid var(--color-border);min-height:6rem;padding:var(--space-5) var(--space-6);transition:background-color var(--duration-fast) ease;grid-template-columns:minmax(8rem,.24fr) minmax(0,1fr);align-items:center;display:grid}.contact-link-list a:last-child{border-bottom:0}.contact-link-list a:hover{background:var(--color-accent-soft)}.contact-link-list span{color:var(--color-accent);font-family:var(--font-mono);text-transform:uppercase;font-size:.72rem}.contact-link-list strong{overflow-wrap:anywhere;font-size:clamp(1.15rem,2.5vw,2rem)}.blog-explorer{background:var(--color-canvas-raised);justify-items:center;padding:clamp(2.75rem,4vw,4.5rem) clamp(1.25rem,5vw,4.5rem) clamp(5rem,9vw,9rem);display:grid}.blog-controls{gap:var(--space-5) var(--space-8);width:min(var(--width-content), 100%);margin-bottom:var(--space-6);border-top:1px solid var(--color-border-strong);border-bottom:1px solid var(--color-border-strong);padding:var(--space-5) 0;grid-template-columns:minmax(16rem,1fr) minmax(12rem,18rem);display:grid}.blog-controls label,.category-filter legend{gap:var(--space-2);color:var(--color-text-muted);font-family:var(--font-mono);font-size:.72rem;font-weight:700;display:grid}.blog-search-field{gap:var(--space-2);display:grid}.blog-search-control{position:relative}.blog-controls input,.blog-controls select{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;min-height:3.25rem;padding:0 var(--space-4);color:var(--color-text);background:var(--color-surface)}.blog-search-control input{padding-right:8.5rem}.blog-search-control button{top:50%;right:var(--space-2);border-radius:var(--radius-xs);min-height:2.25rem;padding:0 var(--space-3);color:var(--color-accent);background:var(--color-accent-soft);border:0;font-size:.72rem;font-weight:700;position:absolute;transform:translateY(-50%)}.blog-controls input:focus,.blog-controls select:focus{border-color:var(--color-accent)}.category-filter{border:0;grid-column:1/-1;min-width:0;margin:0;padding:0}.category-filter legend{margin-bottom:var(--space-3)}.category-chip-list{gap:var(--space-2);padding:.2rem 0 var(--space-2);flex-wrap:wrap;display:flex}.category-chip{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);min-height:2.5rem;padding:0 var(--space-4);color:var(--color-text-muted);background:var(--color-surface);flex:none;font-size:.78rem;font-weight:700;display:inline-flex}.category-chip span:last-child{color:var(--color-text-soft);font-family:var(--font-mono);font-size:.65rem}.category-chip[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-text-inverse);background:var(--color-accent)}.category-chip[aria-pressed=true] span:last-child{color:inherit;opacity:.72}.blog-results-summary{width:min(var(--width-content), 100%);margin:0 0 var(--space-4);color:var(--color-text-muted);font-family:var(--font-mono);text-align:right;font-size:.72rem}.blog-results{width:min(var(--width-content), 100%);gap:var(--space-8);display:grid}.blog-archive-directory{background:var(--color-canvas-raised);justify-items:center;padding:0 clamp(1.25rem,5vw,4.5rem) clamp(5rem,9vw,9rem);display:grid}.blog-archive-directory details{width:min(var(--width-content), 100%);border-top:1px solid var(--color-border-strong);border-bottom:1px solid var(--color-border-strong)}.blog-archive-directory summary{justify-content:space-between;align-items:center;gap:var(--space-4);cursor:pointer;min-height:4rem;color:var(--color-text);font-weight:760;list-style:none;display:flex}.blog-archive-directory summary::-webkit-details-marker{display:none}.blog-archive-directory summary span:last-child{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.72rem}.blog-archive-directory ol{border-top:1px solid var(--color-border);margin:0;padding:0;list-style:none;display:grid}.blog-archive-directory li{gap:var(--space-5);border-bottom:1px solid var(--color-border);padding:var(--space-4) 0;grid-template-columns:minmax(7rem,.18fr) minmax(0,1fr) minmax(7rem,.2fr);align-items:baseline;display:grid}.blog-archive-directory li:last-child{border-bottom:0}.blog-archive-directory :where(time,li>span){color:var(--color-text-muted);font-family:var(--font-mono);font-size:.68rem}.blog-archive-directory li>span{text-align:right}.blog-archive-directory a{font-weight:700}.blog-archive-directory a:hover{color:var(--color-accent)}.featured-post{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px), var(--color-surface);box-shadow:var(--shadow-sm);background-size:2.8rem 2.8rem;display:grid;position:relative;overflow:hidden}.featured-post.has-cover{grid-template-columns:minmax(18rem,.92fr) minmax(0,1.08fr)}.featured-post-cover{background:var(--color-surface-subtle);min-height:24rem;overflow:hidden}.featured-post-cover img{object-fit:cover;width:100%;height:100%;min-height:24rem}.featured-post-copy{align-content:center;min-height:24rem;padding:clamp(2rem,5vw,4.5rem);display:grid}.featured-post-copy .post-kicker{margin:0 0 var(--space-5);color:var(--color-signal);text-transform:uppercase}.featured-post h2{max-width:20ch;margin:var(--space-5) 0;overflow-wrap:anywhere;font-size:clamp(2rem,4vw,4rem);line-height:1.02}.featured-post h2 a:hover{color:var(--color-accent)}.featured-post-copy>p:not(.post-kicker){max-width:45rem;color:var(--color-text-muted);font-size:1.02rem}.post-list{border-top:1px solid var(--color-border-strong);width:100%;display:grid}.post-row{border-bottom:1px solid var(--color-border);transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease;grid-template-columns:minmax(8rem,.2fr) minmax(0,1fr);gap:clamp(1.75rem,5vw,5rem);padding:clamp(2rem,4vw,3.5rem) 0;display:grid;position:relative}.post-row.has-cover{grid-template-columns:minmax(9rem,12rem) minmax(7rem,.2fr) minmax(0,1fr);gap:clamp(1.25rem,3vw,3rem)}.post-row-cover{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-subtle);overflow:hidden}.post-row-cover img{object-fit:cover;width:100%;height:100%;min-height:7.5rem}.post-row:hover{border-color:var(--color-accent);background:linear-gradient(90deg, var(--color-accent-soft), transparent 48%)}.post-row-main{gap:var(--space-4);max-width:54rem;display:grid}.post-row h2{overflow-wrap:anywhere;margin:0;font-size:clamp(1.4rem,2.5vw,2.25rem);line-height:1.12}.post-row h2 a:hover{color:var(--color-accent)}.post-row p{color:var(--color-text-muted);margin:0}.post-row-meta,.post-row-footer,.post-kicker{gap:var(--space-3);color:var(--color-text-muted);font-family:var(--font-mono);flex-wrap:wrap;align-items:center;font-size:.72rem;display:flex}.post-row-meta{align-content:start;display:grid}.post-row-meta span{color:var(--color-accent)}.post-row-footer{justify-content:space-between;gap:var(--space-4)}.blog-results-footer{width:min(var(--width-content), 100%);margin-top:var(--space-10);justify-content:center;display:flex}.show-more-button{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);min-width:min(20rem,100%);min-height:3.2rem;color:var(--color-text);background:var(--color-surface);transition:border-color var(--duration-fast) ease, color var(--duration-fast) ease, background-color var(--duration-fast) ease;font-weight:760}.show-more-button:hover{border-color:var(--color-accent);color:var(--color-accent-strong);background:var(--color-accent-soft)}.empty-state{width:min(var(--width-content), 100%);margin:var(--space-12) 0;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-12);color:var(--color-text-muted);text-align:center}.post-detail{background:var(--color-canvas);position:relative}.article-reading-progress{z-index:calc(var(--z-header) - 1);top:var(--header-height);pointer-events:none;height:3px;position:fixed;left:0;right:0;overflow:hidden}.article-reading-progress-fill{background:var(--color-accent);opacity:0;transform-origin:0;height:100%;transition:opacity var(--duration-fast) ease;display:block}.article-page[data-enhanced=true] .article-reading-progress-fill{opacity:1}.article-masthead{border-bottom:1px solid var(--color-border-strong);background:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px), var(--color-canvas-raised);background-size:3.5rem 3.5rem;position:relative;overflow:hidden}.article-masthead:after{aspect-ratio:1;border:1px solid var(--color-border);background:radial-gradient(circle, var(--color-accent-soft), transparent 68%);content:"";pointer-events:none;border-radius:50%;width:clamp(18rem,32vw,34rem);position:absolute;bottom:clamp(-14rem,-12vw,-7rem);right:clamp(-10rem,-5vw,-3rem)}.article-masthead-shell{z-index:1;width:min(var(--width-content), calc(100% - clamp(2.5rem, 10vw, 9rem)));margin:0 auto;padding:clamp(3.5rem,8vw,8rem) 0 clamp(3.5rem,7vw,6.5rem);position:relative}.article-back-link,.article-archive-link{align-items:center;gap:var(--space-2);min-height:2.75rem;color:var(--color-accent);font-weight:760;display:inline-flex}.article-back-link:before{content:"←";transition:transform var(--duration-fast) ease}.article-back-link:hover:before{transform:translate(-3px)}.article-category{margin:clamp(2.5rem, 5vw, 4.5rem) 0 var(--space-4);color:var(--color-signal);font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;font-size:.78rem;font-weight:780}.article-masthead h1{max-width:17ch;margin:0;font-size:clamp(2.85rem,6.2vw,6.8rem);line-height:.98}.article-description{max-width:50rem;margin:var(--space-8) 0 0;color:var(--color-text-muted);font-size:clamp(1.08rem,1.7vw,1.4rem);line-height:1.65}.article-meta{gap:var(--space-3) clamp(2rem, 5vw, 5rem);flex-wrap:wrap;margin:clamp(2.5rem,5vw,4.5rem) 0 0;display:flex}.article-meta div{min-width:8rem}.article-meta :where(dt,dd){margin:0}.article-meta dt,.article-author>div>p:first-child{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:760}.article-meta dd{margin-top:var(--space-1);color:var(--color-text);font-weight:720}.article-masthead-footer{justify-content:space-between;align-items:flex-end;gap:var(--space-8);margin-top:var(--space-10);border-top:1px solid var(--color-border-strong);padding-top:var(--space-5);display:flex}.article-tags{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.article-tags li{border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);background:var(--color-canvas);font-family:var(--font-mono);padding:.28rem .72rem;font-size:.72rem;font-weight:650}.article-masthead-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;flex:none;display:flex}.article-language-switch,.article-copy-link,.article-copy-code{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);min-height:2.75rem;padding:0 var(--space-4);color:var(--color-text);background:var(--color-surface);transition:border-color var(--duration-fast) ease, color var(--duration-fast) ease, background-color var(--duration-fast) ease;flex:none;font-size:.82rem;font-weight:760;display:inline-flex}.article-language-switch:hover,.article-copy-link:hover,.article-copy-code:hover{border-color:var(--color-accent);color:var(--color-accent-strong);background:var(--color-accent-soft)}.article-language-switch{border-color:color-mix(in srgb, var(--color-accent) 48%, var(--color-border-strong));color:var(--color-accent-strong);background:var(--color-accent-soft)}.article-language-switch span{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;font-weight:720}.article-language-switch strong{font-size:.82rem}.article-copy-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1rem}.article-cover{width:min(var(--width-content), calc(100% - clamp(2.5rem, 10vw, 9rem)));border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);margin:clamp(2.5rem,6vw,5rem) auto 0;overflow:hidden}.article-cover img{object-fit:contain;width:100%;max-height:46rem}.article-reader-shell{grid-template-columns:minmax(0, var(--width-reading));width:min(var(--width-wide), calc(100% - clamp(2.5rem, 7vw, 6rem)));justify-content:center;margin:0 auto;display:grid}.article-reader-shell.has-toc{grid-template-columns:minmax(12rem, 15rem) minmax(0, var(--width-reading));gap:clamp(3rem,6vw,7rem)}.article-content-column{min-width:0}.article-toc-rail{min-width:0;padding-top:clamp(4rem,7vw,7rem)}.article-toc-rail nav{top:calc(var(--header-height) + var(--space-8));max-height:calc(100vh - var(--header-height) - var(--space-16));padding:var(--space-5) 0;scrollbar-width:thin;position:sticky;overflow-y:auto}.article-toc-rail h2{margin:0 0 var(--space-4);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;line-height:1.4}.article-toc-rail ol,.article-toc-mobile ol{margin:0;padding:0;list-style:none}.article-toc-rail li+li,.article-toc-mobile li+li{margin-top:var(--space-1)}.article-toc-rail a{border-left:2px solid var(--color-border);padding:.5rem 0 .5rem var(--space-3);color:var(--color-text-muted);transition:border-color var(--duration-fast) ease, color var(--duration-fast) ease, background-color var(--duration-fast) ease;font-size:.78rem;font-weight:620;line-height:1.45;display:block}.article-toc-rail a:hover,.article-toc-rail a[aria-current=location]{border-color:var(--color-accent);color:var(--color-accent-strong);background:linear-gradient(90deg, var(--color-accent-soft), transparent)}.article-toc-rail .toc-depth-3 a,.article-toc-mobile .toc-depth-3 a{padding-left:var(--space-6);color:var(--color-text-soft);font-size:.74rem}.article-toc-mobile{display:none}.article-body{width:100%;color:var(--color-text);margin:0;padding:clamp(4rem,7vw,7rem) 0 clamp(5rem,9vw,8rem);font-size:clamp(1.02rem,1.15vw,1.12rem);line-height:1.86}.article-body>:first-child{margin-top:0}.article-body h2,.article-body h3,.article-body h4{scroll-margin-top:calc(var(--header-height) + var(--space-6))}.article-body h2{border-top:1px solid var(--color-border-strong);margin:2.6em 0 .8em;padding-top:.9em;font-size:clamp(1.8rem,3vw,2.7rem)}.article-body h3{margin:2.1em 0 .7em;font-size:clamp(1.35rem,2vw,1.75rem)}.article-body :where(p,li){color:var(--color-text)}.article-body :where(ul,ol){padding-left:1.4em}.article-body li+li{margin-top:.45em}.article-body a{color:var(--color-accent);text-underline-offset:.18em;font-weight:700;text-decoration:underline .08em}.article-body img{width:100%;margin:var(--space-8) 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-sm)}.article-body pre{max-width:100%;margin:var(--space-8) 0;border:1px solid var(--on-dark-border);border-radius:var(--radius-sm);padding:var(--space-6);color:var(--on-dark-text);font-family:var(--font-mono);tab-size:2;font-size:.88rem;line-height:1.7;position:relative;overflow-x:auto;background:var(--surface-dark)!important}.article-code-block{margin:var(--space-8) 0;position:relative}.article-code-block pre{padding-top:calc(var(--space-6) + 2.25rem);margin:0}.article-copy-code{z-index:1;top:var(--space-3);right:var(--space-3);border-color:var(--on-dark-border-strong);min-height:2rem;padding:0 var(--space-3);color:#f2f7f5db;font-family:var(--font-mono);background:#10171bdb;font-size:.68rem;position:absolute}.article-copy-code:hover{color:#91eadf;background:#192328;border-color:#65d8c9b8}.article-body code{font-family:var(--font-mono);font-size:.9em}.article-body :not(pre)>code{border:1px solid var(--color-border);border-radius:var(--radius-xs);color:var(--color-accent-strong);background:var(--color-accent-soft);overflow-wrap:anywhere;padding:.12em .35em}.article-body blockquote{margin:var(--space-8) 0;border-left:3px solid var(--color-accent);padding:var(--space-2) 0 var(--space-2) var(--space-6);color:var(--color-text-muted);font-size:1.08em}.article-body blockquote>:last-child{margin-bottom:0}.article-body table{width:100%;max-width:100%;margin:var(--space-8) 0;border-collapse:collapse;white-space:nowrap;font-size:.9rem;display:block;overflow-x:auto}.article-body :where(th,td){border:1px solid var(--color-border);padding:var(--space-3) var(--space-4);text-align:left}.article-body th{color:var(--color-text);background:var(--color-surface-subtle)}.article-body :where(hr){margin:var(--space-16) 0;border:0;border-top:1px solid var(--color-border-strong)}.article-body :where(figcaption){margin-top:calc(var(--space-4) * -1);color:var(--color-text-soft);text-align:center;font-size:.8rem}.article-footer{border-top:1px solid var(--color-border-strong);background:var(--color-canvas-raised);padding:clamp(4.5rem,9vw,8rem) clamp(1.25rem,5vw,4.5rem)}.article-footer-shell{width:min(var(--width-content), 100%);margin:0 auto}.article-author{gap:var(--space-5);border-bottom:1px solid var(--color-border-strong);max-width:34rem;padding-bottom:var(--space-8);grid-template-columns:auto 1fr;align-items:center;display:grid}.article-author-mark{border:1px solid var(--color-border-strong);width:3.5rem;height:3.5rem;color:var(--color-accent-strong);background:var(--color-accent-soft);font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:.85rem;font-weight:780;display:grid}.article-author :where(h2,p){margin:0}.article-author h2{margin:.15rem 0;font-size:1.25rem;line-height:1.25}.article-author>div>p:last-child{color:var(--color-text-muted);font-size:.9rem}.article-pagination{margin-top:var(--space-16);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.article-pagination-link{align-content:space-between;gap:var(--space-5);min-height:11rem;padding:var(--space-6);background:var(--color-surface);transition:color var(--duration-fast) ease, background-color var(--duration-fast) ease;display:grid}.article-pagination-link+.article-pagination-link{border-left:1px solid var(--color-border-strong)}.article-pagination-link:hover{color:var(--color-accent-strong);background:var(--color-accent-soft)}.article-pagination-link>span{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:760}.article-pagination-link strong{max-width:28ch;font-size:clamp(1.05rem,1.7vw,1.35rem);line-height:1.35}.article-pagination-link.is-next{text-align:right}.article-pagination-link.is-next:first-child{grid-column:2}.article-related{margin-top:clamp(4rem,8vw,7rem)}.article-section-heading{justify-content:space-between;align-items:end;gap:var(--space-8);margin-bottom:var(--space-6);display:flex}.article-section-heading h2{margin:0;font-size:clamp(1.8rem,3vw,2.7rem)}.article-section-heading a{color:var(--color-accent);font-weight:760}.article-related-list{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.article-related-list li+li{border-left:1px solid var(--color-border-strong)}.article-related-list a{align-content:space-between;gap:var(--space-5);min-height:15rem;padding:var(--space-6);background:var(--color-surface);transition:color var(--duration-fast) ease, background-color var(--duration-fast) ease;display:grid}.article-related-list a:hover{color:var(--color-accent-strong);background:var(--color-accent-soft)}.article-pagination-link:focus-visible,.article-related-list a:focus-visible{z-index:1;box-shadow:inset 0 0 0 3px var(--color-accent);position:relative}.article-related-list :where(p,h3,span){margin:0}.article-related-list p{color:var(--color-signal);font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;font-size:.68rem;font-weight:760}.article-related-list h3{font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.35}.article-related-list span{color:var(--color-text-muted);font-size:.76rem}.article-archive-link{margin-top:var(--space-8)}.article-archive-link:after{content:"→";transition:transform var(--duration-fast) ease}.article-archive-link:hover:after{transform:translate(3px)}.site-footer{border-top:1px solid var(--on-dark-border);padding:clamp(5.5rem, 10vw, 9rem) clamp(1.25rem, 5vw, 4.5rem) var(--space-8);color:var(--on-dark-text-muted);background:linear-gradient(var(--on-dark-grid) 1px, transparent 1px), linear-gradient(90deg, var(--on-dark-grid) 1px, transparent 1px), var(--surface-dark);background-size:3.5rem 3.5rem;position:relative}.footer-cta-shell,.footer-grid,.footer-legal{width:min(var(--width-wide), 100%);margin-left:auto;margin-right:auto}.footer-cta-shell{justify-content:space-between;align-items:end;gap:var(--space-10);border-bottom:1px solid var(--on-dark-border);padding-bottom:clamp(3.5rem,7vw,6rem);display:flex}.footer-cta-copy h2{max-width:15ch;color:var(--on-dark-text);margin:0}.site-footer .eyebrow{color:var(--accent-on-dark)}.site-footer .button-primary{color:var(--surface-dark);background:var(--on-dark-text)}.footer-grid{grid-template-columns:minmax(14rem,1fr) auto minmax(14rem,1fr);gap:clamp(2rem,6vw,6rem);padding:clamp(2.5rem,6vw,5rem) 0;display:grid}.footer-identity{align-content:start;gap:var(--space-2);display:grid}.footer-brand{width:fit-content;color:var(--on-dark-text);font-size:1.2rem;font-weight:780}.footer-identity p{margin:0}.footer-identity span{color:var(--accent-on-dark);font-family:var(--font-mono);font-size:.7rem}.footer-navigation{gap:var(--space-2) var(--space-8);grid-template-columns:repeat(2,minmax(5rem,1fr));display:grid}.site-footer a{border-radius:var(--radius-sm);align-items:center;min-height:2.75rem;display:inline-flex}.site-footer a:hover{color:var(--accent-on-dark)}.footer-contact{text-align:right;place-content:start end;display:grid}.footer-legal{gap:var(--space-6);border-top:1px solid var(--on-dark-border);padding-top:var(--space-6);font-family:var(--font-mono);grid-template-columns:1fr auto 1fr;align-items:center;font-size:.68rem;display:grid}.footer-legal>span:nth-child(2){text-align:center}.footer-legal nav{justify-content:flex-end;gap:var(--space-2);display:flex}.footer-legal nav a{border:1px solid var(--on-dark-border);justify-content:center;min-width:2.5rem}.footer-legal nav a.is-active{color:var(--surface-dark);background:var(--on-dark-text)}@keyframes route-leave{to{opacity:0;transform:translateY(-.35rem)}}@keyframes route-enter{0%{opacity:0;transform:translateY(.45rem)}}@keyframes hero-copy-enter{0%{opacity:0;transform:translateY(1rem)}}@keyframes hero-light-pass{0%,32%{opacity:0;transform:translate(-22%)}48%{opacity:.58}68%,to{opacity:0;transform:translate(22%)}}@keyframes hero-status-pulse{0%,18%{opacity:0;transform:scale(.7)}38%{opacity:.8}64%,to{opacity:0;transform:scale(1.65)}}@keyframes project-flow-enter{0%{opacity:0;transform:translate(.7rem)}}@keyframes project-flow-packet{0%,18%{opacity:0;transform:translate(-120%)}32%,70%{opacity:1}86%,to{opacity:0;transform:translate(460%)}}@keyframes project-flow-packet-mobile{0%,18%{opacity:0;transform:translateY(-120%)}32%,70%{opacity:1}86%,to{opacity:0;transform:translateY(360%)}}@keyframes contact-signal-ack{0%,52%{opacity:0;transform:translate(-110%)}62%,78%{opacity:.82}92%,to{opacity:0;transform:translate(620%)}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(calc(-50% - .375rem))}}@media (width>=100rem){:root{--width-wide:96rem}}@media (width<=74rem){.site-header-inner{grid-template-columns:auto 1fr}.site-nav-desktop{display:none}.site-header-actions{justify-self:end}.mobile-menu-toggle{display:inline-grid}.portfolio-work-preview,.portfolio-writing-preview,.skill-marquee-section,.skill-group-panel{grid-template-columns:1fr}.skill-marquee-section{padding-right:0}.article-reader-shell.has-toc{grid-template-columns:minmax(11rem, 13rem) minmax(0, var(--width-reading));gap:clamp(2rem,4vw,4rem)}}@media (width<=61.25rem){.page-hero-proof{grid-template-columns:repeat(2,minmax(0,1fr))}.page-hero-metric:last-child{grid-column:1/-1}.landing-intro{grid-template-columns:1fr;min-height:auto}.project-grid,.home-project-list{grid-template-columns:1fr}.project-flow-explorer{grid-template-columns:1fr;transform:none}.project-flow-selector{border-right:0;border-bottom:1px solid var(--on-dark-border);scrollbar-color:#84e2d56b transparent;grid-template-columns:repeat(4,minmax(13rem,1fr));overflow-x:auto}.project-flow-selector li+li{border-top:0;border-left:1px solid var(--on-dark-border)}.project-flow-select{min-height:7.2rem}.project-card,.resume-grid{grid-template-columns:1fr}.portfolio-home .resume-grid[data-deployment-timeline]{padding-top:0;padding-left:var(--space-10)}.portfolio-home .resume-grid[data-deployment-timeline]:before{width:1px;height:auto;transform:scaleY(calc(.18 + (var(--motion-section-progress,0) * .82)));transform-origin:top;top:0;bottom:0;left:.9rem}.portfolio-home .resume-card:before{top:var(--space-8);left:calc(var(--space-10) * -1 + .9rem)}.resume-card{min-height:0}.home-writing-layout,.project-case-study-body{grid-template-columns:1fr}.project-detail-section{border-right:0;border-bottom:1px solid var(--color-border)}.project-detail-section:last-child{border-bottom:0}.about-focus-grid{grid-template-columns:1fr}.about-focus-card{min-height:0}.footer-grid{grid-template-columns:1fr 1fr}.footer-contact{text-align:left;grid-column:1/-1;justify-content:start}.article-reader-shell,.article-reader-shell.has-toc{grid-template-columns:minmax(0, var(--width-reading));width:min(var(--width-reading), calc(100% - 2.5rem))}.article-toc-rail{display:none}.article-toc-mobile{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);margin-top:clamp(3rem,6vw,5rem);display:block}.article-toc-mobile summary{min-height:3.25rem;padding:.85rem var(--space-4);color:var(--color-text);font-family:var(--font-mono);letter-spacing:.04em;font-size:.78rem;font-weight:760}.article-toc-mobile nav{border-top:1px solid var(--color-border);padding:var(--space-3)}.article-toc-mobile a{border-left:2px solid var(--color-border);padding:.55rem var(--space-3);color:var(--color-text-muted);font-size:.82rem;font-weight:650;line-height:1.45;display:block}.article-toc-mobile a:hover,.article-toc-mobile a[aria-current=location]{border-color:var(--color-accent);color:var(--color-accent-strong);background:var(--color-accent-soft)}.article-toc-mobile+.article-body{padding-top:clamp(2.5rem,5vw,4rem)}}@media (width<=48rem){:root{--header-height:4rem}.site-header-inner{gap:var(--space-3);width:calc(100% - 2rem)}.site-brand-copy,.header-search-link,.header-contact{display:none}.site-header-actions{gap:var(--space-1)}.header-icon-button,.language-switch,.mobile-menu-toggle{width:2.65rem;height:2.65rem}.mobile-navigation-meta{display:grid}.page-hero-copy{gap:var(--space-6);grid-template-columns:1fr}.page-hero-meta{border-top:1px solid var(--color-border-strong);min-height:0;padding-top:var(--space-3);border-left:0;padding-left:0}.page-hero-index{margin-bottom:var(--space-8)}.page-hero-metric{grid-template-rows:auto auto 1fr;min-height:9.5rem}.landing-intro{width:calc(100% - 2.5rem);padding:clamp(3rem,12vw,5rem) 0}.landing-intro-actions{align-items:stretch}.project-flow-panel{padding:var(--space-5)}.project-flow-track{grid-template-columns:1fr}.project-flow-node{gap:var(--space-3);padding:0 0 var(--space-8);grid-template-columns:2.2rem minmax(0,1fr);align-items:center}.project-flow-node:last-child{padding-bottom:0}.project-flow-node-index{grid-row:1}.project-flow-connector{width:1px;height:auto;top:2.2rem;bottom:0;left:1.08rem}.project-flow-connector:after{width:1px;height:32%;animation-name:project-flow-packet-mobile}.home-writing-feature{transform:none}.portfolio-writing-preview:before{background:radial-gradient(circle at 82% 10%,#84e2d51a,#0000 24%)}.portfolio-hero:after{animation:none}.project-case-study-header{gap:var(--space-6);grid-template-columns:1fr}.portfolio-contact-strip,.footer-cta-shell{align-items:start;display:grid}.portfolio-contact-strip .button{transform:none}.blog-controls{grid-template-columns:1fr}.category-chip-list{scrollbar-width:thin;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.featured-post.has-cover{grid-template-columns:1fr}.featured-post-cover,.featured-post-cover img{min-height:15rem}.post-row{gap:var(--space-4);grid-template-columns:1fr}.post-row.has-cover{grid-template-columns:1fr}.post-row-cover img{min-height:12rem;max-height:18rem}.post-row-meta{display:flex}.blog-archive-directory li{gap:var(--space-2);grid-template-columns:1fr}.blog-archive-directory li>span{text-align:left}.resume-download-shell{grid-template-columns:1fr}.resume-download-actions{justify-content:stretch;display:grid}.resume-download-button{width:100%;min-width:0}.achievement-row,.compact-credential-row,.contact-link-list a{gap:var(--space-3);grid-template-columns:1fr}.footer-grid,.footer-legal{grid-template-columns:1fr}.footer-legal>span:nth-child(2){text-align:left}.footer-legal nav{justify-content:flex-start}.about-skill-groups{grid-template-columns:1fr}.article-masthead-shell{width:calc(100% - 2.5rem);padding-top:clamp(3rem,10vw,5rem)}.article-masthead h1{font-size:clamp(2.65rem,11vw,4.8rem)}.article-description{font-size:1.05rem}.article-meta{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.article-meta div{min-width:0}.article-masthead-footer{align-items:start;display:grid}.article-masthead-actions{justify-content:flex-start}.article-copy-link{width:fit-content}.article-cover{width:calc(100% - 2.5rem);margin-top:var(--space-8)}.article-reader-shell,.article-reader-shell.has-toc{width:calc(100% - 2.5rem)}.article-body h2{font-size:clamp(1.65rem,8vw,2.3rem)}.article-footer{padding-left:1.25rem;padding-right:1.25rem}.article-pagination,.article-related-list{grid-template-columns:1fr}.article-pagination-link{min-height:9rem}.article-pagination-link.is-next:first-child{grid-column:auto}.article-pagination-link+.article-pagination-link,.article-related-list li+li{border-top:1px solid var(--color-border-strong);border-left:0}.article-related-list a{min-height:11rem}.article-section-heading{align-items:start}}@media (width<=30rem){.section-band,.subpage-hero,.post-hero,.blog-explorer,.blog-archive-directory{padding-left:1.1rem;padding-right:1.1rem}.landing-intro{width:calc(100% - 2.2rem)}.page-hero-proof{grid-template-columns:1fr}.page-hero-metric:last-child{grid-column:auto}.hero-system-path,.hero-proof-grid{grid-template-columns:1fr}.hero-system-path li{border-right:0;border-bottom:1px solid var(--on-dark-border);grid-template-columns:2rem 1fr}.hero-system-path li:last-child{border-bottom:0}.hero-proof-grid{gap:var(--space-4)}.hero-proof-grid div{grid-template-columns:4rem 1fr;align-items:center;padding:0}.hero-proof-grid dd{order:-1}.skill-grid-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-group-heading h2{overflow-wrap:anywhere;word-break:normal;font-size:clamp(2.15rem,11vw,3rem);line-height:.98}.article-body pre{border-radius:var(--radius-xs);padding:var(--space-5);margin-left:-.35rem;margin-right:-.35rem}.article-code-block pre{padding-top:calc(var(--space-5) + 2.25rem);margin:0}.article-masthead-shell,.article-cover,.article-reader-shell,.article-reader-shell.has-toc{width:calc(100% - 2.2rem)}.article-meta,.article-author{grid-template-columns:1fr}.article-section-heading{gap:var(--space-3);display:grid}}@media (hover:none),(pointer:coarse){.project-flow-explorer,.home-writing-feature{transform:none}.skill-marquee-row .skill-marquee-track{animation-duration:68s}.skill-marquee-row.is-reverse .skill-marquee-track{animation-duration:78s}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.skill-marquee-track{animation:none}.article-reading-progress-fill{transition:none}.motion-ready [data-motion-section] [data-motion-item],.motion-ready [data-motion-section].is-visible [data-motion-item]{opacity:1;transition:none;transform:none}.portfolio-hero:after,.portfolio-hero .landing-intro-identity,.portfolio-hero .landing-intro-body,.portfolio-hero .landing-intro-actions,.page-hero-metric:before,.project-flow-explorer.is-enhanced .project-flow-panel.is-active,.project-flow-connector:after,.portfolio-contact-signal:after{animation:none}.project-flow-explorer,.home-writing-feature,.portfolio-contact-strip .button,.skill-pill,.skill-tile,.portfolio-home .resume-card,.portfolio-home .resume-grid[data-deployment-timeline]:before{transition:none;transform:none}::view-transition-old(root),::view-transition-new(root){animation:none}.skills-page:not(.motion-ready) .skill-tile:hover,.skills-page.motion-ready .skill-group-panel.is-visible .skill-tile[data-motion-item]:hover,.skill-pill:is(:hover,:focus-visible){transform:none}.skill-tile:hover:before{transform:scaleX(.22)}.skill-tile:hover .skill-icon,.skill-pill:is(:hover,:focus-visible) .skill-icon{transform:none}}body:after{content:"";z-index:96;opacity:.05;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.hero-hud{z-index:2;border:1px solid var(--color-border-strong);pointer-events:none;width:1.4rem;height:1.4rem;position:absolute}.hero-hud-tl{border-bottom:0;border-right:0;top:clamp(1rem,3vw,2.5rem);left:clamp(1rem,3vw,2.5rem)}.hero-hud-br{border-top:0;border-left:0;bottom:clamp(1rem,3vw,2.5rem);right:clamp(1rem,3vw,2.5rem)}.landing-intro.hero-console{width:min(var(--width-wide), calc(100% - clamp(2.5rem, 10vw, 9rem)));min-height:calc(100svh - var(--header-height));flex-direction:column;justify-content:center;align-items:stretch;gap:clamp(2rem,4vh,3.5rem);margin:0 auto;padding:clamp(2.5rem,5vw,4.5rem) 0;display:flex;position:relative}.hero-ghost{z-index:0;color:#0000;-webkit-text-stroke:1.5px color-mix(in srgb, var(--color-accent) 30%, transparent);letter-spacing:-.05em;white-space:nowrap;user-select:none;pointer-events:none;margin:0;font-size:clamp(7rem,19vw,22rem);font-weight:860;line-height:1;animation:26s ease-in-out infinite alternate hero-ghost-drift;position:absolute;bottom:6%;right:-4%}@keyframes hero-ghost-drift{0%{transform:translate(0,0)}to{transform:translate(-4%)}}.hero-spec{z-index:1;gap:var(--space-2) var(--space-8);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:var(--space-3) 0;flex-wrap:wrap;display:flex;position:relative}.hero-spec-cell{gap:var(--space-2);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;align-items:baseline;font-size:.72rem;font-weight:650;display:inline-flex}.hero-spec-cell small{color:var(--color-text-soft);font-size:.62rem}.hero-spec-cell small:after{content:" ::"}.hero-spec-status{color:var(--color-accent)}.hero-spec-status i{background:var(--color-accent);width:.44rem;height:.44rem;box-shadow:0 0 0 .26rem var(--color-accent-soft);animation:hero-status-pulse 3.2s var(--ease-standard) .8s infinite;border-radius:50%;align-self:center;position:relative;top:-.06rem}.hero-console-copy{z-index:1;justify-items:start;display:grid;position:relative}.hero-console .landing-intro-identity{min-height:1.2em}.hero-console h1{letter-spacing:-.05em;max-width:15ch;margin:0;font-size:clamp(3.2rem,7vw,8rem);line-height:.98}.hero-word{vertical-align:bottom;margin-right:.24em;display:inline-block;overflow:hidden}.hero-word>span{animation:hero-word-rise .7s var(--ease-emphasized) both;animation-delay:calc(.12s + var(--word-index,0) * 70ms);display:inline-block;transform:translateY(112%)}@keyframes hero-word-rise{0%{transform:translateY(112%)}to{transform:translate(0,0)}}.hero-console .landing-intro-body{animation:hero-copy-enter .56s var(--ease-emphasized) .48s both}.hero-console .landing-intro-actions{margin-top:var(--space-8);animation:hero-copy-enter .52s var(--ease-emphasized) .62s both}.hero-console-base{z-index:1;gap:var(--space-6) clamp(2rem, 6vw, 6rem);border-top:1px solid var(--color-border);padding-top:var(--space-5);grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid;position:relative}.hero-console .hero-system-path{border:0;margin:0}.hero-console .hero-system-path li{border-color:var(--color-border);padding:var(--space-2) var(--space-4) var(--space-2) 0}.hero-console .hero-system-path span{color:var(--color-accent)}.hero-console .hero-system-path a{color:var(--color-text-muted)}.hero-console .hero-system-path a:hover{color:var(--color-text)}.hero-console .hero-proof-grid{gap:clamp(1.5rem,4vw,3.5rem);padding:0}.hero-console .hero-proof-grid dt{color:var(--color-text-soft)}.hero-console .hero-proof-grid dd{color:var(--color-text);font-variant-numeric:tabular-nums}.section-head{gap:var(--space-4) clamp(1.25rem, 3vw, 2.5rem);width:min(var(--width-content), 100%);padding-bottom:var(--space-5);grid-template-columns:auto minmax(0,1fr) auto;align-items:end;margin:0 auto clamp(2.5rem,5vw,4.5rem);display:grid;position:relative}.section-head:after{content:"";background:linear-gradient(90deg, var(--color-accent), var(--color-border) 55%);transform-origin:0;height:1px;transition:transform .9s var(--ease-emphasized);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.section-head.is-inview:after{transform:scaleX(1)}.section-head-index{color:#0000;-webkit-text-stroke:1px var(--color-border-strong);font-family:var(--font-mono);font-size:clamp(2.2rem,4vw,3.6rem);font-weight:760;line-height:.9}.section-head-index:after{content:" //";-webkit-text-stroke:0;color:var(--color-accent);font-size:.5em}.section-head-copy .eyebrow{margin-bottom:var(--space-2)}.section-head-copy h2{max-width:22ch;margin:0;font-size:clamp(1.9rem,3.4vw,3.4rem);line-height:1.02}.section-head>.text-link{padding-bottom:.2rem}.section-head.on-dark:after{background:linear-gradient(90deg, var(--accent-on-dark), var(--on-dark-border) 55%)}.section-head.on-dark .section-head-index{-webkit-text-stroke-color:var(--on-dark-border-strong)}.section-head.on-dark .section-head-index:after{color:var(--accent-on-dark)}.section-head.on-dark h2{color:var(--on-dark-text)}[data-spotlight]{position:relative;overflow:hidden}[data-spotlight]:after{content:"";z-index:0;background:radial-gradient(18rem circle at var(--spot-x,50%) var(--spot-y,50%), var(--color-accent-soft), transparent 62%);opacity:0;transition:opacity var(--duration-medium) var(--ease-standard);pointer-events:none;position:absolute;inset:0}[data-spotlight]:hover:after{opacity:1}.project-index{border-top:1px solid var(--color-border);margin:0;padding:0;list-style:none;display:grid}.project-index-row{border-bottom:1px solid var(--color-border);padding:var(--space-5) var(--space-3);transition:background-color var(--duration-fast) ease;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:clamp(1rem,2.5vw,2.5rem);display:grid}.project-index-row:hover{background:var(--color-canvas-raised)}.project-index-num{color:#0000;-webkit-text-stroke:1px var(--color-border-strong);font-family:var(--font-mono);transition:color var(--duration-fast) ease;font-size:1.4rem;font-weight:760}.project-index-row:hover .project-index-num{color:var(--color-accent);-webkit-text-stroke-color:var(--color-accent)}.project-index-main{gap:.3rem;min-width:0;display:grid}.project-index-main strong{letter-spacing:-.02em;font-size:clamp(1.05rem,1.6vw,1.4rem);font-weight:760;line-height:1.15}.project-index-main small{color:var(--color-text-soft);font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;font-size:.68rem}.project-index-stack{gap:var(--space-2);display:flex}.project-index-stack span{border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);font-family:var(--font-mono);white-space:nowrap;padding:.2rem .6rem;font-size:.66rem}.project-index-row time{color:var(--color-text-soft);font-family:var(--font-mono);white-space:nowrap;font-size:.7rem}.project-index-arrow{color:var(--color-accent);opacity:0;transition:transform var(--duration-medium) var(--ease-emphasized), opacity var(--duration-medium) ease;font-size:1.1rem;transform:translate(-.3rem)}.project-index-row:hover .project-index-arrow{opacity:1;transform:translate(0)}.footer-display{width:min(var(--width-wide), 100%);margin:0 auto var(--space-10);color:#0000;-webkit-text-stroke:1.5px var(--on-dark-border-strong);letter-spacing:-.05em;user-select:none;transition:-webkit-text-stroke-color var(--duration-medium) ease;font-size:clamp(4rem,14vw,15rem);font-weight:860;line-height:.9}.site-footer:hover .footer-display{-webkit-text-stroke-color:var(--accent-on-dark)}.term-window{width:min(var(--width-content), 100%);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);margin:0 auto;overflow:hidden}.term-bar{gap:var(--space-2);border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-5);background:var(--color-canvas-raised);align-items:center;display:flex}.term-bar span{background:var(--color-border-strong);border-radius:50%;width:.62rem;height:.62rem}.term-bar span:first-child{background:var(--color-danger)}.term-bar span:nth-child(2){background:var(--color-signal)}.term-bar span:nth-child(3){background:var(--color-accent)}.term-bar p{margin:0 0 0 var(--space-3);color:var(--color-text-soft);font-family:var(--font-mono);font-size:.7rem}.term-body{padding:var(--space-6)}@media (width<=61.25rem){.hero-console-base{grid-template-columns:1fr;align-items:start}.hero-console .hero-system-path{grid-template-columns:repeat(3,minmax(0,1fr))}.section-head{grid-template-columns:auto minmax(0,1fr)}.section-head>.text-link{grid-column:2}.project-index-stack{display:none}}@media (width<=48rem){.hero-ghost{font-size:clamp(5rem,26vw,9rem);bottom:3%;right:-8%}.hero-console .hero-system-path{grid-template-columns:1fr}.hero-console .hero-system-path li{border-right:0}.project-index-row{grid-template-columns:auto minmax(0,1fr) auto}.project-index-row time{display:none}.footer-display{-webkit-text-stroke-width:1px}.term-body{padding:var(--space-4)}}@media (prefers-reduced-motion:reduce){.hero-ghost{animation:none}.hero-word>span,.hero-console .landing-intro-body,.hero-console .landing-intro-actions{animation:none;transform:none}.section-head:after{transition:none;transform:scaleX(1)}[data-spotlight]:after{display:none}}.portfolio-work-preview,.portfolio-writing-preview{display:block}.portfolio-work-preview>.section-head,.portfolio-writing-preview>.section-head{margin-bottom:clamp(3rem,6vw,5rem)}.home-project-experience,.home-writing-layout{width:min(var(--width-content), 100%);margin:0 auto}.skill-marquee-section{padding-left:0;padding-right:0;display:block}.skill-marquee-section>.section-head{margin-bottom:clamp(2.5rem,5vw,4rem);padding-left:clamp(1.25rem,5vw,4.5rem);padding-right:clamp(1.25rem,5vw,4.5rem)}.skill-marquee-section:after{display:none}.has-intro-gate{overflow:hidden}.intro-gate{z-index:200;background:#05080b;place-items:center;animation:.2s ease-out both intro-gate-in;display:grid;position:fixed;inset:0}.intro-gate.is-leaving{opacity:0;transition:opacity .48s var(--ease-standard);pointer-events:none}.intro-gate-panel{gap:var(--space-6);width:min(30rem,100vw - 3rem);display:grid}.intro-gate-mark{color:var(--on-dark-text);font-family:var(--font-mono);letter-spacing:.06em;margin:0;font-size:2rem;font-weight:800}.intro-gate-mark span{color:var(--accent-on-dark);animation:.9s steps(2,end) infinite intro-caret}@keyframes intro-caret{to{opacity:0}}.intro-gate-lines{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.intro-gate-lines li{gap:var(--space-2);color:var(--on-dark-text-muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;opacity:0;animation:60ms ease-out both intro-line-in;animation-delay:calc(.18s + var(--line-index,0) * .22s);font-size:.74rem;display:flex}.intro-gate-lines li span{color:var(--accent-on-dark)}@keyframes intro-line-in{to{opacity:1}}.intro-gate-progress{border-radius:var(--radius-pill);background:var(--on-dark-border);height:2px;overflow:hidden}.intro-gate-progress span{background:linear-gradient(90deg, var(--accent-on-dark), var(--signal-on-dark));transform-origin:0;height:100%;animation:intro-progress 1.1s var(--ease-emphasized) .12s both;display:block}@keyframes intro-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes intro-gate-in{0%{opacity:0}to{opacity:1}}.detail-dialog{width:min(64rem,100vw - 2rem);max-height:calc(100svh - 4rem);color:var(--color-text);animation:dialog-in .26s var(--ease-emphasized);background:0 0;border:0;margin:auto;padding:0}.detail-dialog-shell{width:100%;margin:0}.detail-dialog .term-bar{z-index:2;position:sticky;top:0}.detail-dialog-close{border:1px solid var(--color-border);border-radius:var(--radius-xs);width:2rem;height:2rem;color:var(--color-text-muted);transition:color var(--duration-fast) ease, border-color var(--duration-fast) ease;background:0 0;place-items:center;margin-left:auto;display:grid}.detail-dialog-close:hover{border-color:var(--color-accent);color:var(--color-accent)}.detail-dialog-close svg{fill:none;stroke:currentColor;stroke-width:2px;width:1rem;height:1rem}.detail-dialog-body{max-height:calc(100svh - 8.5rem);padding:clamp(1.25rem,3vw,2.5rem);overflow-y:auto}.detail-dialog-body .section-band{padding:0 0 var(--space-10)}.dialog-skill-groups{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.dialog-achievements h3{margin:var(--space-8) 0 var(--space-5)}.dialog-achievements .achievement-row h4{margin:0;font-size:1.02rem;font-weight:760}.has-open-dialog{overflow:hidden}@keyframes dialog-in{0%{opacity:0;transform:translateY(.8rem)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.detail-dialog{animation:none}}.dialog-about-lead{max-width:46rem;margin:0 0 var(--space-8);color:var(--color-text-muted);font-size:1.08rem;line-height:1.7}.portfolio-home{color-scheme:dark;--color-canvas:#050505;--color-canvas-raised:#090b0f;--color-surface:#ffffff0b;--color-surface-subtle:#ffffff13;--color-text:#f1f5f9;--color-text-muted:#a5b0c0;--color-text-soft:#697588;--color-border:#ffffff17;--color-border-strong:#ffffff29;--color-accent:#6aa9e9;--color-accent-strong:#9ac7f4;--color-accent-soft:#2a6fb629;--color-signal:#df7474;--color-signal-soft:#cd474726;--color-grid:#ffffff0b;--accent-on-dark:#6aa9e9;--signal-on-dark:#df7474;color:var(--color-text);background:var(--color-canvas)}body:has(.portfolio-home){background:#050505}body:has(.portfolio-home):after{opacity:.025}body:has(.portfolio-home) .site-header{color:#e2e8f0;border-color:#0000;width:100%;position:fixed}body:has(.portfolio-home) .site-header.is-scrolled,body:has(.portfolio-home) .site-header.is-menu-open{backdrop-filter:blur(20px)saturate(125%);background:#050505b8;border-color:#ffffff14;box-shadow:0 12px 40px #00000038}body:has(.portfolio-home) .site-header-inner{width:min(90rem,100% - clamp(2rem,6vw,5rem))}body:has(.portfolio-home) .site-brand-mark,body:has(.portfolio-home) .header-search-link,body:has(.portfolio-home) .theme-toggle{display:none}body:has(.portfolio-home) .site-brand-copy strong{color:#fff;letter-spacing:.08em;text-transform:uppercase;font-size:.94rem;font-weight:800}body:has(.portfolio-home) .site-brand-copy small{color:#e2e8f094;letter-spacing:.14em;text-transform:uppercase;font-size:.57rem}body:has(.portfolio-home) .site-nav{gap:.45rem}body:has(.portfolio-home) .site-nav a{color:#e2e8f0a8;letter-spacing:.055em;text-transform:uppercase;border-radius:999px;font-size:.72rem}body:has(.portfolio-home) .site-nav a:after{background:linear-gradient(90deg,#2a6fb6,#cd4747);bottom:.35rem;left:1rem;right:1rem}body:has(.portfolio-home) .site-nav a:hover,body:has(.portfolio-home) .site-nav a.is-active{color:#fff;background:#ffffff0e}body:has(.portfolio-home) .language-switch,body:has(.portfolio-home) .header-contact{color:#e2e8f0;box-shadow:none;backdrop-filter:blur(12px);background:#ffffff0b;border:1px solid #ffffff1a}body:has(.portfolio-home) .header-contact{letter-spacing:.055em;text-transform:uppercase;border-radius:999px;min-height:2.75rem;padding:0 1.15rem;font-size:.72rem}body:has(.portfolio-home) .site-brand,body:has(.portfolio-home) .site-nav a,body:has(.portfolio-home) .site-header-actions>*{animation:benchmark-nav-in .52s var(--ease-emphasized) both}body:has(.portfolio-home) .site-nav a:nth-child(2){animation-delay:50ms}body:has(.portfolio-home) .site-nav a:nth-child(3){animation-delay:.1s}body:has(.portfolio-home) .site-nav a:nth-child(4){animation-delay:.15s}body:has(.portfolio-home) .site-nav a:nth-child(5){animation-delay:.2s}.has-intro-gate body:has(.portfolio-home) .site-brand,.has-intro-gate body:has(.portfolio-home) .site-nav a,.has-intro-gate body:has(.portfolio-home) .site-header-actions>*{animation-delay:1.05s}@keyframes benchmark-nav-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.portfolio-home .portfolio-hero{background:linear-gradient(#ffffff09 1px,#0000 1px) 0 0/4rem 4rem,linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/4rem 4rem,radial-gradient(circle at 50% 46%,#0f182566,#0000 46%),#050505;border-bottom-color:#ffffff14;min-height:100svh}.portfolio-home .portfolio-hero:after{opacity:1;background:radial-gradient(circle at 50% 48%,#0000 0 34%,#05050533 62%,#050505d1 100%);animation:none;transform:none}.landing-intro.hero-console{text-align:center;justify-content:center;align-items:center;gap:0;width:min(76rem,100% - clamp(2rem,8vw,7rem));min-height:100svh;padding:clamp(7.5rem,14vh,10rem) 0 clamp(6rem,10vh,8rem)}.hero-atmosphere{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-blob{aspect-ratio:1;filter:blur(120px);mix-blend-mode:screen;opacity:.72;border-radius:50%;width:min(38vw,30rem);animation:10s ease-in-out infinite alternate hero-neural-blob;position:absolute}.hero-blob-primary{background:#2a6fb633;top:2%;left:12%}.hero-blob-secondary{background:#cd47471f;animation-delay:-5s;bottom:1%;right:10%}.hero-blob-tertiary{filter:blur(100px);background:#7e4bc41a;width:min(26vw,20rem);animation-duration:7s;animation-delay:-2s;top:34%;left:55%}@keyframes hero-neural-blob{0%{transform:translate(0,0)scale(1)}50%{transform:translate(5%,-4%)scale(1.08)}to{transform:translate(-4%,5%)scale(.96)}}.hero-ghost{display:none}.hero-hud{z-index:2;opacity:.45;border-color:#ffffff24}.hero-spec{z-index:2;border:0;justify-content:center;padding:0 0 1.35rem;position:relative}.hero-spec-cell:not(.hero-spec-status){display:none}.hero-spec-status{color:#a8b3c3;letter-spacing:.1em;backdrop-filter:blur(12px);background:#ffffff09;border:1px solid #ffffff17;border-radius:999px;gap:.65rem;padding:.55rem .9rem;font-size:.64rem}.hero-spec-status small{display:none}.hero-spec-status i{background:#6aa9e9;width:.42rem;height:.42rem;box-shadow:0 0 0 .24rem #2a6fb62e}.hero-console-copy{z-index:2;justify-items:center;width:100%}.hero-console .landing-intro-identity{color:#e2e8f09e;letter-spacing:.22em;margin-bottom:1rem;font-size:.68rem}.hero-console h1{color:#f8fafc;letter-spacing:-.055em;text-wrap:balance;max-width:18ch;font-size:clamp(3.1rem,5.2vw,5.8rem);line-height:.98}.hero-word{margin-right:.18em}.hero-word:nth-child(2)>span{color:#6aa9e9}.hero-word:nth-child(5)>span{color:#df7474}.hero-console .landing-intro-body{color:#cbd5e1b8;text-wrap:balance;max-width:48rem;margin-top:1.75rem;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.72}.hero-console .landing-intro-actions{justify-content:center;margin-top:2rem}.hero-console .landing-intro-actions .button{border-radius:999px;min-height:3.2rem;padding:.76rem 1.45rem}.hero-console .landing-intro-actions .button.primary{color:#090b0f;background:#fff;border-color:#fff;box-shadow:0 12px 34px #00000042}.hero-console .landing-intro-actions .button.primary:hover{color:#07111f;background:#dcecff}.hero-console .landing-intro-actions .button.secondary{color:#f8fafc;backdrop-filter:blur(16px);background:#ffffff0b;border-color:#ffffff1c}.hero-console .landing-intro-actions .text-link{color:#e2e8f0a8;letter-spacing:.08em;font-size:.74rem}.hero-console-base{z-index:2;border:0;justify-content:center;padding:0;display:flex;position:absolute;bottom:1.6rem;left:0;right:0}.hero-console .hero-system-path{display:none}.hero-console .hero-proof-grid{backdrop-filter:blur(12px);background:#ffffff06;border:1px solid #ffffff13;border-radius:999px;gap:0;padding:0;display:flex;overflow:hidden}.hero-console .hero-proof-grid div{border-right:1px solid #ffffff13;align-items:center;gap:.48rem;padding:.55rem .85rem;display:flex}.hero-console .hero-proof-grid div:last-child{border-right:0}.hero-console .hero-proof-grid dt{color:#94a3b8a6;letter-spacing:.06em;text-transform:uppercase;font-size:.57rem}.hero-console .hero-proof-grid dd{color:#f8fafc;font-size:.8rem}.hero-scroll-cue{z-index:3;border:1px solid #ffffff1f;border-radius:999px;width:2rem;height:2.75rem;display:none;position:absolute;bottom:1.15rem;left:50%;transform:translate(-50%)}.hero-scroll-cue span{background:#6aa9e9;border-radius:50%;width:.28rem;height:.28rem;animation:1.7s ease-in-out infinite hero-scroll-dot;position:absolute;top:.55rem;left:50%;transform:translate(-50%)}@keyframes hero-scroll-dot{0%{opacity:0;transform:translate(-50%)}35%{opacity:1}to{opacity:0;transform:translate(-50%,1.1rem)}}.has-intro-gate .hero-word>span{animation-delay:calc(1.08s + var(--word-index,0) * 70ms)}.has-intro-gate .hero-console .landing-intro-body{animation-delay:1.42s}.has-intro-gate .hero-console .landing-intro-actions{animation-delay:1.58s}.portfolio-home .section-band,.portfolio-home .skill-marquee-section{background-color:#07080a;border-color:#ffffff13}.portfolio-home .section-head:after{background:linear-gradient(90deg,#2a6fb6,#ffffff1a 52%,#cd4747)}.portfolio-home .project-flow-explorer,.portfolio-home .home-writing-feature,.portfolio-home .project-card,.portfolio-home .resume-card{background-color:#ffffff09;border-color:#ffffff17;box-shadow:0 24px 70px #00000042}.intro-gate{background:radial-gradient(circle at 32% 35%,#2a6fb629,#0000 34%),radial-gradient(circle at 68% 62%,#cd47471a,#0000 32%),#050505}.intro-gate-panel{text-align:center;justify-items:center}.intro-gate-mark{color:#fff;letter-spacing:-.04em;font-size:clamp(2.4rem,6vw,4.75rem)}.intro-gate-mark span,.intro-gate-lines li span{color:#6aa9e9}.intro-gate-lines{justify-items:center}.intro-gate-lines li{color:#cbd5e1a8;letter-spacing:.1em;font-size:.66rem}.intro-gate-progress{background:#ffffff14;width:min(18rem,66vw)}.intro-gate-progress span{background:linear-gradient(90deg,#2a6fb6,#7e4bc4 52%,#cd4747)}.detail-dialog{color-scheme:dark;--color-canvas:#050505;--color-canvas-raised:#ffffff09;--color-surface:#ffffff0b;--color-surface-subtle:#ffffff12;--color-text:#f1f5f9;--color-text-muted:#a8b3c3;--color-text-soft:#718096;--color-border:#ffffff17;--color-border-strong:#ffffff29;--color-accent:#6aa9e9;--color-accent-soft:#2a6fb626;width:min(56rem,100vw - 2rem);max-height:calc(100svh - 2rem);color:var(--color-text);backdrop-filter:blur(28px)saturate(120%);animation:benchmark-dialog-in .36s var(--ease-emphasized);background:#0c0f14e6;border:1px solid #ffffff17;border-radius:1.5rem;overflow:hidden;box-shadow:0 34px 110px #00000094}#dialog-work{width:min(72rem,100vw - 2rem)}#dialog-skills,#dialog-resume{width:min(64rem,100vw - 2rem)}.detail-dialog::backdrop{backdrop-filter:blur(24px);background:#030406e0}.detail-dialog-shell.term-window{border-radius:inherit;width:100%;box-shadow:none;background:0 0;border:0;margin:0;overflow:hidden}.detail-dialog-head{z-index:3;backdrop-filter:blur(20px);background:#090b0fd1;border-bottom:1px solid #ffffff13;justify-content:space-between;align-items:center;gap:1rem;min-height:5rem;padding:1rem 1.35rem 1rem 1.6rem;display:flex;position:sticky;top:0}.detail-dialog-head>div{gap:.12rem;display:grid}.detail-dialog-head p{color:#6aa9e9;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.6rem}.detail-dialog-head h2{color:#fff;letter-spacing:-.025em;margin:0;font-size:clamp(1.15rem,2vw,1.45rem)}.detail-dialog-close{color:#cbd5e1;background:#ffffff0a;border-color:#ffffff1f;border-radius:50%;width:2.75rem;height:2.75rem}.detail-dialog-close:hover{color:#fff;background:#2a6fb624;border-color:#6aa9e9b8;transform:rotate(4deg)}.detail-dialog-close svg{width:1.05rem;height:1.05rem}.detail-dialog-body{overscroll-behavior:contain;max-height:calc(100svh - 7rem);padding:clamp(1.5rem,3vw,2.5rem)}.detail-dialog .resume-card,.detail-dialog .project-card,.detail-dialog .skill-group-panel,.detail-dialog .skill-tile{box-shadow:none;background:#ffffff08;border-color:#ffffff16}.detail-dialog .skill-grid-panel{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr))}.detail-dialog .skill-tile h4,.detail-dialog .compact-credential-row h4,.detail-dialog .about-focus-card h4{margin:0}.dialog-focus-projects{margin-top:var(--space-10)}.dialog-focus-projects>h3{margin:0 0 var(--space-5)}@keyframes benchmark-dialog-in{0%{opacity:0;transform:translateY(1rem)scale(.965)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=61.25rem){body:has(.portfolio-home) .site-header-inner{grid-template-columns:1fr auto}.hero-console h1{max-width:15ch;font-size:clamp(3.1rem,7.4vw,5rem)}}@media (width<=48rem){body:has(.portfolio-home) .site-header-inner{width:calc(100% - 2rem)}body:has(.portfolio-home) .language-switch,body:has(.portfolio-home) .header-contact{display:none}body:has(.portfolio-home) .mobile-menu-toggle{color:#e2e8f0;background:#ffffff0b;border-color:#ffffff1a}.landing-intro.hero-console{width:calc(100% - 2rem);padding:7rem 0 6.25rem}.hero-hud{display:none}.hero-spec{padding-bottom:1rem}.hero-console h1{max-width:11ch;font-size:clamp(2.75rem,13.5vw,4.4rem);line-height:.96}.hero-console .landing-intro-body{max-width:34rem;margin-top:1.25rem;font-size:.96rem;line-height:1.62}.hero-console .landing-intro-actions{width:min(23rem,100%);margin-top:1.5rem}.hero-console .landing-intro-actions .button{flex:calc(50% - .5rem);min-width:0;padding-left:.9rem;padding-right:.9rem;font-size:.72rem}.hero-console .landing-intro-actions .text-link{flex-basis:100%;justify-content:center}.hero-console-base{display:none}.hero-scroll-cue{display:block}.hero-blob{filter:blur(90px);width:22rem}.detail-dialog,#dialog-work,#dialog-skills,#dialog-resume{border-radius:1.15rem;width:calc(100vw - 1rem);max-height:calc(100svh - 1rem)}.detail-dialog-head{min-height:4.5rem;padding:.8rem .85rem .8rem 1.1rem}.detail-dialog-body{max-height:calc(100svh - 5.5rem);padding:1.1rem}.dialog-skill-groups{grid-template-columns:1fr}.detail-dialog .skill-grid-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){body:has(.portfolio-home) .site-brand,body:has(.portfolio-home) .site-nav a,body:has(.portfolio-home) .site-header-actions>*,.hero-blob,.hero-scroll-cue span,.detail-dialog{animation:none}}:where(body:has(.writing-hero),body:has(.article-page)) .site-header{color:#e2e8f0;backdrop-filter:blur(20px)saturate(125%);background:#050505c7;border-color:#ffffff14}:where(body:has(.writing-hero),body:has(.article-page)) .site-brand-mark,:where(body:has(.writing-hero),body:has(.article-page)) .header-search-link,:where(body:has(.writing-hero),body:has(.article-page)) .theme-toggle{display:none}:where(body:has(.writing-hero),body:has(.article-page)) .site-brand-copy strong{color:#fff;letter-spacing:.08em;text-transform:uppercase;font-size:.94rem}:where(body:has(.writing-hero),body:has(.article-page)) .site-brand-copy small{color:#e2e8f094;letter-spacing:.14em;text-transform:uppercase;font-size:.57rem}:where(body:has(.writing-hero),body:has(.article-page)) .site-nav a{color:#e2e8f0a8;letter-spacing:.055em;text-transform:uppercase;border-radius:999px;font-size:.72rem}:where(body:has(.writing-hero),body:has(.article-page)) .site-nav a:hover,:where(body:has(.writing-hero),body:has(.article-page)) .site-nav a.is-active{color:#fff;background:#ffffff0e}:where(body:has(.writing-hero),body:has(.article-page)) .site-nav a:after{background:linear-gradient(90deg,#2a6fb6,#cd4747)}:where(body:has(.writing-hero),body:has(.article-page)) .language-switch,:where(body:has(.writing-hero),body:has(.article-page)) .header-contact{color:#e2e8f0;box-shadow:none;background:#ffffff0b;border-color:#ffffff1a}:where(body:has(.writing-hero),body:has(.article-page)) .header-contact{letter-spacing:.055em;text-transform:uppercase;border-radius:999px;min-height:2.75rem;padding:0 1.15rem;font-size:.72rem}@media (width<=48rem){:where(body:has(.portfolio-home),body:has(.writing-hero),body:has(.article-page)) .site-brand-copy{display:grid}}#dialog-skills .dialog-about-lead{color:#a8b3c3;max-width:52rem;margin:0 0 clamp(1.5rem,3vw,2.25rem);font-size:clamp(.96rem,1.35vw,1.08rem);line-height:1.68}#dialog-skills .dialog-skill-groups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem}#dialog-skills .skill-group-panel{background:radial-gradient(circle at 12% 0,#6aa9e912,#0000 34%),#ffffff07;border:1px solid #ffffff16;border-radius:1rem;grid-template-rows:auto auto;align-content:start;gap:.9rem;min-width:0;padding:1rem;display:grid}#dialog-skills .skill-group-heading{border-bottom:1px solid #ffffff13;min-width:0;padding:.15rem .15rem .8rem;display:block}#dialog-skills .skill-group-heading h3{color:#f8fafc;letter-spacing:-.025em;margin:0;font-size:clamp(1.05rem,1.65vw,1.28rem);font-weight:760;line-height:1.1}#dialog-skills .skill-grid-panel{grid-template-columns:repeat(2,minmax(0,1fr));place-content:start stretch;gap:.65rem}#dialog-skills .skill-tile{--skill-widget-accent:color-mix(in srgb, var(--skill-accent) 68%, white);background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--skill-widget-accent) 12%, transparent), transparent 46%), #ffffff07;border-radius:.75rem;align-content:center;gap:.75rem;min-height:6.25rem;padding:1rem .7rem .9rem}#dialog-skills .skill-tile .skill-icon{border-color:color-mix(in srgb, var(--skill-accent) 56%, #ffffff57);width:2.6rem;height:2.6rem;color:color-mix(in srgb, var(--skill-accent) 62%, white);background:color-mix(in srgb, var(--skill-accent) 13%, #ffffff09)}#dialog-skills .skill-tile .skill-icon svg{width:1.3rem;height:1.3rem}#dialog-skills .skill-tile h4{color:#eef2f7;text-align:center;text-wrap:balance;max-width:14ch;font-size:.84rem;font-weight:720;line-height:1.2}#dialog-about .resume-card:before{content:none}@media (width<=48rem){#dialog-skills .dialog-skill-groups{grid-template-columns:1fr}#dialog-skills .skill-group-panel{padding:.85rem}#dialog-skills .skill-grid-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}[data-nav-section]{scroll-margin-top:calc(var(--header-height) + 1.25rem)}.header-writing-link{border:1px solid var(--color-border);border-radius:var(--radius-sm);min-height:2.75rem;color:var(--color-text);background:var(--color-surface);transition:border-color var(--duration-fast) ease, color var(--duration-fast) ease, background-color var(--duration-fast) ease, transform var(--duration-fast) ease;align-items:center;gap:.48rem;padding:0 .9rem;font-size:.76rem;font-weight:760;display:inline-flex}.header-writing-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:1rem;height:1rem}.header-writing-link>span:last-child{color:var(--color-accent);font-size:.72rem}.header-writing-link:is(:hover,:focus-visible){border-color:var(--color-accent);background:var(--color-accent-soft);transform:translateY(-1px)}body:has(.portfolio-home) .header-writing-link{color:#dbeafe;letter-spacing:.055em;text-transform:uppercase;background:#2a6fb61a;border-color:#6aa9e947;border-radius:999px;font-size:.7rem}body:has(.portfolio-home) .header-writing-link:is(:hover,:focus-visible){color:#fff;background:#2a6fb633;border-color:#6aa9e994}body:has(.portfolio-home) .site-header.is-menu-open,.site-header.is-writing-surface.is-menu-open{backdrop-filter:none}.portfolio-about-preview{color:var(--on-dark-text-muted);background:radial-gradient(circle at 14% 18%,#2a6fb617,#0000 28%),radial-gradient(circle at 88% 76%,#cd47470f,#0000 24%),#090b0f;overflow:hidden}.portfolio-about-preview:before{content:"";pointer-events:none;background-color:#0000;background-image:linear-gradient(#ffffff07 1px,#0000 1px),linear-gradient(90deg,#ffffff07 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:4rem 4rem;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0;mask-image:linear-gradient(90deg,#000000d1,#0000 78%)}.portfolio-about-preview>*{z-index:1;position:relative}.portfolio-about-preview .section-head:after{background:linear-gradient(90deg,#6aa9e9,#ffffff1a 55%,#df7474)}.portfolio-about-preview .section-head-index{-webkit-text-stroke-color:#ffffff2e}.portfolio-about-preview :where(h2,h3){color:var(--on-dark-text)}.portfolio-about-preview .eyebrow,.portfolio-about-preview .text-link{color:var(--accent-on-dark)}.home-about-layout{width:min(var(--width-content), 100%);gap:clamp(1.25rem,2.5vw,2rem);margin:0 auto;display:grid}.home-about-statement{border-radius:var(--radius-lg);background:linear-gradient(120deg,#6aa9e917,#0000 46%),#ffffff07;border:1px solid #ffffff17;grid-template-columns:minmax(16rem,.72fr) minmax(0,1.28fr);align-items:start;gap:clamp(1.5rem,4vw,4.5rem);padding:clamp(1.5rem,3vw,2.75rem);display:grid}.home-about-statement h3,.home-about-statement p{margin:0}.home-about-statement h3{letter-spacing:-.025em;text-wrap:balance;max-width:25ch;font-size:clamp(1.45rem,2.15vw,2.2rem);line-height:1.18}.home-about-statement>p:last-child{max-width:54rem;color:var(--on-dark-text-muted);font-size:clamp(.95rem,1.15vw,1.08rem);line-height:1.8}.home-about-focus{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.75rem,1.5vw,1.25rem);display:grid}.home-about-focus-row{gap:var(--space-5) var(--space-4);border-radius:var(--radius-md);min-height:11.5rem;transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, box-shadow var(--duration-medium) ease, transform var(--duration-medium) var(--ease-emphasized);background:linear-gradient(145deg,#6aa9e90b,#0000 60%),#ffffff05;border:1px solid #ffffff16;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) auto;align-items:end;padding:clamp(1.25rem,2.25vw,2rem);display:grid}.home-about-focus-row>span:first-child{color:var(--accent-on-dark);font-family:var(--font-mono);text-transform:uppercase;grid-column:1/-1;align-self:start;font-size:.66rem;line-height:1.55}.home-about-focus-row strong{color:var(--on-dark-text);text-wrap:balance;font-size:clamp(1.02rem,1.35vw,1.28rem);line-height:1.4}.home-about-focus-row>span:last-child{color:var(--accent-on-dark);opacity:.5;transition:transform var(--duration-medium) var(--ease-emphasized), opacity var(--duration-fast) ease;transform:translate(-.2rem)}.home-about-focus-row:is(:hover,:focus-visible){background-color:#6aa9e90e;border-color:#6aa9e957;transform:translateY(-.2rem);box-shadow:0 1.25rem 3rem #0003}.home-about-focus-row:is(:hover,:focus-visible)>span:last-child{opacity:1;transform:translate(0)}.section-head-summary{max-width:52rem;margin:var(--space-4) 0 0;color:var(--color-text-muted);font-size:clamp(.92rem,1.2vw,1.05rem);line-height:1.7}.portfolio-home .resume-band{background:radial-gradient(circle at 86% 22%,#cd474713,#0000 25%),#07080a}.portfolio-home .resume-band>.section-head{width:min(var(--width-content), 100%);margin-bottom:clamp(2.75rem,5vw,4.5rem)}.portfolio-home .resume-band .resume-grid{width:min(var(--width-content), 100%)}.home-skill-groups{gap:var(--space-3);width:min(var(--width-content), calc(100% - clamp(2.5rem, 10vw, 9rem)));grid-template-columns:repeat(3,minmax(0,1fr));margin:clamp(2.5rem,5vw,4.5rem) auto 0;display:grid}.home-skill-group{gap:var(--space-3);border-radius:var(--radius-md);min-height:12rem;transition:border-color var(--duration-medium) ease, background-color var(--duration-medium) ease, transform var(--duration-medium) var(--ease-emphasized);background:radial-gradient(circle at 15% 0,#6aa9e913,#0000 38%),#ffffff07;border:1px solid #ffffff16;align-content:end;padding:clamp(1.25rem,2.5vw,2rem);display:grid;position:relative;overflow:hidden}.home-skill-group-icons{margin-bottom:auto;display:flex}.home-skill-group-icons>span{border-radius:var(--radius-sm);border:3px solid #07080a;margin-right:-.45rem;display:grid}.home-skill-group-icons .skill-icon{background:color-mix(in srgb, var(--skill-accent,#6aa9e9) 14%, #101319);width:2.55rem;height:2.55rem}.home-skill-group strong{color:#f8fafc;font-size:clamp(1.05rem,1.6vw,1.35rem)}.home-skill-group small{padding-right:var(--space-5);color:#cbd5e194;font-family:var(--font-mono);font-size:.62rem;line-height:1.55}.home-skill-group-arrow{right:var(--space-5);bottom:var(--space-5);color:#6aa9e9;opacity:0;transition:opacity var(--duration-fast) ease, transform var(--duration-medium) var(--ease-emphasized);position:absolute;transform:translate(-.3rem,.3rem)}.home-skill-group:is(:hover,:focus-visible){background-color:#6aa9e90e;border-color:#6aa9e961;transform:translateY(-.22rem)}.home-skill-group:is(:hover,:focus-visible) .home-skill-group-arrow{opacity:1;transform:translate(0)}.site-header.is-writing-surface{background:linear-gradient(90deg,#2a6fb621,#0000 34%,#cd47470e),#05080de6;border-color:#6aa9e933;box-shadow:0 12px 44px #0003}.site-header.is-writing-surface:after{content:"";pointer-events:none;background:linear-gradient(90deg,#2a6fb6,#6aa9e91f 44%,#0000 72%);height:1px;position:absolute;bottom:-1px;left:0;right:0}:where(body:has(.writing-hero),body:has(.article-page)) .site-header.is-writing-surface .site-brand-mark{color:#dbeafe;background:linear-gradient(135deg,#6aa9e929,#0000),#ffffff09;border-color:#6aa9e961;display:inline-grid}.site-header.is-writing-surface .site-brand-mark span{background:linear-gradient(135deg,#6aa9e9,#df7474)}.site-header.is-writing-surface .site-brand-copy small{color:#6aa9e9}:where(body:has(.writing-hero),body:has(.article-page)) .site-header.is-writing-surface .header-search-link{color:#b9d7f5;background:#2a6fb614;border-color:#6aa9e938;display:inline-grid}.site-header.is-writing-surface .site-nav{background:#ffffff06;border:1px solid #ffffff13;border-radius:999px;padding:.2rem}.site-header.is-writing-surface .site-nav a{min-height:2.3rem;padding-left:.85rem;padding-right:.85rem}.site-header.is-writing-surface .site-nav a:after{display:none}:where(body:has(.writing-hero),body:has(.article-page)) .header-writing-link{color:#fff;letter-spacing:.055em;text-transform:uppercase;background:linear-gradient(135deg,#2a6fb6d1,#2a6fb680);border-color:#6aa9e97a;border-radius:999px;font-size:.7rem;box-shadow:0 0 0 1px #6aa9e914,0 10px 28px #092d5242}:where(body:has(.writing-hero),body:has(.article-page)) .header-writing-link>span:last-child{color:#dbeafe}.mobile-writing-link{background:linear-gradient(90deg,#2a6fb614,#0000)}@media (width<=74rem){.home-skill-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=61.25rem){.home-about-statement{gap:var(--space-5);grid-template-columns:1fr}}@media (width<=48rem){[data-nav-section]{scroll-margin-top:calc(var(--header-height) + .75rem)}.header-writing-link{justify-content:center;width:2.65rem;height:2.65rem;padding:0}.header-writing-link>span{display:none}.site-header.is-writing-surface .site-brand-mark{width:2.25rem;height:2.25rem}.site-header.is-writing-surface .header-search-link,.site-header.is-writing-surface .language-switch,.site-header.is-writing-surface .header-contact{display:none}.portfolio-about-preview{padding-left:1.25rem;padding-right:1.25rem}.home-about-focus-row{gap:var(--space-3);min-height:9.5rem;padding:1.25rem}.home-about-focus-row:is(:hover,:focus-visible){transform:none}.home-about-focus{grid-template-columns:1fr}.home-skill-groups{grid-template-columns:1fr;width:calc(100% - 2.5rem);margin-top:2rem}.home-skill-group{min-height:10.5rem}}.resume-download-panel{width:min(var(--width-content), 100%);border:1px solid var(--color-border);background:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px), radial-gradient(circle at 0 0, var(--color-accent-soft), transparent 44%), #ffffff06;background-size:2.5rem 2.5rem,2.5rem 2.5rem,auto,auto;border-radius:clamp(1rem,2vw,1.5rem);grid-template-columns:minmax(12rem,.55fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);margin:0 auto clamp(2.75rem,5vw,4.5rem);padding:clamp(1.35rem,3vw,2.25rem);display:grid;overflow:hidden}.resume-download-panel-copy{gap:var(--space-2);display:grid}.resume-download-panel-copy p{color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:760}.resume-download-panel-copy h3{max-width:14ch;margin:0;font-size:clamp(1.35rem,2.5vw,2.1rem);line-height:1.08}.resume-download-panel .resume-download-actions{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.resume-download-panel .resume-download-button{min-width:0;min-height:5.25rem;transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, transform var(--duration-medium) var(--ease-emphasized);background:#ffffff0b;border-color:#ffffff1f;grid-template-columns:2.7rem minmax(0,1fr) 1.1rem}.resume-download-panel .resume-download-button.is-primary{border-color:color-mix(in srgb, var(--color-accent) 54%, transparent);background:color-mix(in srgb, var(--color-accent) 10%, #ffffff0a)}.resume-download-panel .resume-download-button:is(:hover,:focus-visible){border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 13%, #ffffff0d);transform:translateY(-.16rem)}.resume-download-panel .resume-download-token{color:#f8fafc;background:linear-gradient(135deg,#2a6fb6,#17385b)}.resume-download-panel .resume-download-button svg{width:1.1rem;color:var(--color-accent);fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px}.portfolio-contact-section{background:radial-gradient(circle at 12% 22%,#2a6fb61f,#0000 28%),radial-gradient(circle at 92% 78%,#cd474713,#0000 26%),#050505;border-top:1px solid #ffffff13}.contact-transmission-shell{width:min(var(--width-content), 100%);background:linear-gradient(#ffffff06,#ffffff03),#090b0f;border:1px solid #ffffff1a;border-radius:clamp(1rem,2vw,1.5rem);grid-template-columns:minmax(16rem,.68fr) minmax(0,1.32fr);margin:0 auto;display:grid;overflow:hidden;box-shadow:0 30px 90px #00000057}.contact-transmission-intro{background:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px), radial-gradient(circle at 10% 0, #2a6fb626, transparent 42%);background-size:2.5rem 2.5rem,2.5rem 2.5rem,auto;border-right:1px solid #ffffff16;flex-direction:column;min-width:0;padding:clamp(1.5rem,4vw,3rem);display:flex;position:relative}.contact-transmission-intro:after{content:"";opacity:.8;background:linear-gradient(90deg,#2a6fb6,#6aa9e9 45%,#cd4747);height:2px;position:absolute;bottom:0;left:0;right:0}.contact-transmission-kicker{align-items:center;gap:var(--space-2);color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.08em;margin:0 0 clamp(2rem,5vw,5rem);font-size:.66rem;font-weight:760;display:flex}.contact-transmission-kicker span{background:var(--color-accent);border-radius:50%;width:.45rem;height:.45rem;box-shadow:0 0 0 .3rem #6aa9e91a}.contact-transmission-intro h3{max-width:12ch;margin:0 0 var(--space-5);color:var(--color-text);font-size:clamp(2rem,4vw,4rem);line-height:.98}.contact-transmission-intro>p:not(.contact-transmission-kicker){max-width:34rem;color:var(--color-text-muted);margin-bottom:clamp(2rem,5vw,4.5rem);line-height:1.75}.contact-direct-links{gap:var(--space-3);margin-top:auto;display:grid}.contact-direct-links a{min-width:0;padding-top:var(--space-3);border-top:1px solid #ffffff17;gap:.15rem;display:grid}.contact-direct-links span{color:var(--color-text-soft);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.6rem}.contact-direct-links strong{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:650;overflow:hidden}.contact-direct-links a:is(:hover,:focus-visible) strong{color:var(--color-accent-strong)}.contact-transmission-form{gap:clamp(1.25rem,2.5vw,2rem);min-width:0;padding:clamp(1.5rem,4vw,3rem);display:grid}.contact-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem);display:grid}.contact-field{gap:var(--space-2);min-width:0;display:grid}.contact-field>span{justify-content:space-between;gap:var(--space-3);color:var(--color-text);font-family:var(--font-mono);letter-spacing:.055em;text-transform:uppercase;font-size:.69rem;font-weight:760;display:flex}.contact-field>span small{color:var(--color-text-soft);font-size:.56rem;font-weight:600}.contact-field :where(input,textarea){border-radius:var(--radius-sm);width:100%;color:var(--color-text);transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;background:#ffffff09;border:1px solid #ffffff1c;outline:0}.contact-field input{min-height:3.7rem;padding:0 var(--space-4)}.contact-field textarea{resize:vertical;min-height:13rem;padding:var(--space-4);line-height:1.65}.contact-field :where(input,textarea)::placeholder{color:#a5b0c07a}.contact-field :where(input,textarea):hover{background:#ffffff0b;border-color:#6aa9e961}.contact-field :where(input,textarea):focus{border-color:var(--color-accent);background:#2a6fb613;box-shadow:0 0 0 3px #2a6fb621}.contact-field :where(input,textarea):user-invalid{border-color:#df7474b8}.contact-form-footer{gap:var(--space-3);display:grid}.contact-form-status{min-height:1.35rem;color:var(--color-text-muted);margin:0;font-size:.78rem}.contact-transmission-form[data-state=success] .contact-form-status{color:#84e2d5}.contact-transmission-form[data-state=error] .contact-form-status{color:#ff9aa5}.contact-submit-button{border-radius:var(--radius-sm);color:#fff;min-height:4.25rem;transition:filter var(--duration-fast) ease, transform var(--duration-medium) var(--ease-emphasized);background:linear-gradient(110deg,#286eb5,#255f99);border:1px solid #6aa9e9b3;justify-content:space-between;align-items:center;padding:0 clamp(1.15rem,2.5vw,1.75rem);font-weight:760;display:flex;box-shadow:0 16px 36px #092d5247}.contact-submit-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.65px;width:1.25rem}.contact-submit-button:is(:hover,:focus-visible):not(:disabled){filter:brightness(1.1);transform:translateY(-.12rem)}.contact-submit-button:disabled{opacity:.62}@media (width<=61.25rem){.resume-download-panel,.contact-transmission-shell{grid-template-columns:1fr}.contact-transmission-intro{border-bottom:1px solid #ffffff16;border-right:0}.contact-transmission-kicker{margin-bottom:var(--space-8)}.contact-transmission-intro h3{max-width:16ch}.contact-transmission-intro>p:not(.contact-transmission-kicker){margin-bottom:var(--space-8)}}@media (width<=48rem){.resume-download-panel .resume-download-actions,.contact-field-grid{grid-template-columns:1fr}.resume-download-panel .resume-download-button{min-height:4.75rem}.contact-transmission-intro,.contact-transmission-form{padding:1.25rem}.contact-transmission-intro h3{font-size:clamp(2rem,11vw,3.25rem)}.contact-field textarea{min-height:11rem}}
