:root{--bg: #07080b;--bg-raised: #0b0d12;--bg-card: #101318;--ink: #f4f7fb;--ink-dim: #c7ced8;--ink-mute: #99a3b2;--ink-faint: #6f7886;--accent: #9db4ec;--accent-rgb: 157, 180, 236;--line: rgba(255, 255, 255, .08);--line-2: rgba(255, 255, 255, .16);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--sp-24: 96px;--maxw: 1180px;--gutter: clamp(20px, 5vw, 32px);--section-y: clamp(56px, 9vw, 112px);--index-w: 248px;--topbar-h: 52px;--measure: 35rem;--measure-display: 57rem;--r-xs: 2px;--r-sm: 4px;--r-md: 8px;--r-pill: 999px;--fs-3xs: 10.5px;--fs-2xs: 11.5px;--fs-xs: 12.5px;--fs-sm: 14px;--fs-base: 16px;--fs-md: 18px;--fs-h3: clamp(16px, 1.35vw, 19px);--fs-h2: clamp(23px, 3.1vw, 40px);--fs-h1: clamp(25px, 4vw, 55px);--ls-wider: .12em;--ls-wide: .08em;--ls-tight: -.02em;--ls-tighter: -.03em;--ls-tightest:-.035em;--lh-body: 1.55;--lh-h1: 1.14;--lh-h2: 1.18;--lh-h3: 1.3;--dur-fast: .14s;--dur: .22s;--dur-slow: .38s;--ease: cubic-bezier(.4, 0, .2, 1);--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-body: "Geist Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}@supports (color: oklch(.82 .09 255)){:root{--accent: oklch(.82 .09 255)}}@media (max-width: 899.98px){:root{--index-w: 220px}}@media (max-width: 639.98px){:root{--gutter: 16px;--section-y: 56px}}:root{--medium-bg: var(--bg-raised);--bg-inset: var(--bg-card);--text: var(--ink);--light-text: var(--ink);--text-secondary: var(--ink-dim);--medium-text: var(--ink-dim);--text-dim: var(--ink-mute);--primary-accent: var(--accent);--accent-soft: var(--accent);--border: var(--line);--border-color: var(--line);--border-accent: var(--line-2);--glass-bg: var(--bg-raised);--glass-bg-strong: var(--bg-raised);--glass-blur: none;--glass-border: var(--line);--font-display: var(--font-body);--font-sans: var(--font-body)}:root{--pane-filter: blur(14px) saturate(150%);--pane-bg: rgba(11, 13, 18, .42);--pane-bg-strong: rgba(11, 13, 18, .66);--pane-edge: rgba(255, 255, 255, .14)}@media (max-width: 639.98px){:root{--pane-filter: none;--pane-bg: rgba(11, 13, 18, .9);--pane-bg-strong: rgba(11, 13, 18, .95)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-body);color:var(--ink-dim);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(ellipse 90% 55% at 50% -10%,rgba(var(--accent-rgb),.07),transparent 70%)}h1,h2,h3,h4,h5,h6{font-family:var(--font-mono);font-weight:500;font-style:normal;color:var(--ink);text-wrap:balance}h1{font-size:var(--fs-h1);letter-spacing:var(--ls-tightest);line-height:var(--lh-h1)}h2{font-size:var(--fs-h2);letter-spacing:var(--ls-tighter);line-height:var(--lh-h2)}h3{font-size:var(--fs-h3);letter-spacing:var(--ls-tight);line-height:var(--lh-h3)}h4,h5,h6{font-size:var(--fs-sm);letter-spacing:var(--ls-tight);line-height:1.35}p,li,dd,dt,blockquote,figcaption,label,input,textarea,select,button{font-family:var(--font-body)}p{line-height:var(--lh-body)}em,i,cite,address{font-style:normal;color:var(--accent)}strong,b{font-weight:600;color:var(--ink)}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}img,svg,video,canvas{max-width:100%;height:auto}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:var(--section-y);border-top:1px solid var(--line)}.measure{max-width:var(--measure)}.measure-display{max-width:var(--measure-display)}.eyebrow{display:block;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--accent);margin:0 0 var(--sp-3)}.idx{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wide);color:var(--accent);font-variant-numeric:tabular-nums}.tag{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-3xs);font-weight:500;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--ink-mute);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px 10px;white-space:nowrap}.btn,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:46px;padding:0 var(--sp-6);border-radius:var(--r-pill);font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:500;letter-spacing:var(--ls-wide);text-decoration:none;cursor:pointer;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.btn{background:var(--ink);color:var(--bg);border:1px solid var(--ink)}.btn:hover{background:var(--ink-dim);border-color:var(--ink-dim)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line-2)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.rule{border:0;border-top:1px solid var(--line);margin-block:var(--sp-8)}.js-reveal .reveal{opacity:0;transform:translateY(12px);transition:opacity var(--dur-slow) var(--ease) var(--reveal-delay, 0ms),transform var(--dur-slow) var(--ease) var(--reveal-delay, 0ms)}.js-reveal .reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.js-reveal .reveal,.js-reveal .reveal.is-visible{opacity:1!important;transform:none!important;transition:none!important}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.skip-link{position:fixed;top:8px;left:8px;z-index:1000;min-height:46px;display:inline-flex;align-items:center;padding:0 var(--sp-4);background:var(--bg-raised);color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-sm);border:1px solid var(--line-2);border-radius:var(--r-pill);transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#main-content:focus{outline:none}section{width:100%;max-width:var(--maxw);margin-inline:auto;padding-block:var(--section-y);padding-inline:var(--gutter);position:relative;z-index:1}section+section{border-top:1px solid var(--line)}section p{max-width:var(--measure)}.terminal-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--accent);margin:0 0 var(--sp-3)}.section-rule{display:flex;align-items:center;gap:1rem;max-width:720px;width:90%;margin:0 auto;padding:8px 0}.section-rule:before,.section-rule:after{content:"";height:1px;flex:1;background:rgba(var(--accent-rgb),.15)}.section-rule span{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--medium-text)}.case-study-page{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:5rem 1.25rem 3rem}.case-terminal,.case-detail-card{border:1px solid var(--glass-border);border-radius:14px;background:var(--glass-bg);box-shadow:0 0 28px rgba(var(--accent-rgb),.08);overflow:hidden}.case-terminal-bar{padding:.85rem 1rem;border-bottom:1px solid rgba(var(--accent-rgb),.18);color:var(--primary-accent);font-size:.75rem;letter-spacing:.08em}.case-hero-grid{display:grid;gap:1.5rem;padding:1.25rem}.case-study-page h1{margin:0 0 1rem;font-size:clamp(1.65rem,5vw,3rem)}.case-lede{margin:0 0 1rem}.case-actions{display:flex;flex-wrap:wrap;gap:.7rem}.case-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 var(--sp-5);border:1px solid var(--line-2);border-radius:var(--r-pill);background:transparent;color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:500;letter-spacing:var(--ls-wide);text-decoration:none;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.case-actions a:hover,.case-actions a:focus-visible{border-color:var(--accent);color:var(--accent);background:transparent}.case-image-panel{display:grid;place-items:center;min-height:240px;border:1px solid var(--glass-border);border-radius:12px;background:var(--bg-inset);overflow:hidden}.case-image-panel img{width:100%;height:100%;max-height:360px;object-fit:cover}.case-detail-grid{display:grid;gap:1rem;padding:1rem 0 0}.case-detail-card{padding:1rem;text-align:left}.case-detail-card h2{margin:0 0 .75rem;color:var(--primary-accent);font-size:1rem}.case-detail-card p{margin:0}@media (min-width: 900px){.case-hero-grid{grid-template-columns:.95fr 1.05fr;padding:1.5rem}.case-detail-grid{grid-template-columns:repeat(2,1fr)}}.text-center{text-align:center}.lazy-image-container{position:relative;overflow:hidden;background-color:var(--medium-bg);border-radius:8px;contain:layout style paint size;transform:translateZ(0);will-change:transform,opacity;backface-visibility:hidden}.lazy-image-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,var(--medium-bg) 25%,var(--bg-card) 50%,var(--medium-bg) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;color:var(--medium-text);font-size:.9rem}.lazy-image-error{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--medium-bg);color:var(--medium-text);font-size:.8rem;border:1px solid var(--border-color)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}#hero{padding-top:var(--sp-12);padding-bottom:var(--sp-12);min-height:calc(100svh - var(--topbar-h));display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;box-sizing:border-box}.terminal-hero{padding-top:80px;padding-bottom:60px;min-height:auto;display:flex;justify-content:center;align-items:flex-start}.terminal-image-wrapper{--avatar-size: 184px;display:flex;justify-content:center;margin-bottom:20px;position:relative}.terminal-image-wrapper:before{content:"";position:absolute;top:50%;left:50%;width:calc(var(--avatar-size) + 14px);height:calc(var(--avatar-size) + 14px);transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;background:conic-gradient(from 0deg,transparent 0deg,transparent 190deg,rgba(var(--accent-rgb),.45) 300deg,rgba(var(--accent-rgb),.95) 352deg,transparent 360deg);mask:radial-gradient(closest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));-webkit-mask:radial-gradient(closest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));filter:drop-shadow(0 0 5px rgba(var(--accent-rgb),.5));animation:avatarRingSweep 4.5s linear infinite}.terminal-profile-small{width:var(--avatar-size);height:var(--avatar-size);flex:0 0 auto;position:relative;border-radius:50%;overflow:hidden;opacity:1;box-shadow:0 0 0 1px rgba(var(--accent-rgb),.22),0 0 34px rgba(var(--accent-rgb),.32);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.terminal-profile-small img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center;display:block}.terminal-profile-small:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-radius:50%;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.09) 0 1px,transparent 1px 3px)}.terminal-profile-small:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;border-radius:50%;pointer-events:none;background:linear-gradient(to bottom,transparent 42%,rgba(var(--accent-rgb),.3) 48%,rgba(var(--accent-rgb),.7) 50%,rgba(var(--accent-rgb),.3) 52%,transparent 58%);mix-blend-mode:screen;animation:avatarScan 3.6s ease-in-out infinite}@keyframes avatarScan{0%{transform:translate3d(0,-100%,0)}to{transform:translate3d(0,100%,0)}}.terminal-image-wrapper:hover .terminal-profile-small{opacity:1;transform:scale(1.04);box-shadow:0 0 26px rgba(var(--accent-rgb),.45)}.terminal-image-wrapper:hover:before{animation-duration:1.6s}@keyframes avatarRingSweep{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.terminal-container{width:100%;max-width:43rem;margin-inline:auto;background:var(--pane-bg);backdrop-filter:var(--pane-filter);-webkit-backdrop-filter:var(--pane-filter);border:1px solid var(--pane-edge);border-radius:var(--r-md);overflow:hidden;box-shadow:inset 0 1px #ffffff24,inset 0 0 60px -20px rgba(var(--accent-rgb),.18),0 30px 90px -30px #000000f2}.terminal-header{background:transparent;border-bottom:1px solid var(--line);padding:var(--sp-3) var(--sp-4);display:flex;align-items:center;gap:var(--sp-3)}.terminal-buttons{display:flex;gap:8px}.terminal-button{width:12px;height:12px;border-radius:50%;display:inline-block}.terminal-button.red,.terminal-button.yellow,.terminal-button.green{background:var(--ink-faint)}.terminal-title{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--ink-mute)}.terminal-content{padding:var(--sp-8);color:var(--ink-dim);text-align:left}.terminal-line{display:flex;align-items:center;gap:12px;margin-bottom:20px;min-width:0}.terminal-name{display:block;white-space:nowrap;font-family:var(--font-mono);font-size:min(2.9rem,4.6vw);font-weight:500;letter-spacing:var(--ls-tightest);line-height:var(--lh-h1);color:var(--ink);margin:0}.terminal-name-word{display:inline}.terminal-name-mark{display:inline-block;width:1.05em;height:1.05em;vertical-align:-.12em;margin-inline:.06em;color:var(--accent)}.terminal-name-mark svg{width:100%;height:100%;display:block}@property --terminal-reveal{syntax: "<percentage>"; inherits: false; initial-value: 100%;}.terminal-bio{margin-top:20px;--terminal-reveal: 100%;mask-image:linear-gradient(to bottom,#000 0%,#000 var(--terminal-reveal),transparent calc(var(--terminal-reveal) + 7%));-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 var(--terminal-reveal),transparent calc(var(--terminal-reveal) + 7%));animation:terminalReveal 1.15s var(--ease) .2s both}@keyframes terminalReveal{0%{--terminal-reveal: 0%}to{--terminal-reveal: 100%}}.terminal-text{font-family:var(--font-body);font-size:var(--fs-md);line-height:1.7;color:var(--ink-dim);max-width:var(--measure);margin:var(--sp-2) 0}.terminal-text-gap{margin-top:var(--sp-5)}.terminal-field{display:flex;gap:var(--sp-3);align-items:baseline}.terminal-field>.terminal-label{flex:0 0 auto}.terminal-status{display:flex;gap:var(--sp-2);align-items:baseline}.terminal-prompt{font-family:var(--font-mono);color:var(--accent);margin-right:var(--sp-2)}.terminal-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--accent)}.terminal-indent{padding-left:var(--sp-4)}.terminal-indent-double{padding-left:var(--sp-8)}.terminal-links-section{margin-top:var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--line)}.bullet,.link-bullet{color:var(--ink-faint);margin-right:var(--sp-2)}.terminal-emphasis{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--ink-mute);font-style:normal}.terminal-link-inline{display:inline;color:var(--accent);text-decoration:underline;text-decoration-color:rgba(var(--accent-rgb),.45);text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--dur) var(--ease),text-decoration-color var(--dur) var(--ease)}.terminal-link-inline:hover,.terminal-link-inline:focus-visible{color:var(--ink);text-decoration-color:var(--ink)}.terminal-links-section .terminal-text{font-size:var(--fs-base);margin:0;padding-block:var(--sp-2)}.status-dot{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 rgba(var(--accent-rgb),.6);animation:statusPulse 2.2s ease-out infinite;vertical-align:middle}@keyframes statusPulse{0%{box-shadow:0 0 rgba(var(--accent-rgb),.5)}70%{box-shadow:0 0 0 7px rgba(var(--accent-rgb),0)}to{box-shadow:0 0 rgba(var(--accent-rgb),0)}}.terminal-cursor-line{display:flex;align-items:center;gap:8px;margin-top:20px}.terminal-cursor{color:var(--primary-accent);font-weight:700;opacity:0;transition:opacity .1s}.terminal-cursor.visible{opacity:1}@media (max-width: 639.98px){.terminal-hero{padding-top:60px}.terminal-content{padding:20px;font-size:.85rem}.terminal-text{font-size:var(--fs-base)}.terminal-indent{padding-left:30px}.terminal-indent-double{padding-left:50px}}@media (max-width: 639.98px){#hero{min-height:auto;padding:80px 15px 40px}}#hero h1{margin-bottom:.5em}@media (max-width: 639.98px){img{max-width:100%;height:auto}.lazy-image-container{max-width:100%}}@media (min-width: 900px){section{padding:120px 50px}}main{display:flex;flex-direction:column;min-height:100vh;width:100%;max-width:100vw;position:relative;z-index:1;overflow-x:hidden;box-sizing:border-box}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#hero h1{animation:none}h1:hover,h2:hover,h3:hover{transform:translateY(-1px);cursor:default}@media (prefers-reduced-motion: reduce){#hero h1{animation:none}h1:hover,h2:hover,h3:hover{transform:none}.terminal-image-wrapper:before,.terminal-image-wrapper:hover:before,.terminal-profile-small:after{animation:none}.terminal-profile-small:after{opacity:0}.terminal-bio{animation:none;--terminal-reveal: 100%}.terminal-image-wrapper:hover .terminal-profile-small{transform:none}}@media (max-width: 639.98px){*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}.page-header{position:relative;z-index:10;display:flex;flex-direction:column;gap:var(--sp-4);width:100%;padding:var(--sp-6) var(--gutter) var(--sp-4)}.page-header>*{pointer-events:auto}@media (max-width: 639.98px){*{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}}@media (max-width: 639.98px){#hero h1:not(.terminal-name){font-size:1.75rem!important}}@media (max-width: 639.98px){#hero h1:not(.terminal-name){font-size:1.5rem!important}}@media (max-width: 899.98px){#hero h1:not(.terminal-name){font-size:2.5rem!important}}@media (max-width: 639.98px){color: var(--primary-accent);transform: translateY(-2px)}.resume-section{padding:40px 20px;max-width:1200px;margin:0 auto}.skills-grid{display:flex;flex-direction:column;gap:1rem}.terminal-page-header{max-width:1200px;margin:0 auto}.page-header-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;max-width:var(--maxw);margin-inline:auto;min-height:44px;transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease)}.page-header-nav.is-hidden{opacity:0;transform:translateY(-14px);pointer-events:none}.page-header-nav.is-visible{opacity:1;transform:translateY(0)}.terminal-nav-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:46px;padding:0 var(--sp-5);background:transparent;border:1px solid var(--line-2);border-radius:var(--r-pill);color:var(--ink);text-decoration:none;font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:500;letter-spacing:var(--ls-wide);line-height:1;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.terminal-nav-button:hover{border-color:var(--accent);color:var(--accent);background:transparent}.return-button-text{font-family:var(--font-mono)}.page-title-section{width:100%;max-width:var(--maxw);margin-inline:auto;text-align:left;padding-top:var(--sp-6)}.page-title-terminal{display:flex;align-items:baseline;gap:var(--sp-3);font-family:var(--font-mono);font-weight:500;font-size:var(--fs-h1);letter-spacing:var(--ls-tightest);line-height:var(--lh-h1);color:var(--ink);margin:0 0 var(--sp-3)}.page-subtitle-terminal{font-family:var(--font-body);font-size:var(--fs-md);line-height:var(--lh-body);color:var(--ink-mute);max-width:var(--measure);margin:0}.page-kicker{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--accent);margin:0 0 var(--sp-3)}@media (max-width: 639.98px){.terminal-nav-button{padding:.4rem .6rem;font-size:.75rem;gap:.3rem;min-height:36px;min-width:108px;white-space:nowrap}.return-button-text{display:inline}.page-header.terminal-page-header{padding:.75rem .5rem 1rem!important}.page-header.terminal-page-header>div:first-child{padding:0 .25rem!important;gap:.5rem!important}.page-title-section{margin-top:2rem;padding-top:.5rem}.page-title-terminal{font-size:1.8rem!important}.page-subtitle-terminal{font-size:.85rem!important}}@media (max-width: 639.98px){.terminal-nav-button{padding:.35rem .5rem;font-size:.7rem;min-height:34px;min-width:96px}.page-header.terminal-page-header>div:first-child{padding:0!important;gap:.35rem!important}}@media (max-width: 639.98px){.terminal-hero{padding-top:28px;padding-bottom:26px}.terminal-container{border-radius:16px;width:100%;max-width:520px}.terminal-header{padding:10px 12px}.terminal-title{font-size:.74rem;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.terminal-content{padding:18px 16px 20px}.terminal-image-wrapper{--avatar-size: 158px;margin-bottom:18px}.terminal-line{margin-bottom:16px}.terminal-name{font-size:min(1.85rem,7vw);letter-spacing:.01em;line-height:1.15}.terminal-text{font-size:var(--fs-base);line-height:1.65}.terminal-field{display:block}.terminal-field>.terminal-label{display:block;margin-bottom:var(--sp-1)}.terminal-prompt,.bullet,.link-bullet{margin-right:6px}.terminal-indent{padding-left:18px}.terminal-indent-double{padding-left:28px}.terminal-links-section{margin-top:12px;padding-top:12px}.terminal-cursor-line{margin-top:14px}}@media (max-width: 639.98px){#hero{padding-left:10px;padding-right:10px}.terminal-content,.terminal-bio,.terminal-links-section,.terminal-text{min-width:0;width:100%}.terminal-content{padding-left:14px;padding-right:14px}.terminal-text{overflow-wrap:break-word;word-break:normal}.terminal-indent{padding-left:10px}.terminal-indent-double{padding-left:16px}.terminal-link-inline svg{height:13px;margin-right:4px!important;width:13px}}.section-label{display:block;margin:0 0 var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--accent)}.display-eyebrow{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sp-1) var(--sp-6);margin:0 0 var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--ink-mute)}.display-eyebrow .eyebrow-role{color:var(--accent)}.display-headline{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-h2);letter-spacing:var(--ls-tighter);line-height:var(--lh-h2);color:var(--ink);margin:0;max-width:var(--measure-display)}.footer-link{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--ink-mute);text-decoration:none;transition:color var(--dur) var(--ease)}.footer-link:hover,.footer-link:focus-visible{color:var(--accent)}.page-main{position:relative;z-index:1;width:100%}@font-face{font-family:Noto JP Rain;src:url(/fonts/noto-jp-rain.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}.rain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;contain:strict}.rain-field{position:absolute;top:0;right:0;bottom:0;left:0}.rain canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.rain-far{filter:blur(1.6px);opacity:.5;transform:scale(1.04)}.rain-mid{opacity:1}.rain-bloom{filter:blur(11px);opacity:1;mix-blend-mode:screen;transform:scale(1.02)}.rain-near{filter:blur(5px);opacity:.28;transform:scale(1.08)}.rain[data-tier="1"] .rain-near,.rain[data-tier="0"] .rain-near,.rain[data-tier="0"] .rain-bloom{display:none}.rain-horizon{position:absolute;inset:-20% -10% auto -10%;height:70%;pointer-events:none;background:radial-gradient(ellipse 55% 60% at 50% 40%,rgba(var(--accent-rgb),.16),transparent 70%);animation:rainHorizon 19s ease-in-out infinite alternate;will-change:transform}@keyframes rainHorizon{0%{transform:translate3d(-9%,0,0) scale(1)}to{transform:translate3d(9%,4%,0) scale(1.12)}}.rain-veil{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to bottom,rgba(7,8,11,.55) 0%,transparent 14%,transparent 80%,rgba(7,8,11,.5) 100%),radial-gradient(ellipse 120% 100% at 50% 50%,transparent 55%,rgba(7,8,11,.4) 100%)}.rain[data-quiet=true] .rain-veil{background:linear-gradient(to bottom,#07080bcc,#07080b99 20%,#07080b99 80%,#07080bcc),radial-gradient(ellipse 120% 100% at 50% 50%,transparent 20%,rgba(7,8,11,.72) 100%)}.rain[data-quiet=true] .rain-horizon{opacity:.32}.rain[data-quiet=true] .rain-bloom{opacity:.4}.rain-scan{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.22) 0px,rgba(0,0,0,.22) 1px,transparent 1px,transparent 3px)}.rain[data-booted=true] .rain-field{animation:rainBootOpen 1.15s cubic-bezier(.16,1,.3,1) both}@keyframes rainBootOpen{0%{clip-path:inset(49.6% 0 49.6% 0);opacity:0}30%{opacity:1}to{clip-path:inset(0 0 0 0);opacity:1}}.rain-boot-line{position:absolute;left:0;right:0;top:50%;height:1px;opacity:0;background:linear-gradient(to right,transparent,rgba(var(--accent-rgb),.9) 20%,#f4f7fb 50%,rgba(var(--accent-rgb),.9) 80%,transparent);box-shadow:0 0 22px 3px rgba(var(--accent-rgb),.55)}.rain[data-booted=true] .rain-boot-line{animation:rainBootLine 1.05s cubic-bezier(.16,1,.3,1) both}@keyframes rainBootLine{0%{opacity:0;transform:scaleX(.2)}18%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}@media (prefers-reduced-motion: reduce){.rain-horizon,.rain[data-booted=true] .rain-field,.rain[data-booted=true] .rain-boot-line{animation:none}.rain-boot-line{display:none}}@media (max-width: 639.98px){.rain-far{filter:blur(2.4px);opacity:.32;transform:scale(1.05)}.rain-mid{filter:blur(.7px);opacity:.66}.rain-bloom{filter:blur(8px);opacity:.42}.rain-scan{opacity:.2}.rain-horizon{opacity:.55}}.op-sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--index-w);display:flex;flex-direction:column;background:var(--pane-bg-strong);backdrop-filter:var(--pane-filter);-webkit-backdrop-filter:var(--pane-filter);border-right:1px solid var(--line);z-index:1200;box-sizing:border-box;padding:var(--sp-5) var(--sp-4) var(--sp-4);transform:translate(-100%);transition:transform var(--dur-slow) var(--ease)}.op-sidebar.open{transform:translate(0)}.op-sidebar-head{position:relative;z-index:1;display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.5rem}.op-brand{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-mono);font-size:var(--fs-md);font-weight:500;letter-spacing:var(--ls-wide);color:var(--ink);text-decoration:none}.op-brand-caret{color:var(--accent);margin-left:1px}.op-sidebar-label,.op-console-label{margin:0;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--accent)}.op-nav{position:relative;z-index:1;display:flex;flex-direction:column;gap:.15rem}.op-nav-link{position:relative;display:flex;align-items:center;gap:var(--sp-3);min-height:44px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border-left:2px solid transparent;font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:500;letter-spacing:var(--ls-wide);color:var(--ink-mute);text-decoration:none;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.op-nav-id{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--ls-wide);color:var(--accent);font-variant-numeric:tabular-nums}.op-nav-label{flex:1}.op-nav-link:hover{color:var(--ink);background:transparent}.op-nav-link.active{color:var(--ink);background:transparent;border-left-color:var(--accent)}.op-nav-link.active .op-nav-id{color:var(--accent)}.op-caret{color:var(--accent);font-weight:700}.op-console{position:relative;z-index:1;margin-top:auto;padding-top:.85rem;border-top:1px solid var(--border)}.op-console-label{margin-bottom:.5rem}.op-console-body{height:132px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.3) transparent;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16px);mask-image:linear-gradient(to bottom,transparent 0,#000 16px)}.op-console-body::-webkit-scrollbar{width:4px}.op-console-body::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.25);border-radius:2px}.op-console-line{margin:0 0 2px;font-family:var(--font-mono);font-size:.6rem;line-height:1.45;letter-spacing:.02em;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.op-console-line.is-event{color:var(--text-secondary)}.op-console-line.is-event:before{content:"› ";color:var(--accent)}.op-topbar{display:none;position:sticky;top:0;z-index:1000;align-items:center;justify-content:space-between;gap:.75rem;height:var(--topbar-h);padding:0 1rem;background:var(--pane-bg-strong);backdrop-filter:var(--pane-filter);-webkit-backdrop-filter:var(--pane-filter);border-bottom:1px solid var(--border)}.op-topbar-route{flex:1;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--ink-mute)}.op-toggle{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:44px;background:transparent;border:1px solid var(--line-2);border-radius:var(--r-pill);padding:0 var(--sp-4);color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:var(--ls-wider);cursor:pointer;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.op-toggle:hover{color:var(--accent);border-color:var(--border-accent)}.op-toggle-bars{position:relative;width:16px;height:10px}.op-toggle-bars span{position:absolute;left:0;width:100%;height:1.5px;background:currentColor;transition:transform .3s ease,opacity .2s ease}.op-toggle-bars span:nth-child(1){top:0}.op-toggle-bars span:nth-child(2){top:4px}.op-toggle-bars span:nth-child(3){top:8px}.op-toggle[aria-expanded=true] .op-toggle-bars span:nth-child(1){transform:translateY(4px) rotate(45deg)}.op-toggle[aria-expanded=true] .op-toggle-bars span:nth-child(2){opacity:0}.op-toggle[aria-expanded=true] .op-toggle-bars span:nth-child(3){transform:translateY(-4px) rotate(-45deg)}.op-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:1100}.op-backdrop.open{opacity:1;pointer-events:auto}.op-content{box-sizing:border-box;min-height:100vh}@media (min-width: 900px){.op-sidebar{transform:none}.op-topbar,.op-backdrop{display:none}.op-content{padding-left:var(--index-w)}.return-button{display:none!important}}@media (max-width: 899.98px){.op-topbar{display:flex}.op-sidebar{width:min(86%,320px);padding-top:1.5rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));overflow-y:auto}.op-console{margin-top:2rem}.op-console-body{height:110px}}@keyframes opLineIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.op-console-line{animation:opLineIn .28s ease both}.op-console-line:nth-child(1){animation-delay:.05s}.op-console-line:nth-child(2){animation-delay:.18s}.op-console-line:nth-child(3){animation-delay:.31s}.op-console-line:nth-child(4){animation-delay:.44s}@media (prefers-reduced-motion: reduce){.op-sidebar,.op-backdrop,.op-toggle-bars span{transition:none}.op-sidebar:after{display:none}.op-console-line{animation:none}}
