:root{--void:#05050a;--void-2:#0a0a12;--ink:#b9bdc6;--ink-dim:#70747d;--silver:#e9edf2;--edge:#e9edf21a;--edge-hot:#e9edf247;--mx:50%;--my:30%;--display:"Cinzel", "Times New Roman", serif;--body:var(--display);--mono:var(--display);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;overflow-x:clip}body{background:var(--void);color:var(--ink);font-family:var(--body);letter-spacing:.015em;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.75;overflow-x:clip}::selection{background:var(--silver);color:var(--void)}a{color:inherit;text-decoration:none}.grain{z-index:9998;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:-100%}.vignette{z-index:9997;pointer-events:none;background:radial-gradient(130% 100% at 50% 40%,#0000 42%,#000000c7 100%);position:fixed;inset:0}.rail{z-index:50;interpolate-size:allow-keywords;flex-direction:column;gap:1.3rem;display:flex;position:fixed;top:50%;left:2rem;translate:0 -50%}.rail a{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);opacity:.45;align-items:center;gap:.9rem;font-size:.85rem;transition:opacity .3s,color .3s,letter-spacing .3s;display:flex}.rail a .numeral{font-family:var(--display);letter-spacing:0;font-size:1rem}.rail-label{white-space:nowrap;width:0;margin-right:-.22em;transition:width .35s cubic-bezier(.2,.8,.2,1);overflow:hidden}.rail a:hover,.rail a.on{opacity:1;color:var(--silver)}.rail a:hover .rail-label,.rail a.on .rail-label{width:auto}.chrome-text{background:linear-gradient(176deg,#fff 0%,#dfe5ec 12%,#8a929c 26%,#fff 38%,#5d646e 52%,#e8edf3 64%,#767e89 80%,#fff 92%,#9aa2ad 100%) 50% 40%/100% 300%;color:#0000;-webkit-background-clip:text;background-clip:text}.hero{place-items:center;height:100svh;min-height:520px;padding:2rem 1.5rem;display:grid;position:relative;overflow:hidden}.hero:before{content:"";z-index:1;pointer-events:none;mix-blend-mode:screen;background-image:radial-gradient(1px 1px at 12% 18%,#fff 50%,#0000 100%),radial-gradient(1px 1px at 73% 41%,#dfe6ef 50%,#0000 100%),radial-gradient(1.5px 1.5px at 38% 77%,#fff 50%,#0000 100%),radial-gradient(1px 1px at 91% 86%,#cfd6df 50%,#0000 100%),radial-gradient(1px 1px at 55% 9%,#fff 50%,#0000 100%),radial-gradient(1.5px 1.5px at 22% 58%,#e9edf2 50%,#0000 100%),radial-gradient(1px 1px at 84% 23%,#fff 50%,#0000 100%),radial-gradient(2px 2px at 64% 66%,#fff 50%,#0000 100%);background-size:210px 230px,210px 230px,330px 290px,330px 290px,470px 410px,470px 410px,590px 530px,590px 530px;animation:5s ease-in-out infinite alternate twinkle;position:absolute;inset:0}@keyframes twinkle{0%{opacity:.45}to{opacity:.95}}@media (prefers-reduced-motion:reduce){.hero:before{opacity:.7;animation:none}}.hero:after{content:"";pointer-events:none;background:radial-gradient(50% 42% at 50% 50%, #05050ac7 0%, transparent 100%), linear-gradient(180deg, transparent 70%, var(--void) 100%);position:absolute;inset:0}.hero-copy{z-index:2;text-align:center;max-width:44rem;position:relative}.hero-copy>*{opacity:0}.hero-copy.in>*{animation:2.2s .5s both fade-in}.hero-copy.in .kicker{animation-delay:1.4s}.hero-copy.in .hero-role{animation-delay:2.3s}.hero-copy.in .btn{animation-delay:3.2s}@keyframes fade-in{to{opacity:1}}.kicker{font-family:var(--mono);letter-spacing:.4em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:1.6rem;font-size:.65rem}h1{font-family:var(--display);white-space:nowrap;letter-spacing:-.02em;text-transform:uppercase;margin-left:-.06em;padding-top:.12em;font-size:clamp(2.2rem,min(6.4vw,13svh),7.5rem);font-weight:400;line-height:.92}.hero-role{font-family:var(--mono);letter-spacing:.34em;text-transform:uppercase;color:var(--silver);margin:1.8rem 0 1.2rem;font-size:.7rem}.btn{border:1px solid var(--edge-hot);font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--silver);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff05;border-radius:0;margin-top:2.6rem;padding:.85rem 2.4rem .85rem calc(2.4rem + .3em);font-size:.65rem;transition:background .4s,color .4s,border-color .4s,box-shadow .4s;display:inline-block}.btn:hover{background:var(--silver);color:var(--void);border-color:var(--silver);box-shadow:0 0 40px #c8d7eb59}.scroll-hint{font-family:var(--mono);letter-spacing:.4em;text-transform:uppercase;color:var(--ink-dim);font-size:.58rem;animation:2.6s ease-in-out infinite pulse;position:absolute;bottom:2rem;left:50%;translate:-50%}@keyframes pulse{0%,to{opacity:.25;transform:translate(-50%)}50%{opacity:.8;transform:translate(-50%,.4rem)}}.wrap{max-width:1600px;margin:0 auto;padding:7.5rem 1.5rem}@media (width>=900px){.wrap{padding-left:8rem;padding-right:3rem}}.sec-head{align-items:baseline;gap:1.2rem;margin-bottom:3.5rem;display:flex}.sec-head .numeral{font-family:var(--display);color:var(--ink-dim);font-size:.8rem}.sec-head h2{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--silver);font-size:clamp(1.8rem,5vw,3rem);font-weight:400}.rule{background:linear-gradient(90deg, var(--edge-hot), transparent);flex:1;height:1px}@supports (animation-timeline:view()){[data-reveal]{animation:linear both reveal;animation-timeline:view();animation-range:entry entry 80%}}@keyframes reveal{0%{opacity:0;translate:0 2rem}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation:none!important}[data-reveal]{animation:none!important}html{scroll-behavior:auto}}.expand .scroll-expand__title{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;text-shadow:none;color:#0000;background:linear-gradient(#fff 0%,#aeb6c2 45%,#3c4049 52%,#dfe4ea 70%,#8a909a 100%);filter:drop-shadow(0 6px 30px #000000e6);-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,7.5vw,8rem);font-weight:400}.expand .scroll-expand__scrim{background:radial-gradient(55% 45% at 50% 50%, #05050aeb, #05050a8c 70%, transparent), linear-gradient(180deg, #05050a99, transparent 30%, transparent 70%, var(--void))}.expand .scroll-expand__hint{letter-spacing:.4em;text-transform:uppercase;color:var(--ink-dim);font-size:.66rem}.expand .scroll-expand__overlay h2{font-family:var(--display);margin:1rem 0 1.4rem;font-size:clamp(2rem,5.5vw,5.5rem);font-weight:400;line-height:1.05}.about-copy{gap:.9rem;max-width:42rem;display:grid}.about-copy p{color:var(--ink);font-size:clamp(.85rem,1.1vw,1rem);line-height:1.75}.expand .facts{grid-template-columns:repeat(4,auto);gap:0 clamp(1.5rem,4vw,4rem);margin-top:clamp(1.5rem,4vh,3rem);display:grid}.facts dt{letter-spacing:.26em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:.5rem;font-size:.58rem}.facts dd{font-family:var(--display);margin:0;font-size:clamp(1.6rem,3vw,2.6rem);line-height:1}@media (width<=599px){.expand .facts{grid-template-columns:repeat(2,auto);gap:1rem 2rem}.about-copy p:nth-child(n+2){display:none}}.arsenal{align-items:center;gap:clamp(2rem,5vw,5rem);display:grid}#skills .sec-head{flex-direction:row-reverse}#skills .rule{background:linear-gradient(270deg, var(--edge-hot), transparent)}@media (width>=900px){.arsenal{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.orbit{order:1}}.orbit{aspect-ratio:1;width:min(100%,640px);margin-inline:auto;position:relative}.orbit>.orbit-container{position:absolute;inset:0}.tool{aspect-ratio:1;width:100%;-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;opacity:.2;background:linear-gradient(160deg,#fff 0%,#9aa3af 45%,#e9edf2 60%,#5b6270 100%);transition:opacity .5s,filter .5s;display:block}.tool.on{opacity:1;filter:drop-shadow(0 0 10px #e9edf28c)}.orbit-core{text-align:center;max-width:9em;font-size:clamp(1rem,2.4vw,1.6rem);line-height:1.2}.groups{height:38rem;padding:0;list-style:none}.groups>li:first-child{border-top:1px solid var(--edge)}.groups>li{border-bottom:1px solid var(--edge)}.groups button{all:unset;box-sizing:border-box;width:100%;font-family:var(--display);color:var(--ink-dim);align-items:baseline;gap:1.2rem;padding:1.2rem 0;font-size:clamp(1.3rem,2.6vw,2.1rem);transition:color .4s,padding .4s;display:flex}.groups button:focus-visible{outline:1px solid var(--edge-hot);outline-offset:4px}.groups .numeral{letter-spacing:.2em;font-size:.7rem}.groups .count{letter-spacing:.2em;margin-left:auto;font-size:.75rem}.groups .open button{color:var(--silver);padding-left:1rem}.skills{flex-wrap:wrap;gap:.45rem;max-height:0;padding:0 0 0 1rem;list-style:none;transition:max-height .6s,padding .6s;display:flex;overflow:hidden}.open .skills{max-height:20rem;padding-bottom:1.4rem}.skills li{border:1px solid var(--edge-hot);color:var(--silver);opacity:0;background:#ffffff08;padding:.3rem .7rem;font-size:.78rem;transition:opacity .4s,translate .4s;translate:-1.5rem}.open .skills li{opacity:1;transition-delay:calc(var(--i) * 40ms + .15s);translate:0}@media (prefers-reduced-motion:reduce){.skills,.skills li{transition:none}}.projects{align-items:center;gap:3rem;display:grid}@media (width>=1000px){.projects{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.projects .swap-stage{order:-1}.projects .card-swap{left:calc(50% - 332px)}.projects .swap-nav{translate:-41px}}.project-info{max-width:32rem;animation:.8s both fade-in}.project-info h3{font-family:var(--display);margin:.8rem 0 1.2rem;font-size:clamp(1.8rem,3.4vw,2.8rem);font-weight:400;line-height:1.1}.project-info .blurb{font-size:.95rem;line-height:1.8}.swap-stage{clip-path:inset(-100vh -100vw 0);height:560px;position:relative}.card-swap{perspective:900px;position:absolute;bottom:50px;left:8%}.swap-card{border:1px solid var(--edge-hot);background:var(--void);transform-style:preserve-3d;will-change:transform;backface-visibility:hidden;border-radius:10px;position:absolute;top:50%;left:50%;overflow:hidden;box-shadow:0 30px 60px -20px #000000e6}.swap-card a{height:100%;display:block}.swap-card img{object-fit:cover;object-position:top;width:100%;height:100%}.shot-ph{text-align:center;background:radial-gradient(80% 70% at 30% 20%, #c8d7eb1a, transparent), var(--void);place-content:center;gap:.8rem;height:100%;padding:2rem;display:grid}.shot-ph .chrome-text{font-family:var(--display);font-size:1.8rem;line-height:1.15}@media (width<=599px){.swap-stage{height:420px}.card-swap{transform-origin:0 100%;left:0;scale:.62}@media (width<=359px){.card-swap{scale:.52}}}.card:after,.cert:after{content:"";pointer-events:none;opacity:0;background:radial-gradient(420px circle at var(--sx,50%) var(--sy,50%), #ebf2fc21, transparent 60%);transition:opacity .4s;position:absolute;inset:0}.card:hover,.cert:hover{border-color:var(--edge-hot);box-shadow:0 30px 60px -30px #000000f2,inset 0 0 0 1px #ffffff0a}.card:hover:after,.cert:hover:after{opacity:1}.kind{font-family:var(--mono);letter-spacing:.26em;text-transform:uppercase;color:var(--ink-dim);font-size:.58rem}.blurb{color:var(--ink);font-size:.86rem}.stack{flex-wrap:wrap;gap:.4rem;margin-top:1.2rem;padding:0;list-style:none;display:flex}.stack li{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--edge);padding:.2rem .5rem;font-size:.58rem}.hero-veil{opacity:.85;position:absolute;inset:0}@media (width>=900px){.hero{place-items:center start}.hero-copy{text-align:left;margin-left:clamp(4rem,8vw,11rem)}.hero-veil{transform-origin:60% 100%;left:46%;translate:0;scale:1.15}.hero:after{background:radial-gradient(40% 50% at 22% 50%, #05050ab3 0%, transparent 100%), linear-gradient(180deg, transparent 70%, var(--void) 100%)}}.timeline{--rail:clamp(.6rem, 2vw, 1.5rem);padding:0 0 2rem calc(var(--rail) + clamp(2rem, 5vw, 4.5rem));view-timeline-name:--timeline;gap:clamp(5rem,12vh,9rem);list-style:none;display:grid;position:relative}.timeline:before,.timeline:after{content:"";left:var(--rail);background:var(--edge);width:1px;position:absolute;top:0;bottom:0}.timeline:after{background:linear-gradient(180deg, transparent, var(--silver) 12%, #8d96a3 70%, var(--silver));transform-origin:top;width:2px;margin-left:-.5px;box-shadow:0 0 12px #e9edf273}@supports (animation-timeline:view()){.timeline:after{animation:linear both fill;animation-timeline:--timeline;animation-range:cover 50vh cover calc(100% - 50vh)}.tl-node{animation:linear both ignite;animation-timeline:view();animation-range:cover calc(50vh - 3rem) cover 50vh}}@keyframes fill{0%{scale:1 0}}@keyframes ignite{0%{background:var(--void);box-shadow:none;border-color:var(--edge-hot)}}.job{position:relative}.tl-node{z-index:1;outline:.4rem solid var(--void);border:1px solid var(--silver);background:var(--silver);width:.9rem;height:.9rem;position:absolute;top:.15rem;left:calc(-1*clamp(2rem,5vw,4.5rem) - .45rem);rotate:45deg;box-shadow:0 0 18px #e9edf2b3}.job .scroll-float{margin:.8rem 0 .4rem;overflow:visible}.job .scroll-float-text{font-family:var(--display);text-align:left;color:var(--silver);font-size:clamp(1.5rem,3.6vw,2.8rem);font-weight:400;line-height:1.15}.job .at{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:1.8rem;font-size:.8rem}.job ul{gap:.9rem;max-width:1100px;padding:0;list-style:none;display:grid}@media (width>=900px){.job ul{grid-template-columns:1fr 1fr;column-gap:3rem}}.job li{padding-left:1.4rem;font-size:.88rem;position:relative}.job li:before{content:"—";color:var(--ink-dim);position:absolute;left:0}.when{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);font-size:.7rem}@media (width>=900px){.timeline{--gap:clamp(2.5rem, 4vw, 4.5rem);padding-left:0}.timeline:before,.timeline:after{left:50%}.job{width:calc(50% - var(--gap))}.job ul{grid-template-columns:1fr}.job:nth-child(odd){margin-left:auto}.job:nth-child(odd) .tl-node{left:calc(-1 * var(--gap) - .45rem)}.job:nth-child(2n),.job:nth-child(2n) .scroll-float-text{text-align:right}.job:nth-child(2n) .tl-node{left:auto;right:calc(-1 * var(--gap) - .45rem)}.job:nth-child(2n) li{padding:0 1.4rem 0 0}.job:nth-child(2n) li:before{left:auto;right:0}}.note{color:var(--ink-dim);max-width:44rem;margin-bottom:2.6rem;font-size:.9rem}.certs{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:1rem;display:grid}.cert{border:1px solid var(--edge);min-height:300px;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));background:linear-gradient(170deg,#ffffff0b,#ffffff01 60%);flex-direction:column;padding:1.8rem 1.6rem 1.4rem;transition:transform .6s cubic-bezier(.16,1,.3,1),border-color .4s,box-shadow .5s;display:flex;position:relative;overflow:hidden}.crest{align-items:center;height:84px;margin-bottom:1.6rem;display:flex}.crest span{width:70%;height:56px;-webkit-mask:var(--logo) left center / contain no-repeat;-webkit-mask:var(--logo) left center / contain no-repeat;mask:var(--logo) left center / contain no-repeat;opacity:.85;background:linear-gradient(160deg,#fff 0%,#9aa3af 45%,#e9edf2 60%,#5b6270 100%)}.cert .org{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);font-size:.66rem}.cert h3{font-family:var(--display);color:var(--silver);margin:.5rem 0 1.4rem;font-size:1.08rem;font-weight:400;line-height:1.35}.cert-foot{border-top:1px solid var(--edge);justify-content:space-between;align-items:baseline;margin-top:auto;padding-top:1rem;display:flex}.mark{font-family:var(--display);color:var(--silver);font-size:1.5rem}.date{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);font-size:.66rem}.contact{border-top:1px solid var(--edge);position:relative;overflow:hidden}.stars-stage{--p:110svh;flex-direction:column;min-height:100svh;display:flex;position:relative}.stars-stage footer{opacity:0;width:100%;padding-block:2rem;transition:opacity 1.4s}.stars-stage:is(.title,.form) footer{opacity:1}.stars-view{perspective:var(--p);position:absolute;inset:0;overflow:hidden}.stars-view:after{content:"";background:linear-gradient(var(--void), transparent);height:18%;position:absolute;inset:0 0 auto}.stars-world{transform-style:preserve-3d;transform-origin:50% 50% var(--p);position:absolute;inset:0}.stars-stage:is(.up,.title,.form) .stars-world{animation:2.8s cubic-bezier(.5,0,.15,1) forwards look-up}.stars-stage.form .stars-world{animation-duration:0s}@keyframes look-up{to{transform:rotateX(90deg)}}.stars-wall,.stars-ceiling{width:300%;left:-100%;top:calc(50% - var(--p));position:absolute}.stars-wall{height:calc(var(--p) + 50%);background:var(--void)}.stars-ceiling{height:calc(var(--p) * 2.2);transform-origin:top;background:linear-gradient(var(--void), transparent 28%), radial-gradient(1px 1px at 12% 18%, #fff 50%, transparent 100%), radial-gradient(1px 1px at 73% 41%, #dfe6ef 50%, transparent 100%), radial-gradient(1.5px 1.5px at 38% 77%, #fff 50%, transparent 100%), radial-gradient(1px 1px at 91% 86%, #cfd6df 50%, transparent 100%), radial-gradient(1px 1px at 55% 9%, #fff 50%, transparent 100%), radial-gradient(1.5px 1.5px at 22% 58%, #e9edf2 50%, transparent 100%), radial-gradient(1px 1px at 84% 23%, #fff 50%, transparent 100%), radial-gradient(2px 2px at 64% 66%, #fff 50%, transparent 100%), radial-gradient(30% 20% at 50% 45%, #788caa24, transparent), var(--void);background-size:100% 100%,210px 230px,210px 230px,330px 290px,330px 290px,470px 410px,470px 410px,590px 530px,590px 530px,100% 100%,auto;transform:rotateX(90deg)}.stars-world video{object-fit:cover;-webkit-mask-composite:source-in;width:100%;height:100%;position:absolute;inset:0;transform:translateZ(1px);-webkit-mask-image:linear-gradient(#0000,#000 14%),linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(#0000,#000 14%),linear-gradient(90deg,#0000,#000 6% 94%,#0000);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:border-box,border-box;mask-clip:border-box,border-box;-webkit-mask-origin:border-box,border-box;mask-origin:border-box,border-box;-webkit-mask-composite:source-in;mask-composite:intersect;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.stars-copy{text-align:center;flex:1;place-content:center;justify-items:center;padding:6rem 1.5rem 3rem;display:grid;position:relative}.stars-copy h2{font-family:var(--display);text-transform:uppercase;opacity:0;filter:blur(8px);max-width:14em;font-size:clamp(2rem,6vw,4.6rem);font-weight:400;line-height:1.05;transition:opacity 1.4s,translate 1.4s cubic-bezier(.16,1,.3,1),filter 1.4s;translate:0 1.5rem}.stars-stage:is(.title,.form) h2{opacity:1;filter:none;translate:0}.stars-reveal{opacity:0;grid-template-rows:0fr;width:min(100%,38rem);transition:grid-template-rows 1.4s cubic-bezier(.16,1,.3,1),opacity .9s .5s;display:grid}.stars-reveal>div{min-height:0;overflow:hidden}.form .stars-reveal{opacity:1;grid-template-rows:1fr}.contact-form{text-align:left;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:3rem;display:grid}.contact-form label{gap:.5rem;display:grid}.contact-form .wide,.contact-form .form-note{grid-column:1/-1}.contact-form label span{letter-spacing:.3em;text-transform:uppercase;color:var(--ink-dim);font-size:.62rem}.contact-form input,.contact-form textarea{font:inherit;color:var(--silver);border:1px solid var(--edge-hot);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);resize:vertical;background:#05050a8c;border-radius:0;padding:.75rem .9rem;font-size:.95rem;transition:border-color .3s,box-shadow .3s}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--silver);outline:none;box-shadow:0 0 24px #c8d7eb2e}.contact-form .btn{cursor:pointer;grid-column:1/-1;justify-self:center;margin-top:.8rem}.contact-form .btn:disabled{opacity:.5}.contact-form .hp{position:absolute;left:-9999px}.form-note{color:var(--ink);text-align:center;margin-top:1.4rem;font-size:.85rem}.form-note a{color:var(--silver);border-bottom:1px solid var(--edge-hot)}@media (width<=599px){.contact-form{grid-template-columns:1fr}}.socials{justify-content:center;gap:1.8rem;margin-top:2.6rem;padding:0;list-style:none;display:flex}.socials a{padding:.3rem;display:block}.socials span{aspect-ratio:1;width:1.7rem;-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;opacity:.6;background:linear-gradient(160deg,#fff 0%,#9aa3af 45%,#e9edf2 60%,#5b6270 100%);transition:opacity .3s,filter .3s;display:block}.socials a:hover span,.socials a:focus-visible span{opacity:1;filter:drop-shadow(0 0 10px #e9edf28c)}footer{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);justify-content:space-between;padding-block:2rem;font-size:.64rem;display:flex;position:relative}@media (width<=899px){.rail{display:none}}.crest-name{letter-spacing:.08em;color:#c9ced6;font-family:Cinzel,serif;font-size:1.1rem}.cert:before{content:"";pointer-events:none;opacity:0;background:radial-gradient(260px circle at var(--sx,50%) var(--sy,50%), rgba(255, 255, 255, calc(.35 + var(--near,0) * .65)), #a0afc840 40%, transparent 70%);-webkit-mask-composite:xor;filter:drop-shadow(0 0 6px rgba(220, 230, 245, calc(var(--near,0) * .8)));padding:2px;transition:opacity .4s;position:absolute;inset:0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.cert:hover:before{opacity:1}.deck{perspective:1200px;touch-action:pan-y;outline:none;height:340px;position:relative}.slide{--w:min(300px, 78vw);width:var(--w);height:100%;margin-left:calc(var(--w) / -2);transform:translateX(calc(var(--o) * 72%)) translateZ(calc(var(--a) * -180px)) rotateY(calc(var(--o) * -16deg));filter:brightness(calc(1 - var(--a) * .22));cursor:pointer;transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .5s,filter .5s;position:absolute;top:0;left:50%}.slide .cert{background-color:#0d0e11;height:100%}.deck-nav{color:var(--ink-dim);letter-spacing:.2em;justify-content:center;align-items:center;gap:1.6rem;margin-top:1.6rem;font-size:.8rem;display:flex}.deck-nav button{border:1px solid var(--edge);color:var(--silver);cursor:pointer;background:0 0;border-radius:0;width:44px;height:44px;font-size:1.1rem;transition:background .4s,color .4s,border-color .4s,box-shadow .4s}.deck-nav button:hover{background:var(--silver);color:var(--void);border-color:var(--silver);box-shadow:0 0 40px #c8d7eb59}.cert-modal{width:min(92vw,34rem);color:var(--ink);border:1px solid var(--edge);background:#0d0e11;margin:auto;padding:clamp(1.5rem,5vw,2.5rem);box-shadow:0 30px 80px #000000b3}.cert-modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#030306bf}.cert-modal .eyebrow{letter-spacing:.25em;text-transform:uppercase;opacity:.6;font-size:.7rem}.cert-modal h3{font-family:var(--display);margin:.5rem 0 1rem;font-size:clamp(1.3rem,4vw,1.8rem)}.cert-modal-actions{flex-wrap:wrap;gap:.8rem;margin-top:1.8rem;display:flex}.slide[aria-hidden=false]{cursor:pointer}.cert-modal,.cert-modal::backdrop{transition:opacity .35s ease, translate .35s cubic-bezier(.2, .8, .2, 1), scale .35s cubic-bezier(.2, .8, .2, 1), overlay .35s allow-discrete, display .35s allow-discrete;opacity:0}.cert-modal{translate:0 16px;scale:.97}.cert-modal[open],.cert-modal[open]::backdrop{opacity:1;translate:0;scale:1}@starting-style{.cert-modal[open],.cert-modal[open]::backdrop{opacity:0}.cert-modal[open]{translate:0 16px;scale:.97}}.btn-ghost{background:0 0;border-color:#0000;margin-left:.8rem}.btn-ghost:hover{border-color:var(--edge)}.cert-modal,.cert-modal *{cursor:none}section.wrap{isolation:isolate;position:relative}section.wrap:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle, #e9edf23d 1px, transparent 1.4px) 0 0 / 28px 28px, linear-gradient(#e9edf20f 1px, transparent 1px) 0 0 / 140px 140px, linear-gradient(90deg, #e9edf20f 1px, transparent 1px) 0 0 / 140px 140px, radial-gradient(60% 50% at var(--glow,85%) 30%, #8c96aa1f, transparent 70%);width:100vw;-webkit-mask:radial-gradient(75% 65% at var(--glow,85%) 40%, #000 20%, transparent 85%);mask:radial-gradient(75% 65% at var(--glow,85%) 40%, #000 20%, transparent 85%);position:absolute;inset:0 auto 0 50%;translate:-50%}section.wrap:nth-of-type(odd){--glow:15%}section.wrap+section.wrap:after{content:"";background:linear-gradient(90deg,#0000,#e9edf240,#0000);width:min(60vw,900px);height:1px;position:absolute;top:0;left:50%;translate:-50%}.swap-nav{z-index:50;margin:0;position:absolute;bottom:.5rem;left:0;right:0}.swap-stage{height:640px}.swap-stage .card-swap{bottom:130px}@media (width<=599px){.swap-stage{height:500px}}.project-info>*{animation:.7s cubic-bezier(.2,.8,.2,1) both info-in}.project-info>:nth-child(2){animation-delay:60ms}.project-info>:nth-child(3){animation-delay:.12s}.project-info>:nth-child(4){animation-delay:.18s}.project-info>:nth-child(5){animation-delay:.24s}@keyframes info-in{0%{opacity:0;filter:blur(6px);translate:0 18px}}@media (prefers-reduced-motion:reduce){.project-info>*{animation:none}}.target-cursor-wrapper{transition:opacity .4s}body:has(.stars-stage:is(.play,.up,.title)) .target-cursor-wrapper{opacity:0}@media (width<=599px){main :is(p,.about-copy,.blurb,.note,#experience li,.cert-modal p,.contact-form input,.contact-form textarea):not(.kicker,.kind,.org,.when,.at,.eyebrow,.hero-role,.chrome-text){font-size:15px}}@media (width<=999px){.sec-head,#skills .sec-head{text-align:center;flex-direction:column;align-items:center;gap:.4rem}.sec-head .rule{display:none}.stars-copy h2{text-align:center}}.to-top{z-index:60;border:1px solid var(--edge);width:44px;height:44px;color:var(--silver);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0b0e99;place-items:center;font-size:1.1rem;transition:opacity .4s,translate .4s,background .4s,color .4s,border-color .4s,box-shadow .4s;display:grid;position:fixed;bottom:1.5rem;right:1.5rem}.to-top:hover{background:var(--silver);color:var(--void);border-color:var(--silver);box-shadow:0 0 40px #c8d7eb59}body:has(.rail a[href=\#home].on) .to-top{opacity:0;pointer-events:none;translate:0 12px}.dither-veil{touch-action:pan-y;width:100%;height:100%;position:relative;overflow:hidden}.scroll-expand{width:100%;height:100%;position:relative}.scroll-expand--scroller{scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain;overflow:hidden auto}.scroll-expand--scroller::-webkit-scrollbar{display:none}.scroll-expand__track{width:100%;position:relative}.scroll-expand__stage{--se-title-size:4rem;width:100%;position:sticky;top:0;overflow:hidden}.scroll-expand__frame{clip-path:inset(21% 29% round 24px);will-change:clip-path;position:absolute;inset:0}.scroll-expand__media{object-fit:cover;will-change:transform;transform-origin:50%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;position:absolute;inset:0}.scroll-expand__scrim{pointer-events:none;opacity:0;background:linear-gradient(#00000059,#0000001a 55%,#000000bf);position:absolute;inset:0}.scroll-expand__overlay{text-align:center;opacity:0;will-change:opacity, transform;flex-direction:column;justify-content:center;align-items:center;padding:6%;display:flex;position:absolute;inset:0}.scroll-expand__title{text-align:center;font-size:var(--se-title-size);letter-spacing:-.03em;color:#fff;text-shadow:0 2px 24px #00000073;pointer-events:none;will-change:opacity, transform;justify-content:center;align-items:center;margin:0;padding:0 6%;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}.scroll-expand__hint{text-align:center;letter-spacing:.02em;color:#ffffff8c;pointer-events:none;will-change:opacity, transform;font-size:.8125rem;position:absolute;bottom:1.25rem;left:0;right:0}.scroll-float{overflow:hidden}.scroll-float-text{text-align:center;font-size:clamp(1.6rem,8vw,10rem);font-weight:900;line-height:1.5;display:inline-block}.char{display:inline-block}.scroll-float .word{white-space:nowrap;display:inline-block}.orbit-container{margin-left:auto;margin-right:auto;position:relative}.orbit-scaling-container{width:100%;height:100%;position:relative}.orbit-scaling-container--responsive{transform-origin:50%;position:absolute;top:50%;left:50%}.orbit-rotation-wrapper{transform-origin:50%;width:100%;height:100%;position:relative}.orbit-path-svg{pointer-events:none;position:absolute;inset:0}.orbit-item{will-change:transform;-webkit-user-select:none;user-select:none;position:absolute}.orbit-center-content{z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.orbit-image{object-fit:contain;width:100%;height:100%}.target-cursor-wrapper{pointer-events:none;z-index:2147483647;mix-blend-mode:difference;width:0;height:0;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.target-cursor-dot{will-change:transform;background:#fff;border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.target-cursor-corner{will-change:transform;border:3px solid #fff;width:12px;height:12px;position:absolute;top:50%;left:50%}.corner-tl{border-bottom:none;border-right:none;transform:translate(-150%,-150%)}.corner-tr{border-bottom:none;border-left:none;transform:translate(50%,-150%)}.corner-br{border-top:none;border-left:none;transform:translate(50%,50%)}.corner-bl{border-top:none;border-right:none;transform:translate(-150%,50%)}.target-cursor-wrapper[popover]{background:0 0;border:0;margin:0;padding:0;display:block;inset:0 auto auto 0;overflow:visible}
