@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Space+Grotesk:wght@400;500;700&display=swap");:root{--bg-color:#020504;--bg-secondary:#04110c;--bg-panel:rgba(3,8,6,0.84);--bg-panel-strong:rgba(4,10,8,0.96);--text-main:#f2f5f4;--text-muted:#a2aba8;--text-soft:#6b7471;--accent:#f2f5f4;--accent-strong:#ffffff;--accent-soft:rgba(255,255,255,0.1);--terminal-glow:rgba(123,255,196,0.16);--terminal-line:rgba(123,255,196,0.42);--terminal-text:rgba(175,255,214,0.82);--line:rgba(255,255,255,0.08);--line-strong:rgba(255,255,255,0.18);--shadow-soft:0 18px 70px rgba(0,0,0,0.34);--shadow-hard:0 30px 120px rgba(0,0,0,0.46);--radius-xl:26px;--radius-lg:18px;--radius-md:12px;--max-width:1160px}[data-theme=light]{--bg-color:#f1f7f4;--bg-secondary:#e2ede7;--bg-panel:rgba(255,255,255,0.75);--bg-panel-strong:rgba(255,255,255,0.92);--text-main:#111315;--text-muted:#5e666b;--text-soft:#81888d;--accent:#111315;--accent-strong:#000000;--accent-soft:rgba(0,0,0,0.06);--line:rgba(0,0,0,0.1);--line-strong:rgba(0,0,0,0.16);--shadow-soft:0 18px 50px rgba(24,49,36,0.1);--shadow-hard:0 28px 90px rgba(24,49,36,0.14)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{min-height:100vh;font-family:Space Grotesk,sans-serif;color:var(--text-main);background:radial-gradient(circle at 18% 10%,rgba(91,255,182,.09),transparent 24%),radial-gradient(circle at 82% 18%,rgba(62,180,255,.07),transparent 20%),radial-gradient(circle at 50% 120%,rgba(91,255,182,.08),transparent 28%),linear-gradient(180deg,rgba(255,255,255,.015),transparent 24%),var(--bg-color);line-height:1.6}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 0);background-size:40px 40px;opacity:.32}a{color:inherit;text-decoration:none}img{max-width:100%}button,input,textarea{font:inherit}.app{position:relative;min-height:100vh;overflow:hidden}.scanlines{opacity:.2;background:repeating-linear-gradient(180deg,transparent,transparent 3px,rgba(255,255,255,.03) 4px),linear-gradient(90deg,transparent,rgba(123,255,196,.02),transparent)}.scanlines,.terminal-stage{position:fixed;inset:0;pointer-events:none;z-index:0}.terminal-stage{overflow:hidden}.terminal-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(91,255,182,.08),transparent 34%),linear-gradient(180deg,rgba(2,10,7,.1),rgba(2,10,7,.6))}.terminal-window{position:absolute;border:1px solid rgba(123,255,196,.12);border-radius:22px;background:linear-gradient(180deg,rgba(5,22,16,.86),rgba(2,9,7,.42)),rgba(2,10,7,.72);box-shadow:inset 0 0 0 1px rgba(123,255,196,.03),0 0 80px rgba(28,131,94,.08);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.terminal-window:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(123,255,196,.03),transparent 28%),linear-gradient(90deg,transparent,rgba(123,255,196,.03),transparent);opacity:.9}.terminal-window--ambient{inset:2.5rem;opacity:.36}.terminal-window__body,.terminal-window__header{position:relative;z-index:1}.terminal-window__header{display:flex;align-items:center;gap:.45rem;padding:.8rem 1rem .55rem;border-bottom:1px solid rgba(123,255,196,.08);color:rgba(193,255,223,.62);font-family:IBM Plex Mono,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.terminal-window__header span{width:.5rem;height:.5rem;border-radius:999px;background:rgba(123,255,196,.28)}.terminal-window__header strong{margin-left:.35rem;font-weight:500}.terminal-window__viewport{position:relative;height:100%;overflow:hidden}.terminal-window__viewport:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,10,7,.16),transparent 14%,transparent 82%,rgba(2,10,7,.42))}.terminal-window__body{display:grid;grid-gap:.6rem;gap:.6rem;padding:1rem 1rem 5rem;animation:terminal-scroll linear infinite}.terminal-line{display:flex;gap:.7rem;align-items:baseline;font-family:IBM Plex Mono,monospace;font-size:.84rem;color:var(--terminal-text);white-space:nowrap;text-shadow:0 0 12px rgba(123,255,196,.12);animation:terminal-flicker 6.8s ease-in-out infinite}.terminal-line__prompt{color:var(--terminal-line)}.matrix-field{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0;-webkit-mask-image:linear-gradient(180deg,transparent,black 18%,black 82%,transparent);mask-image:linear-gradient(180deg,transparent,black 18%,black 82%,transparent);opacity:.24}.matrix-column{position:absolute;top:-45%;display:flex;flex-direction:column;gap:1.3rem;font-family:IBM Plex Mono,monospace;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.19);writing-mode:vertical-rl;-webkit-text-orientation:mixed;text-orientation:mixed;animation-name:matrix-fall;animation-timing-function:linear;animation-iteration-count:infinite}.matrix-column span{text-shadow:0 0 10px rgba(255,255,255,.12)}.site-aura{position:fixed;inset:auto;border-radius:999px;filter:blur(90px);pointer-events:none}.site-aura--one{top:-6rem;right:-5rem;width:24rem;height:24rem;background:rgba(255,255,255,.05)}.site-aura--two{bottom:4rem;left:-7rem;width:20rem;height:20rem;background:rgba(255,255,255,.04)}.site-shell{position:relative;z-index:1;width:min(calc(100% - 2rem),var(--max-width));margin:0 auto;padding:1.1rem 0 4rem}.article-shell,.blog-grid--list,.case-grid,.case-study-container,.contact-layout,.page-container,.page-stack,.project-list,.site-main{display:flex;flex-direction:column;gap:1rem}.admin-header,.blog-card,.blog-post-article,.card,.case-hero,.case-placeholder,.contact-banner,.contact-panel,.feature-card,.hero-panel,.info-box,.navbar,.now-item,.page-footer-link,.page-hero,.project-row,.split-section,.system-bar{position:relative;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.015),transparent),var(--bg-panel);box-shadow:var(--shadow-soft);overflow:hidden}.admin-header:before,.blog-card:before,.blog-post-article:before,.card:before,.case-hero:before,.case-placeholder:before,.contact-banner:before,.contact-panel:before,.feature-card:before,.hero-panel:before,.info-box:before,.navbar:before,.now-item:before,.page-footer-link:before,.page-hero:before,.project-row:before,.split-section:before,.system-bar:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.035),transparent),linear-gradient(180deg,rgba(255,255,255,.015),transparent 35%);pointer-events:none}.admin-header:after,.blog-card:after,.blog-post-article:after,.card:after,.case-hero:after,.case-placeholder:after,.contact-banner:after,.contact-panel:after,.feature-card:after,.hero-panel:after,.info-box:after,.navbar:after,.now-item:after,.page-footer-link:after,.page-hero:after,.project-row:after,.split-section:after,.system-bar:after{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.05);border-radius:inherit;pointer-events:none}.system-bar{flex-wrap:wrap;gap:.6rem 1rem;margin-bottom:.8rem;padding:.6rem 1rem;border-radius:999px;color:var(--text-soft);font-family:IBM Plex Mono,monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.navbar,.system-bar{display:flex;justify-content:space-between}.navbar{position:-webkit-sticky;position:sticky;top:1rem;z-index:30;align-items:center;gap:1rem;margin-bottom:1.2rem;padding:.9rem 1rem;border-radius:18px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.blog-card-tags,.blog-post-meta,.case-actions,.contact-actions,.contact-banner__actions,.eyebrow-row,.hero-actions,.mini-tags,.navbar__actions,.navbar__brand,.navbar__links,.navbar__right,.project-links,.project-tech,.tag-cloud,.tech-stack-list{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem}.navbar__brand{gap:1rem}.navbar__links{gap:.3rem}.navbar__right{gap:.8rem}.navbar__actions{gap:.45rem}.navbar__logo{display:inline-flex;align-items:center;justify-content:center;width:2.7rem;height:2.7rem;border-radius:10px;border:1px solid var(--line-strong);background:rgba(255,255,255,.04)}.navbar__logo-icon{width:28px;height:28px}.nav-link,.navbar__lang-btn,.theme-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.55rem .85rem;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-soft);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;transition:.18s ease}.nav-link.active,.nav-link:hover,.navbar__lang-btn.active,.navbar__lang-btn:hover,.theme-toggle:hover{border-color:var(--line-strong);background:rgba(255,255,255,.05);color:var(--accent-strong)}.navbar__toggle{display:none;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border:1px solid var(--line-strong);border-radius:10px;background:transparent;color:var(--accent-strong);cursor:pointer}.admin-header,.blog-card,.blog-post-article,.card,.case-hero,.case-placeholder,.contact-banner,.contact-panel,.feature-card,.hero-panel,.info-box,.now-item,.page-footer-link,.page-hero,.project-row,.split-section{border-radius:var(--radius-xl);padding:clamp(1.2rem,2vw,2rem)}.blog-card-date,.blog-post-meta,.contact-note,.eyebrow,.feature-index,.hero-kicker,.meta-separator,.now-category,.project-row__meta,.section-label,.stat-label{font-family:IBM Plex Mono,monospace;color:var(--text-soft);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}.eyebrow{padding:.35rem .6rem;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.03)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.8fr);grid-gap:1.5rem;gap:1.5rem;align-items:stretch}.blog-card-main,.blog-post-header,.case-main,.case-sidebar,.contact-list,.contact-panel,.feature-card,.hero-aside,.hero-copy,.project-row__body,.project-row__header,.section-block,.stat-card{display:grid;grid-gap:.9rem;gap:.9rem}.blog-post-title,.case-title,.contact-panel h2,.contact-panel h3,.display-title,.feature-card h3,.info-title,.now-item-title,.page-title,.project-row__title,.section-title{font-family:Space Grotesk,sans-serif;font-weight:700;line-height:.95;letter-spacing:-.045em}.display-title{font-size:clamp(3.4rem,10vw,7rem);max-width:10ch;text-wrap:balance}.display-subtitle{color:var(--accent-strong);font-size:clamp(1.1rem,2vw,1.4rem)}.blog-card-description,.card-text,.case-description,.case-text,.contact-panel p,.hero-description,.hero-lead,.now-item-desc,.page-copy,.project-row__description,.section-copy{color:var(--text-muted);max-width:68ch}.terminal-readout{display:grid;grid-gap:.45rem;gap:.45rem;margin-top:.3rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:rgba(255,255,255,.03);font-family:IBM Plex Mono,monospace;font-size:.78rem;color:var(--text-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3rem;padding:.75rem 1rem;border-radius:12px;border:1px solid var(--line-strong);background:transparent;color:var(--text-main);transition:.18s ease}.btn:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}.btn-primary{background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.04));color:var(--accent-strong)}.btn-secondary{background:rgba(255,255,255,.025)}.portrait-frame{position:relative;min-height:420px;aspect-ratio:4/5;border:1px solid var(--line-strong);border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 18%,rgba(255,255,255,.15),transparent 30%),linear-gradient(180deg,rgba(12,40,30,.9),rgba(2,8,7,.95))}.portrait-hud,.portrait-terminal{position:absolute;left:1rem;right:1rem;z-index:2;display:flex;justify-content:space-between;gap:.6rem;color:rgba(212,255,233,.72);font-family:IBM Plex Mono,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.portrait-hud{top:1rem}.portrait-terminal{bottom:1rem;flex-direction:column;align-items:flex-start;gap:.3rem}.portrait-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(123,255,196,.08) 1px,transparent 0),linear-gradient(90deg,rgba(123,255,196,.08) 1px,transparent 0);background-size:32px 32px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.15),black 35%,black 70%,transparent);mask-image:linear-gradient(180deg,rgba(0,0,0,.15),black 35%,black 70%,transparent);opacity:.34}.portrait-frame:before{content:"";background:radial-gradient(circle at 50% 28%,transparent 18%,rgba(0,0,0,.08) 48%,rgba(0,0,0,.34) 100%),linear-gradient(180deg,rgba(255,255,255,.06),transparent 18%,rgba(0,0,0,.42) 92%);pointer-events:none;z-index:1}.portrait-frame:before,.portrait-image-wrap{position:absolute;inset:0}.portrait-image{object-fit:cover;object-position:center 18%;filter:contrast(1.08) brightness(1.08) saturate(.9)}.stat-card{padding:.95rem 1rem;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03)}.ticker-band{overflow:hidden;padding:.1rem 0;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.025)}.ticker-track{display:flex;gap:2rem;width:max-content;padding:.9rem 1rem;color:var(--text-soft);font-family:IBM Plex Mono,monospace;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;animation:ticker 28s linear infinite}.split-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:1rem;gap:1rem}.page-title,.section-title{font-size:clamp(2.2rem,4vw,4.4rem)}.blog-tag,.mini-tags span,.project-tech-tag,.skill-chip,.tech-tag-pill{display:inline-flex;align-items:center;padding:.45rem .7rem;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.03);color:var(--text-muted);font-family:IBM Plex Mono,monospace;font-size:.78rem}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem}.feature-card{min-height:100%}.feature-card p{color:var(--text-muted)}.back-home-link,.back-link,.blog-back-link,.contact-list__item,.now-link,.resume-link,.text-link{display:inline-flex;align-items:center;gap:.55rem;color:var(--accent-strong)}.back-link:hover,.blog-back-link:hover,.contact-list__item:hover,.now-link:hover,.text-link:hover{color:var(--accent)}.page-hero--compact{max-width:60rem}.project-row{display:grid;grid-template-columns:86px minmax(0,1fr);grid-gap:1rem;gap:1rem}.project-row__meta{padding-top:.3rem}.project-row__header{grid-template-columns:minmax(0,1fr) auto;align-items:start}.project-link{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid var(--line-strong);border-radius:10px}.blog-card--row{display:grid;grid-template-columns:190px minmax(0,1fr);grid-gap:1rem;gap:1rem}.article-shell{max-width:860px;width:100%;margin:0 auto}.blog-post-title{font-size:clamp(2.8rem,7vw,5.2rem)}.prose{display:grid;grid-gap:1rem;gap:1rem;color:var(--text-muted);font-size:1rem}.prose h1,.prose h2,.prose h3,.prose h4{color:var(--text-main);font-size:1.5rem}.prose ol,.prose ul{padding-left:1.3rem}.prose code,.prose pre{font-family:IBM Plex Mono,monospace}.prose pre{overflow-x:auto;padding:1rem;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03)}.prose blockquote{padding-left:1rem;border-left:2px solid var(--accent)}.case-title{font-size:clamp(3rem,7vw,5.6rem)}.case-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.8fr);grid-gap:1rem;gap:1rem;align-items:start}.features-list{display:grid;grid-gap:.65rem;gap:.65rem;list-style:none}.feature-item{display:flex;gap:.6rem;color:var(--text-muted)}.feature-bullet,.now-status-dot{color:var(--accent)}.now-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem}.now-status-dot{width:.55rem;height:.55rem;border-radius:999px;background:var(--accent);box-shadow:0 0 0 .3rem var(--accent-soft)}.contact-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);grid-gap:1rem;gap:1rem}.contact-list{gap:.7rem}.contact-list__item{padding:.9rem 1rem;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.03)}.page-footer-link{padding:1rem 1.2rem}.card{padding:1.4rem}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.form-group{display:grid;grid-gap:.55rem;gap:.55rem}.form-label{color:var(--text-soft);font-family:IBM Plex Mono,monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}.form-input,.form-textarea{width:100%;padding:.85rem 1rem;border:1px solid var(--line-strong);border-radius:12px;background:rgba(255,255,255,.025);color:var(--text-main)}.form-textarea{resize:vertical}table{width:100%}td,th{border-color:var(--line)}@keyframes ticker{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes matrix-fall{0%{transform:translateY(-10%)}to{transform:translateY(130%)}}@keyframes terminal-flicker{0%,to{opacity:.72}50%{opacity:1}}@keyframes terminal-scroll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@media (max-width:960px){.navbar{flex-wrap:wrap}.navbar__toggle{display:inline-flex}.navbar__links{display:none;width:100%;padding-top:.5rem;flex-direction:column;align-items:stretch}.navbar__links--open{display:flex}.blog-card--row,.case-grid,.contact-layout,.feature-grid,.hero-grid,.now-grid,.project-row,.project-row__header,.split-section{grid-template-columns:1fr}}@media (max-width:640px){.site-shell{width:min(calc(100% - 1rem),var(--max-width));padding-top:.8rem}.system-bar{border-radius:18px}.admin-header,.blog-card,.blog-post-article,.card,.case-hero,.case-placeholder,.contact-banner,.contact-panel,.feature-card,.hero-panel,.info-box,.navbar,.now-item,.page-footer-link,.page-hero,.project-row,.split-section{border-radius:18px;padding:1rem}.navbar__right{width:100%;justify-content:space-between}.navbar__actions{flex-wrap:wrap}.display-title{font-size:3rem}.blog-post-title,.case-title,.page-title,.section-title{font-size:2.3rem}.portrait-frame{min-height:320px}.terminal-window{width:auto}.terminal-window--ambient{inset:1rem}}