:root{color-scheme:dark;--bg:#0b0d12;--surface:#151820;--ink:#f7f8fa;--muted:#aeb5c1;--line:rgba(255,255,255,.13);--violet:#ad9dff;--cyan:#71e6d7;--max:1600px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 77% -8%,rgba(112,93,226,.18),transparent 38rem),radial-gradient(circle at -10% 85%,rgba(34,166,156,.08),transparent 34rem)}
a{color:inherit}
a:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}
img{max-width:100%}
.wrap{width:min(var(--max),calc(100% - 48px));margin-inline:auto}
.skip{position:absolute;top:-5rem;left:1rem;z-index:10;padding:.7rem 1rem;background:#fff;color:#08090c}.skip:focus{top:1rem}
.site-header{border-bottom:1px solid rgba(255,255,255,.07)}
.site-header nav{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand-group{display:flex;align-items:baseline;gap:18px;min-width:0}.brand{position:relative;display:inline-block;padding-left:31px;text-decoration:none;font-size:1.33rem;font-weight:850;letter-spacing:-.065em;line-height:1.2}.brand-descriptor{color:#d2d4dc;font-family:"Aptos Display","Segoe UI Variable Display",Inter,ui-sans-serif,system-ui,sans-serif;font-size:1.06rem;font-weight:600;letter-spacing:-.025em;line-height:1.2;white-space:nowrap}
.brand-mark{position:absolute;left:0;top:50%;display:grid;grid-template-columns:repeat(2,7px);grid-template-rows:repeat(2,7px);gap:3px;transform:translateY(-50%) rotate(12deg)}.brand-mark i{display:block;border-radius:2px;background:#9b86ff}.brand-mark i:nth-child(2),.brand-mark i:nth-child(3){background:#64e3d1}
.nav-links{display:flex;align-items:center;gap:28px;font-size:.9rem;font-weight:680}.nav-links a{text-decoration:none;color:#cbd0da}.nav-links a:hover{color:#fff}.nav-links .github-link{padding:.45rem .78rem;border:1px solid var(--line);border-radius:999px;color:#fff}
.spotlight{padding:29px 0 20px}
.intro{margin-bottom:25px}
.eyebrow{display:inline-flex;align-items:center;color:var(--cyan);font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
h1{margin:0;font-size:clamp(2.1rem,5.06vw,5.4rem);line-height:1.04;letter-spacing:-.07em;white-space:nowrap}h1 span{color:#b8acff}
.intro-side{display:flex;align-items:baseline;justify-content:space-between;gap:28px;margin-top:15px}.intro-side p{max-width:850px;margin:0;color:#c0c5d0;font-size:clamp(.99rem,1.3vw,1.13rem)}.intro-side a{flex:none;font-size:.88rem;font-weight:760;text-underline-offset:.28em;color:#d1cbff}
.showcase{display:grid;grid-template-columns:1.44fr 1fr 1fr;gap:14px}
.project{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:19px;background:var(--surface);text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s}.project:hover{transform:translateY(-4px);border-color:rgba(173,157,255,.65);box-shadow:0 22px 50px rgba(0,0,0,.23)}
.project-media{height:clamp(205px,27vh,300px);position:relative;overflow:hidden}.media-label{position:absolute;z-index:2;left:14px;bottom:12px;padding:5px 9px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(9,11,15,.8);backdrop-filter:blur(8px);color:#f6f7f9;font-size:.65rem;font-weight:790;letter-spacing:.07em;text-transform:uppercase}
.qc-media{background:radial-gradient(circle at 67% 0%,rgba(111,93,232,.25),transparent 58%),#171724}.window-frame{position:absolute;left:18px;right:18px;top:22px;overflow:hidden;border:1px solid #48505e;border-radius:12px 12px 0 0;background:#090b0e;box-shadow:0 20px 50px rgba(0,0,0,.55)}.window-frame:before{content:"";display:block;height:20px;background:linear-gradient(90deg,#262c34,#171b22);border-bottom:1px solid #3c4149}.window-frame:after{content:"● ● ●";position:absolute;left:11px;top:1px;color:#7b8593;font-size:12px;letter-spacing:2px}.window-frame img{display:block;width:100%;height:330px;object-fit:cover;object-position:center top}
.sudoku-media{background:radial-gradient(circle at 50% 30%,rgba(223,207,146,.48),transparent 64%),linear-gradient(145deg,#434a37,#202a2b);display:grid;place-items:center}.phone-frame{position:absolute;top:13px;width:139px;height:292px;padding:5px;border:2px solid #25282d;border-radius:23px;background:#111417;box-shadow:0 18px 35px rgba(0,0,0,.45)}.phone-frame img{display:block;width:100%;height:100%;border-radius:17px;object-fit:cover;object-position:center top}
.backgammon-media{display:grid;place-items:center;background:radial-gradient(circle at 50% 36%,rgba(212,146,87,.36),transparent 54%),repeating-linear-gradient(75deg,rgba(255,232,185,.024) 0 2px,transparent 2px 8px),linear-gradient(135deg,#392114,#1e1512)}.backgammon-mark{width:min(57%,206px);aspect-ratio:1;padding:9px;border:1px solid rgba(255,228,195,.18);border-radius:28px;background:rgba(255,242,223,.08);box-shadow:0 24px 45px rgba(0,0,0,.32);transform:rotate(-4deg)}.backgammon-mark img{display:block;width:100%;height:100%;border-radius:20px}
.project-copy{display:flex;flex:1;flex-direction:column;min-height:165px;padding:18px 21px 19px}.project-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-category{color:#9da6b7;font-size:.67rem;font-weight:790;letter-spacing:.09em;text-transform:uppercase}.project-arrow{font-size:1.32rem;line-height:1;color:#afa3ff}.project-title{display:flex;align-items:center;gap:10px;margin:9px 0 5px}.project-title img{width:29px;height:29px;border-radius:7px}.project h2{margin:0;font-size:clamp(1.35rem,1.8vw,1.75rem);line-height:1.1;letter-spacing:-.045em}.project p{margin:0;color:#b8c0ce;font-size:.89rem;line-height:1.45}
.spotlight-note{margin:10px 2px 0;color:#777f8e;font-size:.7rem}
.more-section{margin-top:24px;padding:66px 0 72px;border-top:1px solid var(--line);background:linear-gradient(135deg,rgba(117,103,230,.07),transparent 60%)}.more-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}.more-intro h2{margin:11px 0 15px;font-size:clamp(2rem,3.9vw,3.7rem);line-height:1;letter-spacing:-.06em}.more-intro p{max-width:470px;margin:0;color:var(--muted)}.more-projects{display:grid;gap:12px}.mini-project{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:15px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}.mini-project>img,.py-icon{width:46px;height:46px;border-radius:10px}.mini-project>img{object-fit:contain;background:#fff}.py-icon{display:grid;place-items:center;background:#594de1;font-weight:850}.mini-project h3{margin:0 0 2px;font-size:1.06rem}.mini-project p{margin:0;color:var(--muted);font-size:.83rem}.mini-note{color:#8f98a8;font-size:.7rem;white-space:nowrap}.all-code{display:inline-flex;justify-content:space-between;gap:20px;padding:9px 2px;color:#cfc8ff;font-size:.9rem;font-weight:760;text-underline-offset:.3em}
.footer{padding:28px 0 30px;border-top:1px solid var(--line);color:#929aa9;font-size:.81rem}.footer-row{display:flex;justify-content:space-between;gap:20px}.footer p{margin:0}.footer-links{display:flex;gap:20px}.footer-links a{color:#c7cbd4}.footer .legal-note{margin:8px auto 0;color:#6f7785;font-size:.72rem}
@media(max-width:1030px){h1{font-size:clamp(2rem,4.85vw,3.2rem)}.intro-side{align-items:start}.intro-side p{max-width:680px}.showcase{grid-template-columns:1fr 1fr}.project-qc{grid-column:1/-1}.project-qc .project-media{height:290px}.project-media{height:260px}.project-copy{min-height:145px}.more-layout{gap:35px}}
@media(max-width:690px){.wrap{width:min(100% - 28px,var(--max))}.site-header nav{min-height:60px}.brand-group{gap:13px}.brand-descriptor{font-size:clamp(.78rem,2.8vw,.95rem)}.nav-links{gap:12px}.nav-links a:not(.github-link){display:none}.spotlight{padding-top:27px}.intro{margin-bottom:22px}.intro h1{font-size:clamp(2.35rem,9.4vw,3.4rem);white-space:normal}.intro-side{display:block;margin-top:15px}.intro-side p{font-size:1rem}.intro-side a{display:inline-block;margin-top:12px}.showcase{grid-template-columns:1fr}.project-qc{grid-column:auto}.project-media,.project-qc .project-media{height:245px}.project-copy{min-height:0}.phone-frame{top:12px}.more-section{padding:52px 0}.more-layout{grid-template-columns:1fr;gap:30px}.mini-project{grid-template-columns:42px minmax(0,1fr)}.mini-project>img,.py-icon{width:42px;height:42px}.mini-note{grid-column:2}.footer-row{flex-direction:column}.spotlight-note{margin-top:12px}}
@media(max-width:560px){.site-header .github-link{display:none}}
@media(max-width:360px){.brand-group{gap:9px}.brand-descriptor{font-size:.72rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project{transition:none}}
