:root{--bg: #141a18;--bg-deep: #101513;--surface: #1d2522;--surface-raised: #232d29;--surface-soft: #18201d;--ink: #f3f7f4;--muted: #b8c4bd;--quiet: #829087;--line: rgba(224, 242, 230, .105);--line-strong: rgba(224, 242, 230, .19);--green: #6ff59a;--green-bright: #91ffb5;--green-dark: #69e991;--green-soft: rgba(111,245,154,.105);--terminal: #111714;--terminal-text: #e3ffeb;--shadow: 0 24px 80px rgba(0, 0, 0, .28);--radius: 24px;--max: 1180px;--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--ease: cubic-bezier(.2,.8,.2,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);scroll-padding-top:96px}body{margin:0;overflow-x:hidden;color:var(--ink);background:radial-gradient(circle at 82% 4%,rgba(73,206,126,.13),transparent 31rem),radial-gradient(circle at 12% 36%,rgba(86,120,255,.055),transparent 30rem),linear-gradient(180deg,#171e1b 0%,var(--bg) 48%,#111714 100%);font-family:var(--sans);line-height:1.55;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(218,242,226,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(218,242,226,.022) 1px,transparent 1px);background-size:68px 68px;mask-image:linear-gradient(to bottom,black,transparent 76%)}main{min-height:70vh}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea{font:inherit}::selection{background:var(--green);color:#0d1511}.container{width:min(calc(100% - 40px),var(--max));margin-inline:auto}.section{padding:108px 0}.site-header{position:fixed;inset:0 0 auto;z-index:100;border-bottom:1px solid transparent;transition:background .28s ease,border-color .28s ease,box-shadow .28s ease}.site-header.is-scrolled{background:#141a18d1;backdrop-filter:blur(20px) saturate(125%);border-color:var(--line);box-shadow:0 12px 36px #00000029}.nav-shell{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:inline-flex;align-items:center;gap:12px}.brand-mark{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:15px;background:#1e2723e0;color:var(--green);box-shadow:0 10px 30px #0003;font:800 .8rem/1 var(--mono)}.brand-mark span{color:var(--green-bright);animation:blink 1.1s steps(1,end) infinite}@keyframes blink{50%{opacity:0}}.brand-copy{display:grid;gap:2px}.brand-copy strong{font-size:1rem}.brand-copy small{color:var(--quiet);font:700 .58rem/1 var(--mono);letter-spacing:.1em}nav{display:flex;align-items:center;gap:clamp(18px,3vw,38px)}nav a{color:var(--muted);font-size:1rem;font-weight:700;transition:color .2s ease}nav a:hover{color:var(--green-bright)}.resume-link{color:#102016;background:var(--green);border-radius:999px;padding:11px 16px;font:800 .68rem/1 var(--mono);box-shadow:0 8px 24px #37d37129}.site-footer{border-top:1px solid var(--line);background:#0c110f5c}.footer-shell{min-height:116px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}.footer-shell>div{display:grid;gap:3px}.footer-shell strong{font-size:.82rem}.footer-shell span,.footer-shell p,.footer-shell a{color:var(--muted);font-size:.68rem}.footer-shell p{margin:0;text-align:center}.footer-shell a{justify-self:end;font-weight:700}[data-reveal]{opacity:1;transform:none}.js [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .65s var(--ease),transform .65s var(--ease)}.js [data-reveal].is-visible{opacity:1;transform:translateY(0)}@media(max-width:760px){.container{width:min(calc(100% - 28px),var(--max))}.section{padding:78px 0}.nav-shell{min-height:66px}.brand-copy{display:none}nav{gap:15px}nav a{font-size:.88rem}.resume-link{display:none}.footer-shell{grid-template-columns:1fr;padding:28px 0}.footer-shell p{text-align:left}.footer-shell a{justify-self:start}}@media(max-width:600px){.container{width:min(calc(100% - 20px),var(--max))}.nav-shell{gap:8px}.brand-mark{width:36px;height:36px;border-radius:11px;font-size:.6rem}nav{gap:clamp(7px,2.2vw,11px)}nav a{font-size:clamp(.8rem,3.35vw,.9rem)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.portfolio-page{overflow:clip}.hero{position:relative;min-height:830px;padding:142px 0 96px;display:grid;align-items:center;isolation:isolate}.hero-ambient{position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 78% 34%,rgba(69,225,131,.12),transparent 24rem),linear-gradient(90deg,#141a18f7,#141a18e6 42%,#141a187a 72%,#141a18c7)}.matrix-whisper{position:absolute;z-index:-1;inset:82px 0 auto;height:570px;pointer-events:none;overflow:hidden;opacity:.1;mask-image:linear-gradient(90deg,transparent,black 35%,black 83%,transparent)}.matrix-whisper span{position:absolute;color:var(--green);font:700 .61rem/1 var(--mono);letter-spacing:.08em;writing-mode:vertical-rl}.matrix-whisper span:nth-child(1){left:4%;top:7%}.matrix-whisper span:nth-child(2){left:12%;top:49%}.matrix-whisper span:nth-child(3){left:22%;top:19%}.matrix-whisper span:nth-child(4){left:31%;top:63%}.matrix-whisper span:nth-child(5){left:43%;top:2%}.matrix-whisper span:nth-child(6){left:54%;top:46%}.matrix-whisper span:nth-child(7){left:64%;top:16%}.matrix-whisper span:nth-child(8){left:73%;top:61%}.matrix-whisper span:nth-child(9){left:82%;top:8%}.matrix-whisper span:nth-child(10){left:90%;top:44%}.matrix-whisper span:nth-child(11){left:96%;top:20%}.matrix-whisper span:nth-child(12){left:36%;top:36%}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.96fr) minmax(520px,1.04fr);align-items:center;gap:clamp(28px,4vw,56px)}.hero-visual{position:relative;min-width:0;align-self:stretch;display:grid;align-content:center;width:100%;max-width:700px;justify-self:end}.operator-console{position:relative;overflow:hidden;width:100%;padding:14px;border:1px solid rgba(132,148,140,.22);border-radius:18px;background:linear-gradient(180deg,#0a0d0c,#060808);box-shadow:0 24px 54px #00000047,inset 0 0 0 1px #ffffff05}.console-header{display:none}.console-header b{color:#b682ff;font-weight:800}.console-live{display:inline-flex;align-items:center;gap:8px;color:#b0beb68f}.console-live i{width:6px;height:6px;border-radius:50%;background:#8d5cff;box-shadow:0 0 10px #8d5cff73}.core-display{position:relative;min-height:520px;overflow:hidden;background:#010201;isolation:isolate;border:1px solid rgba(255,255,255,.08);border-radius:14px;box-shadow:inset 0 0 0 1px #ffffff05,inset 0 24px 56px #ffffff04}.core-display:before{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(180deg,#ffffff04,#fff0 18%,#0000 82%,#ffffff05),repeating-linear-gradient(180deg,rgba(255,255,255,.02) 0,rgba(255,255,255,.02) 1px,transparent 1px,transparent 4px);mix-blend-mode:screen;opacity:.42}.core-display:after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 44%,transparent 34%,rgba(0,0,0,.18) 68%,rgba(0,0,0,.56) 100%)}.systems-core{position:absolute;inset:2px 18px 112px;width:calc(100% - 36px);height:calc(100% - 114px);z-index:0;pointer-events:none;opacity:1;filter:drop-shadow(0 0 10px rgba(111,245,154,.1))}.core-reticle{position:absolute;z-index:2;inset:0;pointer-events:none}.core-reticle i{position:absolute;width:20px;height:20px;border-color:#ffffff24}.core-reticle i:nth-child(1){left:5%;top:5%;border-left:1px solid;border-top:1px solid}.core-reticle i:nth-child(2){right:5%;top:5%;border-right:1px solid;border-top:1px solid}.core-reticle i:nth-child(3){left:5%;bottom:11%;border-left:1px solid;border-bottom:1px solid}.core-reticle i:nth-child(4){right:5%;bottom:11%;border-right:1px solid;border-bottom:1px solid}.core-hud{position:absolute;z-index:3;inset:16px 18px auto;display:flex;justify-content:space-between;gap:18px;color:#6ff59ae0;font:800 .52rem/1 var(--mono);letter-spacing:.09em;pointer-events:none}.core-hud strong{color:#cfe2d57a;font-weight:700}.core-prompt{position:absolute;z-index:4;left:0;right:0;bottom:0;min-height:116px;border-top:1px solid rgba(255,255,255,.08);padding:12px 18px 14px;color:#f8f8f8f5;font:800 .96rem/1.16 var(--mono);letter-spacing:.01em;background:linear-gradient(180deg,#02020200,#030303e0 22%,#030303fb);display:grid;align-content:center;gap:10px}.prompt-symbol{color:#9a6bff;font-weight:900}.prompt-text{color:#fffffff0}.prompt-cursor{display:inline-block;width:12px;height:18px;margin-left:8px;background:#fffffff0;vertical-align:middle;animation:blink-cursor 1s steps(1,end) infinite}@keyframes blink-cursor{0%,47%{opacity:1}48%,to{opacity:0}}.prompt-line{display:flex;align-items:center;flex-wrap:wrap;gap:0}.prompt-line-command{column-gap:0;align-items:center}.prompt-line-output{gap:16px}.prompt-line-next{column-gap:0;align-items:center}.prompt-user{color:var(--green)}.prompt-punctuation{color:#fffffff2}.prompt-dir{color:#a576ff}.prompt-command{color:#fffffff2;margin-left:10px}.dir-item{color:#a576ff}.exe-item{color:#b7ff39}.operator-card,.terminal-top{display:none}.terminal-body{margin:0;border-radius:0;padding:22px 24px;background:linear-gradient(180deg,#0a0f0c,#0b110e);color:var(--terminal-text);box-shadow:none}.terminal-body p{margin:0 0 12px;color:#91a497;font:650 .65rem/1.55 var(--mono)}.terminal-body strong{float:right;color:#eaf7ee;font-weight:700}.terminal-body .terminal-note{margin-top:20px;border-top:1px solid rgba(111,245,154,.09);padding-top:15px;color:#d0e9d7;font-style:italic}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border-top:1px solid rgba(111,245,154,.095);background:#6ff59a18}.profile-stats div{min-height:82px;display:grid;align-content:center;gap:7px;padding:14px 15px;background:#0d1410}.profile-stats strong{font-size:.72rem}.hero-copy{text-shadow:0 1px 30px rgba(0,0,0,.12)}.status-pill{width:fit-content;display:flex;align-items:center;gap:9px;border:1px solid var(--line-strong);border-radius:999px;padding:8px 12px;background:#1b2420b8;color:var(--green-bright);font:760 .58rem/1 var(--mono);letter-spacing:.08em;backdrop-filter:blur(10px)}.status-pill i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px #6ff59a1a,0 0 18px #6ff59ab3}.eyebrow,.section-code{color:var(--green);font:800 .64rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}.eyebrow{margin:32px 0 18px;font-size:.78rem}.work-section .section-code,.gallery-section .section-code,.about-section .section-code,.contact-section .section-code{font-size:.75rem}.work-section .section-head.compact h2{max-width:24ch;letter-spacing:.012em}.hero h1{margin:0;max-width:9ch;font-size:clamp(5.2rem,10.6vw,9.2rem);line-height:.88;letter-spacing:.005em;font-weight:790}.hero-lede{max-width:670px;margin:32px 0 0;color:var(--muted);font-size:clamp(1.1rem,1.8vw,1.34rem);line-height:1.62}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:48px}.button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:999px;padding:0 21px;font:780 .68rem/1 var(--mono);letter-spacing:.05em;transition:transform .22s var(--ease),border-color .22s ease,background .22s ease,box-shadow .22s ease}.button:hover{transform:translateY(-2px);border-color:#6ff59aad}.button.primary{border-color:var(--green);background:var(--green);color:#102016;box-shadow:0 14px 34px #31cd6c2b}.button.primary:hover{box-shadow:0 18px 42px #31cd6c3d}.button.secondary{background:#1d2622b8;backdrop-filter:blur(10px)}.text-link{margin-left:8px;color:var(--green);font-weight:750;font-size:.78rem}.loadout{display:flex;flex-wrap:wrap;gap:8px;margin-top:34px}.loadout span,.tag-row span,.genre-row span{border:1px solid var(--line);border-radius:999px;padding:8px 11px;background:#1e2723b3;color:var(--muted);font:700 .58rem/1 var(--mono);backdrop-filter:blur(8px)}.operator-card{position:relative;z-index:4;overflow:hidden;border:1px solid var(--line-strong);border-radius:26px;background:#1a221fcc;box-shadow:var(--shadow);backdrop-filter:blur(18px) saturate(118%)}.terminal-top{min-height:48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 17px;border-bottom:1px solid var(--line);color:var(--quiet);font:700 .54rem/1 var(--mono)}.terminal-top>span:last-child{justify-self:end;color:var(--green)}.terminal-dots{display:flex;gap:6px}.terminal-dots i{width:8px;height:8px;border-radius:50%;background:#536059}.terminal-dots i:last-child{background:var(--green)}.terminal-body{margin:14px;border-radius:18px;padding:24px;background:#0d1310e6;color:var(--terminal-text);box-shadow:inset 0 0 0 1px #ffffff0d}.terminal-body p{margin:0 0 13px;color:#9db0a4;font:650 .67rem/1.55 var(--mono)}.terminal-body p:last-child{margin-bottom:0}.terminal-body b,.terminal-body span{color:var(--green)}.terminal-body strong{float:right;color:#f0fff4;font-weight:700}.terminal-body .terminal-note{margin-top:24px;border-top:1px solid var(--line);padding-top:17px;color:#dff9e6;font-style:italic}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border-top:1px solid var(--line);background:var(--line)}.profile-stats div{min-height:90px;display:grid;align-content:center;gap:7px;padding:15px;background:#1e2723f0}.profile-stats span{color:var(--quiet);font:750 .49rem/1 var(--mono);letter-spacing:.08em}.profile-stats strong{font-size:.74rem}.work-section{border-top:1px solid var(--line);background:#10161352}.section-head{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:end;margin-bottom:56px}.section-head h2,.about-section h2,.contact-section h2{margin:15px 0 0;max-width:13ch;font-size:clamp(2.8rem,5.7vw,5.5rem);line-height:.92;letter-spacing:-.065em}.section-head>p{margin:0;color:var(--muted);font-size:1.02rem;line-height:1.7}.section-head.compact{grid-template-columns:1fr}.section-head.compact h2{max-width:15ch}.project-list{display:grid;gap:22px}.project-card{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#202925f5,#1a221ff5);box-shadow:0 12px 42px #00000021;transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s ease}.project-card:hover{transform:translateY(-4px);border-color:rgba(var(--project-rgb),.46);box-shadow:0 25px 65px #00000040}.project-media{position:relative;min-height:330px;overflow:hidden;background:#101613}.project-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.03);transition:transform .65s var(--ease),filter .3s ease}.project-card:hover .project-media img{transform:scale(1.028);filter:saturate(1) contrast(1.05)}.project-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 46%,rgba(5,10,7,.7))}.media-overlay{position:absolute;z-index:2;inset:auto 18px 17px;display:flex;justify-content:space-between;color:#ffffffe0;font:750 .56rem/1 var(--mono);letter-spacing:.08em}.project-content{align-self:center;padding:clamp(28px,4.5vw,58px)}.project-heading{display:flex;justify-content:space-between;gap:22px;align-items:flex-start}.project-heading p{margin:0 0 9px;color:var(--quiet);font:740 .55rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.project-heading h3{margin:0;font-size:clamp(1.9rem,3vw,3rem);line-height:1;letter-spacing:-.045em}.genre-chip{flex:none;border:1px solid rgba(var(--project-rgb),.2);border-radius:999px;padding:8px 10px;background:rgba(var(--project-rgb),.105);color:var(--project-accent);font:760 .52rem/1 var(--mono);text-transform:uppercase}.project-role{margin:19px 0 0;color:var(--project-accent);font:760 .66rem/1 var(--mono);letter-spacing:.04em}.project-summary{max-width:740px;margin:17px 0 0;color:var(--muted);font-size:1rem;line-height:1.72}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.tag-row span{background:#0e141173}.project-details{margin-top:27px;border-top:1px solid var(--line)}.project-details summary{list-style:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:20px 0 2px;color:var(--ink);font:780 .69rem/1 var(--mono)}.project-details summary::-webkit-details-marker{display:none}.project-details summary span{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--green);transition:transform .22s ease,background .22s ease}.project-details[open] summary span{transform:rotate(45deg);background:var(--green-soft)}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;padding:28px 0 4px}.details-grid--single{grid-template-columns:minmax(0,1fr)}.details-grid h4{margin:0 0 15px;font-size:.78rem}.details-grid ul{margin:0;padding-left:18px;color:var(--muted)}.details-grid li{margin:8px 0}.highlight-list{display:grid;gap:13px}.highlight-list>div{display:grid;grid-template-columns:82px 1fr;gap:12px}.highlight-list span{color:var(--project-accent);font:800 .52rem/1.4 var(--mono)}.highlight-list p{margin:0;color:var(--muted);font-size:.86rem}.highlight-list strong{display:block;margin-bottom:3px;color:var(--ink)}.gallery-section{position:relative;background:#0a0f0d4f;border-block:1px solid var(--line)}.gallery-section .section-head.compact h2{max-width:18ch}.gallery-slideshow{position:relative;outline:none}.gallery-viewport{position:relative;overflow:hidden;width:100%;aspect-ratio:16 / 9;border:1px solid rgba(255,255,255,.1);border-radius:28px;background:#0c1210;box-shadow:0 24px 70px #0000004d;isolation:isolate;transition:border-color .25s ease,box-shadow .25s ease;touch-action:pan-y}.gallery-slideshow:hover .gallery-viewport{border-color:#6ff59a4d;box-shadow:0 26px 74px #00000057,0 0 0 3px #6ff59a0b,0 0 32px #6ff59a12}.gallery-slide{position:absolute;inset:0;z-index:0;margin:0;opacity:0;visibility:hidden;transform:scale(1.01);transition:opacity 1.15s cubic-bezier(.4,0,.2,1),transform 1.5s var(--ease),visibility 0s linear 1.15s;will-change:opacity,transform}.gallery-slide.is-active{z-index:1;opacity:1;visibility:visible;transform:scale(1);transition-delay:0s}.gallery-slide:after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(4,8,6,.05),transparent 44%,rgba(4,8,6,.2) 65%,rgba(4,8,6,.92));box-shadow:inset 0 0 0 1px #ffffff06,inset 0 0 90px #00000029}.gallery-slide img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.96) contrast(1.025);transform:scale(1);transition:transform 1.15s var(--ease),filter .6s ease}.gallery-slideshow:hover .gallery-slide.is-active img{transform:scale(1.035);filter:saturate(1.04) contrast(1.045)}.gallery-slide figcaption{position:absolute;z-index:2;right:0;bottom:0;left:0;display:grid;gap:9px;padding:clamp(22px,3.2vw,40px) clamp(70px,7vw,92px)}.gallery-slide figcaption span{color:var(--green);font:800 .61rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}.gallery-slide figcaption strong{color:var(--ink);font-size:clamp(1.2rem,2.4vw,2rem);line-height:1.08;text-shadow:0 2px 20px rgba(0,0,0,.72)}.gallery-arrow{position:absolute;z-index:4;top:50%;width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:50%;padding:0;color:var(--ink);background:#070c0a9e;box-shadow:0 10px 28px #00000038;backdrop-filter:blur(12px);cursor:pointer;transform:translateY(-50%);transition:transform .2s var(--ease),border-color .2s ease,background .2s ease}.gallery-arrow:hover,.gallery-arrow:focus-visible{border-color:#6ff59a7a;background:#111b16e0;transform:translateY(-50%) scale(1.06);outline:none}.gallery-arrow--previous{left:22px}.gallery-arrow--next{right:22px}.gallery-navigation{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:18px 4px 0}.gallery-counter{display:flex;align-items:center;gap:8px;margin:0;color:var(--quiet);font:800 .66rem/1 var(--mono);letter-spacing:.08em}.gallery-counter span:first-child{color:var(--green)}.gallery-counter i{color:#ffffff40;font-style:normal}.gallery-dots{display:flex;align-items:center;justify-content:center;gap:8px}.gallery-dot{width:22px;height:4px;border:0;border-radius:999px;padding:0;background:#ffffff2b;cursor:pointer;transition:width .25s var(--ease),background .25s ease,box-shadow .25s ease}.gallery-dot:hover,.gallery-dot:focus-visible{background:#ffffff61;outline:none}.gallery-dot.is-active{width:42px;background:var(--green);box-shadow:0 0 16px #6ff59a3d}.gallery-mobile-hint{display:none}.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(48px,9vw,130px);align-items:start}.about-section h2{max-width:9ch}.about-portrait-column{display:grid;gap:18px}.about-portrait-column .section-code{margin:0}.about-portrait{position:relative;overflow:hidden;width:min(100%,430px);aspect-ratio:2 / 3;margin:0;border:1px solid rgba(168,140,255,.3);border-radius:28px;padding:9px;background:linear-gradient(145deg,#222b27f0,#0f1512fa);box-shadow:0 24px 60px #0000004d,0 0 34px #9d6cff12,inset 0 0 0 1px #ffffff06}.about-portrait:before{content:"";position:absolute;z-index:2;inset:9px;pointer-events:none;border-radius:20px;background:radial-gradient(ellipse at 48% 34%,rgba(255,244,224,.065),transparent 27%),radial-gradient(circle at 27% 17%,rgba(111,245,154,.045),transparent 40%),linear-gradient(145deg,rgba(157,108,255,.03),transparent 43%,rgba(5,10,7,.1)),linear-gradient(180deg,rgba(4,8,6,.08),transparent 34%,rgba(4,8,6,.22)),repeating-linear-gradient(180deg,rgba(255,255,255,.007) 0,rgba(255,255,255,.007) 1px,transparent 1px,transparent 5px);box-shadow:inset 0 0 74px #00000057}.about-portrait:after{content:"";position:absolute;z-index:3;inset:9px;pointer-events:none;border-radius:20px;background:linear-gradient(112deg,rgba(255,255,255,.045),transparent 23%,transparent 72%,rgba(5,9,7,.08));box-shadow:inset 0 0 0 1px #ffffff09}.about-portrait img{width:100%;height:100%;border-radius:20px;object-fit:cover;filter:saturate(.96) sepia(.008)}.about-copy p{margin:0 0 24px;color:var(--muted);font-size:clamp(1.05rem,1.8vw,1.28rem);line-height:1.72}.genre-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:34px}.genre-row span{color:var(--green);background:var(--green-soft);border-color:#6ff59a2e}.contact-section{padding-top:40px}.contact-card{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(310px,.88fr);align-items:center;gap:clamp(34px,6vw,76px);overflow:hidden;border:1px solid rgba(111,245,154,.22);border-radius:30px;padding:clamp(34px,6vw,72px);background:radial-gradient(circle at 86% 20%,rgba(123,77,255,.13),transparent 22rem),radial-gradient(circle at 80% 80%,rgba(111,245,154,.1),transparent 20rem),linear-gradient(135deg,#1c2621,#18201d);box-shadow:var(--shadow)}.contact-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(255,255,255,.012) 0,rgba(255,255,255,.012) 1px,transparent 1px,transparent 4px);opacity:.28}.contact-copy{position:relative;z-index:2}.contact-section h2{max-width:13ch;font-size:clamp(2.7rem,5vw,5rem)}.contact-card p{color:var(--muted)}.contact-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:30px}.contact-method{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:0;border:1px solid rgba(111,245,154,.22);border-radius:16px;padding:16px 18px;background:#080d0b4d;color:var(--text);transition:transform .22s var(--ease),border-color .22s ease,background .22s ease}.contact-method:hover{transform:translateY(-2px);border-color:#9d6cff61;background:#121916b8}.contact-method--primary{border-color:#6ff59a38}.contact-method--primary:hover{border-color:#9d6cff61}.contact-method span{display:grid;min-width:0;gap:7px}.contact-method small,.contact-location small{color:var(--green);font:800 .72rem/1 var(--mono);letter-spacing:.13em;text-transform:uppercase}.contact-method strong{overflow:hidden;font-size:1.02rem;text-overflow:ellipsis;white-space:nowrap}.contact-method b{flex:none;color:var(--purple);font:800 1rem/1 var(--mono)}.contact-location{display:flex;align-items:center;gap:14px;margin-top:18px;color:var(--muted)}.contact-location strong{color:var(--text);font-size:.94rem}.ghost-zone{position:relative;z-index:2;min-height:340px;display:grid;place-items:center;isolation:isolate}.ghost-sprite,.ghost-afterimage{position:absolute;width:clamp(118px,14vw,178px);transform-origin:50% 100%}.ghost-sprite{z-index:3;animation:ghost-hop 2.6s cubic-bezier(.45,.05,.35,1) infinite;filter:drop-shadow(0 0 16px rgba(30,226,232,.22))}.ghost-afterimage{z-index:1;opacity:.12;filter:hue-rotate(12deg) saturate(.7)}.ghost-afterimage-a{transform:translate(-34px,14px) scale(.94);animation:ghost-echo-a 2.6s ease-in-out infinite}.ghost-afterimage-b{transform:translate(-62px,28px) scale(.84);opacity:.055;animation:ghost-echo-b 2.6s ease-in-out infinite}.ghost-shadow{position:absolute;z-index:0;bottom:47px;width:145px;height:22px;border-radius:50%;background:radial-gradient(ellipse,#000000a6,#0000 72%);animation:ghost-shadow 2.6s ease-in-out infinite}.ghost-terminal{position:absolute;z-index:4;right:0;bottom:28px;width:min(190px,52%);border:1px solid rgba(166,112,255,.28);border-radius:14px;padding:15px 16px;background:#050807e6;box-shadow:inset 0 0 0 1px #ffffff06;font-family:var(--mono)}.ghost-terminal span{color:#b7ff39;font-size:.72rem;font-weight:850}.ghost-terminal p{margin:8px 0 0;color:#eef4f0c7;font:700 .66rem/1.5 var(--mono)}.ghost-spark{position:absolute;z-index:5;color:var(--green);font:900 1.2rem/1 var(--mono);text-shadow:0 0 12px rgba(111,245,154,.55);animation:ghost-spark 2.6s steps(2,end) infinite}.spark-one{right:14%;top:22%}.spark-two{left:38%;bottom:30%;animation-delay:.7s}@keyframes ghost-hop{0%,to{transform:translateY(8px) scaleX(1.02) scaleY(.98)}46%{transform:translateY(-18px) scaleX(.97) scaleY(1.03)}56%{transform:translateY(-20px) scaleX(.98) scaleY(1.02)}88%{transform:translateY(7px) scaleX(1.03) scaleY(.96)}}@keyframes ghost-shadow{0%,to{transform:scaleX(1);opacity:.55}52%{transform:scaleX(.72);opacity:.28}}@keyframes ghost-echo-a{0%,to{transform:translate(-30px,17px) scale(.94);opacity:.11}52%{transform:translate(-38px,2px) scale(.9);opacity:.07}}@keyframes ghost-echo-b{0%,to{transform:translate(-58px,30px) scale(.84);opacity:.055}52%{transform:translate(-68px,16px) scale(.8);opacity:.035}}@keyframes ghost-spark{0%,35%,to{opacity:.18;transform:scale(.8) rotate(0)}48%,64%{opacity:.9;transform:scale(1.15) rotate(90deg)}}@media(max-width:980px){.hero{min-height:auto;padding-top:126px}.hero-ambient{background:linear-gradient(180deg,#141a18e8,#141a18ad 58%,#141a18eb)}.hero-grid{grid-template-columns:1fr}.hero-copy{max-width:790px}.hero-visual,.operator-console{max-width:700px}.core-display{min-height:460px}.section-head,.contact-card{grid-template-columns:1fr}.ghost-zone{min-height:300px;max-width:520px}.section-head>p{max-width:720px}.project-card{grid-template-columns:.8fr 1.2fr}.gallery-viewport{aspect-ratio:16 / 10}.contact-directory{max-width:680px}}@media(max-width:720px){.hero{padding:112px 0 68px}.core-display{min-height:372px}.systems-core{inset:-18px 8px 124px;width:calc(100% - 16px);height:calc(100% - 106px);opacity:.94}.core-hud{display:none}.console-header{padding-inline:12px}.console-live{font-size:.48rem}.core-hud strong{display:none}.hero h1{font-size:clamp(4.1rem,21vw,6.7rem)}.terminal-body strong{float:none;display:block;margin-top:2px}.profile-stats{grid-template-columns:1fr}.profile-stats div{min-height:72px}.section-head{gap:22px;margin-bottom:38px}.section-head h2,.about-section h2{font-size:clamp(2.6rem,13vw,4.4rem)}.project-card{grid-template-columns:1fr}.project-media{min-height:245px}.project-heading{display:grid}.genre-chip{width:fit-content}.details-grid,.about-grid{grid-template-columns:1fr}.gallery-viewport{display:flex;gap:12px;width:auto;aspect-ratio:auto;margin-inline:calc((100vw - 100%)/-2);padding:0 calc((100vw - 100%)/2) 8px;overflow-x:auto;overflow-y:hidden;border:0;border-radius:0;background:transparent;box-shadow:none;isolation:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x pan-y}.gallery-viewport::-webkit-scrollbar{display:none}.gallery-slideshow:hover .gallery-viewport{border-color:transparent;box-shadow:none}.gallery-slide,.gallery-slide.is-active{position:relative;inset:auto;z-index:0;flex:0 0 min(84vw,430px);overflow:hidden;aspect-ratio:4 / 3;border:1px solid rgba(255,255,255,.1);border-radius:20px;opacity:1;visibility:visible;transform:none;transition:none;scroll-snap-align:center}.gallery-slide img,.gallery-slideshow:hover .gallery-slide.is-active img{transform:none;filter:saturate(.96) contrast(1.025)}.gallery-slide figcaption{gap:7px;padding:18px}.gallery-slide figcaption span{font-size:.54rem}.gallery-slide figcaption strong{font-size:1.1rem}.gallery-arrow,.gallery-navigation{display:none}.gallery-mobile-hint{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:12px 2px 0;color:var(--quiet);font:760 .58rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.gallery-mobile-hint span{color:var(--green);font-size:.9rem}.contact-card{border-radius:22px}.contact-directory{grid-template-columns:1fr}.ghost-zone{min-height:270px}.ghost-terminal{right:4px;bottom:14px;width:48%}.text-link{width:100%;margin-left:3px}}.core-hud,.terminal-body,.profile-stats,.terminal-top{display:none}@media(max-width:720px){.core-prompt{min-height:112px;padding:10px 12px 12px;font-size:.76rem}.prompt-line-output{gap:10px}}.prompt-line-output{flex-wrap:wrap}.prompt-line-command{white-space:nowrap}.core-reticle{display:none!important}@media(prefers-reduced-motion:reduce){.ghost-sprite,.ghost-afterimage,.ghost-shadow,.ghost-spark{animation:none!important}.ghost-sprite{transform:translateY(0)}}.work-section,.about-section,.contact-section,.hero{position:relative}.page-spark{position:absolute;z-index:0;color:#9d6cff;font:900 1.1rem/1 var(--mono);text-shadow:0 0 12px rgba(157,108,255,.42);opacity:.34;animation:ghost-spark 3.8s steps(2,end) infinite;pointer-events:none}.spark-hero-a{right:10%;top:18%}.spark-hero-b{right:5%;top:48%;animation-delay:1.1s}.spark-work-a{left:5%;top:120px;animation-delay:.6s}.spark-about-a{right:14%;top:70px;animation-delay:.9s}.spark-contact-a{right:14%;top:52px}.spark-contact-b{left:48%;bottom:28px;animation-delay:1.4s}.page-spark--quiet{opacity:.2;font-size:.92rem;animation-duration:4.8s}.spark-work-b{right:3.5%;top:57%;animation-delay:2.15s}.spark-expertise-c{right:17%;bottom:9%;animation-delay:2.65s}.spark-about-c{right:3%;top:46%;animation-delay:1.95s}.ghost-zone{min-height:360px}.ghost-sprite,.ghost-afterimage{width:clamp(132px,15vw,188px);transform-origin:50% 100%}.ghost-sprite{animation:ghost-hop 2.75s cubic-bezier(.45,.05,.35,1) infinite}.ghost-afterimage{filter:hue-rotate(10deg) saturate(.75)}.ghost-afterimage-a{transform:translate(-30px,12px) scale(.96)}.ghost-afterimage-b{transform:translate(-56px,24px) scale(.88);opacity:.05}.ghost-shadow{bottom:43px;width:150px}.ghost-terminal{right:-4px;bottom:22px;width:min(208px,54%);border:1px solid rgba(166,112,255,.22);border-radius:18px;padding:16px 18px;background:linear-gradient(180deg,#101412e0,#080a09eb);box-shadow:0 16px 32px #0003,inset 0 0 0 1px #ffffff06;backdrop-filter:blur(10px)}.ghost-terminal:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,rgba(157,108,255,.06),transparent 52%)}.ghost-terminal span{position:relative;display:inline-flex;align-items:center;gap:8px;color:#b7ff39;font-size:.72rem;font-weight:850;letter-spacing:.08em}.ghost-terminal p{position:relative;margin:9px 0 0;color:#eef4f0d1;font:700 .66rem/1.55 var(--mono)}@keyframes ghost-hop{0%,to{transform:translateY(3px) scale(1)}48%{transform:translateY(-12px) scale(1)}56%{transform:translateY(-13px) scale(1)}88%{transform:translateY(2px) scale(1)}}@keyframes ghost-shadow{0%,to{transform:scaleX(1);opacity:.5}52%{transform:scaleX(.82);opacity:.3}}@keyframes ghost-echo-a{0%,to{transform:translate(-30px,12px) scale(.96);opacity:.11}52%{transform:translate(-36px) scale(.94);opacity:.07}}@keyframes ghost-echo-b{0%,to{transform:translate(-56px,24px) scale(.88);opacity:.05}52%{transform:translate(-62px,10px) scale(.84);opacity:.03}}@media(max-width:980px){.spark-hero-a,.spark-work-a,.spark-about-a,.spark-contact-a,.spark-contact-b{opacity:.24}.ghost-zone{min-height:320px}}@media(max-width:980px){.page-spark--quiet{opacity:.14}}@media(max-width:720px){.page-spark{font-size:1rem}.ghost-terminal{width:52%;right:2px;bottom:10px}.ghost-sprite,.ghost-afterimage{width:clamp(118px,34vw,170px)}}.gallery-section{position:relative}.spark-expertise-a{right:7%;top:18%;animation-delay:.3s}.spark-expertise-b{left:8%;bottom:14%;animation-delay:1.7s}.spark-about-b{left:5%;bottom:18%;animation-delay:1.2s}.spark-contact-c{right:5%;bottom:16%;animation-delay:.45s}.ghost-sprite,.ghost-afterimage{width:clamp(144px,16vw,202px)}.ghost-art{aspect-ratio:176 / 224}.ghost-terminal{border-color:#9d6cff3d;background:linear-gradient(180deg,#1c2420ed,#0c110ef2)}.ghost-terminal span:before{content:"+";color:#9d6cff}@media(max-width:720px){.spark-expertise-a,.spark-expertise-b,.spark-about-b,.spark-contact-c{opacity:.2}.ghost-sprite,.ghost-afterimage{width:clamp(126px,37vw,178px)}}.ghost-zone{min-height:390px}.ghost-sprite,.ghost-afterimage{width:clamp(126px,14vw,176px);transform-origin:50% 100%}.ghost-sprite img,.ghost-afterimage img,.ghost-art{display:block;width:100%;height:auto;image-rendering:pixelated}.ghost-art{aspect-ratio:390 / 552}.ghost-sprite{filter:drop-shadow(0 0 14px rgba(37,230,234,.18));animation:ghost-hop-faithful 2.9s ease-in-out infinite}.ghost-afterimage{opacity:.09;filter:hue-rotate(10deg) saturate(.8)}.ghost-afterimage-a{transform:translate(-24px,10px) scale(.97);animation:ghost-echo-faithful-a 2.9s ease-in-out infinite}.ghost-afterimage-b{transform:translate(-46px,20px) scale(.9);opacity:.04;animation:ghost-echo-faithful-b 2.9s ease-in-out infinite}.ghost-shadow{width:132px;bottom:42px;animation:ghost-shadow-faithful 2.9s ease-in-out infinite}.ghost-terminal{border-color:#9d6cff42;background:linear-gradient(180deg,#111613eb,#090c0af0)}.ghost-terminal span{color:#b7ff39}.ghost-terminal span:before{content:"+";color:#9d6cff;text-shadow:0 0 10px rgba(157,108,255,.45)}@keyframes ghost-hop-faithful{0%,to{transform:translateY(2px)}50%{transform:translateY(-11px)}}@keyframes ghost-shadow-faithful{0%,to{transform:scaleX(1);opacity:.46}50%{transform:scaleX(.83);opacity:.28}}@keyframes ghost-echo-faithful-a{0%,to{transform:translate(-24px,10px) scale(.97);opacity:.09}50%{transform:translate(-30px,-1px) scale(.95);opacity:.06}}@keyframes ghost-echo-faithful-b{0%,to{transform:translate(-46px,20px) scale(.9);opacity:.04}50%{transform:translate(-52px,8px) scale(.88);opacity:.025}}@media(max-width:720px){.ghost-zone{min-height:320px}.ghost-sprite,.ghost-afterimage{width:clamp(110px,34vw,154px)}.ghost-shadow{width:112px;bottom:34px}}.project-media{align-self:start;height:330px;min-height:0}.project-content{align-self:start}.project-details{grid-column:1 / -1;margin:0;padding:0 clamp(28px,4.5vw,58px) clamp(28px,4vw,48px);border-top:1px solid var(--line);background:linear-gradient(180deg,#0c120f2e,#090e0c5c)}.project-details summary{padding:22px 0 4px}.project-card:has(.project-details[open]) .project-media img{object-fit:contain;object-position:center;transform:none;padding:12px;background:radial-gradient(circle at 50% 50%,rgba(var(--project-rgb),.12),#070b09f5 72%)}.project-card:has(.project-details[open]) .project-media:after{background:linear-gradient(180deg,transparent 70%,rgba(5,10,7,.44))}.project-card:has(.project-details[open]):hover .project-media img{transform:none}.project-card--football-simulator .project-media img{object-position:center center}@media(max-width:720px){.project-media{height:245px;min-height:0}.project-details{padding-inline:24px}.project-card:has(.project-details[open]) .project-media img{padding:8px}}.project-media{isolation:isolate}.project-media .project-image{position:absolute;inset:0;width:100%;height:100%}.project-media .project-image-cover{object-fit:cover;opacity:1;transform:scale(1);transition:opacity .42s var(--ease),transform .62s var(--ease),filter .3s ease}.project-media .project-image-full{object-fit:contain;object-position:center;padding:12px;opacity:0;transform:scale(.975);background:radial-gradient(circle at 50% 50%,rgba(var(--project-rgb),.11),#070b09f5 72%);transition:opacity .42s var(--ease),transform .62s var(--ease)}.project-card:hover .project-media .project-image-cover{transform:scale(1.028)}.project-card:has(.project-details[open]) .project-media .project-image-cover{opacity:0;transform:scale(1.018)}.project-card:has(.project-details[open]) .project-media .project-image-full{opacity:1;transform:scale(1)}.project-card:has(.project-details[open]):hover .project-media .project-image-cover,.project-card:has(.project-details[open]):hover .project-media .project-image-full{transform:scale(1)}.project-details{grid-column:1 / -1;margin:0;padding:0;border-top:0;background:transparent}.project-details summary{width:max-content;max-width:calc(100% - 48px);min-height:38px;margin:0 0 18px clamp(24px,4vw,48px);padding:0 13px 0 15px;gap:10px;justify-content:flex-start;border:1px solid rgba(var(--project-rgb),.24);border-radius:999px;background:#080d0b5c;color:#ebf2edd1;transition:border-color .22s ease,background .22s ease,color .22s ease,transform .22s ease}.project-details summary:hover{transform:translateY(-1px);border-color:rgba(var(--project-rgb),.48);background:rgba(var(--project-rgb),.08);color:var(--ink)}.project-details summary>span{width:22px;height:22px;margin-left:2px;border:0;border-radius:6px;background:rgba(var(--project-rgb),.09)}.project-details[open]{border-top:1px solid var(--line);background:linear-gradient(180deg,#0c120f2e,#090e0c5c)}.project-details[open] summary{margin-top:15px;margin-bottom:0;border-color:rgba(var(--project-rgb),.42);background:rgba(var(--project-rgb),.09)}.project-details .details-grid{padding:24px clamp(28px,4.5vw,58px) clamp(28px,4vw,48px);opacity:0;transform:translateY(8px)}.project-details[open] .details-grid{animation:details-reveal .38s var(--ease) forwards}@keyframes details-reveal{to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.project-media .project-image-full{padding:8px}.project-details summary{max-width:calc(100% - 32px);margin-left:16px;margin-bottom:15px}.project-details[open] summary{margin-top:13px}.project-details .details-grid{padding:21px 20px 28px}}.project-details summary{margin-left:auto!important;margin-right:clamp(24px,4vw,48px)!important;padding:0 10px 0 16px!important;gap:13px!important;justify-content:flex-end!important}.project-details summary>span{width:34px!important;height:34px!important;margin-left:2px!important;border-radius:9px!important;font-size:1.55rem!important;font-weight:450!important;line-height:1!important}.project-details[open] summary{margin-left:auto!important;margin-right:clamp(24px,4vw,48px)!important}@media(max-width:720px){.project-details summary,.project-details[open] summary{margin-left:auto!important;margin-right:16px!important}.project-details summary>span{width:32px!important;height:32px!important;font-size:1.45rem!important}}.project-card{position:relative}.project-content{position:relative;padding-bottom:86px}.project-details{grid-column:1 / -1;height:0;min-height:0;margin:0;padding:0;overflow:visible;border:0;background:transparent}.project-details summary{position:absolute;z-index:8;right:clamp(24px,4vw,48px);bottom:24px;width:auto;max-width:none;min-height:46px;margin:0!important;padding:0 15px 0 19px!important;display:inline-flex;align-items:center;justify-content:center!important;gap:14px!important;border:1px solid rgba(var(--project-rgb),.54);border-radius:999px;background:linear-gradient(135deg,rgba(var(--project-rgb),.14),#080d0bf0);color:#f5faf7;box-shadow:0 10px 24px #0003,inset 0 0 0 1px #ffffff06;cursor:pointer;transition:transform .22s var(--ease),border-color .22s ease,background .22s ease,box-shadow .22s ease}.project-details summary:before{content:"";width:7px;height:7px;border-radius:50%;background:#9d6cff;box-shadow:0 0 12px #9d6cffb8}.project-details summary:hover,.project-details summary:focus-visible{transform:translateY(-2px) scale(1.018);border-color:rgba(var(--project-rgb),.92);background:linear-gradient(135deg,rgba(var(--project-rgb),.22),#0a110dfa);box-shadow:0 14px 30px #00000047,0 0 22px rgba(var(--project-rgb),.08);outline:none}.read-more-label{width:auto!important;height:auto!important;margin:0!important;border:0!important;border-radius:0!important;background:none!important;color:inherit!important;font:850 .72rem/1 var(--mono);letter-spacing:.09em;text-transform:uppercase}.read-more-plus{width:auto!important;height:auto!important;margin:-2px 0 0!important;border:0!important;border-radius:0!important;background:none!important;color:#b7ff39!important;font:400 2rem/.8 var(--mono)!important;text-shadow:0 0 12px rgba(183,255,57,.3);transform-origin:50% 52%;transition:transform .3s var(--ease),color .22s ease,text-shadow .22s ease!important;animation:read-more-nudge 2.8s ease-in-out infinite}.project-details summary:hover .read-more-plus{color:#d4ff73!important;text-shadow:0 0 17px rgba(183,255,57,.48)}.project-details[open]{height:auto;margin-top:0;border-top:1px solid var(--line);background:linear-gradient(180deg,#0c120f2e,#090e0c5c)}.project-details[open] summary{bottom:auto;top:15px;right:clamp(24px,4vw,48px);border-color:rgba(var(--project-rgb),.7);background:rgba(var(--project-rgb),.13)}.project-details[open] .read-more-plus{transform:rotate(45deg);animation:none}.project-details .details-grid{padding:78px clamp(28px,4.5vw,58px) clamp(28px,4vw,48px)}@keyframes read-more-nudge{0%,72%,to{transform:translate(0)}79%{transform:translate(2px)}86%{transform:translate(-1px)}}@media(max-width:720px){.project-content{padding-bottom:78px}.project-details summary,.project-details[open] summary{right:16px}.project-details summary{bottom:18px;min-height:43px;padding-inline:15px 13px!important}.project-details[open] summary{top:12px;bottom:auto}.read-more-label{font-size:.68rem}.read-more-plus{font-size:1.86rem!important}.project-details .details-grid{padding:72px 20px 28px}}@media(prefers-reduced-motion:reduce){.read-more-plus{animation:none}}.project-media img,.project-media .project-image,.project-media .project-image-cover,.project-media .project-image-full,.project-card:hover .project-media img,.project-card:hover .project-media .project-image,.project-card:hover .project-media .project-image-cover,.project-card:hover .project-media .project-image-full,.project-card.is-expanded .project-media img,.project-card.is-expanded .project-media .project-image,.project-card.is-expanded .project-media .project-image-cover,.project-card.is-expanded .project-media .project-image-full,.project-card.is-expanded:hover .project-media img,.project-card.is-expanded:hover .project-media .project-image-cover,.project-card.is-expanded:hover .project-media .project-image-full,.project-card:has(.project-details[open]) .project-media img,.project-card:has(.project-details[open]) .project-media .project-image-cover,.project-card:has(.project-details[open]) .project-media .project-image-full{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;padding:0!important;margin:0!important;transform:none!important;scale:1!important;background:transparent!important;transition-property:opacity,filter!important;transition-duration:.34s,.25s!important;transition-timing-function:var(--ease),ease!important}.ghost-sprite .ghost-art,.ghost-afterimage .ghost-art{visibility:visible;aspect-ratio:1!important}.ghost-sprite,.ghost-afterimage{width:clamp(155px,17vw,220px);top:18px}.ghost-terminal{right:0;bottom:8px;border:1px solid var(--line-strong);border-radius:20px;background:linear-gradient(145deg,#232d29f5,#18211dfa);box-shadow:0 14px 38px #0003,inset 0 0 0 1px #ffffff06}.ghost-terminal:before{background:linear-gradient(135deg,rgba(111,245,154,.055),transparent 56%)}.ghost-terminal span:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px #6ff59a85}@media(max-width:720px){.ghost-sprite,.ghost-afterimage{width:clamp(138px,40vw,188px);top:4px}.ghost-terminal{bottom:0}}.project-content{display:flex!important;flex-direction:column!important;padding-bottom:clamp(28px,3vw,34px)!important}.project-bottom-row{width:100%;margin-top:auto;padding-top:20px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-shrink:0}.project-bottom-row .tag-row{flex:1 1 auto;min-width:0;margin:0!important;padding:0!important;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.project-bottom-row .project-toggle{position:relative!important;right:auto!important;bottom:auto!important;flex:0 0 auto;margin:0!important}.project-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto;align-self:flex-end;margin-left:auto}.project-store-link{box-sizing:border-box;height:40px;padding:0 16px;display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(var(--project-rgb),.38);border-radius:999px;background:rgba(var(--project-rgb),.08);color:var(--ink);font:800 .72rem/1 var(--mono);letter-spacing:.045em;white-space:nowrap;transition:transform .22s var(--ease),border-color .22s ease,background .22s ease,box-shadow .22s ease}.project-store-link b{color:var(--project-accent);font-size:1rem;line-height:1}.project-store-link:hover,.project-store-link:focus-visible{transform:translateY(-2px);border-color:rgba(var(--project-rgb),.72);background:rgba(var(--project-rgb),.14);box-shadow:0 11px 24px #0003,0 0 18px rgba(var(--project-rgb),.07);outline:none}.about-section.has-showcase{isolation:isolate;overflow:hidden;border-block:1px solid rgba(168,140,255,.16)}.about-section.has-showcase:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,#0d1310f0,#0d1310e0 46%,#0d1310b3),linear-gradient(180deg,rgba(13,19,16,.58),transparent 34%,rgba(13,19,16,.62)),var(--about-showcase-image) center 46% / cover no-repeat}.about-section.has-showcase .about-grid{position:relative;z-index:1}@media(min-width:721px)and (max-width:1150px){.project-bottom-row{flex-wrap:wrap}.project-actions{width:100%;justify-content:flex-end}}.project-card.is-expanded,.project-card.is-expanded:hover{transform:translateY(-4px)!important}@media(max-width:720px){.project-content{padding-bottom:10px!important}.project-bottom-row{padding-top:18px;gap:14px;align-items:flex-end;flex-wrap:wrap}.project-bottom-row .tag-row{flex:1 0 100%;gap:6px}.project-bottom-row .project-toggle{min-width:124px;height:38px}.project-actions{width:100%;justify-content:center;align-self:center;margin-inline:auto;gap:7px}.project-store-link{height:38px;padding-inline:13px;font-size:.66rem}.about-section.has-showcase:before{background:linear-gradient(180deg,#0d1310e6,#0d1310c2 48%,#0d1310e6),var(--about-showcase-image) center / cover no-repeat}}@media(max-width:480px){.project-bottom-row{align-items:flex-end;flex-wrap:wrap}.project-bottom-row .tag-row span{font-size:.56rem;padding:6px 8px}}.project-media img,.project-media .project-image,.project-media .project-image-cover,.project-media .project-image-full,.project-card:hover .project-media img,.project-card:hover .project-media .project-image,.project-card:hover .project-media .project-image-cover,.project-card:hover .project-media .project-image-full,.project-card.is-expanded .project-media img,.project-card.is-expanded .project-media .project-image,.project-card.is-expanded .project-media .project-image-cover,.project-card.is-expanded .project-media .project-image-full,.project-card.is-expanded:hover .project-media img,.project-card.is-expanded:hover .project-media .project-image-cover,.project-card.is-expanded:hover .project-media .project-image-full,.project-card:has(.project-details[open]) .project-media img,.project-card:has(.project-details[open]) .project-media .project-image-cover,.project-card:has(.project-details[open]) .project-media .project-image-full{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;padding:0!important;margin:0!important;transform:none!important;scale:1!important;background:transparent!important;filter:saturate(.9) contrast(1.03)!important;transition:none!important;animation:none!important;will-change:auto!important}.project-card:not(.is-expanded) .project-media .project-image-cover,.project-card.is-expanded .project-media .project-image-cover{opacity:1!important}.project-card:not(.is-expanded) .project-media .project-image-full,.project-card.is-expanded .project-media .project-image-full{opacity:0!important}@media(min-width:721px){.project-card{grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr)!important}.project-media{height:auto!important;min-height:360px!important;align-self:stretch!important}.project-content{box-sizing:border-box!important;height:auto!important;min-height:360px!important;display:flex!important;flex-direction:column!important;align-self:start!important;padding-top:28px!important;padding-bottom:78px!important}.project-heading{min-height:72px!important;flex-shrink:0!important}.project-role{min-height:1.35em!important;flex-shrink:0!important}.project-summary{min-height:3.5em!important;flex-shrink:0!important}.project-content .tag-row{margin-top:auto!important;padding-right:154px!important}}.project-media .project-image-cover,.project-media .project-image-full,.project-card:not(.is-expanded) .project-media .project-image-cover,.project-card:not(.is-expanded) .project-media .project-image-full,.project-card.is-expanded .project-media .project-image-cover,.project-card.is-expanded .project-media .project-image-full{inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;padding:0!important;background:transparent!important}.project-card.is-expanded .project-media .project-image-cover{opacity:1!important;transform:scale(1)!important}.project-card.is-expanded .project-media .project-image-full{opacity:0!important;transform:scale(1)!important}.project-card.is-expanded:hover .project-media .project-image-cover{transform:scale(1.018)!important}@media(max-width:720px){.project-media{height:280px!important;min-height:280px!important}.project-content{box-sizing:border-box!important;min-height:0!important;display:flex!important;flex-direction:column!important;padding-bottom:72px!important}.project-heading{min-height:68px!important}.project-summary{min-height:4.8em!important}.project-content .tag-row{margin-top:auto!important;padding-right:0!important}}.project-card:not(.is-expanded) .project-media .project-image-cover{opacity:1!important;transform:scale(1)!important;object-fit:cover!important;padding:0!important;background:transparent!important}.project-card:not(.is-expanded) .project-media .project-image-full{opacity:0!important;transform:scale(1.025)!important;object-fit:contain!important}.project-card.is-expanded .project-media .project-image-cover{opacity:0!important;transform:scale(1.018)!important}.project-card.is-expanded .project-media .project-image-full{opacity:1!important;transform:scale(1)!important;object-fit:contain!important;padding:12px!important;background:radial-gradient(circle at 50% 50%,rgba(var(--project-rgb),.12),#070b09f5 72%)!important}.project-details>summary{display:none!important}.project-content{position:relative!important;padding-bottom:78px!important}.project-toggle{position:absolute;right:clamp(24px,4vw,48px);bottom:24px;box-sizing:border-box;display:inline-grid;grid-template-columns:auto 22px;align-items:center;justify-content:center;column-gap:10px;min-width:136px;height:40px;padding:0 13px 0 15px;border:1px solid rgba(var(--project-rgb),.38);border-radius:999px;background:linear-gradient(145deg,#232d29f5,#19221efa);color:#f3f8f5;box-shadow:0 9px 22px #00000038,inset 0 0 0 1px #ffffff06;cursor:pointer;font-family:var(--mono);transition:transform .22s var(--ease),border-color .22s ease,background .22s ease,box-shadow .22s ease}.project-toggle:hover,.project-toggle:focus-visible{transform:translateY(-2px);border-color:rgba(var(--project-rgb),.72);background:linear-gradient(145deg,rgba(var(--project-rgb),.13),#1b2521fa);box-shadow:0 13px 28px #0000003d,0 0 20px rgba(var(--project-rgb),.08);outline:none}.project-toggle-label{display:flex;align-items:center;height:100%;white-space:nowrap;font-size:.75rem;font-weight:800;line-height:1;letter-spacing:.055em}.project-toggle-plus{display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--project-accent);font-size:1.65rem;font-weight:400;line-height:1;text-shadow:0 0 12px rgba(183,255,57,.32);transform-origin:50% 50%;transition:transform .38s var(--ease),color .22s ease,text-shadow .22s ease;animation:project-plus-nudge 2.8s ease-in-out infinite}.project-toggle:hover .project-toggle-plus{color:var(--project-accent);text-shadow:0 0 17px rgba(var(--project-rgb),.42)}.project-card.is-expanded .project-toggle-plus{transform:rotate(45deg);animation:none}.project-details{display:block!important;grid-column:1/-1!important;height:0;margin:0!important;padding:0!important;overflow:hidden!important;opacity:0;border-top:1px solid transparent!important;background:linear-gradient(180deg,#0c120f2e,#090e0c5c)!important;transition:height .48s cubic-bezier(.2,.75,.2,1),opacity .28s ease,border-color .28s ease!important}.project-details.is-opening,.project-details.is-open{opacity:1;border-top-color:var(--line)!important}.project-details .details-grid{padding:30px clamp(28px,4.5vw,58px) clamp(28px,4vw,48px)!important;opacity:1!important;transform:none!important;animation:none!important}@keyframes project-plus-nudge{0%,72%,to{transform:translate(0)}79%{transform:translate(2px)}86%{transform:translate(-1px)}}@media(max-width:720px){.project-content{padding-bottom:72px!important}.project-toggle{right:16px;bottom:18px;min-width:128px;height:38px;padding:0 11px 0 13px;grid-template-columns:auto 20px;column-gap:8px}.project-toggle-label{font-size:.7rem}.project-toggle-plus{width:20px;height:20px;font-size:1.5rem}.project-details .details-grid{padding:26px 20px 28px!important}}@media(prefers-reduced-motion:reduce){.project-details,.project-toggle,.project-toggle-plus{transition:none!important;animation:none!important}}.project-details summary{box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex-flow:row nowrap!important;width:max-content!important;min-width:138px!important;max-width:calc(100% - 32px)!important;min-height:40px!important;padding:0 14px!important;gap:10px!important;overflow:hidden!important;white-space:nowrap!important;border:1px solid rgba(183,255,57,.48)!important;border-radius:8px!important;background:linear-gradient(180deg,#121b16fa,#070c09fc)!important}.project-details summary:before,.project-details summary:after{content:none!important;display:none!important}.project-details summary .read-more-label{display:inline-block!important;flex:0 0 auto!important;width:auto!important;min-width:0!important;margin:0!important;padding:0!important;white-space:nowrap!important;font:800 .64rem/1 var(--mono)!important;letter-spacing:.055em!important;text-transform:none!important}.project-details summary .read-more-plus{display:inline-block!important;flex:0 0 auto!important;order:2!important;width:auto!important;min-width:0!important;height:auto!important;margin:-1px 0 0!important;padding:0!important;border:0!important;background:transparent!important;font:400 1.65rem/.72 var(--mono)!important}@media(max-width:420px){.project-details summary{min-width:130px!important;min-height:38px!important;padding-inline:12px!important;gap:8px!important}.project-details summary .read-more-label{font-size:.6rem!important}.project-details summary .read-more-plus{font-size:1.5rem!important}}.project-content{padding-bottom:72px!important}.project-details summary{min-height:38px!important;padding:0 11px 0 13px!important;gap:9px!important;border-color:#b7ff3942!important;border-radius:8px!important;background:linear-gradient(180deg,#121b16f5,#070c09fa)!important;box-shadow:inset 0 1px #ffffff09,0 8px 20px #0000002e!important}.project-details summary:before{content:">"!important;width:auto!important;height:auto!important;border-radius:0!important;background:none!important;color:#9d6cff!important;font:800 .72rem/1 var(--mono)!important;text-shadow:0 0 10px rgba(157,108,255,.52)!important}.project-details summary:hover,.project-details summary:focus-visible{transform:translateY(-2px)!important;border-color:#b7ff398f!important;background:linear-gradient(180deg,#18241cfa,#090f0bfc)!important;box-shadow:inset 0 1px #ffffff0b,0 10px 24px #0000003d,0 0 18px #b7ff3912!important}.read-more-label{font:800 .61rem/1 var(--mono)!important;letter-spacing:.075em!important;white-space:nowrap!important}.read-more-plus{font:400 1.72rem/.72 var(--mono)!important;margin-top:-1px!important}.project-details[open] summary{border-color:#9d6cff6b!important;background:linear-gradient(180deg,#1b1628e6,#0a0c0cfa)!important}@media(max-width:720px){.project-content{padding-bottom:66px!important}.project-details summary{min-height:36px!important;padding:0 10px 0 12px!important;gap:8px!important}.read-more-label{font-size:.58rem!important}.read-more-plus{font-size:1.58rem!important}}.project-details summary{display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;flex-wrap:nowrap!important;white-space:nowrap!important;width:auto!important;min-width:0!important}.project-details summary:before{content:none!important;display:none!important}.read-more-label{flex:0 0 auto!important;white-space:nowrap!important}.read-more-plus{flex:0 0 auto!important;margin-left:9px!important;order:2!important}
