@font-face{font-family:Pixelify;src:url('assets/pixelify-sans.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:GeistMono;src:url('assets/geist-mono.ttf') format('truetype');font-display:swap;font-weight:400}
:root{color-scheme:dark;--blue:#2428e8;--white:#f6f5ef;--soft:#d2d3ff;--rule:rgba(246,245,239,.35)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--blue);color:var(--white)}body{font-family:Arial,Helvetica,sans-serif}a{color:inherit}a:focus-visible{outline:2px solid white;outline-offset:5px}.hero{min-height:820px;height:100svh;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 15% 72%,#1217bc 0,transparent 55%),var(--blue)}
.masthead{position:absolute;top:24px;left:3.2%;right:3.2%;z-index:5}.wordmark{text-decoration:none;font-size:25px;letter-spacing:-1px}.pixel-period{font-family:Pixelify;font-size:36px}.name{position:absolute;top:100px;left:3.2%;margin:0;z-index:3;font-size:clamp(60px,6vw,100px);line-height:.85;font-weight:400;letter-spacing:-.045em}.name>span{display:block}.pixel{font-family:Pixelify,Arial,sans-serif;font-weight:400;letter-spacing:-.025em}.name>.pixel{font-size:1.18em;line-height:.86;margin-top:8px}.name-dot{margin-left:-.08em}
.portrait-stage{position:absolute;inset:0;z-index:1;pointer-events:none}.portrait{position:absolute;left:-1%;bottom:0;height:65%;width:52%;object-fit:contain;object-position:left bottom;filter:drop-shadow(16px 16px 26px rgba(5,8,77,.16))}.intro{position:absolute;left:30%;top:46%;width:21%;max-width:290px;z-index:4}.bio{font-size:16px;line-height:1.5;margin:0 0 18px}.socials{display:flex;flex-wrap:wrap;gap:8px}.socials a,.socials button{display:inline-flex;align-items:center;gap:9px;min-height:44px;border:1px solid rgba(246,245,239,.6);padding:10px 12px;font:12px GeistMono,monospace;text-decoration:none;background:transparent;color:var(--white)}.socials a:hover{background:var(--white);color:var(--blue)}.socials a>span:last-child{margin-left:auto}.network{font:15px Arial,sans-serif}.socials .writing-link{background:var(--white);color:var(--blue)}.socials button{opacity:.65;cursor:default}
.stack{position:absolute;right:3.2%;top:26px;z-index:6}.stack h2{font:14px/1.4 GeistMono,monospace;margin:0 0 12px}.stack-grid{--small:64px;display:grid;grid-template-columns:calc(var(--small)*2 + 8px) repeat(3,var(--small));grid-template-rows:repeat(2,var(--small));gap:8px}.stack-tile{background:#12121b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-decoration:none;box-shadow:0 4px 8px #09094b25;transition:transform .18s ease}.stack-tile:hover{transform:translateY(-3px);background:#20202d}.stack-tile img{width:27px;height:27px;object-fit:contain}.stack-tile span{font:10px/1.2 GeistMono,monospace}.stack-main{grid-column:1;grid-row:1 / 3;gap:12px}.stack-main img{width:54px;height:54px;image-rendering:auto}.stack-main span{font-size:14px}.brand-codex img{filter:invert(1)}
.experiences{position:absolute;right:3.2%;top:224px;width:43%;z-index:3}.experiences h2{font-size:clamp(35px,3.5vw,60px);line-height:1;margin:0;font-weight:400;letter-spacing:-.035em;display:flex;align-items:baseline;gap:.25em}.experience-list{margin-top:20px;border-top:1px solid var(--rule)}.experience-row{padding:17px 0;border-bottom:1px solid var(--rule)}.experience-row h3{font-size:22px;line-height:1.2;font-weight:400;margin:0 0 9px;letter-spacing:-.5px}.row-project,.row-date{display:block;font:12px/1.5 GeistMono,monospace;color:var(--soft);margin-top:5px;letter-spacing:0}.experience-row p{font-size:15px;line-height:1.4;margin:0;color:var(--soft)}
@media(max-width:1100px) and (min-width:901px){.hero{min-height:900px}.intro{left:28%;width:23%;top:40%}.stack-grid{--small:56px}.experiences{top:208px}.portrait{height:58%}.name{font-size:6.5vw}}
@media(max-width:900px){.hero{height:auto;min-height:0;display:flex;flex-direction:column;padding:110px 23px 42px}.masthead{top:22px;left:23px}.name{position:static;order:0;font-size:clamp(50px,14vw,88px);margin:0 0 27px}.intro{position:static;order:1;max-width:440px;width:auto}.bio{font-size:16px;line-height:1.5;max-width:36ch}.portrait-stage{position:relative;inset:auto;order:2;height:350px;margin:24px -23px 0;flex-shrink:0}.portrait{height:100%;width:110%;left:-10%;bottom:0}.stack{position:static;order:3;margin-top:32px}.stack-grid{--small:min(64px,calc((100vw - 78px)/5));width:max-content}.stack-tile span{font-size:9px}.stack-main span{font-size:14px}.experiences{position:static;order:4;padding-top:40px;width:100%}.experiences h2{font-size:clamp(31px,8.5vw,55px)}.experience-row{padding:23px 0}.experience-row h3{font-size:25px}.experience-row p{font-size:16px;line-height:1.5}}
@media(prefers-reduced-motion:reduce){.stack-tile{transition:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:900px){.hero{padding-top:32px}}

/* A light pixel-edged tool palette grouped beneath the introduction. */
.stack h2{font:22px/1.2 Pixelify,Arial,sans-serif;letter-spacing:.02em;margin-bottom:16px}.stack-tile{position:relative;background:rgba(255,255,255,.08);box-shadow:none;clip-path:polygon(0 8px,8px 8px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 8px) calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 8px),0 calc(100% - 8px));border:1px solid rgba(246,245,239,.55)}.stack-tile:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.stack-tile:focus-visible{outline:0;background:rgba(255,255,255,.3);box-shadow:inset 0 0 0 3px var(--white)}.stack-tile span{font-family:Pixelify,Arial,sans-serif;font-size:12px}.stack-main{background:var(--white);color:var(--blue);border-color:var(--white)}.stack-main:hover{background:white}.stack-main img{width:60px;height:70px}.stack-main span{font-size:18px}.brand-notion img{filter:invert(1)}
@media(min-width:1051px){.intro{left:28%;top:12%;width:23%;max-width:350px}.stack{left:28%;right:auto;top:calc(12% + 270px)}.stack-grid{--small:min(64px,4.3vw)}.portrait{width:38%;height:66%}.experiences{top:12%}}
@media(min-width:901px) and (max-width:1050px){.hero{height:auto;min-height:0;display:flex;flex-direction:column;padding:40px 32px}.intro{position:static;max-width:500px;width:auto}.stack{position:static;margin-top:32px;order:1}.portrait-stage{position:relative;inset:auto;order:2;height:360px;margin:32px -32px 0}.portrait{height:100%;width:60%;left:0}.experiences{position:static;order:3;width:100%;padding-top:40px}.stack-grid{--small:64px}}
@media(max-width:900px){.stack{order:2;margin-top:30px}.portrait-stage{order:3;margin-top:30px}.experiences{order:4}.stack-main img{width:48px;height:58px}.stack-tile span{font-size:11px}.stack-main span{font-size:17px}}

.brand-hermes img{filter:none}

.stack-main{background:rgba(255,255,255,.08);color:var(--white);border-color:rgba(246,245,239,.55)}
.stack-main:hover{background:rgba(255,255,255,.2)}

.brand-hermes img{background:transparent}

.contact-footer{position:absolute;left:3.2%;right:3.2%;bottom:25px;border-top:1px solid var(--rule);padding-top:19px;display:flex;align-items:center;gap:24px;font:14px/1.5 GeistMono,monospace;z-index:5}.contact-footer>span{color:var(--soft)}.contact-footer a{min-height:44px;display:inline-flex;align-items:center;gap:16px;text-decoration:none}.contact-footer a:hover{text-decoration:underline;text-underline-offset:5px}
@media(min-width:1051px){.portrait{bottom:100px;height:60%}}
@media(max-width:1050px){.contact-footer{position:static;order:5;margin-top:40px;flex-wrap:wrap;gap:6px 20px}.contact-footer a{font-size:13px;overflow-wrap:anywhere}}

/* Align portrait with contact rule and balance the main content vertically. */
@media(min-width:1051px){.contact-footer{height:64px}.portrait{bottom:89px}.intro{top:19%}.stack{top:calc(19% + 270px)}.experiences{top:19%}.experiences h2{font-size:clamp(30px,3.1vw,54px)}}
@media(max-width:1050px){.experiences h2{flex-wrap:wrap;font-size:clamp(28px,6.8vw,48px)}}

.favorite-repo{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;border:1px solid rgba(246,245,239,.55);padding:8px 4px;font:12px/1.4 GeistMono,monospace;text-decoration:none;background:rgba(255,255,255,.08)}
.favorite-repo span{color:var(--soft);white-space:nowrap}.favorite-repo:hover{background:rgba(255,255,255,.2)}
@media(min-width:1051px) and (max-width:1250px){.favorite-repo{font-size:10px}}
@media(max-width:370px){.favorite-repo{font-size:10px;gap:4px}}

.sector-label{display:inline-block;font-size:24px;line-height:1.3;letter-spacing:-.02em}.sector-crypto{color:#f7931a;font-weight:600}.sector-ai{color:#a6f5ff;font-weight:600}.sector-gaming{color:#d9ffad;font-family:Impact,"Arial Black",Arial,sans-serif;font-weight:900;letter-spacing:.005em;-webkit-text-stroke:.35px #15212f;paint-order:stroke fill;text-shadow:1px 1px 0 #15212f,2px 2px 0 #15212f}
@media(max-width:370px){.sector-label{font-size:22px}}

/* A portrait speech bubble opens the longer personal story. */
.about-bubble{position:absolute;left:5%;bottom:calc(60% + 115px);width:20%;max-width:280px;pointer-events:auto;padding:18px 16px;background:var(--white);color:var(--blue);font:22px/1.15 Pixelify,Arial,sans-serif;text-align:center;text-decoration:none;box-shadow:6px 6px 0 #101585}
.about-bubble:after{content:"";position:absolute;top:100%;left:55%;width:16px;height:16px;background:var(--white);clip-path:polygon(0 0,100% 0,0 100%)}
.about-bubble:hover{background:#d9ffad}.about-bubble:hover:after{background:#d9ffad}
.about-page{background:radial-gradient(ellipse at 0 100%,#1217bc,transparent 65%),var(--blue)}
.about-content{width:min(100% - 48px,760px);margin:auto;padding:48px 0 32px}.back-home{display:inline-flex;align-items:center;min-height:44px;font:14px GeistMono,monospace;text-decoration:none}.back-home:hover{text-decoration:underline}.about-content h1{font-size:clamp(56px,10vw,96px);font-weight:400;letter-spacing:-.04em;line-height:1;margin:48px 0 36px}.about-copy{font-size:19px;line-height:1.7}.about-copy p{margin:0 0 26px}.about-copy ul{padding-left:23px;margin:0 0 30px}.about-copy li{padding-left:6px;margin-bottom:14px}.about-contact{border-top:1px solid var(--rule);margin-top:48px;padding-top:20px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;font:14px/1.5 GeistMono,monospace}.about-contact a{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
@media(max-width:1050px){.portrait-stage{height:480px}.portrait{height:350px}.about-bubble{top:0;bottom:auto;left:8%;width:240px;max-width:80%;font-size:22px}.about-content{padding-top:24px}.about-copy{font-size:17px}.about-content h1{margin-top:32px}.contact-footer{column-gap:20px}}

/* Cinematic lettering for AI and a warm, dimensional Bitcoin heading. */
.sector-ai{line-height:1;vertical-align:baseline}.ai-wordmark{display:block;width:76px;height:34px;overflow:visible;filter:drop-shadow(1px 2px 0 #6d143c) drop-shadow(0 0 7px #ff48284d)}
.sector-crypto{color:#ffac38;font-weight:800;letter-spacing:-.035em;-webkit-text-stroke:.3px #ffd58a;paint-order:stroke fill;text-shadow:1px 1px 0 #b3490b,2px 2px 0 #763012,0 0 10px #ff8c2460,0 0 22px #ff8c2426}

.about-bubble .pixel-arrow{display:inline-block;width:18px;height:18px;vertical-align:-2px;shape-rendering:crispEdges}

.sector-ai{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.ai-extension{font:italic 700 23px/1.3 Arial,sans-serif;letter-spacing:-.035em;color:#ff9850;text-shadow:1px 1px 0 #6d143c}.experience-row p+p{margin-top:12px}
@media(min-width:1051px){.hero{min-height:820px}.intro,.experiences{top:clamp(64px,9svh,88px)}.stack{top:calc(clamp(64px,9svh,88px) + 270px)}}

.sector-ai{display:inline-block;line-height:1.3;max-width:100%;vertical-align:baseline}.sector-ai .ai-wordmark{height:24px;width:auto;max-width:100%;filter:drop-shadow(1px 1px 0 #6d143c)}

.mobile-experience-link{display:none}
@media(max-width:1050px){.mobile-experience-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:16px;font:20px/1.2 Pixelify,Arial,sans-serif;text-decoration:none}.mobile-experience-link svg{width:18px;height:18px;shape-rendering:crispEdges}.mobile-experience-link:hover{text-decoration:underline;text-underline-offset:5px}#experience-title{scroll-margin-top:24px}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

.experience-row:last-child{border-bottom:0}

@media(max-width:1050px){.portrait-stage .mobile-experience-link{position:absolute;z-index:2;pointer-events:auto;left:53%;right:0;top:285px;margin:0;max-width:none;font-size:20px;line-height:1.25;gap:0}.portrait-stage .mobile-experience-link span{flex-shrink:0}.portrait-stage .mobile-experience-link svg{flex-shrink:0;margin-inline:auto}}

@keyframes experience-arrow-bob{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
@media(max-width:1050px) and (prefers-reduced-motion:no-preference){.mobile-experience-link svg{animation:experience-arrow-bob 1.6s ease-in-out infinite}}
@media(min-width:1051px){.hero{height:auto;min-height:max(820px,100svh)}.experiences{position:relative;top:auto;right:auto;margin-left:53.8%;padding-top:clamp(64px,9svh,88px);padding-bottom:120px}}
@media(max-width:1050px){.experience-row:last-child{padding-bottom:0}.contact-footer{margin-top:14px;padding-top:8px;gap:0 14px}.hero{padding-bottom:16px}.contact-footer a{min-height:36px}}

.experiences h2>span:not(.pixel){font-size:.84em}

/* Match the optical height of the Gaming heading across different lettering styles. */
.sector-crypto{font-size:22px}
.sector-ai .ai-wordmark{height:21px}
@media(max-width:370px){.sector-crypto{font-size:20px}.sector-ai .ai-wordmark{height:19px}}

.about-copy h2{font:400 clamp(28px,5vw,36px)/1.2 Pixelify,Arial,sans-serif;margin:48px 0 20px;letter-spacing:-.02em}
