:root{color:#f7effa;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;--paper:#0c0910;--paper-deep:#17111c;--ink:#f7effa;--muted:#b8acbd;--line:#382a42;--accent:#ff9dd2;--accent-dark:#c49aff;--purple-deep:#281535;--serif:"DM Serif Display", Georgia, serif;--mono:"IBM Plex Mono", Consolas, monospace;background:#0c0910;font-family:DM Sans,Segoe UI,sans-serif;font-weight:400}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px;scroll-padding-top:6rem}body{min-width:320px;margin:0}body,button,a{font-family:DM Sans,Segoe UI,sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}a:focus-visible{outline-offset:4px;border-radius:3px;outline:3px solid #ff9dd2}img{max-width:100%;display:block}p{margin:0}::selection{color:var(--ink);background:var(--accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.site-shell{overflow:clip}.section-wrap{width:min(100% - 3rem,1160px);margin-inline:auto}.hero{grid-template-columns:minmax(0,1.15fr) minmax(280px,.75fr);align-items:center;gap:clamp(3rem,9vw,8rem);min-height:min(760px,100svh - 76px);padding-block:6.5rem 7rem;display:grid;position:relative}.hero:before{z-index:-1;aspect-ratio:1;content:"";border:1px solid #382a42;border-radius:50%;width:35rem;position:absolute;top:12%;right:-8rem}.hero-copy{max-width:650px}.eyebrow{color:var(--muted);font-family:var(--mono);letter-spacing:.045em;text-transform:uppercase;align-items:center;gap:.65rem;font-size:.69rem;line-height:1.5;display:flex}.status-dot{background:#ff9dd2;border-radius:50%;flex:none;width:.5rem;height:.5rem;box-shadow:0 0 0 4px #ff9dd22b}.hero h1{font-family:var(--serif);letter-spacing:-.075em;margin:1.35rem 0 .6rem;font-size:clamp(5rem,10.5vw,9.7rem);font-weight:400;line-height:.82}.hero h1 span,.section-heading h2 span,.contact-section h2 span{color:#c49aff;font-style:italic;font-weight:400}.typewriter-line{min-height:2rem;color:var(--accent-dark);font-family:var(--mono);margin-top:1.7rem;font-size:clamp(.82rem,1.5vw,1rem)}.typewriter-cursor{margin-left:.12em;animation:.85s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.hero-intro{max-width:550px;color:var(--muted);margin-top:.8rem;font-size:clamp(1rem,1.6vw,1.12rem);line-height:1.8}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.65rem;margin-top:2rem;display:flex}.button{border-radius:3px;justify-content:center;align-items:center;gap:1.15rem;min-height:3.25rem;padding:.8rem 1.15rem;font-size:.87rem;font-weight:600;text-decoration:none;transition:transform .18s,background-color .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{color:var(--ink);background:var(--accent)}.button-primary:hover{background:#ffb9df}.text-link{color:var(--ink);text-underline-offset:.28rem;align-items:center;gap:.45rem;font-size:.84rem;font-weight:600;text-decoration-color:#a681bd;display:inline-flex}.text-link:hover{text-decoration-thickness:2px}.hero-note{color:var(--muted);align-items:center;gap:.65rem;margin-top:3rem;font-size:.76rem;display:flex}.note-star{color:#ff9dd2;font-size:1.3rem}.hero-portrait{justify-self:center;width:min(100%,360px);margin:0;transform:rotate(2deg)}.portrait-frame{background:#211829;padding:.75rem .75rem 2.8rem;position:relative;box-shadow:0 24px 70px #00000070,0 3px 10px #bd78ff1c}.portrait-frame>div{background:var(--paper-deep);overflow:hidden}.portrait-image{aspect-ratio:.83;object-fit:cover;width:100%;transition:transform .4s}.portrait-frame:hover .portrait-image{transform:scale(1.035)}.portrait-sticker{aspect-ratio:1;width:6.1rem;color:var(--ink);background:var(--accent);font-family:var(--mono);text-align:center;border:1px solid #ffb5dd;border-radius:50%;place-content:center;font-size:.65rem;line-height:1.45;display:grid;position:absolute;bottom:1.5rem;right:-1.7rem;transform:rotate(9deg)}.hero-portrait figcaption{color:var(--muted);font-family:var(--mono);text-align:center;margin-top:1rem;font-size:.62rem;line-height:1.6}.scroll-cue{color:var(--muted);font-family:var(--mono);align-items:center;gap:.65rem;font-size:.67rem;text-decoration:none;display:inline-flex;position:absolute;bottom:2rem;left:0}.scroll-cue span{color:var(--accent-dark);font-size:1rem}.content-section{border-top:1px solid var(--line);grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(2rem,8vw,8rem);padding-block:7.5rem;display:grid}.section-heading h2,.contact-section h2{font-family:var(--serif);letter-spacing:-.055em;margin:1rem 0 0;font-size:clamp(2.8rem,5.2vw,5rem);font-weight:400;line-height:.98}.about-copy{max-width:540px;padding-top:1.7rem}.about-copy p{color:var(--muted);font-size:.97rem;line-height:1.85}.about-copy .lead-copy{color:var(--ink);font-family:var(--serif);margin-bottom:1.2rem;font-size:1.45rem;line-height:1.45}.personal-note{align-items:center;gap:.55rem;margin-top:1.7rem;display:flex;font-size:.82rem!important}.personal-note span{color:#ff9dd2;font-size:1.2rem}.projects-section{background:var(--paper-deep);padding-block:7rem 7.5rem}.projects-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.8rem;display:flex}.projects-heading>.text-link{margin-bottom:.45rem}.featured-projects{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.focus-section{padding-block:7.5rem;display:block}.focus-section>.section-heading{margin-bottom:2.7rem}.focus-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.focus-card{border-right:1px solid var(--line);min-height:250px;padding:1.5rem 1.5rem 1.7rem}.focus-card:first-child{padding-left:0}.focus-card:last-child{border-right:0;padding-right:0}.focus-number{color:#bc90d5;font-family:var(--mono);font-size:.68rem}.focus-card h3{max-width:17rem;font-family:var(--serif);margin:2rem 0 .7rem;font-size:1.55rem;font-weight:400;line-height:1.12}.focus-card p{max-width:19rem;color:var(--muted);font-size:.84rem;line-height:1.75}.focus-card .text-link{margin-top:1rem;font-size:.8rem}.skills-section{background:#15101a;padding-block:6.5rem}.skills-layout{grid-template-columns:.85fr 1.4fr;align-items:start;gap:clamp(3rem,9vw,9rem);display:grid}.skill-groups{border-top:1px solid #382a42}.skill-group{border-bottom:1px solid #382a42;grid-template-columns:minmax(100px,.65fr) 1.35fr;gap:1rem;padding:1.25rem 0;display:grid}.skill-group h3{color:var(--muted);font-family:var(--mono);text-transform:uppercase;margin:.35rem 0 0;font-size:.69rem;font-weight:400}.skill-group ul{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.skill-group li{color:var(--ink);border:1px solid #493653;border-radius:999px;padding:.42rem .72rem;font-size:.76rem}.contact-section{color:#fff5fc;background:#281535;width:100%;max-width:none;margin:0;padding:7rem max(50% - 580px,1.5rem);position:relative}.contact-section .eyebrow{color:#d1bedc}.contact-section h2{max-width:850px;font-size:clamp(4rem,9vw,8.4rem);line-height:.9}.contact-section h2 span{color:var(--accent)}.contact-copy{color:#d0c2d8;max-width:430px;margin-top:1.6rem;font-size:.95rem;line-height:1.75}.button-light{color:var(--ink);background:var(--accent);margin-top:2rem}.button-light:hover{background:#ffb9df}.site-footer{min-height:100px;color:var(--muted);grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:1rem;font-size:.7rem;display:grid}.site-footer a{text-decoration:none}.site-footer a:hover{text-underline-offset:.2rem;text-decoration:underline}.footer-mark{color:var(--ink);font-family:var(--serif);font-size:1.2rem}.footer-mark span{color:#ff9dd2;margin-left:.22rem;font-family:sans-serif;font-size:.75rem}.site-footer>:last-child{text-align:right}@media (width<=900px){.hero{grid-template-columns:minmax(0,1.1fr) minmax(230px,.8fr);gap:3rem;min-height:auto;padding-block:6rem 7rem}.hero h1{font-size:clamp(4.7rem,11vw,7rem)}.featured-projects{grid-template-columns:1fr 1fr}.featured-projects>:last-child{grid-column:1/-1}}@media (width<=680px){html{scroll-padding-top:5rem}.section-wrap{width:min(100% - 2.25rem,540px)}.hero{grid-template-columns:1fr;gap:3rem;padding-block:4.5rem 5rem}.hero:before{top:43%;right:-16rem}.hero h1{font-size:clamp(5.3rem,18vw,7.5rem)}.hero-intro{max-width:34rem}.hero-portrait{justify-self:center;width:min(74%,310px);margin-right:.5rem}.scroll-cue{bottom:1.5rem}.content-section{grid-template-columns:1fr;gap:1.3rem;padding-block:5rem}.about-copy{padding-top:0}.projects-section,.focus-section{padding-block:5rem}.projects-heading{flex-direction:column;align-items:start;gap:1.2rem;margin-bottom:2rem}.featured-projects{grid-template-columns:1fr}.featured-projects>:last-child{grid-column:auto}.focus-section>.section-heading{margin-bottom:2rem}.focus-grid{grid-template-columns:1fr}.focus-card,.focus-card:first-child,.focus-card:last-child{border-right:0;border-bottom:1px solid var(--line);min-height:0;padding:1.35rem 0}.focus-card:last-child{border-bottom:0}.focus-card h3{margin-top:1.2rem}.skills-section{padding-block:5rem}.skills-layout{grid-template-columns:1fr;gap:2rem}.skill-group{grid-template-columns:1fr;gap:.75rem}.contact-section{padding:5rem 1.125rem}.contact-section h2{font-size:clamp(3.8rem,14vw,6rem)}.site-footer{grid-template-columns:1fr 1fr;padding-block:1.5rem}.site-footer>:nth-child(2n){text-align:right}}@media (width<=380px){.section-wrap{width:calc(100% - 1.75rem)}.hero h1{font-size:4.6rem}.hero-actions{flex-direction:column;align-items:flex-start;gap:1.1rem}.contact-section{padding-inline:.875rem}}.graveyard-section{background:#100c15;border-top:1px solid #382a42;padding-block:6.5rem 5rem}.graveyard-heading{align-items:end;margin-bottom:3rem}.graveyard-heading h2 span{color:#a88ab9}.graveyard-intro{max-width:330px;color:var(--muted);margin-bottom:.45rem;font-size:.82rem;line-height:1.7}.graveyard-grid{border-bottom:1px solid #382a42;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:clamp(1rem,4vw,3.5rem);padding:.5rem clamp(0rem,3vw,2rem) 2rem;display:grid}.grave-marker{color:#d6c9dd;cursor:pointer;background:linear-gradient(145deg,#302438 0%,#211927 75%);border:1px solid #594765;border-bottom-width:5px;border-radius:48% 48% 3px 3px/22% 22% 3px 3px;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;min-height:210px;padding:1.25rem .75rem 1rem;transition:transform .22s,border-color .22s,background-color .22s,box-shadow .22s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 22px #c49aff0a,0 12px 24px #00000028}.grave-marker:nth-child(2n){min-height:185px}.grave-marker:hover,.grave-marker:focus-visible{z-index:1;background:linear-gradient(145deg,#45334d 0%,#2a2031 75%);border-color:#b28bc5;transform:translateY(-7px)rotate(-1deg);box-shadow:inset 0 0 30px #c49aff14,0 16px 32px #00000050}.grave-marker:nth-child(2n):hover,.grave-marker:nth-child(2n):focus-visible{transform:translateY(-7px)rotate(1deg)}.grave-marker:focus-visible,.graveyard-close:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.grave-marker-cross{color:#d0a9df;font-size:1.1rem;transition:transform .25s}.grave-marker:hover .grave-marker-cross,.grave-marker:focus-visible .grave-marker-cross{transform:rotate(45deg)}.grave-marker-rip{color:#aa9bb1;font-family:var(--mono);letter-spacing:.24em;font-size:.65rem}.grave-marker-name{color:#fff2fc;max-width:100%;font-family:var(--serif);opacity:0;font-size:clamp(1rem,1.5vw,1.35rem);line-height:1.15;transition:opacity .18s,transform .18s;transform:translateY(7px)}.grave-marker:hover .grave-marker-name,.grave-marker:focus-visible .grave-marker-name{opacity:1;transform:translateY(0)}.grave-marker-date{color:#a99aac;font-family:var(--mono);letter-spacing:.04em;margin-top:.15rem;font-size:.55rem}.graveyard-footnote{color:#9b8ca2;font-family:var(--mono);text-align:right;margin-top:1.25rem;font-size:.65rem}.graveyard-footnote span{color:#c49aff;margin-right:.35rem}.graveyard-backdrop{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08060bd9;place-items:center;padding:1.25rem;animation:.16s both graveyard-fade-in;display:grid;position:fixed;inset:0;overflow-y:auto}.graveyard-modal{background:#1b1421;border:1px solid #674e73;width:min(100%,620px);max-height:min(90vh,800px);padding:clamp(1.4rem,5vw,2.6rem);animation:.2s both graveyard-rise-in;position:relative;overflow-y:auto;box-shadow:0 24px 90px #00000080}.graveyard-modal-topline{justify-content:space-between;align-items:start;gap:1rem;display:flex}.graveyard-modal .eyebrow{color:#c6b3d0;margin-top:.25rem;font-size:.62rem}.graveyard-close{width:2.4rem;height:2.4rem;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #594765;border-radius:50%;flex:none;place-items:center;font-size:1.5rem;line-height:1;transition:color .16s,background-color .16s,border-color .16s;display:grid}.graveyard-close:hover{border-color:var(--accent);color:#160f1c;background:var(--accent)}.graveyard-modal h2{font-family:var(--serif);letter-spacing:-.04em;margin:1rem 0 1.7rem;font-size:clamp(2.4rem,8vw,4rem);font-weight:400;line-height:1}.graveyard-modal h2 span{color:var(--accent)}.graveyard-detail{border-top:1px solid #382a42;padding-block:1rem}.graveyard-detail h3{color:#d9a8d0;font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;margin:0 0 .55rem;font-size:.66rem;font-weight:400}.graveyard-detail p{color:#c8bdce;font-size:.88rem;line-height:1.75}.graveyard-modal-signoff{color:#a99aac;font-family:var(--mono);margin-top:.8rem;font-size:.65rem;line-height:1.7}.graveyard-modal-signoff span{color:var(--accent)}@keyframes graveyard-fade-in{0%{opacity:0}to{opacity:1}}@keyframes graveyard-rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (hover:none){.grave-marker-name{opacity:1;transform:none}}@media (width<=680px){.graveyard-section{padding-block:5rem 3.5rem}.graveyard-heading{margin-bottom:2rem}.graveyard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem;padding-inline:.25rem}.grave-marker,.grave-marker:nth-child(2n){min-height:175px}.grave-marker-name{font-size:1rem}.graveyard-modal{max-height:88vh}}@media (width<=380px){.grave-marker,.grave-marker:nth-child(2n){min-height:160px;padding-inline:.4rem}}.site-header{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0c0910ed;border-bottom:1px solid #382a42cc;justify-content:space-between;align-items:center;gap:2rem;width:100%;min-height:76px;padding-inline:max(50% - 580px,1.5rem);display:flex;position:sticky;top:0}.brand-mark{color:#f7effa;letter-spacing:-.06em;flex:none;font-family:DM Serif Display,Georgia,serif;font-size:1.4rem;text-decoration:none}.brand-mark span{color:#ff9dd2;vertical-align:top;margin-left:.15rem;font-family:sans-serif;font-size:.75rem}.navbar{justify-content:center;align-items:center;gap:clamp(1rem,3vw,2.4rem);display:flex}.navbar a,.nav-contact{color:#b8acbd;font-size:.76rem;text-decoration:none;transition:color .16s}.navbar a:hover,.nav-contact:hover{color:#f7effa}.nav-contact{color:#f7effa;border:1px solid #493653;border-radius:3px;align-items:center;gap:.8rem;min-height:2.5rem;padding:.55rem .85rem;font-weight:600;display:inline-flex}.nav-contact:hover{border-color:#ff9dd2}@media (width<=680px){.site-header{gap:1rem;min-height:66px;padding-inline:1.125rem}.navbar{flex:1;justify-content:flex-end;gap:clamp(.8rem,3vw,1.2rem)}.navbar a{font-size:.7rem}.nav-contact{display:none}}@media (width<=380px){.site-header{gap:.7rem;padding-inline:.875rem}.navbar{gap:.65rem}.navbar a{font-size:.65rem}}.project-card{background:#1b1421;border:1px solid #382a42;flex-direction:column;align-items:flex-start;min-width:0;min-height:350px;padding:1.35rem;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.project-card:hover{border-color:#ab6bd1;transform:translateY(-4px);box-shadow:0 12px 28px #00000035,0 0 24px #bd78ff0c}.project-card-top{justify-content:space-between;align-items:center;width:100%;margin-bottom:2.6rem;display:flex}.project-number{color:#b9a7c4;font-family:var(--mono);font-size:.68rem}.project-arrow{aspect-ratio:1;color:#ff9dd2;border:1px solid #493653;border-radius:50%;place-items:center;width:2rem;font-size:.9rem;display:grid}.project-card h3{font-family:var(--serif);letter-spacing:-.025em;margin:0 0 .6rem;font-size:1.65rem;font-weight:400}.project-card h3 a{text-underline-offset:.18rem;text-decoration-color:#0000;transition:text-decoration-color .16s}.project-card h3 a:hover{text-decoration-color:#ff9dd2}.project-card>p{color:var(--muted);margin-bottom:1.4rem;font-size:.82rem;line-height:1.7}.technologies{flex-wrap:wrap;gap:.4rem;margin-top:auto;display:flex}.technology-chip{color:#d0c2d8;font-family:var(--mono);border:1px solid #493653;border-radius:999px;padding:.35rem .55rem;font-size:.62rem;line-height:1.3}.project-link{color:var(--ink);text-underline-offset:.25rem;align-items:center;gap:.4rem;margin-top:1.45rem;font-size:.75rem;font-weight:600;text-decoration-color:#c49aff;display:inline-flex}.project-link:hover{text-decoration-thickness:2px}@media (width<=680px){.project-card{min-height:300px}}
