:root{--ink:#f8efff;--muted:#afa2ba;--purple:#b58bff;--deep:#100d18;--panel:#191422;--pink:#f3a8d2;--rose:#c66eae;--line:rgba(248,239,255,.18)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--deep);color:var(--ink);font-family:"Space Grotesk",sans-serif;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(rgba(243,168,210,.16) 1px,transparent 1px);background-size:34px 34px;opacity:.28}.grain{position:fixed;inset:0;pointer-events:none;opacity:.04;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.shell{width:min(1160px,calc(100% - 64px));margin:0 auto}.site-header{height:86px;display:flex;align-items:center;gap:35px}.wordmark{font:500 .9rem "DM Mono",monospace;color:var(--ink);text-decoration:none}.wordmark span{color:var(--pink);font-size:1.2rem}.desktop-nav{display:flex;gap:32px;align-items:center;margin-left:auto}.desktop-nav a,.text-link{color:var(--muted);text-decoration:none;font:500 .7rem "DM Mono",monospace;transition:color .2s}.desktop-nav a:hover,.text-link:hover{color:var(--pink)}.availability{border:1px solid var(--line);border-radius:22px;padding:9px 13px;color:var(--muted);font:500 .65rem "DM Mono",monospace}.availability span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#b6e88a;margin-right:6px;box-shadow:0 0 8px #b6e88a}.menu-toggle{display:none;background:none;border:0}.hero{min-height:620px;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:7%;padding:48px 0 100px}.terminal-line{color:var(--muted);font:500 .78rem "DM Mono",monospace}.terminal-line span{color:var(--pink)}.hero h1{font-size:clamp(4.4rem,8.5vw,8.1rem);line-height:.84;letter-spacing:-.1em;margin:30px 0 25px}.hero h1 em,.section-heading em,.about h2 em,.footer h2 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.1em;color:var(--pink)}.hero h1 b{font:400 .6em "DM Mono",monospace;color:var(--purple)}.role{font:1.3rem "DM Mono",monospace;color:var(--purple);margin:0 0 28px}.cursor{display:inline-block;width:11px;height:20px;background:var(--purple);vertical-align:-2px;animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.hero-intro{font-size:1.02rem;line-height:1.6;max-width:470px;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:12px;margin-top:31px}.button{display:inline-flex;align-items:center;gap:26px;padding:14px 19px;border-radius:3px;text-decoration:none;font-size:.78rem;font-weight:600}.button-pink{background:var(--pink);color:#221529}.button-pink span{font-size:1.2rem}.icon-link{display:grid;place-items:center;width:43px;height:43px;border:1px solid var(--line);border-radius:3px;color:var(--ink);text-decoration:none;font:500 .8rem "DM Mono",monospace}.try-terminal{margin-left:8px;color:var(--muted);font:500 .68rem "DM Mono",monospace}.identity-card{position:relative;background:rgba(25,20,34,.92);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 20px 80px rgba(181,139,255,.12);transform:rotate(2deg)}.window-bar{display:flex;align-items:center;gap:17px;padding:14px 17px;border-bottom:1px solid var(--line);color:var(--muted);font:500 .68rem "DM Mono",monospace}.window-bar>span:last-child{margin-left:auto;color:var(--pink)}.window-dots{display:flex;gap:7px}.window-dots i{width:11px;height:11px;border-radius:50%;background:#ee827d}.window-dots i:nth-child(2){background:#f5c382}.window-dots i:nth-child(3){background:#c8df95}.identity-body{display:flex;align-items:center;gap:15px;padding:23px 23px 15px}.avatar{display:grid;place-items:center;width:68px;height:68px;border-radius:10px;background:linear-gradient(145deg,var(--pink),var(--purple));color:var(--deep);font-size:2rem;font-weight:700}.avatar span{font-size:.9rem}.identity-body strong{display:block;font-size:1rem}.identity-body small{display:block;color:var(--muted);font:500 .72rem "DM Mono",monospace;margin-top:7px}.identity-card pre{padding:10px 23px 35px;margin:0;color:var(--muted);font:500 .72rem/2 "DM Mono",monospace;white-space:pre-wrap}.identity-card pre span{color:var(--pink)}.identity-card pre b{color:#e0b9fc;font-weight:400}.card-sticker{position:absolute;right:27px;bottom:28px;transform:rotate(-8deg);color:var(--pink);font:500 .65rem "DM Mono",monospace;text-align:center}.marquee{width:100vw;position:relative;left:50%;margin:0 0 130px -50vw;background:var(--pink);color:#29152b;overflow:hidden;transform:rotate(-2deg) scale(1.03);border-top:1px solid var(--pink);border-bottom:1px solid var(--pink)}.marquee-track{width:max-content;display:flex;align-items:center;gap:40px;padding:14px 0;animation:slide 24s linear infinite;font:500 .7rem "DM Mono",monospace;text-transform:uppercase;will-change:transform}.marquee-track>*{flex:0 0 auto}.marquee-track b{font-size:1.1rem}@keyframes slide{to{transform:translateX(-50%)}}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:46px}.eyebrow{font:500 .68rem "DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--pink)}.section-heading h2,.about h2,.footer h2{font-size:clamp(3rem,5vw,5rem);line-height:.9;letter-spacing:-.09em;margin:20px 0 0}.section-note{max-width:245px;line-height:1.5;color:var(--muted);font-size:.86rem}.filters{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.filter{border:1px solid var(--line);background:transparent;border-radius:3px;padding:9px 14px;color:var(--muted);font:500 .68rem "DM Mono",monospace;cursor:pointer}.filter span{opacity:.55;margin-left:12px}.filter.active,.filter:hover{background:var(--pink);color:#29152b;border-color:var(--pink)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px 24px}.project-card.hidden{display:none}.project-visual{display:block;height:420px;position:relative;overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .3s ease}.project-visual:hover{transform:translateY(-7px)}.project-large .project-visual{height:480px}.project-wide .project-visual{height:350px}.visual-pink{background:#7c4778}.visual-lilac{background:#d9cafa}.visual-rose{background:#a85891}.visual-night{background:#44346e}.project-number{position:absolute;top:20px;left:20px;font:500 .7rem "DM Mono",monospace}.project-arrow{position:absolute;right:20px;top:17px;background:var(--ink);color:var(--deep);width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:1.3rem}.mock-browser{position:absolute;top:78px;left:12%;width:76%;height:75%;background:#f9effb;color:#24162d;border:1px solid #24162d;box-shadow:10px 10px 0 #24162d;transform:rotate(-4deg)}.browser-bar{height:25px;border-bottom:1px solid #24162d;display:flex;align-items:center;gap:5px;padding:7px;font:500 .45rem "DM Mono",monospace}.browser-bar i{width:5px;height:5px;border-radius:50%;border:1px solid #24162d}.browser-bar span{margin-left:auto}.browser-content{padding:55px 38px;display:flex;justify-content:space-between;align-items:center;font-size:2.6rem;line-height:.8;letter-spacing:-.09em}.browser-content b{color:#b45f9e;font-family:Georgia,serif;font-weight:400}.mini-flower{font-size:5rem;color:#e394c4}.phone{position:absolute;top:40px;left:27%;height:390px;width:47%;border:6px solid #29182c;border-radius:27px;background:#fff9fc;color:#29182c;padding:42px 16px 15px;transform:rotate(6deg);box-shadow:10px 10px 0 var(--purple)}.phone-notch{position:absolute;width:45px;height:13px;border-radius:0 0 10px 10px;background:#29182c;top:-1px;left:calc(50% - 22px)}.phone-greeting{font-size:.8rem}.phone-greeting b{float:right;color:var(--rose)}.mood-card{height:150px;background:var(--pink);margin-top:35px;padding:20px 13px;display:flex;flex-direction:column;justify-content:space-between}.mood-card span{font:500 .6rem "DM Mono",monospace}.mood-card strong{font:400 1.35rem Georgia,serif}.phone-row{display:flex;gap:7px;margin-top:25px}.phone-row i{height:6px;flex:1;background:var(--purple);border-radius:5px}.poster{position:absolute;inset:14% 19%;background:#352456;color:#fff1fc;padding:25px;display:flex;flex-direction:column;justify-content:space-between;transform:rotate(-7deg);box-shadow:10px 10px 0 #ed9ecb}.poster span{font-size:2.8rem;line-height:.78;letter-spacing:-.1em}.poster em{font-family:Georgia,serif;color:var(--pink)}.poster small{font:500 .55rem "DM Mono",monospace;text-transform:uppercase}.star-map{position:absolute;inset:0;background:#44346e;color:#fff0fa;overflow:hidden}.star-map span{position:absolute;font-size:1.4rem}.star-map span:nth-child(1){top:20%;left:15%}.star-map span:nth-child(2){top:60%;left:30%}.star-map span:nth-child(3){top:20%;right:20%}.star-map span:nth-child(4){bottom:15%;right:12%}.star-map span:nth-child(5){top:40%;right:35%}.star-map b{position:absolute;top:24%;left:38%;font-size:2.8rem;line-height:.82;letter-spacing:-.1em}.star-map em{font-family:Georgia,serif;color:var(--pink);font-weight:400}.project-meta{display:flex;justify-content:space-between;align-items:start;padding-top:15px}.project-meta h3{font-size:1.05rem;margin:0 0 5px;letter-spacing:-.04em}.project-meta p{color:var(--muted);font:500 .63rem "DM Mono",monospace;margin:0}.pill{border:1px solid var(--line);padding:6px 9px;color:var(--pink);font:500 .6rem "DM Mono",monospace}.about{display:grid;grid-template-columns:150px 1fr 220px;gap:60px;align-items:start;padding:190px 0 200px}.about-sticker{width:130px;height:130px;display:grid;place-items:center;text-align:center;background:var(--purple);color:var(--deep);border-radius:50%;font:500 .7rem "DM Mono",monospace;transform:rotate(-8deg)}.about-sticker span{font-size:1.4rem}.about-copy h2{max-width:570px}.about-copy>p:not(.eyebrow){max-width:550px;color:var(--muted);line-height:1.6;margin:30px 0}.text-link{display:inline-block;border-bottom:1px solid var(--pink);padding-bottom:4px;color:var(--pink)}.skill-list>div{display:flex;flex-direction:column;gap:11px;margin-top:24px}.skill-list span{color:var(--muted);font:500 .7rem "DM Mono",monospace}.skill-list span:before{content:"✦";color:var(--pink);margin-right:8px}.footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:75px 0 40px}.footer h2 span{color:var(--purple);font-size:.5em}.footer-right{display:flex;flex-direction:column;align-items:flex-end;gap:28px}.email-link{color:var(--pink);font-size:1.25rem;text-decoration:none}.socials{display:flex;gap:20px}.socials a{color:var(--muted);font:500 .68rem "DM Mono",monospace;text-decoration:none}.copyright{color:#75697e;font:500 .6rem "DM Mono",monospace;margin-top:35px}.mobile-open{display:flex!important}@media(max-width:760px){.shell{width:min(100% - 36px,550px)}.site-header{height:72px}.desktop-nav,.availability{display:none}.menu-toggle{display:flex;flex-direction:column;gap:6px;margin-left:auto;padding:8px}.menu-toggle span{width:25px;height:1px;background:var(--ink)}.desktop-nav.mobile-open{position:absolute;z-index:5;top:70px;left:18px;right:18px;display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding:20px;background:var(--panel);border:1px solid var(--line)}.hero{display:flex;flex-direction:column;align-items:stretch;gap:55px;padding:60px 0 85px;min-height:0}.hero h1{font-size:clamp(4rem,19vw,6.5rem)}.hero-intro{font-size:.95rem}.hero-actions{flex-wrap:wrap}.try-terminal{width:100%;margin:5px 0 0}.identity-card{transform:rotate(1deg)}.identity-card pre{font-size:.62rem}.marquee{margin-bottom:95px}.section-heading{display:block;margin-bottom:35px}.section-note{margin-top:25px}.project-grid{grid-template-columns:1fr;gap:45px}.project-large .project-visual,.project-visual{height:390px}.project-wide .project-visual{height:320px}.about{display:flex;flex-direction:column;gap:35px;padding:130px 0 135px}.about-sticker{width:105px;height:105px}.skill-list{margin-top:15px}.footer{display:block;padding-top:55px}.footer-right{align-items:flex-start;margin-top:55px}.email-link{font-size:1rem}.copyright{margin-top:15px}}
/* Personal photo card */
.profile-photo{display:block;width:100%;border-radius:14px;aspect-ratio:4/4.5;object-fit:cover;background:linear-gradient(145deg,var(--pink),var(--purple))}
.identity-caption{padding:18px 22px 22px}
.identity-caption strong{display:block;font-size:1.1rem}
.identity-caption small{display:block;color:var(--muted);font:500 .68rem/1.35 "DM Mono",monospace;margin-top:7px}
.identity-caption .certificate{font-size:.58rem;color:var(--purple);margin-top:4px}
.skill-list .skill-cloud{display:flex;flex-wrap:wrap;gap:8px;border-top:0;margin-top:24px}
.skill-list .skill-cloud span{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:8px 10px;border-bottom:1px solid var(--line);font:500 .62rem "DM Mono",monospace;color:var(--ink);background:rgba(181,139,255,.08)}
.life{padding:96px 0 0}.life-carousel{position:relative}.life-feature{aspect-ratio:16 / 9;min-height:0;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--deep)}.life-feature-image{display:block;width:100%;height:100%;object-fit:contain}.carousel-arrow,.carousel-pause{position:absolute;border:1px solid var(--line);background:rgba(16,13,24,.8);color:var(--ink);cursor:pointer}.carousel-arrow{top:50%;width:43px;height:52px;transform:translateY(-50%);font-size:1.3rem}.carousel-prev{left:0;border-radius:0 12px 12px 0}.carousel-next{right:0;border-radius:12px 0 0 12px}.carousel-pause{right:18px;bottom:18px;border-radius:9px;padding:11px 13px;font:500 .62rem "DM Mono",monospace;color:var(--pink)}.life-caption{display:flex;justify-content:space-between;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}.life-count{font:500 .65rem "DM Mono",monospace;color:var(--pink)}.life-title{font-size:1rem}
.identity-card{transform:rotate(0deg);background:var(--panel);border-radius:24px;padding:22px 22px 0}
.window-bar{font-family:"Space Grotesk",sans-serif;text-transform:none}
.window-bar>span:first-child{color:var(--ink);font-size:.8rem}
.icon-link svg{width:14px;height:14px;fill:var(--pink)}
.resume-link{display:inline-flex;align-items:center;gap:5px;color:var(--pink);text-decoration:none;border-bottom:1px solid rgba(243,168,210,.5);padding:4px 0 6px;font:500 .6rem "DM Mono",monospace;letter-spacing:.02em}
.resume-link span{font-size:.8rem;line-height:1}
.project-description{max-width:450px!important;color:var(--muted)!important;font:400 .86rem/1.5 "Space Grotesk",sans-serif!important;text-transform:none!important}
.project-image{display:block;width:100%;height:100%;object-fit:cover}
.project-tags,.project-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.project-tags span{border:1px solid var(--line);border-radius:999px;padding:6px 9px;color:var(--muted);font:500 .58rem "DM Mono",monospace}
.project-links{border-top:1px solid var(--line);padding-top:14px;gap:16px}
.project-links a{color:var(--ink);text-decoration:none;font:500 .62rem "DM Mono",monospace}
.project-links a:hover{color:var(--pink)}
@media(max-width:760px){.life{padding-top:76px}.life-grid{grid-template-columns:1fr;gap:14px}.life-card,.life-card img{min-height:260px;height:260px}.life-feature{aspect-ratio:4 / 3}}

.marquee{margin-bottom:0}.about{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,.8fr);gap:clamp(40px,8vw,110px);align-items:start;padding:80px 0 96px}.about-copy{max-width:720px}.about-copy p:not(.eyebrow){max-width:680px;color:var(--muted);font-size:1rem;line-height:1.75}.about-copy .text-link{display:inline-block;margin-top:12px}.skill-list{padding-top:26px}.skill-list .eyebrow{margin-top:0}
@media(max-width:760px){.about{display:block;padding-top:55px}.about-copy p:not(.eyebrow){font-size:.94rem;line-height:1.65}.skill-list{padding-top:55px}}

.project-visual,.project-large .project-visual,.project-wide .project-visual{height:420px}.project-image,.project-image-contain{object-fit:contain;background:var(--deep)}
@media(max-width:760px){.project-visual,.project-large .project-visual,.project-wide .project-visual{height:390px}}

.hidden-item{padding:96px 0 0}.game-window{border:1px solid var(--line);background:var(--panel);box-shadow:10px 10px 0 rgba(181,139,255,.18)}.game-window-bar,.game-modal-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);font:500 .68rem "DM Mono",monospace;color:var(--pink)}.game-window-body{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:42px 32px}.game-window-body p{margin:0;font-size:1.4rem}.game-window-body .game-subnote{margin-top:12px;color:var(--muted);font-size:.8rem;line-height:1.5}.game-launch{border:0;background:var(--pink);color:#29152b;padding:15px 20px;font:600 .7rem "DM Mono",monospace;cursor:pointer;white-space:nowrap}.game-launch:hover{background:var(--purple)}.game-modal{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(16,13,24,.82)}.game-modal[hidden]{display:none}.game-modal-card{width:min(800px,100%);background:var(--panel);border:1px solid var(--pink);box-shadow:12px 12px 0 rgba(181,139,255,.28)}.game-close{border:0;background:none;color:var(--pink);font-size:1.5rem;cursor:pointer}.game-hud{display:flex;justify-content:space-between;padding:12px 18px;color:var(--muted);font:500 .68rem "DM Mono",monospace}.game-hud b{color:var(--pink)}.game-canvas{display:block;width:100%;height:auto;background:#d9cafa;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none}.game-help{margin:0;padding:12px 18px;color:var(--muted);font:500 .62rem "DM Mono",monospace}@media(max-width:760px){.hidden-item{padding-top:100px}.game-window-body{display:block;padding:28px 22px}.game-launch{margin-top:24px}.game-window-body p{font-size:1.1rem}}

.experience{padding:96px 0 0}.experience-timeline{border-left:1px solid var(--line);margin-left:10px;padding-left:42px}.experience-card{position:relative}.experience-card:before{content:"";position:absolute;left:-49px;top:9px;width:13px;height:13px;border-radius:50%;background:var(--pink);box-shadow:0 0 0 6px var(--deep),0 0 0 7px var(--line)}.experience-date{margin-bottom:14px;color:var(--purple);font:500 .72rem "DM Mono",monospace}.experience-card-body{border:1px solid var(--line);background:var(--panel);padding:30px;border-radius:3px}.experience-card-heading{display:flex;justify-content:space-between;gap:20px;align-items:start}.experience-card h3{margin:0;font-size:1.35rem}.experience-role{margin:8px 0 0;color:var(--pink);font:500 .8rem "DM Mono",monospace}.experience-card-body>p{color:var(--muted);line-height:1.6;margin:24px 0 16px}.experience-card ul{margin:0;padding-left:20px;color:var(--muted);line-height:1.7}.experience-card li+li{margin-top:8px}
@media(max-width:760px){.experience{padding-top:76px}.experience-timeline{padding-left:27px}.experience-card:before{left:-34px}.experience-card-body{padding:22px}.experience-card-heading{display:block}.experience-card-heading .pill{display:inline-block;margin-top:18px}}
