.vfd-lyrics-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:root{color-scheme:dark;color:#f7f0f5;background:#110d1c;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--text: #f7f0f5;--muted: rgba(232, 218, 230, .74);--faint: rgba(218, 201, 222, .56);--line: rgba(242, 225, 239, .18);--line-strong: rgba(246, 229, 242, .34);--glass: rgba(31, 22, 45, .52);--accent: #e8c4d5;--accent-ink: #352735;--accent-soft: rgba(232, 196, 213, .16);--cute-pink: rgba(237, 183, 207, .88);--cute-lilac: rgba(191, 166, 221, .72);--cute-butter: rgba(239, 218, 174, .9);--radius: 1.2rem;--ease: cubic-bezier(.22, 1, .36, 1);--page-background: radial-gradient(ellipse at 19% 0%, rgba(231, 204, 138, .14), transparent 33%), radial-gradient(ellipse at 84% 24%, rgba(182, 151, 207, .15), transparent 35%), linear-gradient(145deg, #110d1c 0%, #1b1229 48%, #2a1930 100%);--theme-origin-x: 50vw;--theme-origin-y: 4rem}:root,html{min-height:100dvh;background:var(--page-background);background-attachment:fixed}html{scroll-behavior:smooth}*{box-sizing:border-box}body,#root{min-height:100dvh}body{min-width:320px;margin:0;overflow-x:hidden;background:var(--page-background);background-attachment:fixed}#root{background:transparent}body,button,a{font:inherit}a{color:inherit;text-decoration:none}button{border:0}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:20;padding:.7rem 1rem;border-radius:.6rem;background:#fff;color:#352735;transform:translateY(-150%);transition:transform .18s ease}.skip-link:focus{transform:translateY(0)}.app-shell{position:relative;min-height:100dvh;isolation:isolate;padding:clamp(1rem,3vw,2rem) clamp(1rem,5vw,4.5rem);background:transparent}.app-shell.is-viewport-page{height:100dvh;min-height:0;overflow:hidden}.app-shell.is-document-scroll{min-height:0;overflow:visible}.ambient-light-clip{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.app-shell.is-document-scroll:before{position:fixed;inset:0}.theme-snapshot{position:fixed;inset:0;z-index:100;width:100vw;min-height:100dvh;overflow:hidden;pointer-events:none;clip-path:circle(150vmax at var(--theme-origin-x) var(--theme-origin-y));will-change:clip-path}.theme-snapshot.is-receding{animation:theme-conceal .56s cubic-bezier(.55,0,1,.45) both}.vfd-loader{display:inline-grid;grid-template-columns:repeat(3,.32rem);align-items:center;gap:.22rem;min-width:1.42rem}.vfd-loader>span{width:.32rem;height:.32rem;border-radius:50%;background:var(--accent);box-shadow:0 0 .65rem #e8c4d585;animation:loader-pulse .96s var(--ease) infinite both}.vfd-loader>span:nth-child(2){animation-delay:.12s}.vfd-loader>span:nth-child(3){animation-delay:.24s}.vfd-loader--artwork{grid-template-columns:repeat(3,.46rem);gap:.3rem;min-width:1.98rem}.vfd-loader--artwork>span{width:.46rem;height:.46rem}.app-shell:before{position:absolute;inset:0;z-index:0;content:"";pointer-events:none;opacity:.2;background-image:radial-gradient(circle at 10% 18%,rgba(255,255,255,.85) 0 1px,transparent 1.4px),radial-gradient(circle at 73% 33%,rgba(227,199,233,.58) 0 1px,transparent 1.5px);background-size:18rem 18rem,26rem 26rem}.ambient-light-field{position:absolute;inset:-24dvh -20vw auto;z-index:0;height:75rem;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 16rem),transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 16rem),transparent 100%)}.fluid-music-field{position:absolute;inset:-18dvh -16vw;height:75rem;overflow:hidden;opacity:.5;filter:blur(46px) saturate(108%);mix-blend-mode:screen}.fluid-music-field:before,.fluid-music-field:after,.fluid-sheet{position:absolute;content:"";will-change:transform,opacity}.fluid-music-field:before{inset:0;border-radius:44% 56% 52% 48%;opacity:.26;background:conic-gradient(from 120deg at 45% 48%,#ca8eae75,#a88dc266,#e4cd9033,#ca8eae75);animation:drift-a 17s ease-in-out infinite alternate}.fluid-music-field:after{inset:12dvh 2vw 0;border-radius:57% 43% 46% 54%;opacity:.22;background:radial-gradient(ellipse at 31% 42%,rgba(203,151,181,.42),transparent 49%),radial-gradient(ellipse at 72% 58%,rgba(175,148,202,.34),transparent 55%);animation:drift-b 14s ease-in-out -3s infinite alternate}.fluid-sheet{width:130vw;height:55rem;opacity:.22;mix-blend-mode:screen}.fluid-sheet-a{top:-5rem;left:-28vw;border-radius:44% 56% 62% 38%;background:radial-gradient(ellipse at 22% 40%,rgba(203,145,176,.45),transparent 48%),radial-gradient(ellipse at 58% 50%,rgba(167,142,194,.3),transparent 58%);animation:drift-a 11s ease-in-out -2s infinite alternate}.fluid-sheet-b{top:13rem;right:-30vw;border-radius:60% 40% 38% 62%;background:radial-gradient(ellipse at 38% 38%,rgba(176,147,202,.4),transparent 50%),radial-gradient(ellipse at 70% 64%,rgba(227,204,142,.26),transparent 58%);animation:drift-b 13s ease-in-out -5s infinite alternate}.fluid-sheet-c{top:30rem;left:-16vw;border-radius:48% 52% 36% 64%;background:radial-gradient(ellipse at 42% 38%,rgba(194,157,187,.32),transparent 50%);animation:drift-c 15s ease-in-out -8s infinite alternate}.star-noise{position:absolute;inset:0;opacity:.18;background:radial-gradient(circle at 12% 18%,rgba(255,255,255,.8) 0 1px,transparent 1.4px),radial-gradient(circle at 68% 36%,rgba(231,204,223,.48) 0 1px,transparent 1.3px),radial-gradient(circle at 38% 82%,rgba(222,204,240,.42) 0 1px,transparent 1.4px);background-size:14rem 14rem,20rem 20rem,27rem 27rem}.vfd-canvas{position:absolute;top:6.75rem;left:21%;z-index:1;width:79%;height:min(52dvh,36rem);filter:brightness(1.55) contrast(1.08);pointer-events:none}.site-frame{position:relative;z-index:2;width:min(100%,88rem);margin:0 auto}.site-header{display:flex;min-height:4.75rem;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line)}.site-header-actions{display:flex;align-items:center;gap:.8rem}.brand-lockup{display:flex;align-items:center;gap:.68rem;padding:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.eyebrow,.project-meta,.navigation-label,.navigation-footer{color:var(--faint);font:600 .66rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.brand-avatar{display:block;width:2.5rem;height:2.5rem;flex:none;overflow:hidden;border:1px solid var(--line-strong);border-radius:50%;box-shadow:0 0 0 .2rem #e8c4d51a,0 .45rem 1.4rem #c796be26}.brand-avatar img{display:block;width:100%;height:100%;object-fit:cover}.brand-lockup strong{display:block;color:var(--text);font-size:.98rem;letter-spacing:-.01em}.brand-lockup:focus-visible{outline:2px solid var(--accent);outline-offset:.45rem;border-radius:.25rem}.theme-toggle,.transparent-background-toggle{display:grid;width:2.75rem;height:2.75rem;flex:none;place-items:center;border:1px solid var(--line);border-radius:50%;background:#ffffff0f;color:var(--text);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s var(--ease)}.theme-toggle:hover,.theme-toggle:focus-visible,.transparent-background-toggle:hover,.transparent-background-toggle:focus-visible{border-color:var(--line-strong);background:var(--accent-soft);color:var(--accent);outline:2px solid var(--accent);outline-offset:3px;transform:translateY(-1px)}.transparent-background-toggle[aria-pressed=true]{border-color:#efdaae6b;background:#efdaae24;color:var(--cute-butter);box-shadow:inset 0 1px #ffffff1f,0 .4rem 1rem #efdaae1f}.transparent-background-toggle.is-suggested{grid-template-columns:1.12rem max-content;gap:.38rem;width:8.15rem;padding:.55rem .78rem;overflow:hidden;border-color:var(--line-strong);border-radius:999px;background:#ffffff0f;color:var(--text);font-size:.78rem;font-weight:700;box-shadow:none;transition:width .32s cubic-bezier(.55,0,.12,1),gap .22s cubic-bezier(.55,0,.12,1),padding .32s cubic-bezier(.55,0,.12,1),background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s var(--ease)}.transparent-background-toggle.is-suggested.is-dismissing{gap:0;width:2.75rem;padding-right:.78rem;padding-left:.78rem}.transparent-background-toggle-label{white-space:nowrap}.transparent-background-toggle.is-dismissing .transparent-background-toggle-label{animation:transparent-background-hint-dismiss .28s cubic-bezier(.55,0,.12,1) both}.site-layout{display:grid;grid-template-columns:minmax(10rem,12rem) minmax(0,1fr);align-items:stretch;gap:clamp(2rem,5vw,5.5rem);min-height:calc(100dvh - 4.75rem);padding-top:clamp(1.75rem,3.5vh,3rem)}.is-viewport-page .site-frame{height:100%}.is-viewport-page .site-layout{grid-template-rows:minmax(0,1fr);height:calc(100% - 4.75rem);min-height:0}.is-document-scroll .site-layout{min-height:0}.site-navigation{position:sticky;top:1.5rem;align-self:start;padding:.85rem;border:1px solid var(--line);border-radius:1.15rem;background:linear-gradient(155deg,#3d2a4f99,#1b122980);box-shadow:0 24px 70px #0003,inset 0 1px #ffffff1a;-webkit-backdrop-filter:blur(22px) saturate(115%);backdrop-filter:blur(22px) saturate(115%)}.navigation-label{display:block;padding:.1rem .55rem .75rem;border-bottom:1px solid var(--line)}.navigation-list{display:grid;gap:.22rem;padding-top:.55rem}.navigation-link{position:relative;display:flex;min-height:3.15rem;align-items:center;gap:.72rem;width:100%;padding:.6rem .62rem;border:1px solid transparent;border-radius:.82rem;background:transparent;color:#f7f0f5ad;text-align:left;cursor:pointer;transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .18s var(--ease)}.navigation-link:hover,.navigation-link:focus-visible{border-color:var(--line);background:#ffffff0f;color:var(--text);outline:0;transform:translate(.14rem)}.navigation-link.is-active{border-color:#f4dbeb47;background:linear-gradient(100deg,#e8c4d53b,#b59dd021);color:var(--text);box-shadow:inset 3px 0 var(--accent),0 .35rem 1.15rem #140c1e1f}.navigation-link.is-active:after{position:absolute;right:.72rem;width:.36rem;height:.36rem;border-radius:50%;background:var(--cute-butter);box-shadow:0 0 .7rem var(--cute-butter);content:""}.navigation-footer{margin:.75rem .55rem .15rem;font-size:.57rem;line-height:1.5;text-transform:none}.icon{width:1.12rem;height:1.12rem;flex:none}.portfolio-content{display:block;min-width:0}.is-viewport-page .portfolio-content{height:100%;overflow:hidden}.page-screen{display:grid;align-content:start;min-width:0;min-height:calc(100dvh - 9.5rem);animation:page-enter .42s var(--ease) both;outline:0}.is-viewport-page .page-screen{min-height:100%}.is-document-scroll .page-screen{min-height:0}.page-screen-home{--home-vfd-space: clamp(13rem, 28vh, 18rem);align-items:end;align-content:stretch;padding:var(--home-vfd-space) 0 clamp(2rem,6vh,4rem)}.page-screen-home:has(.vfd-lyrics-slot){padding-top:0}.vfd-lyrics-slot{position:relative;width:100%;height:var(--home-vfd-space, 15rem);margin:0;overflow:hidden}.vfd-lyrics-slot>.vfd-canvas{inset:0;width:100%;height:100%}.page-screen-contact{align-content:safe center}.page-screen:not(.page-screen-home){padding:clamp(1rem,3vh,2.5rem) 0 clamp(2rem,5vh,4rem)}.page-screen-lab{padding-bottom:calc(clamp(2rem,5vh,4rem) + 6rem)}.back-to-top{position:fixed;right:clamp(1rem,3vw,2rem);bottom:2rem;z-index:6;display:inline-flex;min-height:2.8rem;align-items:center;gap:.35rem;padding:.65rem .85rem;border:1px solid var(--line-strong);border-radius:999px;background:#231831c7;box-shadow:0 12px 34px #0003,inset 0 1px #ffffff1f;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:transform .18s var(--ease),background-color .18s ease,color .18s ease}.back-to-top.has-music-pill{bottom:6.75rem}.back-to-top .icon{transform:rotate(-90deg)}.back-to-top:hover,.back-to-top:focus-visible{background:var(--accent-soft);color:var(--accent);outline:2px solid var(--accent);outline-offset:3px;transform:translateY(-2px)}.liquid-glass{border:1px solid var(--line);background:linear-gradient(145deg,#f7e2f11a,#4d345b45 48%,#281b3970);box-shadow:0 25px 75px #0000003d,inset 0 1px #ffffff2e,inset 0 -1px #f4e1ef0d;-webkit-backdrop-filter:blur(26px) saturate(110%);backdrop-filter:blur(26px) saturate(110%)}.hero-copy{width:min(100%,44rem);text-shadow:0 2px 22px rgba(17,11,28,.8)}.hero-kicker{display:inline-flex;align-items:center;gap:.5rem;margin:0;padding:.38rem .72rem;border:1px solid rgba(239,218,174,.2);border-radius:999px;background:#efdaae14;color:#efdaaa;font-size:clamp(.82rem,1.5vw,.98rem);font-weight:600}.hero-kicker:before{width:.42rem;height:.42rem;border-radius:50%;background:var(--cute-butter);box-shadow:0 0 .85rem #efdaaebf;content:""}h1,h2,h3,p{margin-top:0}h1{max-width:none;margin:1rem 0 1.1rem;color:var(--text);font-size:clamp(2.85rem,5.2vw,5.15rem);line-height:.96;letter-spacing:-.065em;line-break:strict;text-wrap:balance}.hero-summary{max-width:57ch;margin-bottom:0;color:var(--muted);font-size:1rem;line-height:1.78}.hero-interests{max-width:62ch;margin:.85rem 0 0;color:var(--faint);font-size:.86rem;line-height:1.72;overflow-wrap:anywhere}.hero-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:2rem}.button{position:relative;display:inline-flex;min-height:2.9rem;align-items:center;justify-content:center;gap:.45rem;overflow:hidden;padding:.65rem 1.08rem;border:1px solid var(--line-strong);border-radius:999px;font-size:.88rem;font-weight:700;cursor:pointer;isolation:isolate;transition:transform .18s var(--ease),background-color .18s ease,color .18s ease,box-shadow .18s ease}.button:after{position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 18%,rgba(255,255,255,.32) 48%,transparent 76%);content:"";opacity:0;transform:translate(-80%);transition:transform .3s var(--ease),opacity .18s ease}.button:hover,.button:focus-visible{box-shadow:0 .7rem 1.7rem #0f091a2e;transform:translateY(-2px);outline:2px solid rgba(247,224,240,.82);outline-offset:3px}.button:hover:after,.button:focus-visible:after{opacity:1;transform:translate(80%)}.button-primary{border-color:#ffefc58c;background:linear-gradient(125deg,var(--cute-butter),var(--cute-pink) 58%,var(--cute-lilac));color:var(--accent-ink)}.button-secondary{background:#ffffff0f;color:var(--text)}.music-player-card{display:grid;grid-template-columns:4.7rem minmax(0,1fr) auto;align-items:center;gap:.9rem;width:min(100%,42rem);margin-top:clamp(1.15rem,2.8vw,1.75rem);padding:.72rem;border-radius:1.2rem;background:linear-gradient(135deg,#daa4be33,#34234661 55%,#ad91c63d)}.music-artwork{display:grid;width:4.7rem;height:4.7rem;place-items:center;overflow:hidden;border:1px solid rgba(244,219,235,.3);border-radius:1.25rem .82rem;background:radial-gradient(circle at 28% 24%,rgba(239,218,174,.52),transparent 30%),linear-gradient(145deg,#78546f,#3b2d56);color:#fdf2f8e6;box-shadow:inset 0 1px #ffffff38,0 .55rem 1.2rem #0f091a2e}.music-artwork img{width:100%;height:100%;object-fit:cover}.music-artwork .icon{width:1.55rem;height:1.55rem}.music-player-copy{min-width:0}.music-player-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.music-player-heading p,.music-player-heading>span{margin:0;font:600 .58rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.music-player-heading p{color:var(--accent)}.music-player-heading>span{overflow:hidden;color:var(--faint);text-align:right;text-overflow:ellipsis;white-space:nowrap}.music-player-status{display:inline-flex;min-width:0;align-items:center;justify-content:flex-end;gap:.38rem}.music-player-status .vfd-loader{flex:none}.music-player-copy h2{overflow:hidden;margin:.27rem 0 .15rem;color:var(--text);font-size:.96rem;font-weight:650;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}.music-player-copy>p{overflow:hidden;margin:0;color:var(--muted);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.music-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem;margin-top:.48rem}.music-progress input{width:100%;accent-color:var(--accent);cursor:pointer}.music-progress input:disabled{cursor:not-allowed;opacity:.42}.music-progress span{color:var(--faint);font:600 .56rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums}.music-player-controls{display:flex;align-items:center;gap:.38rem}.music-player-controls button{display:grid;flex:none;place-items:center;border:1px solid var(--line);color:var(--text);cursor:pointer;transition:transform .18s var(--ease),color .18s ease,background-color .18s ease,border-color .18s ease}.music-player-controls button:hover:not(:disabled),.music-player-controls button:focus-visible{border-color:var(--line-strong);background:var(--accent-soft);color:var(--accent);outline:2px solid var(--accent);outline-offset:2px;transform:translateY(-1px)}.music-player-controls button:disabled{cursor:not-allowed;opacity:.42}.music-skip-button{width:2.25rem;height:2.25rem;border-radius:.55rem;background:#ffffff0d}.music-skip-button .icon{width:1rem;height:1rem}.music-toggle-button{width:2.75rem;height:2.75rem;border-radius:50%;background:linear-gradient(145deg,var(--cute-butter),var(--cute-pink));color:var(--accent-ink)!important;box-shadow:0 .35rem .9rem #e8c4d540}.music-toggle-button .icon{width:1.12rem;height:1.12rem}.music-mode-button{width:2.75rem;height:2.75rem;border-radius:.7rem;background:#ffffff0d}.music-mode-button .icon{width:1.08rem;height:1.08rem}.music-mode-button[aria-pressed=true]{border-color:#ffe6b694;background:linear-gradient(145deg,#efdaae42,#dc9dbb40);color:var(--accent)!important;box-shadow:inset 0 1px #ffffff38,0 .3rem .8rem #e8c4d52e}.music-player-pill{position:fixed;right:clamp(1rem,3vw,2rem);bottom:calc(1.25rem + env(safe-area-inset-bottom));z-index:7;display:grid;grid-template-columns:2.85rem;align-items:center;width:auto;max-width:calc(100vw - 2rem);padding:.3rem;border-radius:999px;background:linear-gradient(135deg,#daa4be47,#3423469e 55%,#ad91c64d);box-shadow:0 18px 48px #0000004d,inset 0 1px #ffffff2e}.music-player-pill.is-expanded{grid-template-columns:3.2rem minmax(0,1fr) auto;width:min(calc(100vw - 2rem),34rem);gap:.7rem;padding:.55rem .65rem .55rem .55rem;border-radius:1.25rem}.music-pill-leading{position:relative;width:2.85rem;height:2.85rem}.music-player-pill.is-expanded .music-pill-leading{width:3.2rem;height:3.2rem}.music-pill-artwork-toggle{position:relative;display:grid;width:2.85rem;height:2.85rem;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.music-player-pill.is-expanded .music-pill-artwork-toggle{width:3.2rem;height:3.2rem}.music-pill-artwork-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.music-pill-artwork-toggle:hover .music-pill-artwork,.music-pill-artwork-toggle:focus-visible .music-pill-artwork{border-color:var(--line-strong);box-shadow:inset 0 1px #ffffff3d,0 .55rem 1.2rem #0f091a3d;transform:scale(1.04)}.music-pill-artwork{display:grid;width:2.85rem;height:2.85rem;place-items:center;overflow:hidden;border:1px solid rgba(244,219,235,.3);border-radius:50%;background:radial-gradient(circle at 28% 24%,rgba(239,218,174,.52),transparent 30%),linear-gradient(145deg,#78546f,#3b2d56);color:#fdf2f8e6;box-shadow:inset 0 1px #ffffff38,0 .4rem 1rem #0f091a2e}.music-player-pill.is-expanded .music-pill-artwork{width:3.2rem;height:3.2rem}.music-pill-artwork img{width:100%;height:100%;object-fit:cover}.music-pill-artwork .icon{width:1.18rem;height:1.18rem}.music-pill-expand-indicator{position:absolute;top:-.08rem;right:-.08rem;display:grid;width:1.05rem;height:1.05rem;place-items:center;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface-strong);color:var(--accent);box-shadow:0 .2rem .55rem #0f091a3d;pointer-events:none}.music-pill-expand-indicator .icon{width:.62rem;height:.62rem;transform:rotate(90deg);transition:transform .18s var(--ease)}.music-player-pill.is-expanded .music-pill-expand-indicator .icon{transform:rotate(-90deg)}.music-pill-copy{min-width:0}.music-pill-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.music-pill-heading span{overflow:hidden;color:var(--faint);font:600 .55rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.07em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.music-pill-heading span:first-child{color:var(--accent)}.music-pill-copy strong,.music-pill-copy>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-pill-copy strong{margin-top:.18rem;color:var(--text);font-size:.76rem;font-weight:700}.music-pill-copy>span{margin-top:.08rem;color:var(--muted);font-size:.62rem}.music-pill-progress{display:block;width:100%;height:.8rem;margin-top:.12rem;accent-color:var(--accent);cursor:pointer}.music-pill-progress:disabled{cursor:not-allowed;opacity:.42}.music-player-controls--compact{gap:.25rem}.music-player-controls--compact .music-skip-button{width:2rem;height:2rem;border-radius:50%}.music-player-controls--compact .music-skip-button .icon{width:.85rem;height:.85rem}.music-player-controls--compact .music-toggle-button{width:2.45rem;height:2.45rem}.music-player-controls--compact .music-mode-button{width:2.35rem;height:2.35rem;border-radius:50%}.music-player-controls--compact .music-mode-button .icon{width:.9rem;height:.9rem}.music-consent-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:1rem;background:#100a1ba3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:music-consent-fade .18s ease both}.music-consent-dialog{position:relative;width:min(100%,28rem);overflow:hidden;padding:clamp(1.25rem,4vw,2rem);border:1px solid var(--line-strong);border-radius:1.45rem;background:linear-gradient(145deg,#463059f0,#1f142ff7);box-shadow:0 28px 90px #0000006b,inset 0 1px #ffffff29;isolation:isolate;animation:music-consent-enter .24s var(--ease) both}.music-consent-dialog:before,.music-consent-dialog:after{position:absolute;z-index:-1;border-radius:50%;content:"";pointer-events:none}.music-consent-dialog:before{top:-4.8rem;right:-4.4rem;width:11rem;height:11rem;background:radial-gradient(circle,rgba(237,183,207,.32),transparent 68%)}.music-consent-dialog:after{bottom:-4rem;left:-3.4rem;width:9rem;height:9rem;background:radial-gradient(circle,rgba(191,166,221,.28),transparent 68%)}.music-consent-icon{display:grid;width:2.9rem;height:2.9rem;place-items:center;margin-bottom:1.3rem;border:1px solid rgba(255,226,239,.48);border-radius:1rem .72rem;background:linear-gradient(145deg,#edb7cf47,#bfa6dd33);color:var(--accent);box-shadow:inset 0 1px #ffffff42,0 .5rem 1.2rem #180d252e}.music-consent-icon .icon{width:1.28rem;height:1.28rem}.music-consent-dialog h2{margin:.45rem 0 .65rem;color:var(--text);font-size:clamp(1.55rem,5vw,2.1rem);letter-spacing:-.045em}.music-consent-dialog>p:not(.eyebrow){margin-bottom:0;color:var(--muted);font-size:.9rem;line-height:1.65}.music-source-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:.75rem;color:var(--accent);font-size:.82rem;font-weight:700}.music-source-link .icon{width:.95rem;height:.95rem;transition:transform .18s var(--ease)}.music-source-link:hover .icon,.music-source-link:focus-visible .icon{transform:translate(.2rem)}.music-consent-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.45rem}.music-consent-actions .button{min-width:7.2rem}.section-heading{max-width:43rem;margin-bottom:clamp(1.25rem,3vw,2.25rem)}.section-heading h2,.contact-card h2{margin:.8rem 0 0;color:var(--text);font-size:clamp(2rem,4vw,3.75rem);line-height:1.03;letter-spacing:-.05em;text-wrap:balance}.section-heading h2,.contact-card h2{margin-top:0}.about-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(14rem,.8fr);gap:1rem}.about-card,.skill-card,.lab-preview{border-radius:var(--radius)}.about-card{padding:clamp(1.35rem,3vw,2rem)}.about-card>p{max-width:47ch;margin-bottom:2rem;color:var(--text);font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.62;letter-spacing:-.025em}.profile-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0;padding-top:1rem;border-top:1px solid var(--line)}.profile-facts dt{color:var(--faint);font:600 .62rem/1.3 ui-monospace,monospace;text-transform:uppercase}.profile-facts dd{margin:.35rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.5}.skill-card{padding:1.35rem;border:1px solid var(--line);background:#1e142d52}.skill-list,.tag-list{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 0;padding:0;list-style:none}.skill-list li{padding:.52rem .65rem;border:1px solid var(--line);border-radius:.45rem;color:var(--muted);font-size:.8rem}.resume-achievements{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line)}.resume-achievements h3{margin:0;color:var(--text);font-size:.86rem}.resume-achievements ul{display:grid;gap:.45rem;margin:.55rem 0 0;padding:0;list-style:none}.resume-achievements li{display:grid;grid-template-columns:2.35rem minmax(0,1fr);column-gap:.45rem;align-items:baseline}.resume-achievements li>span{color:var(--accent);font:600 .58rem/1.3 ui-monospace,monospace}.resume-achievements strong{color:var(--muted);font-size:.7rem;font-weight:600}.resume-achievements small{grid-column:2;color:var(--faint);font-size:.62rem;line-height:1.3}.resume-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(14rem,.72fr);gap:1rem}.resume-card{padding:clamp(1.15rem,2vw,1.7rem);border-radius:var(--radius)}.resume-summary{max-width:68ch;margin-bottom:.35rem;color:var(--text);font-size:1.03rem;line-height:1.55;letter-spacing:-.018em}.demo-note{margin-bottom:1rem;color:var(--faint);font-size:.7rem;line-height:1.45}.resume-basics{margin-bottom:1rem;padding:.85rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.resume-basics h3{margin:0;color:var(--text);font-size:.86rem}.resume-basics dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem 1rem;margin:.75rem 0 0}.resume-basics dt{color:var(--faint);font:600 .6rem/1.3 ui-monospace,monospace;letter-spacing:.05em}.resume-basics dd{margin:.24rem 0 0;color:var(--muted);font-size:.75rem;line-height:1.4;overflow-wrap:anywhere}.timeline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding-top:.85rem;border-top:1px solid var(--line)}.timeline-group h3{margin:0;color:var(--text);font-size:.92rem}.timeline-group ol{display:grid;gap:.65rem;margin:.65rem 0 0;padding:0;list-style:none}.timeline-group li{position:relative;padding-left:.7rem;border-left:1px solid var(--line-strong)}.timeline-group li:before{position:absolute;top:.25rem;left:-.2rem;width:.35rem;height:.35rem;border-radius:50%;background:var(--accent);content:""}.timeline-group li p{margin-bottom:.18rem;color:var(--faint);font:600 .6rem/1.25 ui-monospace,monospace;letter-spacing:.05em}.timeline-group h4{margin:0;color:var(--text);font-size:.78rem;line-height:1.35}.timeline-group strong,.timeline-group span{display:block;margin-top:.14rem;color:var(--muted);font-size:.68rem;line-height:1.4;font-weight:500}.timeline-group span{color:var(--faint)}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem}.project-card{display:flex;min-width:0;min-height:25rem;flex-direction:column;overflow:hidden;border-radius:var(--radius);transition:transform .22s var(--ease),border-color .22s ease}.project-card:hover{border-color:var(--line-strong);transform:translateY(-3px)}.project-visual{position:relative;min-height:7.75rem;overflow:hidden;border-bottom:1px solid var(--line);background:linear-gradient(145deg,#523a62cc,#2b1d3c94)}.project-visual:before,.project-visual:after,.project-visual span{position:absolute;display:block;content:"";border:1px solid rgba(247,226,241,.2);border-radius:.75rem}.project-visual:before{inset:14%;background:linear-gradient(135deg,#f6d5e624,#c2aadb1f);box-shadow:0 20px 42px #0000002e}.project-visual:after{top:25%;right:25%;width:36%;height:2rem;background:#f9e1ef33}.project-visual span:nth-child(1){bottom:22%;left:25%;width:50%;height:1.2rem;background:#f0dbeb1a}.project-visual span:nth-child(2){bottom:14%;left:25%;width:27%;height:1.2rem;background:#f0dbeb1a}.project-visual span:nth-child(3){top:-25%;left:-16%;width:70%;height:130%;border:0;border-radius:50%;background:radial-gradient(circle,rgba(219,194,232,.3),transparent 62%);filter:blur(12px)}.project-visual.has-cover{background-color:#2c1f3a}.project-visual.has-cover img{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;object-fit:cover}.project-visual.has-cover:before{inset:0;z-index:1;border:0;border-radius:0;background:linear-gradient(135deg,#120b1c14,#120b1c6b);box-shadow:none;pointer-events:none}.project-visual.has-cover:after{display:none}.project-visual-2{background:linear-gradient(145deg,#664857c7,#322030a8)}.project-visual-2:before{transform:rotate(-7deg)}.project-visual-3{background:linear-gradient(145deg,#594574c7,#271b3abd)}.project-visual-3:before{border-radius:50% 50% .75rem .75rem}.project-content{display:flex;flex:1;flex-direction:column;padding:1.15rem}.project-meta{display:flex;justify-content:space-between;gap:.5rem}.project-meta span:last-child{color:#eddaab;text-align:right}.project-content h3,.lab-card h3{margin:1.1rem 0 .55rem;color:var(--text);font-size:1.2rem;line-height:1.15;letter-spacing:-.035em}.project-content>p,.lab-card p,.lab-preview-copy,.contact-card>p{color:var(--muted);font-size:.88rem;line-height:1.65}.tag-list li{padding:.35rem .48rem;border:1px solid rgba(244,225,239,.16);border-radius:.35rem;color:var(--faint);font:600 .62rem/1.2 ui-monospace,monospace}.project-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:auto;padding-top:1rem}.project-links a,.project-link-muted{display:inline-flex;min-height:2rem;align-items:center;gap:.35rem;color:var(--text);font-size:.8rem;font-weight:700}.project-links a:hover,.project-links a:focus-visible{color:var(--accent);outline:0}.project-link-muted{color:var(--faint);cursor:not-allowed}.article-grid{columns:2;column-gap:1rem}.blog-empty-state{max-width:34rem;padding:clamp(1.35rem,4vw,2.2rem);border-radius:var(--radius)}.blog-empty-state h3{margin:.45rem 0 .65rem;color:var(--text);font-size:clamp(1.45rem,4vw,1.9rem)}.blog-empty-state p:last-child{margin:0;color:var(--muted)}.achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.article-card,.achievement-card{display:flex;min-height:17rem;flex-direction:column;padding:1.25rem;border-radius:var(--radius)}.article-card{--pointer-x: 50%;--pointer-y: 50%;position:relative;width:100%;min-height:0;margin:0 0 1rem;break-inside:avoid;background:linear-gradient(145deg,#f7e2f11a,#4d345b45 48%,#281b3970);transition:border-color .18s ease,box-shadow .18s ease}.article-card:after{position:absolute;inset:0;border-radius:inherit;background:radial-gradient(10rem circle at var(--pointer-x) var(--pointer-y),rgba(236,216,173,.11),transparent 42%);content:"";opacity:0;pointer-events:none;transition:opacity .18s ease}.article-card>*{position:relative;z-index:1}.article-card:nth-child(2n){min-height:10.5rem}.article-card:nth-child(3n){min-height:13rem}.article-card:hover{border-color:var(--line-strong);box-shadow:0 24px 66px #00000042,inset 0 1px #fff3}.article-card:hover:after{opacity:1}.article-meta{display:flex;justify-content:space-between;gap:.5rem;color:var(--faint);font:600 .62rem/1.3 ui-monospace,monospace;letter-spacing:.07em;text-transform:uppercase}.article-card h3,.achievement-card h3{margin:1.15rem 0 .65rem;color:var(--text);font-size:1.22rem;line-height:1.2;letter-spacing:-.035em}.article-card p,.achievement-card p{margin:0;color:var(--muted);font-size:.85rem;line-height:1.65}.article-reading{margin-top:auto;padding-top:1rem;color:var(--accent);font:600 .63rem/1.3 ui-monospace,monospace;letter-spacing:.04em}.blog-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1rem;margin:-1rem 0 1rem}.blog-filter-label,.blog-section-heading p{margin:0;color:var(--faint);font:600 .64rem/1.35 ui-monospace,monospace;letter-spacing:.07em;text-transform:uppercase}.blog-filter-list{display:flex;flex-wrap:wrap;gap:.45rem}.blog-filter{min-height:2.55rem;padding:.48rem .72rem;border:1px solid var(--line);border-radius:999px;background:#ffffff08;color:var(--muted);font-size:.75rem;font-weight:650;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,color .18s ease}.blog-filter:hover,.blog-filter:focus-visible{border-color:var(--line-strong);background:var(--accent-soft);color:var(--text);outline:2px solid var(--accent);outline-offset:3px}.blog-filter.is-active{border-color:transparent;background:var(--accent);color:var(--accent-ink)}.blog-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 .8rem}.blog-section-heading span{color:var(--muted);font:600 .66rem/1.3 ui-monospace,monospace}.blog-card{break-inside:avoid}.blog-card{border:1px solid var(--line);color:inherit;text-align:left;cursor:pointer}.blog-card:hover,.blog-card:focus-visible{border-color:var(--line-strong);outline:2px solid var(--accent);outline-offset:3px}.article-reading .icon{width:.9rem;height:.9rem;margin-left:.25rem}.blog-article-layout{display:grid;grid-template-columns:minmax(0,52rem) minmax(12rem,14rem);align-items:start;gap:1rem;max-width:69rem}.blog-article{min-width:0;padding:clamp(1.35rem,4vw,2.6rem);border-radius:var(--radius)}.blog-back{display:inline-flex;min-height:2.75rem;align-items:center;gap:.35rem;padding:0 .15rem;background:transparent;color:var(--accent);font-weight:700;cursor:pointer}.blog-back .icon{width:1rem;height:1rem;transform:rotate(180deg)}.blog-article header{padding-bottom:1.35rem;border-bottom:1px solid var(--line)}.blog-article h1{margin:.45rem 0 .8rem;color:var(--text);font-size:clamp(2rem,6vw,3.2rem);line-height:1.08}.markdown-content{padding-top:1.35rem;color:var(--muted);line-height:1.8}.markdown-content h2,.markdown-content h3,.markdown-content h4{scroll-margin-top:1.5rem;margin:2rem 0 .65rem;color:var(--text);line-height:1.25}.markdown-content h2{margin-top:2.55rem;font-size:clamp(1.35rem,3vw,1.75rem)}.markdown-content h3{font-size:1.12rem}.markdown-content h4{font-size:.98rem}.markdown-content p{margin:0 0 1rem}.markdown-content li{margin:.35rem 0 .35rem 1.25rem}.markdown-content blockquote{margin:1.2rem 0;padding-left:1rem;border-left:2px solid var(--accent);color:var(--text)}.markdown-content pre{overflow-x:auto;margin:1.25rem 0;padding:1rem;border:1px solid var(--line);border-radius:.8rem;background:#120c1c7a;color:var(--text);font:.78rem/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.markdown-content code{padding:.12rem .28rem;border-radius:.3rem;background:#ffffff14;color:var(--text);font:.88em ui-monospace,SFMono-Regular,Consolas,monospace}.markdown-content pre code{padding:0;background:transparent}.markdown-content a{color:var(--accent);text-decoration:underline;text-decoration-color:#e8c4d575;text-underline-offset:.18em}.article-toc{position:sticky;top:1.5rem;padding:1rem;border:1px solid var(--line);border-radius:1rem;background:#1e142d57;box-shadow:0 18px 50px #00000024,inset 0 1px #ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.article-toc ol{display:grid;gap:.25rem;margin:.75rem 0 0;padding:0;border-left:1px solid var(--line);list-style:none}.article-toc li{min-width:0;padding-left:.58rem}.article-toc .article-toc-level-3{padding-left:1.15rem}.article-toc .article-toc-level-4{padding-left:1.72rem}.article-toc a{display:block;overflow-wrap:anywhere;padding:.28rem .18rem;border-left:2px solid transparent;color:var(--faint);font-size:.68rem;line-height:1.42;text-decoration:none;transition:border-color .18s ease,color .18s ease,background-color .18s ease}.article-toc a:hover,.article-toc a:focus-visible,.article-toc a[aria-current=location]{border-left-color:var(--accent);background:var(--accent-soft);color:var(--text);outline:0}.article-pagination{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:2.25rem;padding-top:1.2rem;border-top:1px solid var(--line)}.article-pager{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;min-width:0;min-height:5.8rem;align-content:center;gap:.2rem .6rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:.85rem;background:#ffffff0a;color:var(--text);text-align:left;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,transform .18s var(--ease)}.article-pager:hover:not(:disabled),.article-pager:focus-visible:not(:disabled){border-color:var(--line-strong);background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:3px;transform:translateY(-1px)}.article-pager:disabled{cursor:not-allowed;opacity:.48}.article-pager span,.article-pager strong,.article-pager small{grid-column:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-pager span{color:var(--accent);font:600 .6rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.07em;text-transform:uppercase}.article-pager strong{font-size:.82rem;line-height:1.35}.article-pager small{color:var(--faint);font:600 .6rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace}.article-pager .icon{grid-column:2;grid-row:1 / span 3;align-self:center;width:1rem;height:1rem}.article-pager-previous .icon{transform:rotate(180deg)}.blog-tag-list{margin-top:1rem}.blog-card .article-reading{display:inline-flex;min-height:1.4rem;align-items:end}.achievement-card>span{color:var(--accent);font:600 .68rem/1.3 ui-monospace,monospace;letter-spacing:.08em}.achievement-card strong{color:var(--muted);font-size:.77rem;font-weight:500}.contact-inline{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:.85rem 1rem;border-top:1px solid var(--line);color:var(--muted)}.contact-inline p{margin:0;font-size:.82rem}.contact-inline a{display:inline-flex;align-items:center;gap:.45rem;color:var(--text);font-size:.86rem;font-weight:700;white-space:nowrap}.contact-inline a:hover,.contact-inline a:focus-visible{color:var(--accent);outline:0}.lab-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.8fr);gap:1rem}.lab-list{display:grid;gap:.35rem}.lab-card{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:0 1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}.lab-card>span{padding-top:.2rem;color:var(--faint);font:600 .67rem/1.3 ui-monospace,monospace}.lab-card h3{margin:0 0 .38rem;font-size:1rem}.lab-card p{margin-bottom:.5rem}.lab-card .tag-list{grid-column:2;margin-top:.05rem}.lab-preview{padding:1.15rem}.lab-preview .threeui-crt-panel{margin-top:.75rem}.lab-preview-copy{margin:.75rem 0 0}.contact-layout{display:grid;width:min(100%,50rem);gap:1rem}.contact-card{width:100%;padding:clamp(1.5rem,4vw,3rem);border-radius:var(--radius)}.contact-card h2{max-width:13ch}.contact-card>p{max-width:48ch;margin:1.25rem 0 0}.friend-links-panel{width:100%;padding:clamp(1.2rem,3vw,1.65rem);border-radius:var(--radius)}.friend-links-heading{padding-bottom:1rem;border-bottom:1px solid var(--line)}.friend-links-heading .eyebrow{margin:0}.friend-links-heading h2{margin:.38rem 0 0;color:var(--text);font-size:clamp(1.3rem,2.5vw,1.65rem);letter-spacing:-.04em}.friend-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.65rem;margin-top:1rem}.friend-link-card{display:grid;grid-template-columns:3.25rem minmax(0,1fr) auto;min-height:4.8rem;align-items:center;gap:.8rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:.95rem;background:#1e142d57;color:var(--text);transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s var(--ease)}.friend-link-icon{display:grid;width:3.25rem;height:3.25rem;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:.75rem;background:#ffffff14}.friend-link-icon picture,.friend-link-icon img{display:block;width:100%;height:100%}.friend-link-icon img{object-fit:cover}.friend-link-copy{display:grid;min-width:0;gap:.1rem}.friend-link-copy small{color:var(--faint);font:600 .64rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em}.friend-link-copy strong{overflow-wrap:anywhere;font-size:clamp(.95rem,1.7vw,1.1rem);letter-spacing:-.025em}.friend-link-copy small{overflow-wrap:anywhere}.friend-link-card>.icon{width:1.15rem;height:1.15rem;color:var(--faint);transition:color .18s ease,transform .18s var(--ease)}.friend-link-card:hover,.friend-link-card:focus-visible{border-color:var(--line-strong);background:var(--accent-soft);color:var(--accent);outline:2px solid var(--accent);outline-offset:3px;transform:translateY(-2px)}.friend-link-card:hover>.icon,.friend-link-card:focus-visible>.icon{color:currentColor;transform:translate(.2rem)}.contact-emails{display:grid;gap:.45rem;margin-top:1.6rem}.contact-emails a{display:inline-flex;width:fit-content;min-height:2.5rem;align-items:center;border-bottom:1px solid var(--accent);color:var(--text);font-size:clamp(.9rem,1.6vw,1.08rem);font-weight:700;overflow-wrap:anywhere}.contact-emails a:hover,.contact-emails a:focus-visible{color:var(--accent);outline:0}.contact-email{display:inline-flex;min-height:3rem;align-items:center;gap:.65rem;margin-top:1.65rem;border-bottom:1px solid var(--accent);color:var(--text);font-size:clamp(1rem,2vw,1.35rem);font-weight:700;overflow-wrap:anywhere}.contact-email:hover,.contact-email:focus-visible{color:var(--accent);outline:0}.social-grid{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}.social-link{display:inline-flex;width:3.2rem;min-width:3.2rem;height:3.2rem;align-items:center;gap:.65rem;overflow:hidden;padding:0;border:1px solid var(--line);border-radius:999px;background:#1e142d57;color:var(--text);cursor:pointer;transition:width .26s var(--ease),background-color .18s ease,border-color .18s ease,color .18s ease}.social-logo{display:grid;width:3.1rem;min-width:3.1rem;height:3.1rem;place-items:center}.social-icon{width:1.2rem;height:1.2rem}.social-copy{display:grid;min-width:7rem;gap:.06rem;opacity:0;transform:translate(-.35rem);transition:opacity .16s ease 50ms,transform .22s var(--ease) 50ms}.social-copy strong{font-size:.78rem}.social-copy small{color:var(--muted);font:600 .63rem/1.25 ui-monospace,monospace;letter-spacing:.02em}.social-link .icon{width:1rem;height:1rem;margin-right:.7rem;opacity:0;transition:opacity .16s ease 80ms}.social-link:hover,.social-link:focus-visible{width:min(13.5rem,100%);border-color:var(--line-strong);background:var(--accent-soft);color:var(--accent);outline:0}.social-link:hover .social-copy,.social-link:focus-visible .social-copy{opacity:1;transform:translate(0)}.social-link:hover .icon,.social-link:focus-visible .icon{opacity:1}.social-link.is-pending{color:var(--faint);cursor:default}.social-link.is-pending em{margin-left:auto;margin-right:.75rem;color:var(--faint);font:600 .6rem/1.2 ui-monospace,monospace;font-style:normal;opacity:0;transition:opacity .16s ease 80ms}.social-link.is-pending:hover em,.social-link.is-pending:focus-within em{opacity:1}.threeui-crt-panel{position:relative;min-height:11rem;overflow:hidden;border:1px solid rgba(232,181,208,.3);border-radius:.7rem;background:#1b1027bd;box-shadow:inset 0 1px #fce6f329;isolation:isolate}.threeui-crt-panel--static{background:linear-gradient(135deg,#50304cc2,#1c1229e0),#1c122a}.threeui-crt-panel__background{position:absolute!important;inset:0;z-index:-2;width:100%!important;height:100%!important;mix-blend-mode:screen;pointer-events:none}.threeui-crt-panel__background>canvas{opacity:.78}.threeui-crt-panel__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,10,29,.34),transparent 45%,rgba(33,18,45,.58)),repeating-linear-gradient(0deg,rgba(255,214,237,.05) 0 1px,transparent 1px 4px);pointer-events:none}.threeui-crt-panel__content{display:grid;min-height:11rem;align-content:space-between;gap:1rem;padding:1rem;color:#fce5f4e6;font-family:SF Mono,Cascadia Code,Consolas,monospace}.threeui-crt-panel__topline,.threeui-crt-panel__metrics{display:flex;align-items:center;gap:.55rem;color:#e9c6deb8;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.threeui-crt-panel__state{margin-left:auto;color:#efd8a5}.threeui-crt-panel__signal{width:.42rem;height:.42rem;border-radius:50%;background:#d9a6c1;box-shadow:0 0 .7rem #d9a6c1cc}.threeui-crt-panel__label{margin:0;color:#dbbbda9e;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.threeui-crt-panel h3{margin:.38rem 0 0;color:#fae7f2;font-family:inherit;font-size:1rem;font-weight:500;letter-spacing:-.03em}.threeui-crt-panel__metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.threeui-crt-panel__metrics div{min-width:0;padding-top:.55rem;border-top:1px solid rgba(233,194,220,.22)}.threeui-crt-panel__metrics dt{color:#e6c5dc8f;font-size:.58rem}.threeui-crt-panel__metrics dd{margin:.25rem 0 0;color:#fce6f3f0;font-size:.68rem}:root[data-theme=light]{color-scheme:light;color:#362c3d;background:var(--page-background);background-attachment:fixed;--text: #362c3d;--muted: rgba(73, 58, 79, .78);--faint: rgba(96, 77, 102, .64);--line: rgba(95, 70, 98, .2);--line-strong: rgba(79, 55, 86, .36);--glass: rgba(255, 255, 255, .62);--accent: #825b7b;--accent-ink: #fff9fc;--accent-soft: rgba(130, 91, 123, .14);--page-background: radial-gradient(ellipse at 19% 0%, rgba(239, 210, 143, .3), transparent 34%), radial-gradient(ellipse at 84% 24%, rgba(212, 177, 217, .28), transparent 36%), linear-gradient(145deg, #fbf3f1 0%, #f5eff8 50%, #faf5df 100%)}html[data-theme=light],html[data-theme=light] body{background:var(--page-background);background-attachment:fixed}:root[data-theme=light] .app-shell{background:transparent}:root[data-theme=light] .app-shell:before{opacity:.13;background-image:radial-gradient(circle at 10% 18%,rgba(83,61,88,.48) 0 1px,transparent 1.4px),radial-gradient(circle at 73% 33%,rgba(146,101,141,.34) 0 1px,transparent 1.5px)}:root[data-theme=light] .fluid-music-field{opacity:.26;filter:blur(48px) saturate(86%);mix-blend-mode:multiply}:root[data-theme=light] .fluid-music-field:before{opacity:.18;background:conic-gradient(from 120deg at 45% 48%,#bf87a366,#a48bbc52,#dfc48133,#bf87a366)}:root[data-theme=light] .fluid-music-field:after{opacity:.16}:root[data-theme=light] .fluid-sheet{opacity:.14;mix-blend-mode:multiply}:root[data-theme=light] .star-noise{opacity:.11;background:radial-gradient(circle at 12% 18%,rgba(78,55,83,.54) 0 1px,transparent 1.4px),radial-gradient(circle at 68% 36%,rgba(147,101,140,.38) 0 1px,transparent 1.3px),radial-gradient(circle at 38% 82%,rgba(126,101,153,.32) 0 1px,transparent 1.4px)}:root[data-theme=light] .vfd-canvas{filter:brightness(.86) contrast(1.15) saturate(.82)}:root[data-theme=light] .site-navigation{background:#ffffff94;box-shadow:0 22px 56px #61475f1f,inset 0 1px #ffffffd1}:root[data-theme=light] .navigation-link{color:#3e2e44bd}:root[data-theme=light] .navigation-link:hover,:root[data-theme=light] .navigation-link:focus-visible{background:#ffffff9e}:root[data-theme=light] .liquid-glass,:root[data-theme=light] .article-card{background:linear-gradient(145deg,#ffffffd1,#f8ebf4b8 52%,#faf5ddb8);box-shadow:0 20px 54px #61475f1f,inset 0 1px #ffffffeb,inset 0 -1px #573e5b0f}:root[data-theme=light] .skill-card,:root[data-theme=light] .social-link,:root[data-theme=light] .friend-link-card{background:#ffffff8a}:root[data-theme=light] .button-secondary,:root[data-theme=light] .theme-toggle,:root[data-theme=light] .transparent-background-toggle{background:#ffffffb3}:root[data-theme=light] .transparent-background-toggle.is-suggested{border-color:#4f37565c;background:#ffffffb3;color:var(--text);box-shadow:none}:root[data-theme=light] .music-player-card{background:linear-gradient(135deg,#fcebf3e0,#f3ebfacc 55%,#fbf5dad6)}:root[data-theme=light] .music-player-pill{background:linear-gradient(135deg,#fcebf3f0,#f3ebfaeb 55%,#fbf5daf0);box-shadow:0 18px 48px #61475f33,inset 0 1px #fffffff0}:root[data-theme=light] .article-toc{background:#ffffff8a;box-shadow:0 18px 50px #61475f1f,inset 0 1px #ffffffdb}:root[data-theme=light] .article-pager{background:#fff6}:root[data-theme=light] .music-artwork{border-color:#65465f33;background:radial-gradient(circle at 28% 24%,rgba(245,223,164,.76),transparent 30%),linear-gradient(145deg,#aa7894,#8c77a1)}:root[data-theme=light] .music-pill-artwork{border-color:#65465f33;background:radial-gradient(circle at 28% 24%,rgba(245,223,164,.76),transparent 30%),linear-gradient(145deg,#aa7894,#8c77a1)}:root[data-theme=light] .music-consent-backdrop{background:#3a273d5c}:root[data-theme=light] .music-consent-dialog{background:linear-gradient(145deg,#fffffff5,#f9edf6fa);box-shadow:0 28px 90px #5539523d,inset 0 1px #fffffff5}:root[data-theme=light] .button:hover,:root[data-theme=light] .button:focus-visible{outline-color:#684865cc}:root[data-theme=light] .hero-copy{text-shadow:0 2px 20px rgba(255,249,250,.92)}:root[data-theme=light] .hero-kicker{color:#805776}:root[data-theme=light] .project-visual{background:linear-gradient(145deg,#c296b1ad,#e4d0e7a8)}:root[data-theme=light] .project-visual-2{background:linear-gradient(145deg,#cfa8aead,#efdcd8b3)}:root[data-theme=light] .project-visual-3{background:linear-gradient(145deg,#af9dc6a8,#e0d7ebb8)}:root[data-theme=light] .project-visual:before,:root[data-theme=light] .project-visual:after,:root[data-theme=light] .project-visual span{border-color:#6347662b}:root[data-theme=light] .project-visual:before{background:linear-gradient(135deg,#ffffff6b,#f9e8f433);box-shadow:0 20px 42px #5c41581f}:root[data-theme=light] .project-visual:after{background:#ffffff80}:root[data-theme=light] .project-visual span:nth-child(1),:root[data-theme=light] .project-visual span:nth-child(2){background:#ffffff52}:root[data-theme=light] .project-visual.has-cover{background-color:#ead9e6}:root[data-theme=light] .project-visual.has-cover:before{background:linear-gradient(135deg,#fff6f90f,#fff6f957)}:root[data-theme=light] .article-card:after{background:radial-gradient(10rem circle at var(--pointer-x) var(--pointer-y),rgba(209,163,190,.12),transparent 42%)}:root[data-theme=light] .article-card:hover{box-shadow:0 21px 56px #593d5526,inset 0 1px #ffffffe6}:root[data-theme=light] .blog-filter{background:#ffffff7a}:root[data-theme=light] .blog-filter.is-active{background:var(--accent);color:var(--accent-ink)}::view-transition-group(root){animation-duration:.56s;animation-timing-function:var(--ease)}::view-transition-image-pair(root){isolation:auto}:root[data-theme=light]::view-transition-old(root){z-index:0;animation:none}:root[data-theme=light]::view-transition-new(root){z-index:1;animation:theme-reveal .56s var(--ease) both}:root[data-theme=dark]::view-transition-old(root){z-index:1;animation:theme-conceal .48s cubic-bezier(.55,0,1,.45) both}:root[data-theme=dark]::view-transition-new(root){z-index:0;animation:none}@keyframes page-enter{0%{opacity:0;transform:translate(1.25rem)}to{opacity:1;transform:translate(0)}}@keyframes loader-pulse{0%,to{opacity:.28;transform:translateY(.14rem) scale(.78)}50%{opacity:1;transform:translateY(-.12rem) scale(1)}}@keyframes theme-reveal{0%{clip-path:circle(0 at var(--theme-origin-x) var(--theme-origin-y))}to{clip-path:circle(150vmax at var(--theme-origin-x) var(--theme-origin-y))}}@keyframes theme-conceal{0%{clip-path:circle(150vmax at var(--theme-origin-x) var(--theme-origin-y))}to{clip-path:circle(0 at var(--theme-origin-x) var(--theme-origin-y))}}@keyframes drift-a{0%{transform:translate3d(-4vw,-2dvh,0) rotate(-7deg) scale(1.03)}to{transform:translate3d(6vw,4dvh,0) rotate(6deg) scale(1.12)}}@keyframes drift-b{0%{transform:translate3d(5vw,3dvh,0) rotate(6deg) scale(1.04)}to{transform:translate3d(-5vw,-3dvh,0) rotate(-5deg) scale(1.13)}}@keyframes drift-c{0%{transform:translate3d(2vw,3dvh,0) rotate(-3deg) scale(1.05)}to{transform:translate3d(-7vw,-4dvh,0) rotate(8deg) scale(1.13)}}@media(max-width:60rem){.app-shell{padding-bottom:calc(6.25rem + env(safe-area-inset-bottom))}.vfd-canvas{top:6.3rem;left:0;width:100%;height:48dvh;filter:brightness(1.42) contrast(1.06)}.site-layout{display:block;min-height:calc(100dvh - 11rem - env(safe-area-inset-bottom))}.is-viewport-page .site-layout{height:calc(100% - 4.75rem);min-height:0}.site-navigation{position:fixed;top:auto;right:50%;bottom:calc(1rem + env(safe-area-inset-bottom));left:auto;z-index:5;width:min(39rem,calc(100vw - 2rem));padding:.45rem;transform:translate(50%);border-radius:2rem}.navigation-label,.navigation-footer{display:none}.navigation-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:0}.navigation-link{min-height:3.15rem;justify-content:center;gap:.3rem;padding:.3rem;border-radius:1.55rem;font-size:.75rem;text-align:center}.navigation-link.is-active{border-color:transparent;background:#eec9db29;box-shadow:none}.page-screen{min-height:calc(100dvh - 11rem - env(safe-area-inset-bottom))}.is-viewport-page .page-screen{min-height:100%}.page-screen:not(.page-screen-home){padding-bottom:clamp(2rem,5vh,4rem)}.page-screen-home{--home-vfd-space: clamp(12.5rem, 29vh, 15rem);padding-top:var(--home-vfd-space);padding-bottom:calc(7.25rem + env(safe-area-inset-bottom))}.back-to-top{right:1rem;bottom:calc(5.6rem + env(safe-area-inset-bottom))}.back-to-top.has-music-pill{bottom:calc(10.5rem + env(safe-area-inset-bottom))}.hero-copy{width:min(100%,44rem)}.hero-actions{margin-top:1rem}}@media(max-width:42rem){.app-shell{padding-right:1rem;padding-left:1rem}.site-header{min-height:4.3rem}.site-layout{min-height:calc(100dvh - 10.55rem - env(safe-area-inset-bottom))}.is-viewport-page .site-layout{height:calc(100% - 4.3rem);min-height:0}.page-screen{align-content:start;min-height:calc(100dvh - 10.55rem - env(safe-area-inset-bottom));padding-bottom:clamp(2rem,5vh,4rem)}.is-viewport-page .page-screen{min-height:100%}.page-screen.page-screen-contact{align-content:safe center}.page-screen-home{--home-vfd-space: clamp(12.5rem, 32vh, 15rem);align-content:end;padding-top:var(--home-vfd-space);padding-bottom:calc(7.25rem + env(safe-area-inset-bottom))}.page-screen-lab{padding-bottom:calc(14rem + env(safe-area-inset-bottom))}.hero-copy{width:100%}.music-player-card{grid-template-columns:4.1rem minmax(0,1fr);gap:.75rem}.music-artwork{width:4.1rem;height:4.1rem}.music-player-controls{grid-column:1 / -1;justify-content:flex-end;padding-top:.2rem;border-top:1px solid var(--line)}.music-skip-button{width:2.55rem;height:2.55rem}.music-toggle-button{width:2.9rem;height:2.9rem}h1{font-size:clamp(2.8rem,12vw,4.2rem)}.about-grid,.lab-layout,.resume-grid,.timeline-grid,.resume-basics dl,.project-grid,.achievement-grid{grid-template-columns:1fr}.article-grid{columns:1}.blog-article-layout{grid-template-columns:1fr}.article-toc{position:static;order:-1}.article-pagination{grid-template-columns:1fr}.blog-filter-bar{align-items:flex-start;margin-top:-.6rem}.social-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.social-link,.social-link:hover,.social-link:focus-visible{width:100%;min-width:0}.social-logo{width:2.8rem;min-width:2.8rem;height:3.1rem}.social-copy{min-width:0;opacity:1;transform:none}.social-link .icon{display:none}.project-card{position:relative;min-height:25rem;isolation:isolate}.project-visual{position:absolute;inset:0;z-index:0;min-height:0;border-bottom:0;background-position:center;background-size:cover}.project-content{position:relative;z-index:1;padding:clamp(1.2rem,5vw,1.55rem);background:linear-gradient(180deg,#110b1c85,#1c122ae0 48%,#1c122af5)}:root[data-theme=light] .project-content{background:linear-gradient(180deg,#fff8fa5c,#faeff7d6 48%,#fcf7e5f0)}.profile-facts{grid-template-columns:1fr}.navigation-link{flex-direction:column;font-size:.64rem}.navigation-link .icon{width:1rem;height:1rem}.lab-preview{margin-top:.35rem}.music-player-pill.is-collapsed{right:1rem;bottom:calc(6.35rem + env(safe-area-inset-bottom));left:auto;grid-template-columns:3rem;width:auto;padding:.35rem;border-radius:999px}.music-player-pill.is-expanded{right:1rem;bottom:calc(6.35rem + env(safe-area-inset-bottom));left:1rem;grid-template-columns:3.45rem minmax(0,1fr);width:auto;padding:.65rem;border-radius:1.35rem}.music-player-pill.is-expanded+.back-to-top.has-music-pill{bottom:calc(13.3rem + env(safe-area-inset-bottom))}.music-player-pill.is-collapsed+.back-to-top.has-music-pill{bottom:calc(10.5rem + env(safe-area-inset-bottom))}.music-player-pill.is-collapsed .music-pill-leading,.music-player-pill.is-collapsed .music-pill-artwork-toggle,.music-player-pill.is-collapsed .music-pill-artwork{width:3rem;height:3rem}.music-player-pill.is-expanded .music-pill-leading,.music-player-pill.is-expanded .music-pill-artwork-toggle,.music-player-pill.is-expanded .music-pill-artwork{width:3.45rem;height:3.45rem}.music-player-pill .music-player-controls--compact{grid-column:1 / -1;justify-content:flex-end;padding-top:.45rem;border-top:1px solid var(--line)}}@media(max-height:500px)and (orientation:landscape){.page-screen-home{--home-vfd-space: 12rem}.app-shell{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}::view-transition-group(root),::view-transition-old(root),::view-transition-new(root){animation:none!important}.fluid-music-field,.star-noise,.threeui-crt-panel__background{display:none}}@media (background-material: "windows-mica"),(background-material: "windows-acrylic"),(base-material: "translucent-low"),(base-material: "transparent-high"){:root,html,body{background-color:transparent;background-image:none}}:root[data-firefox-transparent-background],html[data-firefox-transparent-background],html[data-firefox-transparent-background] body{background-color:transparent;background-image:none}:root[data-theme=light][data-firefox-transparent-background]{color:var(--text);--text: #130917;--muted: #24142a;--faint: #38203f;--line: rgba(62, 42, 69, .4);--line-strong: rgba(53, 34, 60, .58)}:root[data-theme=light][data-firefox-transparent-background] .app-shell{background:linear-gradient(145deg,#fffafd2e,#f4edff1a 50%,#fffbe729)}:root[data-theme=light][data-firefox-transparent-background] .app-shell:before{opacity:.045}:root[data-theme=light][data-firefox-transparent-background] .fluid-music-field{opacity:.07;filter:blur(54px) saturate(65%)}:root[data-theme=light][data-firefox-transparent-background] .fluid-music-field:before{opacity:.11}:root[data-theme=light][data-firefox-transparent-background] .fluid-music-field:after{opacity:.09}:root[data-theme=light][data-firefox-transparent-background] .fluid-sheet{opacity:.035}:root[data-theme=light][data-firefox-transparent-background] .star-noise{opacity:.05}:root[data-theme=light][data-firefox-transparent-background] .vfd-canvas{opacity:1;filter:brightness(1.18) contrast(1.35) saturate(.88)}:root[data-theme=light][data-firefox-transparent-background] .site-navigation{background:linear-gradient(145deg,#ffffff6b,#faf1fc47);box-shadow:0 22px 56px #4a304726,inset 0 1px #ffffffad,inset 0 -1px #593f5e1f;-webkit-backdrop-filter:blur(30px) saturate(125%);backdrop-filter:blur(30px) saturate(125%)}:root[data-theme=light][data-firefox-transparent-background] .liquid-glass,:root[data-theme=light][data-firefox-transparent-background] .article-card{background:linear-gradient(145deg,#ffffff75,#f9eef752 52%,#fdf9e54d);box-shadow:0 20px 54px #49304729,inset 0 1px #ffffffb3,inset 0 -1px #4a304f1f;-webkit-backdrop-filter:blur(28px) saturate(125%);backdrop-filter:blur(28px) saturate(125%)}:root[data-theme=light][data-firefox-transparent-background] .skill-card,:root[data-theme=light][data-firefox-transparent-background] .social-link,:root[data-theme=light][data-firefox-transparent-background] .friend-link-card{background:#ffffff57;-webkit-backdrop-filter:blur(20px) saturate(120%);backdrop-filter:blur(20px) saturate(120%)}:root[data-theme=light][data-firefox-transparent-background] .music-player-card{background:linear-gradient(135deg,#fcebf37a,#f3ebfa57 55%,#fbf5da61);box-shadow:0 20px 54px #49304726,inset 0 1px #ffffffad;-webkit-backdrop-filter:blur(28px) saturate(125%);backdrop-filter:blur(28px) saturate(125%)}:root[data-theme=light][data-firefox-transparent-background] .navigation-link{color:#231528f0}:root[data-theme=light][data-firefox-transparent-background] .transparent-background-toggle[aria-pressed=true]{border-color:#97681ec2;background:linear-gradient(145deg,#ffecb5c7,#efd084a8);color:#8b5d16;box-shadow:inset 0 1px #ffffffc7,0 .4rem 1rem #a6701738}:root[data-theme=light][data-firefox-transparent-background] .hero-kicker{color:#4b2d49}:root[data-theme=light][data-firefox-transparent-background] .hero-copy{text-shadow:none}@keyframes music-consent-fade{0%{opacity:0}to{opacity:1}}@keyframes music-consent-enter{0%{opacity:0;transform:translateY(.75rem) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes transparent-background-hint-dismiss{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(.45rem) scale(.9)}}
