:root{--mono:"SFMono-Regular", "Cascadia Code", "Roboto Mono", monospace;--display:Georgia, "Times New Roman", serif;font-family:var(--mono);color:#ddebce;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#101412}*{box-sizing:border-box}body{margin:0}#root{width:100%;min-height:100svh}.playground{background:#101412;min-height:100svh;position:relative;overflow:hidden}.playground:before{content:"";opacity:.12;pointer-events:none;background-image:radial-gradient(#c9d5be .7px,#0000 .7px);background-size:7px 7px;position:absolute;inset:0}.portfolio-shell{z-index:3;flex-direction:column;width:min(1180px,100% - 80px);min-height:100svh;margin:0 auto;padding:34px 0 24px;display:flex;position:relative}.portfolio-nav,.portfolio-footer,.section-heading,.project-row{align-items:center;display:flex}.portfolio-nav{color:#eef6e3c2;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;font-size:11px}.monogram{color:#efffc7;letter-spacing:-.08em;font-size:18px;font-weight:700;text-decoration:none}.monogram span,.portfolio-intro h1 span{color:#e87550}.portfolio-nav nav{gap:28px;margin-left:auto;margin-right:28px;display:flex}.control-toggle{z-index:5;color:#101412;width:40px;height:40px;font:14px/1 var(--mono);cursor:pointer;background:#c5f36c;border:1px solid #c5f36cb8;border-radius:50%;place-items:center;padding:0;transition:color .18s,border-color .18s,transform .18s;display:grid;position:fixed;bottom:20px;right:20px}.control-toggle:hover,.control-toggle:focus-visible{color:#efffc7;background:#e87550;border-color:#efffc7;transform:translateY(-2px)scale(1.04)}.portfolio-nav a,.portfolio-footer a{color:inherit;text-decoration:none}.portfolio-nav nav a:hover,.portfolio-footer a:hover,.project-row:hover{color:#efffc7}.availability{color:#ddefcf80}.availability i{background:#c5f36c;border-radius:50%;width:5px;height:5px;margin:0 8px 1px 0;display:inline-block}.portfolio-intro{max-width:610px;margin-top:clamp(100px,18vh,190px)}.eyebrow{color:#e87550;letter-spacing:.14em;text-transform:uppercase;margin:0 0 17px;font-size:10px}.portfolio-intro h1{color:#efffc7;font-family:var(--display);letter-spacing:-.07em;margin:0;font-size:clamp(64px,10vw,142px);font-weight:400;line-height:.84}.intro-copy{color:#ddefcfa8;max-width:340px;margin-top:30px;font-size:13px;line-height:1.6}.about-section{border-top:1px solid #ddefcf2e;width:min(920px,100%);margin-top:25vh;padding-top:18px}.about-heading{justify-content:space-between;gap:30px;display:flex}.about-heading .eyebrow{margin-bottom:14px}.about-heading h2{color:#efffc7;max-width:470px;font-family:var(--display);letter-spacing:-.04em;margin:0;font-size:clamp(30px,4vw,50px);font-weight:400;line-height:.98}.section-index{color:#ddefcf66;font-size:10px}.about-layout{grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:clamp(30px,8vw,110px);margin-top:48px;display:grid}.about-details .eyebrow{margin-bottom:18px}.about-details ul{color:#ddefcf94;gap:13px;margin:0;padding:0;font-size:11px;line-height:1.5;list-style:none;display:grid}.about-details li:before{content:"/";color:#e87550;width:20px;display:inline-block}.social-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.social-card{color:#eef6e3b8;border:1px solid #ddefcf29;flex-direction:column;gap:18px;min-height:174px;padding:17px;text-decoration:none;transition:border-color .18s,background .18s,transform .18s;display:flex}.social-card:hover,.social-card:focus-visible{background:#c5f36c12;border-color:#c5f36cad;transform:translateY(-3px)}.social-platform{color:#efffc7;letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:8px;font-size:10px;font-weight:700;display:flex}.social-platform svg{color:#c5f36c;width:15px;height:15px}.social-card-linkedin .social-platform svg,.social-card-email .social-platform svg{color:#e87550}.social-platform>span{color:#ddefcf6b;margin-left:auto;font-size:14px;font-weight:400}.profile-row{align-items:center;gap:12px;display:flex}.profile-avatar{object-fit:cover;background:#c5f36c;border-radius:50%;flex:0 0 40px;width:40px;height:40px}.profile-avatar-initials{color:#101412;font-family:var(--display);place-items:center;font-size:17px;display:grid}.profile-avatar-blank{background:#b6c0b1;position:relative;overflow:hidden}.profile-avatar-blank:before{content:"";background:#7d887e;border-radius:50%;width:12px;height:12px;position:absolute;top:9px;left:14px}.profile-avatar-blank:after{content:"";background:#7d887e;border-radius:50% 50% 0 0;height:22px;position:absolute;bottom:-6px;left:6px;right:6px}.profile-info{flex-direction:column;gap:5px;min-width:0;display:flex}.profile-info strong{color:#efffc7;font-size:14px;font-weight:400}.profile-info em,.profile-meta{overflow-wrap:anywhere;font-size:10px;font-style:normal}.profile-info em{color:#ddefcf85}.profile-meta{color:#c5f36c;overflow-wrap:anywhere;margin-top:auto}.portfolio-work{width:min(920px,100%);margin-top:24vh;padding-top:100px}.section-heading{border-bottom:1px solid #ddefcf2e;justify-content:space-between}.section-heading .eyebrow{margin-bottom:11px}.section-heading>span{color:#ddefcf6b;font-size:10px}.github-embed{background:#101412b8;border:1px solid #ddefcf2e;margin-top:28px}.github-embed-header{border-bottom:1px solid #ddefcf24;align-items:center;gap:15px;padding:22px;display:flex}.github-embed-avatar{object-fit:cover;background:#c5f36c;border-radius:50%;flex:0 0 54px;width:54px;height:54px}.github-embed-header h2{color:#efffc7;font-family:var(--display);letter-spacing:-.04em;margin:0 0 5px;font-size:24px;font-weight:400}.github-embed-header p,.github-bio,.repo-main>span,.repo-empty{color:#ddefcf85;margin:0;font-size:11px;line-height:1.6}.github-profile-link{color:#c5f36c;white-space:nowrap;margin-left:auto;font-size:10px;text-decoration:none}.github-bio{max-width:580px;padding:20px 22px 0}.github-stats{color:#ddefcf80;flex-wrap:wrap;gap:22px;padding:20px 22px;font-size:10px;display:flex}.github-stats strong{color:#efffc7;margin-right:5px;font-size:13px;font-weight:400}.contribution-section{padding:0 22px 22px}.contribution-heading{color:#efffc7;justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;font-size:11px;display:flex}.contribution-heading>span{color:#ddefcf80;white-space:nowrap;align-items:center;gap:5px;font-size:9px;display:flex}.contribution-heading i,.contribution-cell{border:1px solid #ddefcf0d;border-radius:2px;width:10px;height:10px;display:block}.contribution-scroll{padding-bottom:3px;overflow-x:auto}.contribution-chart{grid-template-columns:28px minmax(520px,1fr);gap:8px;min-width:556px;display:grid}.weekday-labels{color:#ddefcf66;grid-template-rows:repeat(7,10px);gap:3px;font-size:8px;line-height:10px;display:grid}.weekday-labels span:first-child,.weekday-labels span:nth-child(3),.weekday-labels span:nth-child(5){visibility:hidden}.contribution-grid{grid-template-rows:repeat(7,10px);grid-auto-columns:10px;grid-auto-flow:column;gap:3px;display:grid}.contribution-level-0{background:#ddefcf14}.contribution-level-1{background:#c5f36c47}.contribution-level-2{background:#c5f36c7a}.contribution-level-3{background:#c5f36cb3}.contribution-level-4{background:#c5f36c}.repo-list{border-top:1px solid #ddefcf24}.repo-row{min-height:88px;color:inherit;border-bottom:1px solid #ddefcf24;grid-template-columns:28px minmax(0,1fr) auto 20px;align-items:center;gap:16px;padding:14px 22px;text-decoration:none;transition:background .18s,padding .18s;display:grid}.repo-row:last-child{border-bottom:0}.repo-row:hover{background:#c5f36c0f;padding-left:27px}.repo-number{color:#e87550;font-size:10px}.repo-main{gap:5px;min-width:0;display:grid}.repo-main strong{color:#efffc7;font-size:12px;font-weight:400}.repo-main>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.repo-details{color:#ddefcf70;white-space:nowrap;align-items:center;gap:14px;font-size:9px;display:flex}.repo-details span:first-child{color:#c5f36c}.repo-arrow{color:#c5f36c;font-size:16px}.repo-empty{padding:22px}.project-row{color:#eef6e3b8;border-bottom:1px solid #ddefcf2e;gap:20px;min-height:64px;font-size:12px;text-decoration:none;transition:color .18s,padding .18s}.project-row:hover{padding-left:8px}.project-number{color:#e87550;width:20px;font-size:10px}.project-name{color:#efffc7;flex:1}.project-type{color:#ddefcf7a;font-size:10px}.project-arrow{color:#c5f36c;margin-left:12px;font-size:17px}.portfolio-footer{color:#ddefcf6b;letter-spacing:.04em;justify-content:space-between;margin-top:34px;font-size:10px}@media (width<=700px){.portfolio-shell{width:calc(100% - 40px);padding-top:24px}.portfolio-nav nav{gap:14px;margin-right:0}.availability{display:none}.portfolio-intro{margin-top:18vh}.portfolio-intro h1{font-size:clamp(58px,18vw,100px)}.about-section{margin-top:20vh}.about-layout{grid-template-columns:1fr;gap:32px;margin-top:36px}.social-grid{grid-template-columns:1fr}.portfolio-work{padding-top:72px}.github-embed-header{flex-wrap:wrap;align-items:flex-start}.github-profile-link{width:100%;margin-left:69px}.contribution-section{padding-left:14px;padding-right:14px}.contribution-heading{flex-direction:column;align-items:flex-start;gap:10px}.repo-row{grid-template-columns:24px minmax(0,1fr) 18px;gap:10px;padding:14px}.repo-row:hover{padding-left:18px}.repo-details{flex-wrap:wrap;grid-column:2/3;gap:8px}.repo-arrow{grid-area:1/3/span 2}.project-row{gap:10px}.project-type{display:none}.portfolio-footer{flex-direction:column;align-items:flex-start;gap:9px}}.game-grid{--cell-size:min(2.0833vw, 3.3333svh);--board-width:calc(48 * var(--cell-size));opacity:.27;width:100%;height:auto;position:absolute;inset:0;overflow:hidden}.grid-lines{width:var(--board-width);opacity:.12;background-image:linear-gradient(#d3ebbd21 1px,#0000 1px),linear-gradient(90deg,#d3ebbd21 1px,#0000 1px);background-size:var(--cell-size) var(--cell-size);height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.segment,.apple{top:calc(var(--y) * var(--cell-size));left:calc((50% - (24 * var(--cell-size))) + (var(--x) * var(--cell-size)));width:var(--cell-size);height:var(--cell-size);transition:top .145s linear,left .145s linear;display:block;position:absolute}.segment:after{content:"";background:#c5f36c;position:absolute;inset:18%;box-shadow:0 0 10px #c5f36c1f}.segment.head:after{background:#efffc7}.ambient-snake{opacity:.3}.ambient-snake .segment:after{background:var(--snake-color)}.ambient-snake .segment.head:after{background:var(--snake-head)}.ambient-snake-0{--snake-color:#a96858;--snake-head:#c28c7e}.ambient-snake-1{--snake-color:#668d94;--snake-head:#82a9ad}.ambient-snake-2{--snake-color:#81709f;--snake-head:#9a89b8}.apple{z-index:2;transition:transform .145s linear,opacity .45s,filter .45s}.apple span{background:#ef724e;border-radius:50%;width:44%;height:44%;margin:28%;display:block;box-shadow:0 0 18px #ef724e4d}.snake{z-index:1;position:absolute;inset:0}.snake.is-teleporting .segment{transition:none}.snake.is-dying{animation:.56s ease-in forwards death}.snake:not(.is-dying){animation:.42s ease-out arrival}.apple.is-dying{opacity:0;filter:blur(3px);transform:scale(1.5)}.apple-edge-indicator{--cell-size:min(2.0833vw, 3.3333svh);left:calc((50% - (24 * var(--cell-size))) + (var(--x) * var(--cell-size)));z-index:4;color:#ef724e;width:22px;height:22px;font:700 14px/20px var(--mono);text-align:center;background:#101412e0;border:1px solid #ef724e;border-radius:50%;margin-left:-6px;animation:1.2s ease-in-out infinite indicator-pulse;position:fixed;box-shadow:0 0 14px #ef724e47}.apple-edge-indicator-top{top:14px}.apple-edge-indicator-bottom{bottom:14px}@keyframes death{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.12)}}@keyframes arrival{0%{opacity:0;transform:translate(-7px)rotate(-1deg)}35%{opacity:1;transform:translate(5px)rotate(.8deg)}65%{transform:translate(-2px)rotate(-.3deg)}to{transform:translate(0)rotate(0)}}@keyframes indicator-pulse{0%,to{opacity:.7;transform:scale(.92)}50%{opacity:1;transform:scale(1)}}
