@font-face{font-family:Manrope;src:url(/assets/manrope-latin-DHIcAJRg.woff2)format("woff2");font-style:normal;font-weight:200 800;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#09080a;--bg-alt:#0c0a0d;--panel:#171418;--panel-dark:#100e12;--border:#342635;--border-soft:#261e29;--accent:#efadd0;--accent-light:#f9cee1;--accent-deep:#bc7fa3;--accent-glow:#efadd038;--text:#f7f5f7;--muted:#a9a3aa;--font:"Manrope", "Segoe UI", Arial, Helvetica, sans-serif;--radius:11px;--ease:cubic-bezier(.22,1,.36,1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{min-width:320px;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 15% 10%,#efadd01f,#0000 23%),radial-gradient(circle at 82% 24%,#cf92b91a,#0000 18%),linear-gradient(#09080a 0%,#080709 35%,#0b090c 100%);margin:0;font-size:16px;line-height:1.62;overflow-x:hidden}body.dialog-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}img,svg{display:block}img{max-width:100%}:focus-visible{outline:2px solid var(--accent-light);outline-offset:4px}.container{width:min(1140px,100% - 96px);margin:0 auto}.section-anchor{scroll-margin-top:72px;position:relative}.section-shell{position:relative}.skip-link{z-index:300;background:var(--accent);color:#1b0e17;border-radius:8px;padding:10px 16px;position:fixed;top:-70px;left:16px}.skip-link:focus{top:16px}.site-header{z-index:110;border-bottom:1px solid #0000;align-items:center;height:78px;transition:background .35s,border-color .35s,box-shadow .35s,-webkit-backdrop-filter .35s,backdrop-filter .35s;display:flex;position:sticky;top:0}.site-header.scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#080709b8;border-color:#593a53b3;box-shadow:0 12px 40px #0003}.header-inner{justify-content:space-between;align-items:center;gap:24px;display:flex}.brand{min-width:110px;height:48px;color:var(--accent);align-items:center;display:inline-flex;position:relative}.brand-name{color:var(--accent);font-family:var(--font);letter-spacing:-.035em;font-kerning:normal;white-space:nowrap;text-shadow:0 0 18px #efadd01f;font-size:27px;font-weight:760;line-height:1;display:inline-block;position:relative}@supports ((-webkit-background-clip:text) or (background-clip:text)){.shiny-text{-webkit-text-fill-color:transparent;color:#0000;will-change:background-position;background-color:#dda0c1;background-image:linear-gradient(120deg,#dda0c1 0% 43%,#f5c9df 46%,#fff8fc 50%,#f8d6e8 54%,#dda0c1 57% 100%);background-position:100% 0;background-repeat:no-repeat;background-size:245% 100%;-webkit-background-clip:text;background-clip:text;animation:4.4s cubic-bezier(.45,.02,.24,1) infinite shinyTextSweep}}.menu-toggle{display:none}.site-nav{align-items:center;gap:24px;display:flex}.site-nav a{color:#ddd6de;font-size:14px;font-weight:550;transition:color .2s,transform .25s;position:relative}.site-nav a:after{content:"";transform-origin:50%;width:100%;height:2px;transition:transform .3s var(--ease);background:linear-gradient(90deg,#efadd000,#efadd0,#efadd000);position:absolute;bottom:-7px;left:0;transform:scaleX(0)}.site-nav a:hover,.site-nav a.active{color:var(--text)}.site-nav a:hover{transform:translateY(-1px)}.site-nav a:hover:after,.site-nav a.active:after{transform:scaleX(1)}.hero{align-items:center;min-height:620px;padding:88px 0 110px;display:flex;position:relative;overflow:clip}.hero:before,.hero:after{content:"";filter:blur(50px);pointer-events:none;border-radius:50%;animation:14s ease-in-out infinite floatBlob;position:absolute;top:auto;bottom:auto;left:auto;right:auto}.hero:before{background:#efadd024;width:280px;height:280px;top:44px;left:-70px}.hero:after{background:#bc7fa31a;width:230px;height:230px;animation-duration:18s;animation-direction:alternate-reverse;bottom:8%;right:4%}.hero-content{z-index:1;grid-template-columns:minmax(0,700px) minmax(300px,1fr);align-items:center;gap:18px;display:grid;position:relative}.hero-copy{min-width:0}.hero-moon-root{aspect-ratio:1;touch-action:pan-y;justify-self:end;width:min(440px,100%);margin-right:-18px}.eyebrow{color:#f4d0e1;background:#4c284240;border:1px solid #6f4763;border-radius:999px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff08,0 0 0 1px #efadd005}.hero h1{letter-spacing:-2.5px;margin:26px 0 10px;font-size:clamp(2.8rem,5.8vw,4.45rem);font-weight:800;line-height:.97}.hero-type-root{min-width:0}.hero .text-type.hero-title{width:100%;min-height:1.1em;display:block}.hero-title-accent{color:var(--accent);text-shadow:0 0 22px #efadd029}.hero-description{color:#bdb4bc;max-width:645px;margin:22px 0 34px;font-size:1.06rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.hero-item{opacity:0;filter:blur(4px);transition:opacity .7s ease, transform .7s var(--ease), filter .7s ease;transition-delay:0s;transform:translateY(22px)}.hero-item.visible{opacity:1;filter:blur();transition-delay:var(--hero-delay,0s);transform:translateY(0)}.btn{min-width:170px;min-height:46px;transition:transform .28s var(--ease), box-shadow .28s ease, border-color .28s ease, background .28s ease, color .28s ease;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:12px 20px;font-size:14px;font-weight:650;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";transition:transform .8s var(--ease);background:linear-gradient(120deg,#0000 15%,#ffffff1f 50%,#0000 85%);position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-110%)}.btn:hover:before{transform:translate(110%)}.btn:hover{transform:translateY(-3px)}.btn-primary:hover{box-shadow:0 16px 38px #df8dbb4d}.btn-outline{color:#f4edf1;background:#120f14bf;border-color:#7d506b}.btn-outline:hover{border-color:var(--accent);box-shadow:0 12px 26px #efadd01a}.about-section{border-top:1px solid #2b222c;padding:92px 0 102px}.about-overview{grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:44px;display:grid}.about-copy{max-width:560px}.section-title,.subsection-title{letter-spacing:-1px;margin:0 0 18px;font-weight:800}.section-title{font-size:clamp(2rem,4vw,2.75rem)}.subsection-title{font-size:clamp(1.55rem,3vw,2rem)}.about-copy p{color:var(--muted);margin:0 0 16px;font-size:16px;line-height:1.72}.bunny-scene{justify-self:end;place-items:center;width:360px;height:320px;display:grid;position:relative;overflow:visible}.bunny-picture{transform-origin:58% 76%;width:100%;animation:3.8s ease-in-out infinite bunnyBreathe;display:block;position:relative}.pixel-bunny{width:100%;height:auto;image-rendering:pixelated}.bunny-button{aspect-ratio:1;width:min(260px,100%);color:var(--accent-light);-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:24px;padding:0;position:relative}.bunny-button:focus-visible{outline:2px solid var(--accent-light);outline-offset:8px}.bunny-button.is-reacting .bunny-picture{animation:none}.skills-block{margin-top:50px}.skills-heading{justify-content:space-between;align-items:end;gap:32px;margin-bottom:4px;display:flex}.skills-heading .subsection-title{margin-bottom:0}.skills-heading p{color:#958d95;text-align:right;max-width:440px;margin:0 0 3px;font-size:14px;line-height:1.55}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.skill-folder{min-width:0}.folder-shell{height:calc(408px + var(--folder-extra-height,0px));perspective:900px;perspective-origin:50% 55%;isolation:isolate;touch-action:pan-y;transition:height .42s var(--ease);position:relative}.folder-back{z-index:1;border:1px solid color-mix(in srgb, var(--folder-color) 50%, #4e3044);background:linear-gradient(155deg, color-mix(in srgb, var(--folder-color) 86%, #fff 14%), var(--folder-color-deep));border-radius:8px 12px 12px;width:100%;height:174px;position:absolute;top:92px;left:0;box-shadow:inset 0 1px #ffffff3d,0 18px 40px #00000038}.folder-back:before{content:"";border:inherit;background:color-mix(in srgb, var(--folder-color) 88%, #fff 12%);border-bottom:0;border-radius:10px 18px 0 0;width:min(58%,176px);height:34px;position:absolute;top:-29px;left:-1px}.folder-back>span{z-index:1;color:#281621;text-overflow:ellipsis;white-space:nowrap;max-width:calc(58% - 22px);font-size:11px;font-weight:800;line-height:1;position:absolute;top:-21px;left:15px;overflow:hidden}.folder-paper{z-index:2;clip-path:inset(0 0 100% round 10px);opacity:0;transform-origin:50% 100%;pointer-events:none;width:89%;height:220px;transition:opacity .14s ease, clip-path .18s ease, transform .48s var(--ease) .14s, box-shadow .45s ease, visibility 0s linear .62s;visibility:hidden;background:linear-gradient(135deg,#ffffff0b,#0000 38%),linear-gradient(#211923,#171218);border:1px solid #684a61;border-radius:10px;padding:18px 15px;position:absolute;top:58px;left:5.5%;overflow:hidden;transform:translateY(42px)scale(.94)rotate(-.8deg);box-shadow:0 10px 30px #00000047,inset 0 1px #ffffff09}.skill-folder.is-open .folder-paper{opacity:1;visibility:visible;clip-path:inset(-10px round 10px);pointer-events:auto;height:calc(220px + var(--folder-extra-height,0px));transition-delay:0s;transform:translateY(-35px)scale(1)rotate(0);box-shadow:0 22px 45px #00000057,0 0 30px #efadd00f}.folder-skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.folder-skills>li{min-width:0}.skill-chip{color:#f3eaf0;text-align:left;width:100%;min-width:0;min-height:54px;transition:transform .22s var(--ease), border-color .22s ease, background .22s ease;background:#0a080bb8;border:1px solid #5d4258;border-radius:8px;align-items:center;gap:8px;padding:8px 9px;font-size:12.5px;font-weight:680;line-height:1.16;display:flex}.skill-chip:hover{background:#241923;border-color:#b77f9f;transform:translateY(-2px)}.skill-chip:focus-visible{z-index:2;border-color:var(--accent-light);outline-offset:2px}.skill-chip img{object-fit:contain;flex:0 0 21px;width:21px;height:21px}.skill-chip>span{min-width:0}.skill-chip small{color:#bda6b4;margin-top:3px;font-size:10px;font-weight:560;line-height:1.05;display:block}.skill-chip.is-learning{border-style:dashed}.folder-cover{z-index:4;border:1px solid color-mix(in srgb, var(--folder-color) 55%, #5d354f);background:linear-gradient(130deg, #ffffff38, transparent 28%), linear-gradient(160deg, color-mix(in srgb, var(--folder-color) 91%, #fff 9%), var(--folder-color-deep));color:#26141f;text-align:left;transform-origin:50% 100%;width:100%;height:164px;transition:transform .62s var(--ease), filter .3s ease, box-shadow .45s ease;will-change:transform;border-radius:12px;justify-content:space-between;align-items:flex-end;gap:12px;padding:22px 20px;display:flex;position:absolute;top:108px;left:0;transform:translateY(0)rotateX(0);box-shadow:inset 0 1px #ffffff47,0 17px 34px #00000040}.folder-cover:hover{filter:brightness(1.07)}.folder-cover:focus-visible{outline-offset:5px}.skill-folder.is-open .folder-cover{transform:translateY(calc(128px + var(--folder-extra-height,0px))) rotateX(-13deg);box-shadow:inset 0 1px #ffffff47,0 25px 40px #0000004d}.skill-folder.is-open.is-closing .folder-paper{opacity:0;clip-path:inset(0 0 100% round 10px);pointer-events:none;transition:opacity .18s ease .22s, clip-path .3s ease .12s, transform .48s var(--ease);transform:translateY(42px)scale(.94)rotate(-.8deg)}.skill-folder.is-open.is-closing .folder-cover{transition-duration:.58s;transform:translateY(0)rotateX(0)}.folder-cover-title{letter-spacing:-.25px;max-width:68%;font-size:16px;font-weight:800;line-height:1.18}.folder-action{opacity:.78;flex-shrink:0;align-items:center;gap:5px;font-size:11px;font-weight:750;display:inline-flex}.folder-action svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;transition:transform .45s var(--ease)}.skill-folder:not(.is-open) .folder-action svg{transform:rotate(180deg)}.folder-skills>li[hidden],.timeline-item[hidden]{display:none}.folder-more-item{grid-column:1/-1}.folder-more{border:1px dashed color-mix(in srgb, var(--accent) 52%, var(--border));background:color-mix(in srgb, var(--panel-dark) 84%, var(--accent) 16%);width:100%;min-height:32px;color:var(--accent-light);border-radius:7px;font-size:11px;font-weight:700;transition:border-color .2s,background .2s}.folder-more:hover{border-color:var(--accent);background:color-mix(in srgb, var(--panel) 78%, var(--accent) 22%)}.project-tags{flex-wrap:wrap;gap:9px;display:flex}.project-tags span{color:#f3d8e5;white-space:nowrap;background:#1e1720;border:1px solid #7e5470;border-radius:999px;padding:6px 11px;font-size:11px;font-weight:580;line-height:1.3;transition:transform .2s,border-color .2s,background .2s}.project-card:hover .project-tags span,.modal-content:hover .project-tags span{border-color:#eeb0d3;transform:translateY(-1px)}.experience-block{margin-top:78px}.timeline{flex-direction:column;gap:20px;padding-left:0;display:flex;position:relative}.timeline:before{content:"";background:linear-gradient(#efadd02e,#efadd0b3,#efadd029);width:1px;position:absolute;top:28px;bottom:47px;left:28px}.timeline-item{grid-template-columns:57px 1fr;align-items:start;gap:29px;display:grid;position:relative}.timeline-year{color:#291425;letter-spacing:-.2px;z-index:2;background:linear-gradient(#f0bad4,#d28aae);border:1px solid #ecb5d1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:57px;height:57px;font-size:11px;font-weight:750;display:flex;position:relative;box-shadow:0 0 0 6px #efadd00f}.timeline-card{border:1px solid var(--border-soft);border-radius:var(--radius);background:linear-gradient(#18141af2,#120f14f2);min-height:117px;padding:19px 24px;transition:border-color .25s,box-shadow .25s,transform .25s}.timeline-card:hover{border-color:#5b4057;box-shadow:0 12px 30px #0000002e}.timeline-card h4{margin:0 0 5px;font-size:16px;font-weight:750;line-height:1.35}.timeline-place{font-weight:650;color:var(--accent)!important;margin:0 0 8px!important;font-size:14px!important}.timeline-card p{color:#bcb3bb;margin:0;font-size:14px;line-height:1.62}.experience-toggle{width:-moz-fit-content;width:fit-content;min-width:0;min-height:40px;margin:24px auto 0;padding:9px 17px;font-size:12px;display:flex}.experience-toggle[hidden]{display:none}.projects-section{border-top:1px solid #2b222c;padding:100px 0 116px}.section-heading{text-align:center;margin:0 auto 43px}.section-heading .section-title{margin-bottom:12px}.section-heading p{color:var(--muted);margin:0;font-size:15px}.projects-carousel-root{width:100%;max-width:1120px;margin:0 auto}.projects-carousel{min-width:0;position:relative}.projects-carousel__stage{height:550px;color:var(--text);margin:-26px auto -15px;position:relative}.projects-carousel__meta{z-index:2;text-align:center;width:min(720px,100% - 40px);margin:0 auto;padding:8px 0 0;position:relative}.projects-carousel__counter{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:center;gap:6px;margin-bottom:8px;font-size:11px;display:flex}.projects-carousel__counter span:first-child{color:var(--accent-light)}.projects-carousel__meta h3{letter-spacing:-.5px;margin:0 0 8px;font-size:clamp(1.35rem,3vw,1.8rem)}.projects-carousel__meta>p{max-width:610px;color:var(--muted);margin:0 auto 15px;font-size:14px;line-height:1.55}.projects-carousel__meta .project-tags{justify-content:center}.projects-carousel__hint{color:color-mix(in srgb, var(--muted) 76%, transparent);text-align:center;margin:14px 0 0;font-size:11px}.projects-carousel__empty{color:var(--muted);text-align:center;padding:70px 0}.project-card{border-radius:var(--radius);min-width:0;transition:transform .3s var(--ease), box-shadow .3s ease, border-color .3s ease;background:linear-gradient(#171418f2,#110e12f5);border:1px solid #3b2b3a;flex-direction:column;display:flex;overflow:hidden}.project-card:hover{border-color:#75516b;transform:translateY(-6px);box-shadow:0 15px 35px #00000047}.project-image{aspect-ratio:1.71;background:#0a0a0a;width:100%;position:relative;overflow:hidden}.project-image:after{content:"";pointer-events:none;background:linear-gradient(#0000,#00000026);position:absolute;top:0;bottom:0;left:0;right:0}.project-image img{object-fit:contain;width:100%;height:100%;transition:transform .6s var(--ease), filter .6s ease}.project-card:hover .project-image img{filter:saturate(1.05);transform:scale(1.06)}.project-body{flex-direction:column;flex:1;padding:20px 20px 18px;display:flex}.project-body h3{overflow-wrap:anywhere;margin:0 0 9px;font-size:17px;font-weight:750;line-height:1.3}.project-body>p{color:#bcb3bb;min-height:67px;margin:0 0 17px;font-size:14px;line-height:1.6}.project-body .project-tags{margin-bottom:22px}.project-actions{align-items:center;gap:10px;margin-top:auto;display:flex}.btn-small{flex:1;min-width:0;min-height:35px;padding:9px 14px;font-size:12px}.icon-btn{width:35px;height:35px;color:var(--accent);border:1px solid #885879;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s;display:inline-flex}.icon-btn:hover{border-color:var(--accent);background:#332032;transform:translateY(-2px);box-shadow:0 10px 24px #efadd01a}.icon-btn svg{width:18px;height:18px}.contact-section{background:linear-gradient(#0c0a0d,#08080a);border-top:1px solid #2b222c;padding:88px 0 103px}.contact-section .section-heading{margin-bottom:35px}.contact-grid{grid-template-columns:1fr 1fr;gap:28px;max-width:1015px;margin:0 auto;display:grid}.contact-form-panel,.contact-info-panel,.social-panel{border-radius:var(--radius);background:linear-gradient(#0e0c10f5,#0a090cfa);border:1px solid #463046;box-shadow:inset 0 1px #ffffff05}.contact-form-panel{padding:24px 28px 25px}.contact-form-panel h3,.contact-info-panel h3,.social-panel h3{margin:0;font-size:16px;font-weight:750}.contact-form-panel form{flex-direction:column;margin-top:16px;display:flex}.contact-form-panel label{color:#e9e0e7;margin-bottom:7px;font-size:13px;font-weight:570}.contact-form-panel input,.contact-form-panel textarea{width:100%;min-height:40px;color:var(--text);background:#0b090d;border:1px solid #956b8a;border-radius:7px;outline:0;margin-bottom:15px;padding:10px 12px;transition:border-color .2s,box-shadow .2s,transform .2s}.contact-form-panel textarea{resize:none;height:150px;min-height:150px;overflow-y:auto}.contact-form-panel input:focus,.contact-form-panel textarea:focus{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 0 0 3px #efadd01f}.contact-form-panel .submit-btn{border-radius:7px;width:100%;min-height:40px}.contact-form-panel .submit-btn:disabled{cursor:wait;opacity:.68;transform:none}.contact-honeypot{clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;width:1px!important;height:1px!important;position:absolute!important;overflow:hidden!important}.contact-status{color:#e7b8cf;margin:12px 0 0;font-size:12px}.contact-status.is-success{color:#bfe6cb}.contact-status.is-error{color:#ffb7c1}.contact-status:empty{display:none}.contact-side{flex-direction:column;gap:21px;display:flex}.contact-info-panel{flex:1;padding:27px 28px}.contact-info-panel h3{margin-bottom:15px}.contact-info-panel p,.contact-info-panel li{color:#beb3bc;font-size:14px;line-height:1.6}.contact-info-panel p{margin:0 0 10px}.contact-info-panel ul{margin:10px 0 0;padding-left:18px}.social-panel{padding:22px 28px}.social-panel h3{margin-bottom:13px}.social-links{align-items:center;gap:16px;display:flex}.social-links a{color:var(--accent);transition:color .2s,transform .2s,filter .2s}.social-links a:hover{color:#ffdaeb;filter:drop-shadow(0 4px 12px #efadd026);transform:translateY(-2px)}.social-links svg{width:24px;height:24px}.footer{color:#b9afb8;background:radial-gradient(circle at 12% 0,#efadd017,#0000 28%),#080709;border-top:1px solid #39283a;padding:40px 0 22px}.footer-main{grid-template-columns:minmax(240px,1.25fr) auto auto;align-items:center;gap:52px;padding-bottom:30px;display:grid}.footer-identity{gap:4px;display:grid}.footer-identity strong{color:var(--text);letter-spacing:-.25px;font-size:17px}.footer-identity span{color:#a99fa8;font-size:13px}.footer-links{align-items:center;gap:25px;display:flex}.footer-links a,.footer-back{color:#e8dfe6;align-items:center;gap:6px;font-size:14px;font-weight:650;transition:color .2s,transform .2s;display:inline-flex}.footer-links a:hover,.footer-back:hover{color:var(--accent);transform:translateY(-2px)}.footer-links a span{font-size:12px}.footer-back{justify-self:end}.footer-bottom{color:#8f868e;border-top:1px solid #251c27;justify-content:space-between;align-items:center;gap:20px;padding-top:19px;font-size:13px;display:flex}.project-dialog{width:min(510px,100% - 32px);max-height:min(84vh,850px);color:var(--text);background:#151016;border:1px solid #714d67;border-radius:13px;padding:0;overflow:auto;box-shadow:0 25px 90px #0009}.project-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000c2}.skill-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000c2}.project-dialog>img{aspect-ratio:1.72;object-fit:contain;background:#0a0a0a;width:100%;height:auto}.modal-close{z-index:2;color:#fff;background:#211721dc;border:1px solid #7d546f;border-radius:50%;place-items:center;width:33px;height:33px;font-size:24px;line-height:1;transition:transform .22s,background .22s;display:grid;position:absolute;top:12px;right:12px}.modal-close:hover{background:#51354b;transform:rotate(90deg)}.modal-content{padding:24px 27px 28px}.modal-content h2{margin:0 0 10px;font-size:23px}.modal-content>p{color:#c2b5c0;margin:0 0 18px;font-size:14px}.modal-content .project-tags{margin-bottom:24px}.modal-content .btn{border-radius:8px}.modal-actions{flex-wrap:wrap;gap:10px;display:flex}.modal-actions [hidden]{display:none}.skill-dialog{width:min(520px,100% - 32px);max-height:min(84vh,760px);color:var(--text);background:radial-gradient(circle at 14% 0,#efadd01c,#0000 34%),linear-gradient(#19131a,#110e12);border:1px solid #79516d;border-radius:15px;padding:30px 30px 28px;overflow:auto;box-shadow:0 25px 90px #000a}.skill-modal-heading{align-items:center;gap:17px;padding-right:28px;display:flex}.skill-modal-icon{background:#0c0a0d;border:1px solid #704c66;border-radius:14px;flex:0 0 58px;place-items:center;width:58px;height:58px;display:grid;box-shadow:inset 0 1px #ffffff0a}.skill-modal-icon img{object-fit:contain;width:34px;height:34px}.skill-modal-status{color:var(--accent);letter-spacing:.09em;text-transform:uppercase;margin-bottom:3px;font-size:11px;font-weight:750;display:block}.skill-modal-heading h2{letter-spacing:-.5px;margin:0;font-size:23px;line-height:1.25}.skill-modal-description{color:#c7bdc5;margin:22px 0 18px;font-size:15px;line-height:1.68}.skill-dialog:has(.skill-modal-certificate:not([hidden])){width:min(860px,100% - 32px);max-height:90vh}.skill-modal-certificate{object-fit:contain;border:1px solid color-mix(in srgb, var(--border) 74%, #fff);background:#fff;border-radius:10px;width:100%;max-height:58vh;margin:24px 0 20px;display:block}.skill-modal-certificate[hidden]{display:none}.skill-modal-details{gap:10px;margin:0;padding:0;list-style:none;display:grid}.skill-modal-details li{color:#e7dfe5;background:#09080a94;border:1px solid #382a39;border-radius:9px;padding:11px 13px 11px 34px;font-size:13px;line-height:1.5;position:relative}.skill-modal-details li:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:18px;left:15px;box-shadow:0 0 0 4px #efadd014}.reveal{opacity:0;transition:opacity .72s ease, transform .72s var(--ease), filter .72s ease;filter:blur(4px);transition-delay:0s;transform:translateY(21px)}.reveal[data-reveal=left]{transform:translate(-34px)}.reveal[data-reveal=right]{transform:translate(34px)}.reveal[data-reveal=up]{transform:translateY(26px)}.reveal.visible{opacity:1;filter:blur();transition-delay:var(--delay,0s);transform:translate(0)}.section-focus .section-shell,.hero.section-focus .hero-content{animation:sectionSlideFocus .78s var(--ease)}.hover-rise{transition:transform .28s var(--ease), box-shadow .28s ease, border-color .28s ease}.hover-rise:hover{transform:translateY(-6px);box-shadow:0 16px 34px #0003}@keyframes shinyTextSweep{0%,21%{background-position:100% 0}68%,to{background-position:0 0}}@keyframes floatBlob{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(18px,-10px)scale(1.08)}}@keyframes sectionSlideFocus{0%{opacity:.65;transform:translateX(var(--section-shift,30px))}to{opacity:1;transform:translate(0)}}@keyframes bunnyBreathe{0%,to{transform:translateY(0)scaleY(1)}50%{transform:translateY(-1px)scaleY(1.025)}}body{background:radial-gradient(circle at 15% 10%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 23%), radial-gradient(circle at 82% 24%, color-mix(in srgb, var(--accent-deep) 10%, transparent), transparent 18%), linear-gradient(180deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 92%, #000) 35%, var(--bg-alt) 100%)}::selection{color:var(--bg);background:var(--accent-light)}.skip-link{color:var(--bg)}.site-header.scrolled{background:color-mix(in srgb, var(--bg) 76%, transparent);border-color:color-mix(in srgb, var(--border) 72%, transparent)}.brand-name{text-shadow:0 0 18px color-mix(in srgb, var(--accent) 12%, transparent)}.site-nav a{color:color-mix(in srgb, var(--text) 86%, var(--muted))}.site-nav a:after{background:linear-gradient(90deg, transparent, var(--accent), transparent)}.hero:before{background:color-mix(in srgb, var(--accent) 14%, transparent)}.hero:after{background:color-mix(in srgb, var(--accent-deep) 10%, transparent)}.eyebrow{color:var(--accent-light);border-color:color-mix(in srgb, var(--accent-deep) 62%, var(--border));background:color-mix(in srgb, var(--panel) 72%, var(--accent) 12%)}.hero-description,.timeline-card p,.project-body>p,.contact-info-panel p,.contact-info-panel li{color:color-mix(in srgb, var(--muted) 88%, var(--text))}.btn-primary{color:var(--bg);background:linear-gradient(135deg, var(--accent-light), var(--accent-deep));box-shadow:0 14px 34px color-mix(in srgb, var(--accent-deep) 24%, transparent)}.btn-outline{border-color:color-mix(in srgb, var(--accent-deep) 72%, var(--border));color:var(--text);background:color-mix(in srgb, var(--panel-dark) 82%, transparent)}.about-section,.projects-section,.contact-section{border-color:var(--border-soft)}.skills-heading p{color:var(--muted)}.folder-paper{border-color:color-mix(in srgb, var(--accent-deep) 55%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 90%, var(--accent) 4%), var(--panel-dark))}.folder-paper:before,.folder-paper:after{background:color-mix(in srgb, var(--panel-dark) 90%, var(--accent) 5%)}.skill-chip{border-color:color-mix(in srgb, var(--border) 72%, var(--accent-deep));background:color-mix(in srgb, var(--bg) 76%, transparent);color:var(--text)}.skill-chip:hover{border-color:var(--accent-deep);background:color-mix(in srgb, var(--panel) 82%, var(--accent) 10%)}.skill-chip small{color:color-mix(in srgb, var(--muted) 78%, var(--accent-light))}.project-tags span{color:var(--accent-light);border-color:color-mix(in srgb, var(--accent-deep) 62%, var(--border));background:color-mix(in srgb, var(--panel) 82%, var(--accent) 8%)}.timeline-year{border-color:var(--accent-light);background:linear-gradient(180deg, var(--accent-light), var(--accent-deep));color:var(--bg)}.timeline-card,.project-card,.contact-form-panel,.contact-info-panel,.social-panel{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 96%, transparent), color-mix(in srgb, var(--panel-dark) 97%, transparent));border-color:var(--border)}.project-image{background:color-mix(in srgb, var(--panel) 72%, var(--accent-deep))}.contact-section{background:linear-gradient(180deg, var(--bg-alt), var(--bg))}.contact-form-panel input,.contact-form-panel textarea{background:color-mix(in srgb, var(--bg) 92%, var(--panel));border-color:color-mix(in srgb, var(--accent-deep) 72%, var(--border));color:var(--text)}.footer{border-color:var(--border);background:radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 28%), var(--bg);color:var(--muted)}.footer-identity span,.footer-bottom{color:var(--muted)}.project-dialog,.skill-dialog{background:linear-gradient(180deg, var(--panel), var(--panel-dark));border-color:var(--border);color:var(--text)}.modal-close{color:var(--text);border-color:var(--border);background:color-mix(in srgb, var(--panel) 86%, var(--accent) 8%)}@media (max-width:960px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-folder:last-child{grid-column:1/-1;justify-self:center;width:min(100%,360px)}}@media (max-width:900px){.container{width:min(100% - 52px,1140px)}.hero-content{grid-template-columns:minmax(0,1fr) minmax(250px,34vw);gap:8px}.hero-moon-root{margin-right:-12px}.about-overview{gap:30px}.skills-grid{gap:14px}.contact-grid{gap:18px}}@media (max-width:700px){html{scroll-padding-top:65px}.container{width:min(100% - 40px,540px)}.site-header{height:67px}.brand{min-width:101px;height:43px}.brand-name{font-size:24px}.menu-toggle{background:0 0;border:1px solid #4d3347;border-radius:8px;flex-direction:column;justify-content:center;gap:5px;width:39px;height:39px;padding:9px;display:flex}.menu-toggle span{background:var(--accent);border-radius:2px;width:100%;height:2px;transition:transform .25s,opacity .25s}.menu-toggle.open span:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:last-child{transform:translateY(-7px)rotate(-45deg)}.site-nav{background:#110e12;border-bottom:1px solid #4b3244;flex-direction:column;align-items:stretch;gap:0;padding:17px 20px 21px;display:none;position:absolute;top:67px;left:0;right:0;box-shadow:0 15px 30px #0008}.site-nav.open{display:flex}.site-nav a{padding:10px 0;font-size:14px}.hero{min-height:720px;padding:92px 0 68px}.hero-content{grid-template-columns:1fr;gap:20px}.hero-copy{z-index:2;position:relative}.hero-moon-root{justify-self:center;width:min(330px,86vw);margin:-12px auto 0}.hero h1{letter-spacing:-1.7px;margin-top:25px}.hero .text-type.hero-title{min-height:2.05em}.hero-description{margin:22px 0 28px;font-size:14px}.reveal[data-reveal=left]:not(.visible),.reveal[data-reveal=right]:not(.visible){transform:translateY(26px)}.hero-actions{gap:12px}.btn{min-width:140px}.about-section{padding:66px 0 80px}.about-overview{grid-template-columns:1fr;gap:12px}.about-copy{max-width:none}.bunny-scene{justify-self:center;width:min(300px,100%);height:300px;margin:0 auto}.skills-block{margin-top:29px}.skills-heading{margin-bottom:12px;display:block}.skills-heading p{text-align:left;max-width:420px;margin-top:-7px}.skills-grid{grid-template-columns:1fr;gap:4px}.skill-folder:last-child{grid-column:auto;width:100%}.folder-shell{height:calc(402px + var(--folder-extra-height,0px))}.experience-block{margin-top:60px}.timeline-item{grid-template-columns:54px 1fr;gap:14px}.timeline-year{width:54px;height:54px;font-size:10.5px}.timeline:before{left:27px}.timeline-card{padding:16px}.projects-section{padding:75px 0 86px}.projects-carousel__stage{height:430px;margin:-8px -20px -2px}.projects-carousel__meta{width:100%;padding:8px 0 0}.projects-carousel__hint{line-height:1.45}.project-body>p{min-height:0}.contact-section{padding:72px 0 80px}.contact-grid{grid-template-columns:1fr;gap:18px}.contact-form-panel,.contact-info-panel,.social-panel{padding:22px}.contact-info-panel p,.contact-info-panel li{font-size:14px}.footer-main{grid-template-columns:1fr;align-items:start;gap:22px}.footer-links{flex-wrap:wrap;gap:12px 25px}.footer-links a,.footer-back{min-height:40px}.footer-back{justify-self:start}.footer-bottom{flex-direction:column;align-items:flex-start;gap:5px}.skill-dialog{padding:27px 22px 24px}}@media (max-width:370px){.container{width:calc(100% - 28px)}.hero-actions{width:100%}.hero-actions .btn{flex:1;min-width:0;padding:11px 12px}.hero h1{font-size:34px}.timeline-item{gap:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.hero-item{opacity:1;filter:none;transform:none}.shiny-text{color:var(--accent);-webkit-text-fill-color:currentColor;background:0 0;animation:none!important}.bunny-picture{animation:none}}@media (forced-colors:active){.shiny-text{color:linktext;-webkit-text-fill-color:currentColor;background:0 0;animation:none}}@media print{.shiny-text{color:#111;-webkit-text-fill-color:currentColor;background:0 0;animation:none}}.halftone-reveal{width:100%;height:100%;position:relative;overflow:hidden}.halftone-reveal-fallback,.halftone-reveal-canvas{width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.halftone-reveal-fallback{object-fit:contain;opacity:.72}.hero-moon{filter:drop-shadow(0 24px 52px #bc7fa32e);width:100%;height:100%;position:relative}.hero-moon:after{content:"";z-index:-1;filter:blur(42px);pointer-events:none;background:#efadd014;border-radius:50%;position:absolute;top:16%;bottom:16%;left:10%;right:10%}.text-type{white-space:pre-wrap;display:inline-block;position:relative}.text-type__sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-type__char{position:relative}.text-type__char--accent{color:var(--accent);text-shadow:0 0 22px color-mix(in srgb, var(--accent) 16%, transparent)}.text-type__char--selected{background-color:color-mix(in srgb, currentColor 25%, transparent)}.text-type__caret{width:0;display:inline-block}.text-type__cursor{white-space:pre;pointer-events:none;will-change:transform;transition:opacity .2s;position:absolute;top:0;left:0}.text-type__cursor--hidden{opacity:0}.text-type__blink{display:inline-block}.text-type__cursor--character .text-type__blink{margin-left:.25rem}.text-type__shape{background-color:currentColor;margin-left:.06em;display:inline-block}.text-type__cursor--bar .text-type__shape{vertical-align:-.2em;border-radius:1px;width:max(2px,.07em);height:1.1em}.text-type__cursor--block .text-type__shape{vertical-align:-.2em;border-radius:.06em;width:.56em;height:1.1em}.text-type__cursor--underscore .text-type__shape{vertical-align:-.12em;border-radius:1px;width:.56em;height:max(2px,.075em)}.circular-carousel{--cc-fade:#000;--cc-radius:12px;--cc-inner:.4;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;outline:none;width:100%;height:100%;position:relative;overflow:hidden}.circular-carousel[data-axis=x]{touch-action:pan-x}.circular-carousel[data-draggable]{cursor:grab}.circular-carousel[data-dragging]{cursor:grabbing}.circular-carousel:focus-visible{box-shadow:inset 0 0 0 2px #80808c8c}.circular-carousel__view{position:absolute;top:0;bottom:0;left:0;right:0}.circular-carousel[data-shape=wheel] .circular-carousel__view{-webkit-mask-image:linear-gradient(#0000,#000 18% 82%,#0000);mask-image:linear-gradient(#0000,#000 18% 82%,#0000)}.circular-carousel[data-shape=panorama] .circular-carousel__view{-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.circular-carousel__stage{opacity:0;justify-content:center;align-items:center;transition:opacity .45s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.circular-carousel[data-ready] .circular-carousel__stage{opacity:1}.circular-carousel__camera,.circular-carousel__ring,.circular-carousel__card{width:0;height:0;transform-style:preserve-3d}.circular-carousel__action-layer{z-index:5;border-radius:var(--cc-radius);opacity:0;pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#09080a52;place-items:center;transition:opacity .18s;display:grid;position:absolute;transform:translateZ(3px)}.circular-carousel__card:hover .circular-carousel__action-layer,.circular-carousel__card:focus-within .circular-carousel__action-layer{opacity:1}.circular-carousel__action{color:#f9cee1;pointer-events:auto;background:#100e12eb;border:1px solid #f9cee1d1;border-radius:999px;justify-content:center;align-items:center;min-height:40px;padding:10px 17px;font-size:13px;font-weight:750;text-decoration:none;transition:color .18s,background .18s,transform .18s;display:inline-flex;box-shadow:0 12px 30px #00000052}.circular-carousel__action:hover{color:#09080a;background:#f9cee1;outline:none;transform:translateY(-2px)}.circular-carousel__action:focus-visible{color:#09080a;background:#f9cee1;outline:none;transform:translateY(-2px)}.circular-carousel__camera{position:relative}.circular-carousel__ring,.circular-carousel__card{position:absolute;top:0;left:0}.circular-carousel__tile{-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:1px solid #0000;position:absolute}.circular-carousel__frame{width:100%;position:absolute;top:0;left:0;overflow:hidden}.circular-carousel__photo{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:none;display:block;position:absolute}.circular-carousel__photo--leaving{animation:.7s cubic-bezier(.33,1,.68,1) both circular-carousel-leave}.circular-carousel__shade,.circular-carousel__inner{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.circular-carousel__shade{background:var(--cc-fade);opacity:var(--cc-depth,0)}.circular-carousel__inner{opacity:var(--cc-inner);background:#000}.circular-carousel__caption{color:inherit;text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:6px;padding:0 16px;animation:.9s both circular-carousel-reveal;display:flex;position:absolute;bottom:22px;left:0;right:0}.circular-carousel__title{flex-direction:column;align-items:center;max-width:100%;font-size:15px;font-weight:500;line-height:1.35;animation:.52s cubic-bezier(.22,1,.36,1) circular-carousel-title;display:flex}.circular-carousel__subtitle{opacity:.6;font-weight:400}.circular-carousel__count{font-variant-numeric:tabular-nums;opacity:.5;align-items:center;gap:3px;font-size:12px;line-height:1;display:inline-flex}.circular-carousel__slash{opacity:.6}.circular-carousel__digits{display:inline-flex}.circular-carousel__digit{height:1em;display:inline-block;overflow:hidden}.circular-carousel__reel{flex-direction:column;transition:transform .6s cubic-bezier(.22,1,.36,1);display:flex}.circular-carousel__reel>span{height:1em}.circular-carousel__live{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@keyframes circular-carousel-title{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes circular-carousel-leave{0%{opacity:1}to{opacity:0}}@keyframes circular-carousel-reveal{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.circular-carousel__stage,.circular-carousel__reel{transition:none}.circular-carousel__caption,.circular-carousel__title{animation:none}}@media (hover:none){.circular-carousel__card:focus-within .circular-carousel__action-layer{opacity:1}}
