@font-face{font-family:Google Sans Flex Variable;src:url(/google-sans-flex-site.woff2)format("woff2");font-weight:100 1000;font-stretch:25% 151%;font-style:oblique -20deg 0deg;font-display:swap}:root{font-synthesis:none;font-optical-sizing:auto;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--md-sys-color-on-surface);background:var(--md-sys-color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;--md-sys-color-background:#141218;--md-sys-color-on-background:#e6e0e9;--md-sys-color-surface:#141218;--md-sys-color-surface-container-low:#1d1b20;--md-sys-color-surface-container:#211f26;--md-sys-color-surface-container-high:#2b2930;--md-sys-color-surface-container-highest:#36343b;--md-sys-color-on-surface:#e6e0e9;--md-sys-color-on-surface-variant:#cac4d0;--md-sys-color-outline-variant:#49454f;--md-sys-color-primary:#d0bcff;--md-sys-color-on-primary:#381e72;--md-sys-color-primary-container:#4f378b;--md-sys-color-on-primary-container:#eaddff;--md-sys-color-secondary-container:#4a4458;--md-sys-color-on-secondary-container:#e8def8;--md-sys-color-tertiary:#efb8c8;--md-sys-color-tertiary-container:#633b48;--md-sys-color-on-tertiary-container:#ffd8e4;--surface-glass:#1d1b20f0;--surface-border:#e6e0e90b;--hero-bg:#2b2930;--hero-ink:#e6e0e9;--hero-emphasis:#d0bcff;--accent:#d0bcff;--accent-ink:#381e72;--ambient-one:#d0bcff12;--ambient-two:#efb8c809;--shadow-color:#0003;--spring:cubic-bezier(.2, .8, .2, 1);font-family:Google Sans Flex Variable,Google Sans,Inter,system-ui,sans-serif}:root[data-mood=blue]{--md-sys-color-background:#111318;--md-sys-color-surface:#111318;--md-sys-color-surface-container-low:#191c20;--md-sys-color-surface-container:#1d2024;--md-sys-color-surface-container-high:#282a2f;--md-sys-color-surface-container-highest:#33353a;--md-sys-color-primary:#a8c7fa;--md-sys-color-on-primary:#062e6f;--md-sys-color-primary-container:#0842a0;--md-sys-color-on-primary-container:#d3e3fd;--md-sys-color-secondary-container:#3e4756;--md-sys-color-on-secondary-container:#dae2f9;--md-sys-color-tertiary:#a7c7c7;--md-sys-color-tertiary-container:#294b4b;--md-sys-color-on-tertiary-container:#c2e9e9;--surface-glass:#191c20f0;--hero-bg:#282a2f;--hero-ink:#e2e2e9;--hero-emphasis:#a8c7fa;--accent:#a8c7fa;--accent-ink:#062e6f;--ambient-one:#a8c7fa12;--ambient-two:#a7c7c709}:root[data-mood=teal]{--md-sys-color-background:#0e1513;--md-sys-color-on-background:#dde4e1;--md-sys-color-surface:#0e1513;--md-sys-color-surface-container-low:#171d1b;--md-sys-color-surface-container:#1b211f;--md-sys-color-surface-container-high:#252b2a;--md-sys-color-surface-container-highest:#303634;--md-sys-color-on-surface:#dde4e1;--md-sys-color-on-surface-variant:#bec9c5;--md-sys-color-outline-variant:#3f4946;--md-sys-color-primary:#83d5c6;--md-sys-color-on-primary:#003730;--md-sys-color-primary-container:#005047;--md-sys-color-on-primary-container:#9ff2e2;--md-sys-color-secondary-container:#334b46;--md-sys-color-on-secondary-container:#cde8e1;--md-sys-color-tertiary:#accae5;--md-sys-color-tertiary-container:#2c4a60;--md-sys-color-on-tertiary-container:#cae6ff;--surface-glass:#171d1bf0;--surface-border:#dde4e10b;--hero-bg:#252b2a;--hero-ink:#dde4e1;--hero-emphasis:#83d5c6;--accent:#83d5c6;--accent-ink:#003730;--ambient-one:#83d5c612;--ambient-two:#accae509}:root[data-mood=green]{--md-sys-color-background:#101510;--md-sys-color-surface:#101510;--md-sys-color-surface-container-low:#181d18;--md-sys-color-surface-container:#1c211c;--md-sys-color-surface-container-high:#262b26;--md-sys-color-surface-container-highest:#313631;--md-sys-color-primary:#a8dab5;--md-sys-color-on-primary:#113821;--md-sys-color-primary-container:#285d38;--md-sys-color-on-primary-container:#c3f1cd;--md-sys-color-secondary-container:#354b3a;--md-sys-color-on-secondary-container:#d0e8d4;--md-sys-color-tertiary:#b7c9a8;--md-sys-color-tertiary-container:#394b30;--md-sys-color-on-tertiary-container:#d3e8c2;--surface-glass:#181d18f0;--hero-bg:#262b26;--hero-ink:#e1e4de;--hero-emphasis:#a8dab5;--accent:#a8dab5;--accent-ink:#113821;--ambient-one:#a8dab511;--ambient-two:#b7c9a809}:root[data-mood=amber]{--md-sys-color-background:#18130b;--md-sys-color-on-background:#ede1d4;--md-sys-color-surface:#18130b;--md-sys-color-surface-container-low:#201b13;--md-sys-color-surface-container:#241f17;--md-sys-color-surface-container-high:#2f2921;--md-sys-color-surface-container-highest:#3a342b;--md-sys-color-on-surface:#ede1d4;--md-sys-color-on-surface-variant:#d2c4b4;--md-sys-color-outline-variant:#4f4539;--md-sys-color-primary:#f2be6e;--md-sys-color-on-primary:#442c00;--md-sys-color-primary-container:#614000;--md-sys-color-on-primary-container:#ffddb0;--md-sys-color-secondary-container:#55442a;--md-sys-color-on-secondary-container:#f9debb;--md-sys-color-tertiary:#b6cea3;--md-sys-color-tertiary-container:#394c2b;--md-sys-color-on-tertiary-container:#d2eabd;--surface-glass:#201b13f0;--surface-border:#ede1d40b;--hero-bg:#2f2921;--hero-ink:#ede1d4;--hero-emphasis:#f2be6e;--accent:#f2be6e;--accent-ink:#442c00;--ambient-one:#f2be6e12;--ambient-two:#b6cea309}:root[data-mood=rose]{--md-sys-color-background:#191113;--md-sys-color-on-background:#efdee0;--md-sys-color-surface:#191113;--md-sys-color-surface-container-low:#22191b;--md-sys-color-surface-container:#261d1f;--md-sys-color-surface-container-high:#312829;--md-sys-color-surface-container-highest:#3c3234;--md-sys-color-on-surface:#efdee0;--md-sys-color-on-surface-variant:#d6c2c4;--md-sys-color-outline-variant:#524346;--md-sys-color-primary:#ffb1c2;--md-sys-color-on-primary:#551d2d;--md-sys-color-primary-container:#713343;--md-sys-color-on-primary-container:#ffd9df;--md-sys-color-secondary-container:#5b3f45;--md-sys-color-on-secondary-container:#ffd9df;--md-sys-color-tertiary:#ecbe91;--md-sys-color-tertiary-container:#60401d;--md-sys-color-on-tertiary-container:#ffdcbd;--surface-glass:#22191bf0;--surface-border:#efdee00b;--hero-bg:#312829;--hero-ink:#efdee0;--hero-emphasis:#ffb1c2;--accent:#ffb1c2;--accent-ink:#551d2d;--ambient-one:#ffb1c212;--ambient-two:#ecbe9109}:root[data-mood=oled]{--md-sys-color-background:#000;--md-sys-color-on-background:#f2f2f2;--md-sys-color-surface:#000;--md-sys-color-surface-container-low:#050505;--md-sys-color-surface-container:#090909;--md-sys-color-surface-container-high:#101010;--md-sys-color-surface-container-highest:#181818;--md-sys-color-on-surface:#f2f2f2;--md-sys-color-on-surface-variant:#c8c8c8;--md-sys-color-outline-variant:#303030;--md-sys-color-primary:#a8c7fa;--md-sys-color-on-primary:#062e6f;--md-sys-color-primary-container:#102b50;--md-sys-color-on-primary-container:#d3e3fd;--md-sys-color-secondary-container:#20242b;--md-sys-color-on-secondary-container:#dae2f9;--md-sys-color-tertiary:#a7c7c7;--md-sys-color-tertiary-container:#183535;--md-sys-color-on-tertiary-container:#c2e9e9;--surface-glass:#050505f5;--surface-border:#ffffff0d;--hero-bg:#090909;--hero-ink:#f2f2f2;--hero-emphasis:#a8c7fa;--accent:#a8c7fa;--accent-ink:#062e6f;--ambient-one:#5b8ff90b;--ambient-two:transparent;--shadow-color:#0000008c}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;color:var(--md-sys-color-on-surface);background:var(--md-sys-color-background);margin:0;transition:background-color .36s,color .36s;overflow-x:hidden}body:before{z-index:-1;opacity:.07;pointer-events:none;content:"";background-image:radial-gradient(#ffffff14 .7px,#0000 .7px);background-size:18px 18px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 80%);mask-image:linear-gradient(#000,#0000 80%)}body:after{z-index:-2;background:radial-gradient(circle at 50% 34%, color-mix(in srgb, var(--md-sys-color-primary) 4.5%, transparent) 0, transparent min(42vw, 640px));pointer-events:none;content:"";position:fixed;inset:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a,button{color:inherit}img,svg{display:block}::selection{color:var(--md-sys-color-on-primary);background:var(--md-sys-color-primary)}:focus-visible{outline:3px solid var(--md-sys-color-primary);outline-offset:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.material-ripple-surface{isolation:isolate;contain:paint;position:relative;overflow:hidden}.material-ripple{z-index:2;color:inherit;opacity:.13;pointer-events:none;will-change:transform, opacity;background:currentColor;border-radius:999px;transition:opacity .16s ease-out;animation:.42s cubic-bezier(.2,0,0,1) both material-ripple-expand;position:absolute}.material-ripple.is-released{opacity:0}.home-grid>*,.projects-page>*{animation:.48s cubic-bezier(.2,.8,.2,1) both section-enter}.home-grid>:nth-child(2),.projects-page>:nth-child(2){animation-delay:55ms}.home-grid>:nth-child(3),.projects-page>:nth-child(3){animation-delay:.11s}.home-grid>:nth-child(4){animation-delay:.165s}.home-grid>:nth-child(5){animation-delay:.22s}@keyframes material-ripple-expand{0%{transform:scale(.08)}to{transform:scale(1)}}@keyframes section-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translate(0,0)}}.site-shell{width:min(100% - 32px,1240px);min-height:100vh;margin:0 auto;padding:20px 0 32px}.site-nav-wrap{z-index:50;justify-content:stretch;width:100%;margin-bottom:22px;display:flex;position:sticky;top:20px}.site-nav{border:1px solid var(--surface-border);background:var(--surface-glass);width:100%;min-height:0;box-shadow:0 12px 32px var(--shadow-color);-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1);border-radius:32px;grid-template-columns:1fr auto;align-items:center;padding:5px 6px;display:grid}.brand-mark{background:#0b0c0b;border:1px solid #ffffff2e;border-radius:24px;place-items:center;width:46px;height:46px;text-decoration:none;transition:background .36s;display:grid;overflow:hidden}.brand-mark img{object-fit:cover;filter:grayscale()contrast(1.55)brightness(.92);width:100%;height:100%;transition:filter .24s ease, transform .3s var(--spring);transform:scale(1.08)}.nav-links,.nav-actions{align-items:center;display:flex}.nav-links{gap:4px}.nav-link{min-height:46px;color:var(--md-sys-color-on-surface-variant);border-radius:999px;align-items:center;padding:0 17px;font-size:.9rem;font-weight:590;text-decoration:none;transition:color .18s,background .18s;display:inline-flex}.nav-link.is-active{color:var(--md-sys-color-on-surface);background:var(--md-sys-color-surface-container-highest)}.nav-actions{justify-content:flex-end;gap:4px}.nav-icon-link,.mood-switcher{width:46px;height:46px;color:var(--md-sys-color-on-surface-variant);cursor:pointer;background:0 0;border:0;border-radius:24px;place-items:center;padding:0;transition:color .18s,background .18s;display:grid}.nav-icon-link svg,.mood-switcher svg{width:21px;height:21px}.mood-switcher .material-symbols-outlined{font-variation-settings:"FILL" 0, "wght" 560, "GRAD" 0, "opsz" 24;text-align:center;width:24px;height:24px;font-size:24px;line-height:24px;display:block}.mood-switcher-icon{place-items:center;width:24px;height:24px;display:grid;position:relative}.mood-switcher-icon .material-symbols-outlined{transform-origin:48% 58%;animation:.56s cubic-bezier(.2,.9,.2,1) both mood-paint-pour}.mood-switcher-icon:after{content:"";opacity:0;background:currentColor;border-radius:60% 60% 70% 70%;width:5px;height:7px;animation:.56s cubic-bezier(.2,.9,.2,1) both mood-paint-drop;position:absolute;bottom:-1px;right:0}.mood-switcher{border:1px solid color-mix(in srgb, var(--md-sys-color-outline-variant) 82%, transparent);color:var(--md-sys-color-primary);transition:color .18s ease, background .18s ease, border-color .18s ease, border-radius .32s var(--spring), transform .32s var(--spring);background:0 0;position:relative;overflow:hidden}.mood-switcher:active{background:color-mix(in srgb, var(--md-sys-color-primary) 16%, transparent);border-radius:16px 24px;transform:scale(.92)}@keyframes mood-paint-pour{0%{transform:translate(-2px,2px)rotate(-24deg)scale(.78)}42%{transform:translate(1px,-1px)rotate(13deg)scale(1.1,.92)}72%{transform:rotate(-5deg)scale(.97,1.05)}to{transform:rotate(0)scale(1)}}@keyframes mood-paint-drop{0%,34%{opacity:0;transform:translate(-2px,-3px)rotate(45deg)scale(0)}50%{opacity:.45;transform:translate(0)rotate(45deg)scale(1)}to{opacity:0;transform:translate(2px,5px)rotate(45deg)scale(.72)}}.expressive-card,.portrait-card,.project-card,.projects-hero{border:1px solid var(--surface-border);box-shadow:0 10px 32px #0000001a}.home-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;display:grid}.expressive-card{background:var(--md-sys-color-surface-container);transition:background-color .36s ease, border-color .36s ease, transform .3s var(--spring);position:relative;overflow:hidden}.hero-card{min-height:520px;color:var(--hero-ink);background:var(--hero-bg);border-color:#0000;border-radius:36px;flex-direction:column;grid-area:1/1/span 2/span 8;justify-content:space-between;padding:clamp(32px,4.5vw,56px);display:flex}.hero-kicker,.card-eyebrow{letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;font-weight:720}.hero-kicker{max-width:max-content;color:color-mix(in srgb, var(--hero-ink) 74%, transparent);align-items:center;gap:9px;display:flex}.home-hero-kicker{z-index:1;position:relative}.hero-title-interaction{--hero-interaction-inline:clamp(28px, 4vw, 56px);z-index:1;width:fit-content;max-width:calc(100% + var(--hero-interaction-inline) * 2);padding-inline:var(--hero-interaction-inline);margin:18px calc(var(--hero-interaction-inline) * -1);-webkit-user-select:none;user-select:none;position:relative}.hero-title{--hero-weight:680;--hero-scale-x:1;--hero-skew:0deg;--hero-tracking:-.045em;max-width:10ch;font-size:clamp(3.8rem,6.2vw,5.7rem);font-style:normal;font-weight:var(--hero-weight);letter-spacing:var(--hero-tracking);white-space:nowrap;transform:skewX(var(--hero-skew)) scaleX(var(--hero-scale-x));transform-origin:0;contain:layout;will-change:transform;margin:0;font-stretch:100%;line-height:.94;position:relative}.hero-card.is-flex-shifted .hero-title{--hero-weight:560;--hero-skew:-2deg}.hero-title span{color:var(--hero-emphasis);display:inline-block;position:relative}.hero-title span:after{background:var(--hero-emphasis);content:"";transform-origin:0;border-radius:999px;height:.045em;position:absolute;bottom:-.035em;left:.02em;right:-.05em;transform:scaleX(.96)}.hero-detail{opacity:.34;align-items:center;gap:7px;display:flex;position:absolute;bottom:36%;right:clamp(36px,5vw,68px)}.hero-detail i{background:var(--hero-emphasis);border-radius:999px;height:8px;animation:5.5s ease-in-out infinite hero-detail-breathe;display:block}.hero-detail i:first-child{width:10px}.hero-detail i:nth-child(2){width:28px;animation-delay:.24s}.hero-detail i:nth-child(3){width:52px;animation-delay:.48s}.hero-bottom{z-index:2;justify-content:space-between;align-items:flex-end;gap:30px;display:flex;position:relative}.hero-bottom>p{max-width:32ch;color:color-mix(in srgb, var(--hero-ink) 80%, transparent);margin:0;font-size:1.03rem;font-weight:480;line-height:1.55}.hero-actions{flex-shrink:0;gap:8px;display:flex}.action-link{text-align:center;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:50px;padding:0 22px;font-size:.9rem;font-weight:680;line-height:1;text-decoration:none;transition:background-color .18s,color .18s;display:inline-flex}.action-link svg{width:18px;height:18px}.action-link--primary{color:var(--md-sys-color-on-primary);background:var(--md-sys-color-primary)}.action-link--secondary{border:1px solid color-mix(in srgb, currentColor 20%, transparent);color:var(--hero-ink);background:color-mix(in srgb, var(--hero-ink) 7%, transparent)}.hero-doodle{display:none}.portrait-card{--tilt-x:0deg;--tilt-y:0deg;--skew-x:0deg;--skew-y:0deg;--glow-x:50%;--glow-y:50%;cursor:pointer;min-height:320px;transform:perspective(780px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) skew(var(--skew-x), var(--skew-y));transform-style:preserve-3d;will-change:transform;background:#1f6f49;border-radius:32px;grid-column:9/span 4;padding:0;animation-fill-mode:backwards;position:relative;overflow:hidden}.portrait-card:after{background:radial-gradient(circle at var(--glow-x) var(--glow-y), #fff3, transparent 32%);opacity:.8;pointer-events:none;content:"";position:absolute;inset:0}.portrait-image-layer{position:absolute;inset:-2%}.portrait-image-layer img{object-fit:cover;width:100%;height:100%;min-height:300px;transition:filter .5s ease, transform .6s var(--spring);transform:scale(1.04)}.portrait-sheen{z-index:1;pointer-events:none;background:linear-gradient(#0000,#051b11c2);height:46%;position:absolute;inset:auto 0 0}.portrait-label{z-index:2;color:#f4fff6;letter-spacing:-.04em;justify-content:space-between;align-items:flex-end;font-size:1.65rem;font-weight:760;display:flex;position:absolute;bottom:20px;left:22px;right:22px}.portrait-label>span{color:#123a22;width:40px;height:40px;transition:transform .4s var(--spring);background:#d9ff9c;border-radius:50%;place-items:center;font-size:1rem;display:grid}.grass-note{z-index:3;color:#123a22;opacity:0;pointer-events:none;transition:opacity .26s ease, transform .42s var(--spring);background:#e5ffb8;border-radius:20px 20px 20px 6px;flex-direction:column;padding:12px 15px;font-size:.76rem;line-height:1.3;display:flex;position:absolute;top:22px;left:22px;transform:translateY(-10px)rotate(-3deg)scale(.9);box-shadow:0 12px 32px #051d1140}.grass-note strong{font-size:.84rem}.portrait-card.has-found-grass{border-radius:32px}.portrait-card.has-found-grass .portrait-image-layer img{filter:saturate(1.18)brightness(1.04);transform:scale(1.06)}.portrait-card.has-found-grass .grass-note{opacity:1;transform:translateY(0)rotate(-3deg)scale(1)}.portrait-card.has-found-grass .portrait-label>span{transform:rotate(135deg)}.status-card{z-index:20;background:color-mix(in srgb, var(--md-sys-color-surface-container) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:32px;flex-direction:column;grid-column:9/span 4;gap:22px;min-height:204px;padding:27px 28px;display:flex;overflow:visible}.card-heading-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.card-eyebrow{color:var(--md-sys-color-primary);margin-bottom:8px;display:block}.card-heading-row h2,.about-card h2,.latest-card h3{letter-spacing:-.045em;margin:0}.card-heading-row h2{font-size:1.65rem;font-weight:730}.signal-equalizer{width:32px;height:32px;color:var(--md-sys-color-on-secondary-container);background:var(--md-sys-color-secondary-container);border-radius:50%;flex:none;place-items:center;display:grid}.signal-equalizer svg{fill:currentColor;width:20px;height:20px}.signal-equalizer rect{transform-box:fill-box;transform-origin:50%;animation:signal-equalizer 1.8s var(--spring) infinite}.signal-equalizer rect:nth-child(2){animation-delay:-.6s}.signal-equalizer rect:nth-child(3){animation-delay:-1.2s}.status-copy{block-size:var(--status-content-size,58px);min-height:58px;color:var(--md-sys-color-on-surface-variant);transition:block-size .52s var(--spring);font-size:1rem;font-weight:550;line-height:1.3;position:relative;overflow:visible}.status-content-layer{transform-origin:50%;position:absolute;inset:0}.status-content-layer--compact{visibility:visible;opacity:1;transition:opacity .24s cubic-bezier(.2, 0, 0, 1) 70ms, transform .42s var(--spring), visibility .31s;transform:translateY(0)scale(1)}.status-content-layer--inline{visibility:hidden;opacity:0;pointer-events:none;transition:opacity .15s cubic-bezier(.2, 0, 0, 1), transform .4s var(--spring), visibility .15s;transform:translateY(10px)scale(.96)}.status-copy.is-rich-activity .status-content-layer--compact{visibility:hidden;opacity:0;pointer-events:none;transition:opacity .15s cubic-bezier(.2, 0, 0, 1), transform .38s var(--spring), visibility .15s;transform:translateY(-7px)scale(.97)}.status-copy.is-rich-activity .status-content-layer--inline{visibility:visible;opacity:1;transition:opacity .24s cubic-bezier(.2, 0, 0, 1) 70ms, transform .5s var(--spring), visibility .31s;transform:translateY(0)scale(1)}.activity-inline{border:1px solid color-mix(in srgb, var(--md-sys-color-outline-variant) 28%, transparent);min-height:132px;color:var(--md-sys-color-on-surface);background:color-mix(in srgb, var(--md-sys-color-primary-container) 22%, var(--md-sys-color-surface-container-high));border-radius:26px;padding:12px;overflow:hidden}.activity-inline--listening{background:color-mix(in srgb, var(--md-sys-color-tertiary-container) 38%, var(--md-sys-color-surface-container-high));border-radius:26px}.activity-inline .activity-tooltip-content{grid-template-columns:108px minmax(0,1fr);gap:14px;min-height:108px}.activity-inline--listening .activity-tooltip-content{grid-template-columns:minmax(0,1fr) 108px}.activity-inline .activity-tooltip-copy{align-self:center}.activity-inline--listening .activity-tooltip-copy{grid-column:1}.activity-inline .activity-artwork,.activity-inline .activity-artwork>img,.activity-inline .activity-artwork-empty{width:108px;height:108px}.activity-inline .activity-artwork{align-self:center}.activity-inline--listening .activity-artwork{grid-column:2}.activity-inline .activity-tooltip-title{font-size:1rem}.activity-inline .activity-tooltip-line{font-size:.72rem}.activity-inline .activity-progress{margin-top:7px}.activity-inline .activity-progress-track,.activity-inline .activity-progress-canvas{height:11px}.status-copy.is-rich-activity .activity-inline .activity-artwork{animation:activity-rich-artwork-enter .5s var(--spring) 55ms both}.status-copy.is-rich-activity .activity-inline .activity-tooltip-copy{animation:.44s cubic-bezier(.2,0,0,1) .105s both activity-rich-copy-enter}.activity-signals{flex-direction:column;gap:4px;display:flex}.activity-signal{position:relative}.status-popover-trigger{--activity-corner-top-left:7px;--activity-corner-top-right:7px;--activity-corner-bottom-right:7px;--activity-corner-bottom-left:7px;border:1px solid color-mix(in srgb, var(--md-sys-color-on-surface) 3%, transparent);border-radius:var(--activity-corner-top-left) var(--activity-corner-top-right) var(--activity-corner-bottom-right) var(--activity-corner-bottom-left);width:100%;min-height:58px;color:var(--md-sys-color-on-surface);background:color-mix(in srgb, var(--md-sys-color-on-surface) 4%, transparent);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:7px 9px;transition:background .18s;display:flex}.activity-signal:first-child .status-popover-trigger{--activity-corner-top-left:20px;--activity-corner-top-right:20px}.activity-signal:last-child .status-popover-trigger{--activity-corner-bottom-right:20px;--activity-corner-bottom-left:20px}.activity-signal:only-child .status-popover-trigger{--activity-corner-top-left:20px;--activity-corner-top-right:20px;--activity-corner-bottom-right:20px;--activity-corner-bottom-left:20px}.activity-signal-icon{width:42px;height:42px;color:var(--md-sys-color-on-primary);background:var(--md-sys-color-primary);border-radius:15px;flex:none;place-items:center;display:grid}.activity-signal--2 .activity-signal-icon{color:var(--accent-ink);background:var(--accent)}.activity-signal-copy{flex-direction:column;flex:1;min-width:0;display:flex}.activity-signal-copy small{color:var(--md-sys-color-on-surface-variant);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:700}.activity-signal-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:650;overflow:hidden}.activity-signal-chevron{color:var(--md-sys-color-on-surface-variant);transition:transform .22s var(--spring);padding:0 5px;font-size:1.4rem;line-height:1}.status-icon,.spotify-icon.is-inline{color:currentColor;flex:none;width:20px;height:20px}.spotify-icon{width:24px;height:24px}.status-loading{color:var(--md-sys-color-on-surface-variant)}.loading-dots{vertical-align:bottom;width:1.5em;animation:1.2s steps(4,end) infinite loading-dots;display:inline-block;overflow:hidden}.activity-tooltip{--activity-popup-scale:.9;z-index:80;width:calc(100% / var(--activity-popup-scale));visibility:hidden;border:1px solid var(--surface-border);min-width:0;color:var(--md-sys-color-on-surface);background:color-mix(in srgb, var(--md-sys-color-surface-container-highest) 96%, transparent);-webkit-backdrop-filter:blur(22px)saturate(1.08);backdrop-filter:blur(22px)saturate(1.08);opacity:0;pointer-events:none;transform-origin:0 0;transition:opacity .18s ease, transform .24s var(--spring), visibility .18s;border-radius:28px;padding:17px;position:absolute;top:calc(100% + 12px);left:0;overflow:hidden;transform:translateY(-8px)scale(.864);box-shadow:0 20px 50px #00000047}.activity-tooltip--listening{background:color-mix(in srgb, var(--md-sys-color-surface-container-highest) 84%, var(--md-sys-color-tertiary-container))}.activity-signal:hover .activity-tooltip,.activity-signal.is-open .activity-tooltip,.activity-signal:focus-within .activity-tooltip{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0) scale(var(--activity-popup-scale))}.activity-signal.is-open .activity-signal-chevron{transform:rotate(90deg)}.activity-tooltip-content{z-index:1;grid-template-columns:112px minmax(0,1fr);align-items:end;gap:20px;min-width:0;min-height:112px;display:grid;position:relative}.activity-tooltip--listening .activity-tooltip-content{grid-template-columns:minmax(0,1fr) 112px}.activity-tooltip-copy{flex-direction:column;flex:1;grid-column:2;align-self:end;gap:3px;min-width:0;display:flex}.activity-tooltip--listening .activity-tooltip-copy{grid-column:1}.activity-tooltip-eyebrow{color:var(--md-sys-color-primary);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:720}.activity-tooltip-title{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;font-weight:700;line-height:1.25;overflow:hidden}.activity-tooltip-line{color:var(--md-sys-color-on-surface-variant);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;line-height:1.35;overflow:hidden}.activity-artwork{background:color-mix(in srgb, var(--md-sys-color-primary) 12%, transparent);border-radius:18px;flex:none;grid-area:1/1;place-items:center;width:112px;height:112px;display:grid;position:relative}.activity-tooltip--listening .activity-artwork{grid-column:2}.activity-artwork>img,.activity-artwork-empty{object-fit:cover;border-radius:18px;width:112px;height:112px}.activity-artwork-empty{place-items:center;display:grid}.activity-app-icon{border:3px solid color-mix(in srgb, var(--md-sys-color-surface-container-highest) 90%, transparent);background:#181311;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;bottom:-5px;right:-5px;overflow:hidden}.activity-app-icon img,.activity-app-icon svg{object-fit:cover;width:22px;height:22px}.activity-progress{flex-direction:column;gap:5px;margin-top:10px;display:flex}.activity-progress-time{color:var(--md-sys-color-on-surface-variant);justify-content:space-between;gap:12px;font-size:.68rem;display:flex}.activity-progress-track{border-radius:999px;height:14px;position:relative;overflow:hidden}.activity-progress-canvas{border-color:color-mix(in srgb, var(--md-sys-color-primary) 18%, transparent);width:100%;height:14px;color:var(--md-sys-color-primary);outline-color:#8ab4f8;display:block}@keyframes activity-rich-artwork-enter{0%{opacity:0;transform:scale(.88)rotate(-2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes activity-rich-copy-enter{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}.about-card{border-radius:32px;grid-column:1/span 5;grid-template-rows:minmax(0,1fr) auto;row-gap:10px;min-height:300px;padding:36px;display:grid}.about-title-lockup{grid-template-columns:minmax(0,1fr) 64px;align-self:center;align-items:center;gap:18px;display:grid}.about-card h2{max-width:11ch;font-size:clamp(2rem,3.2vw,2.9rem);font-weight:700;line-height:.88}.about-note{align-self:end}.about-quote-icon{width:64px;height:64px;color:var(--md-sys-color-on-primary-container);background:var(--md-sys-color-primary-container);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--md-sys-color-on-primary-container) 6%, transparent);border-radius:22px 22px 8px;place-items:center;display:grid;transform:rotate(2deg)}.about-quote-icon svg{width:34px;height:34px}.about-note p{max-width:50ch;color:var(--md-sys-color-on-surface-variant);margin:0;line-height:1.48}.latest-card{background:var(--md-sys-color-surface-container-high);border-radius:32px;grid-column:6/span 7;grid-template-columns:minmax(0,1.08fr) minmax(210px,.92fr);min-height:300px;display:grid}.latest-copy{z-index:2;flex-direction:column;min-width:0;padding:36px 18px 34px 36px;display:flex;position:relative}.latest-project-details{flex-direction:column;flex:1;min-height:0;animation:.24s ease-out both featured-details-enter;display:flex}@keyframes featured-details-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.latest-card h3{margin-top:auto;font-size:clamp(2rem,3.3vw,3rem);font-weight:710;line-height:1}.latest-card p{max-width:40ch;color:var(--md-sys-color-on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:12px 0 18px;line-height:1.45;display:-webkit-box;overflow:hidden}.latest-link{width:max-content;color:var(--md-sys-color-primary);align-items:center;gap:7px;font-size:.88rem;font-weight:680;text-decoration:none;display:inline-flex}.latest-visual{background:var(--md-sys-color-secondary-container);border-radius:24px;min-width:0;margin:14px 14px 14px 0;position:relative;overflow:hidden}.latest-visual .project-illustration .illustration-shape-one{width:46%;height:48px;top:18%;left:10%}.latest-visual .project-illustration .illustration-shape-two{width:58%;height:58%;bottom:-14%;right:-8%}.latest-visual .project-illustration .illustration-shape-three{border-radius:18px;width:54px;height:54px;top:14%;right:12%}.latest-visual .project-illustration strong{font-size:clamp(5rem,9vw,7.5rem);bottom:7%;right:10%}.latest-visual .project-illustration--letter-left strong{left:10%;right:auto}.latest-project-skeleton{background:linear-gradient(100deg,#ffffff0d 20%,#ffffff1f 40%,#ffffff0d 60%) 0 0/200% 100%;border-radius:16px;width:72%;height:44px;margin-top:auto;animation:1.4s linear infinite skeleton-shimmer}.workbench-section{border:1px solid var(--surface-border);background:radial-gradient(circle at 84% 10%, color-mix(in srgb, var(--md-sys-color-primary) 8%, transparent), transparent 28%), var(--md-sys-color-surface-container-low);border-radius:36px;margin-top:16px;padding:clamp(32px,4.6vw,56px);animation:.5s cubic-bezier(.2,.8,.2,1) both section-enter;position:relative;overflow:hidden;box-shadow:0 10px 32px #0000001a}.workbench-section:after{border:1px dashed color-mix(in srgb, var(--md-sys-color-primary) 18%, transparent);content:"";pointer-events:none;border-radius:50%;width:230px;height:230px;position:absolute;bottom:-88px;right:-72px}.workbench-heading{z-index:1;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);align-items:end;gap:clamp(28px,5vw,72px);margin-bottom:clamp(28px,4vw,44px);display:grid;position:relative}.workbench-eyebrow{color:var(--md-sys-color-primary);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;font-size:.7rem;font-weight:740;display:block}.workbench-heading h2{letter-spacing:-.058em;text-wrap:balance;max-width:15ch;margin:0;font-size:clamp(2.5rem,5.2vw,5rem);font-weight:700;font-stretch:104%;line-height:.93;position:relative}.workbench-title-word{white-space:nowrap;display:inline-block;position:relative}.workbench-title-word-scramble{opacity:0;white-space:nowrap;pointer-events:none;position:absolute;top:0;left:0}.workbench-heading h2.is-scrambling .workbench-title-word-original{opacity:0}.workbench-heading h2.is-scrambling .workbench-title-word-scramble{opacity:1}.workbench-heading>p{max-width:34ch;color:var(--md-sys-color-on-surface-variant);margin:0 0 4px;font-size:1rem;line-height:1.58}.workbench-stages{z-index:1;min-height:350px;transition:grid-template-columns .56s var(--spring);gap:8px;display:grid;position:relative}.workbench-stages.is-stage-0{grid-template-columns:minmax(0,1.7fr) minmax(150px,.65fr) minmax(150px,.65fr)}.workbench-stages.is-stage-1{grid-template-columns:minmax(150px,.65fr) minmax(0,1.7fr) minmax(150px,.65fr)}.workbench-stages.is-stage-2{grid-template-columns:minmax(150px,.65fr) minmax(150px,.65fr) minmax(0,1.7fr)}.workbench-stage{min-width:0;min-height:350px;color:var(--md-sys-color-on-surface);text-align:left;cursor:pointer;isolation:isolate;transition:border-radius .52s var(--spring), color .32s ease, background .32s ease, transform .28s var(--spring);border:0;border-radius:18px;flex-direction:column;align-items:flex-start;padding:24px;display:flex;position:relative;overflow:hidden}.workbench-stage--1{color:var(--md-sys-color-on-primary-container);background:color-mix(in srgb, var(--md-sys-color-primary-container) 54%, var(--md-sys-color-surface-container))}.workbench-stage--2{color:var(--md-sys-color-on-secondary-container);background:color-mix(in srgb, var(--md-sys-color-secondary-container) 54%, var(--md-sys-color-surface-container))}.workbench-stage--3{color:var(--md-sys-color-on-tertiary-container);background:color-mix(in srgb, var(--md-sys-color-tertiary-container) 54%, var(--md-sys-color-surface-container))}.workbench-stage--1.is-active{background:var(--md-sys-color-primary-container);border-radius:32px 12px 12px 32px}.workbench-stage--2.is-active{background:var(--md-sys-color-secondary-container);border-radius:14px 34px}.workbench-stage--3.is-active{background:var(--md-sys-color-tertiary-container);border-radius:12px 32px 32px 12px}.workbench-stage:active{transform:scale(.985)}.workbench-stage-number{border:1px solid color-mix(in srgb, currentColor 20%, transparent);background:color-mix(in srgb, currentColor 7%, transparent);border-radius:50%;place-items:center;width:42px;height:42px;font-size:.72rem;font-weight:700;line-height:1;display:grid}.workbench-stage-label{letter-spacing:-.035em;transition:font-stretch .48s var(--spring), font-weight .48s var(--spring), transform .48s var(--spring);margin-top:auto;font-size:clamp(1.3rem,2vw,1.8rem);font-weight:720;font-stretch:84%;line-height:1}.workbench-stage.is-active .workbench-stage-label{font-weight:790;font-stretch:112%;transform:translateY(-4px)}.workbench-stage-copy{opacity:0;max-width:34ch;max-height:0;transition:max-height .44s var(--spring), opacity .18s ease, transform .44s var(--spring);overflow:hidden;transform:translateY(12px)}.workbench-stage-copy strong{letter-spacing:-.05em;font-size:clamp(1.8rem,3vw,2.9rem);font-weight:720;font-stretch:102%;line-height:.98;display:block}.workbench-stage-copy small{color:color-mix(in srgb, currentColor 82%, transparent);margin-top:10px;font-size:.88rem;font-weight:480;line-height:1.45;display:block}.workbench-stage.is-active .workbench-stage-copy{opacity:1;max-height:190px;transition-delay:80ms;transform:translateY(0)}.workbench-stage-visual{z-index:-1;opacity:.22;transform-origin:100% 0;width:150px;height:150px;transition:opacity .3s ease, transform .58s var(--spring);position:absolute;top:18px;right:18px;transform:scale(.72)rotate(-8deg)}.workbench-stage.is-active .workbench-stage-visual{opacity:.56;transform:scale(1)rotate(0)}.workbench-stage-visual i{display:block;position:absolute}.workbench-stage-visual--1 i{border:1px solid;border-radius:50%}.workbench-stage-visual--1 i:first-child{inset:6px}.workbench-stage-visual--1 i:nth-child(2){border-style:dashed;inset:32px}.workbench-stage-visual--1 i:last-child{background:currentColor;border:0;width:16px;height:16px;top:67px;left:67px;box-shadow:36px -44px 0 -4px}.workbench-stage-visual--2 i{background:currentColor;border-radius:20px 20px 7px;width:64px;height:64px}.workbench-stage-visual--2 i:first-child{top:4px;left:18px;transform:rotate(-9deg)}.workbench-stage-visual--2 i:nth-child(2){opacity:.65;top:52px;right:8px;transform:rotate(12deg)}.workbench-stage-visual--2 i:last-child{opacity:.38;width:48px;height:48px;bottom:2px;left:12px;transform:rotate(5deg)}.workbench-stage-visual--3 i:first-child,.workbench-stage-visual--3 i:nth-child(2){border:2px dashed;border-radius:50%;inset:12px}.workbench-stage-visual--3 i:nth-child(2){opacity:.65;border-style:solid;inset:35px}.workbench-stage-visual--3 i:last-child{border-bottom:9px solid;border-left:9px solid;width:48px;height:26px;top:58px;left:53px;transform:rotate(-45deg)}.workbench-footer{z-index:1;justify-content:space-between;align-items:center;gap:24px;padding-top:24px;display:flex;position:relative}.workbench-principles{flex-wrap:wrap;gap:7px;display:flex}.workbench-principles span{border:1px solid color-mix(in srgb, var(--md-sys-color-outline-variant) 45%, transparent);min-height:34px;color:var(--md-sys-color-on-surface-variant);background:color-mix(in srgb, var(--md-sys-color-on-surface) 3%, transparent);border-radius:999px;align-items:center;padding:0 13px;font-size:.7rem;font-weight:580;display:inline-flex}.workbench-footer .action-link{flex:none}@media (hover:hover){.workbench-stage:not(.is-active):hover{background:color-mix(in srgb, currentColor 10%, var(--md-sys-color-surface-container));transform:translateY(-3px)}}@media (width<=820px){.workbench-heading{grid-template-columns:1fr;gap:18px}.workbench-heading>p{max-width:52ch}.workbench-stages{min-height:0;transition:grid-template-rows .56s var(--spring);grid-template-columns:1fr!important}.workbench-stages.is-stage-0{grid-template-rows:minmax(270px,1fr) 76px 76px}.workbench-stages.is-stage-1{grid-template-rows:76px minmax(270px,1fr) 76px}.workbench-stages.is-stage-2{grid-template-rows:76px 76px minmax(270px,1fr)}.workbench-stage{justify-content:center;min-height:0;padding:18px 20px}.workbench-stage.is-active{justify-content:flex-end}.workbench-stage-number{width:36px;height:36px;position:absolute;top:16px;left:18px}.workbench-stage-label{margin:0 0 0 52px}.workbench-stage.is-active .workbench-stage-label{margin:auto 0 8px}.workbench-stage-copy{max-width:min(70%,38ch)}.workbench-stage-visual{width:130px;height:130px}}@media (width<=580px){.workbench-section{border-radius:28px;padding:30px 20px 22px}.workbench-heading h2{font-size:clamp(2.45rem,13vw,3.6rem)}.workbench-stages.is-stage-0{grid-template-rows:minmax(300px,1fr) 72px 72px}.workbench-stages.is-stage-1{grid-template-rows:72px minmax(300px,1fr) 72px}.workbench-stages.is-stage-2{grid-template-rows:72px 72px minmax(300px,1fr)}.workbench-stage{padding:17px}.workbench-stage-copy{max-width:100%}.workbench-stage-copy strong{font-size:2rem}.workbench-stage.is-active .workbench-stage-label{margin-bottom:8px}.workbench-stage-visual{top:14px;right:10px;transform:scale(.6)}.workbench-stage.is-active .workbench-stage-visual{transform:scale(.78)}.workbench-footer{flex-direction:column;align-items:stretch}.workbench-footer .action-link{width:100%}}.site-footer{color:color-mix(in srgb, var(--md-sys-color-on-surface-variant) 70%, transparent);justify-content:space-between;align-items:center;gap:20px;padding:28px 8px 4px;font-size:.76rem;display:flex}.footer-developer-trigger{color:inherit;text-align:left;cursor:pointer;isolation:isolate;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:999px;margin:-8px -10px;padding:8px 10px;display:inline-flex;position:relative;overflow:hidden}.footer-developer-trigger:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.footer-developer-copy{z-index:1;pointer-events:none;position:relative}.developer-toast{z-index:101;border:1px solid var(--surface-border);width:max-content;max-width:calc(100vw - 32px);min-height:52px;color:var(--md-sys-color-on-surface);background:var(--md-sys-color-surface-container-highest);pointer-events:none;animation:developer-toast-enter .28s var(--spring) both;border-radius:20px;align-items:center;gap:12px;padding:8px 18px 8px 9px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)scale(1);box-shadow:0 14px 38px #0000004d}.developer-toast.is-leaving{animation:.14s ease-in both developer-toast-exit}.developer-toast-icon{width:36px;height:36px;color:var(--md-sys-color-on-secondary-container);background:var(--md-sys-color-secondary-container);border-radius:13px;flex:none;place-items:center;display:grid}.developer-toast.is-unlocked .developer-toast-icon{color:var(--md-sys-color-on-primary-container);background:var(--md-sys-color-primary-container)}.developer-toast-icon svg{width:20px;height:20px}.developer-toast strong{font-size:.84rem;font-weight:620;line-height:1.3}@keyframes developer-toast-enter{0%{opacity:0;transform:translate(-50%,14px)scale(.93)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes developer-toast-exit{0%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,8px)scale(.97)}}.secret-toast{z-index:100;visibility:hidden;border:1px solid var(--surface-border);background:color-mix(in srgb, var(--md-sys-color-surface-container-highest) 96%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.05);backdrop-filter:blur(14px)saturate(1.05);opacity:0;width:min(360px,100vw - 32px);transition:opacity .22s ease, transform .34s var(--spring), visibility .22s;border-radius:28px;align-items:center;gap:12px;padding:14px 14px 16px;display:flex;position:fixed;bottom:24px;right:24px;overflow:hidden;transform:translateY(24px)scale(.94);box-shadow:0 18px 48px #00000047}.secret-toast.is-visible{visibility:visible;opacity:1;transform:translateY(0)scale(1)}.secret-toast-mark{background:var(--md-sys-color-primary-container);border-radius:16px;flex:none;place-items:center;width:46px;height:46px;display:grid;position:relative}.secret-toast-mark i{background:var(--md-sys-color-on-primary-container);border-radius:999px;width:20px;height:6px;position:absolute}.secret-toast-mark i:first-child{transform:translate(-3px,-4px)}.secret-toast-mark i:last-child{width:12px;transform:translate(5px,5px)}.secret-toast-copy{min-width:0;color:var(--md-sys-color-on-surface-variant);flex-direction:column;flex:1;font-size:.76rem;line-height:1.35;display:flex}.secret-toast strong{color:var(--md-sys-color-on-surface);font-size:.92rem}.secret-toast button{width:32px;height:32px;color:var(--md-sys-color-on-surface-variant);cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;font-size:1.3rem}.projects-hero{min-height:360px;color:var(--hero-ink);background:var(--hero-bg);border-color:#0000;border-radius:36px;grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr);align-items:end;gap:clamp(22px,2.5vw,28px);padding:clamp(36px,5vw,64px);display:grid;position:relative;overflow:hidden}.projects-hero h1{z-index:1;letter-spacing:-.05em;max-width:9ch;margin:20px 0 0;font-size:clamp(4rem,7vw,6.4rem);font-weight:710;font-stretch:102%;line-height:.9;position:relative}.projects-hero h1 span{color:var(--hero-emphasis)}.projects-hero>p{z-index:2;max-width:32ch;color:color-mix(in srgb, var(--hero-ink) 78%, transparent);place-self:end start;margin:0 0 .35rem;font-size:1.02rem;line-height:1.55;position:relative}.projects-grid{background:0 0;border:0;border-radius:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px;display:grid;overflow:visible}.project-card{--project-primary:var(--md-sys-color-primary);--project-secondary:var(--md-sys-color-tertiary);--project-tertiary:var(--accent);--project-ink:var(--md-sys-color-on-tertiary-container);--project-glow-x:50%;--project-glow-y:50%;--project-glow-strength:0;--project-glow-border-strength:0;--project-glow-cool:color-mix(in srgb, var(--project-primary) 52%, #79dcff);--project-card-radius:26px;--project-media-radius:18px;--project-reveal-x:0px;--project-reveal-y:14px;--project-reveal-scale:.985;--project-reveal-origin:center;--project-reveal-duration:.38s;isolation:isolate;border:1px solid color-mix(in srgb, var(--md-sys-color-outline-variant) 52%, transparent);border-radius:var(--project-card-radius);background:var(--md-sys-color-surface-container);contain:layout paint style;flex-direction:column;min-width:0;min-height:316px;transition:border-color .22s,background .22s,box-shadow .22s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #00000017}.projects-grid>.project-card:nth-child(3n+1){--project-reveal-x:-6px;--project-reveal-y:12px;--project-reveal-origin:left center;--project-reveal-duration:.36s}.projects-grid>.project-card:nth-child(3n+2){--project-reveal-scale:.98;--project-reveal-duration:.39s}.projects-grid>.project-card:nth-child(3n){--project-reveal-x:6px;--project-reveal-y:12px;--project-reveal-origin:right center;--project-reveal-duration:.37s}.project-card-primary-link{color:inherit;text-decoration:none}.project-card-primary-link:after{z-index:2;border-radius:inherit;content:"";position:absolute;inset:0}.project-card-primary-link:focus-visible{outline:none}.project-card:has(.project-card-primary-link:focus-visible){outline:3px solid var(--md-sys-color-primary);outline-offset:-3px}.projects-grid.is-reveal-ready .project-card:not(.project-card-skeleton):not(.is-revealed){opacity:0;transform:translate3d(var(--project-reveal-x), var(--project-reveal-y), 0) scale(var(--project-reveal-scale));transform-origin:var(--project-reveal-origin);will-change:opacity, transform}.projects-grid.is-reveal-ready .project-card.is-revealed{animation:project-card-reveal var(--project-reveal-duration) cubic-bezier(.05, .7, .1, 1) var(--project-reveal-delay,0s) both;transform-origin:var(--project-reveal-origin)}@keyframes project-card-reveal{0%{opacity:0;transform:translate3d(var(--project-reveal-x), var(--project-reveal-y), 0) scale(var(--project-reveal-scale))}45%{opacity:1}to{opacity:1;transform:translate(0,0)}}.project-card:before{z-index:-1;border-radius:inherit;background:radial-gradient(circle 320px at var(--project-glow-x) var(--project-glow-y), #ffffff07 0, color-mix(in srgb, var(--project-glow-cool) 1.35%, transparent) 34%, color-mix(in srgb, var(--project-glow-cool) 0.35%, transparent) 58%, transparent 82%);content:"";opacity:var(--project-glow-strength);pointer-events:none;transition:opacity .24s;position:absolute;inset:0}.project-card:after{z-index:0;border-radius:inherit;background:radial-gradient(circle 380px at var(--project-glow-x) var(--project-glow-y), color-mix(in srgb, var(--project-glow-cool) 44%, transparent) 0, color-mix(in srgb, var(--project-glow-cool) 22%, transparent) 28%, transparent 72%);content:"";opacity:var(--project-glow-border-strength);pointer-events:none;padding:1px;transition:opacity .22s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.project-media{z-index:1;border-radius:var(--project-media-radius);background:color-mix(in srgb, var(--project-primary) 12%, var(--md-sys-color-surface-container-highest));height:160px;min-height:160px;margin:10px 10px 0;position:relative;overflow:hidden}.project-media:after{z-index:3;border-radius:inherit;background:color-mix(in srgb, var(--md-sys-color-background) 12%, transparent);content:"";pointer-events:none;position:absolute;inset:0}.project-media img{z-index:2;object-fit:cover;filter:grayscale(.88)saturate(.28)contrast(.96);width:100%;height:100%;transition:filter .32s cubic-bezier(.2, 0, 0, 1), transform .28s var(--spring);position:relative}.project-media img.is-broken{display:none}.project-illustration{--project-primary:var(--md-sys-color-primary);--project-secondary:var(--md-sys-color-tertiary);--project-tertiary:var(--accent);--project-ink:var(--md-sys-color-on-tertiary-container);--illustration-weight:650;--illustration-width:100%;--illustration-slant:0deg;--illustration-rotation:0deg;filter:grayscale(.88)saturate(.28)contrast(.96);transition:filter .32s cubic-bezier(.2,0,0,1);position:absolute;inset:0;overflow:hidden}.project-card:focus-within .project-media img,.project-card:focus-within .project-illustration,.project-card:active .project-media img,.project-card:active .project-illustration{filter:grayscale(0)saturate(1.06)contrast()}.illustration-shape{--shape-rotation:0deg;--shape-hover-x:0px;--shape-hover-y:0px;--shape-hover-rotation:0deg;--shape-hover-scale-x:1;--shape-hover-scale-y:1;transform:rotate(var(--shape-rotation));transform-origin:50%;display:block;position:absolute}.illustration-shape-one{--shape-hover-x:12px;--shape-hover-y:-7px;--shape-hover-rotation:-7deg;--shape-hover-scale-x:1.08;--shape-hover-scale-y:.84;background:color-mix(in srgb, var(--project-primary) 66%, var(--md-sys-color-surface-container-highest));border-radius:999px;width:104px;height:38px;top:25px;left:24px}.illustration-shape-two{--shape-hover-x:-11px;--shape-hover-y:-10px;--shape-hover-rotation:9deg;--shape-hover-scale-x:.86;--shape-hover-scale-y:1.12;background:color-mix(in srgb, var(--project-secondary) 58%, var(--md-sys-color-surface-container-highest));border-radius:50%;width:90px;height:90px;bottom:-18px;right:54px}.illustration-shape-three{--shape-rotation:12deg;--shape-hover-x:-7px;--shape-hover-y:10px;--shape-hover-rotation:-14deg;--shape-hover-scale-x:1.16;--shape-hover-scale-y:1.16;background:color-mix(in srgb, var(--project-tertiary) 52%, var(--md-sys-color-surface-container-highest));border-radius:14px;width:44px;height:44px;top:26px;right:28px}.project-illustration strong{color:color-mix(in srgb, var(--project-ink) 72%, var(--md-sys-color-surface-container-highest));font-size:4.25rem;font-style:oblique var(--illustration-slant);font-weight:var(--illustration-weight);font-stretch:var(--illustration-width);letter-spacing:-.05em;transform:rotate(var(--illustration-rotation));line-height:1;position:absolute;bottom:8px;right:20px}.project-illustration--letter-left strong{left:20px;right:auto}.project-illustration--1 .illustration-shape-one{width:150px;top:auto;bottom:26px;left:-20px}.project-illustration--1 .illustration-shape-two{top:-30px;bottom:auto;right:40px}.project-illustration--2 .illustration-shape-one{border-radius:18px;width:48px;height:88px;top:18px;left:46px}.project-illustration--2 .illustration-shape-two{border-radius:999px;width:116px;height:54px;bottom:16px;right:-20px}.project-illustration--3 .illustration-shape-one{border-radius:50%;width:130px;height:92px;top:-16px;left:-20px}.project-illustration--3 .illustration-shape-three{--shape-rotation:0deg;border-radius:50%;top:auto;bottom:22px;right:44px}.project-illustration--4 .illustration-shape-one{border-radius:50%;width:112px;height:112px;top:-38px;left:34px}.project-illustration--4 .illustration-shape-two{border-radius:999px;width:128px;height:38px;bottom:20px;right:18px}.project-illustration--4 .illustration-shape-three{border-radius:50%;top:28px;right:38%}.project-illustration--5 .illustration-shape-one{border-radius:20px;width:190px;height:54px;top:28px;left:-24px}.project-illustration--5 .illustration-shape-two{width:128px;height:128px;bottom:-34px;right:-18px}.project-illustration--5 .illustration-shape-three{--shape-rotation:-12deg;width:34px;height:34px;inset:auto auto 22px 46%}.project-illustration--6 .illustration-shape-one{--shape-rotation:-10deg;border-radius:28px;width:92px;height:116px;top:auto;bottom:-28px;left:24px}.project-illustration--6 .illustration-shape-two{width:58px;height:58px;top:18px;bottom:auto;right:24px}.project-illustration--6 .illustration-shape-three{--shape-rotation:0deg;border-radius:999px;width:66px;height:24px;top:38px;right:40%}.project-illustration--7 .illustration-shape-one{border:17px solid color-mix(in srgb, var(--project-primary) 72%, transparent);background:0 0;border-radius:50%;width:86px;height:86px;top:24px;left:28px}.project-illustration--7 .illustration-shape-two{border-radius:999px;width:118px;height:36px;bottom:20px;right:18px}.project-illustration--7 .illustration-shape-three{--shape-rotation:0deg;border-radius:50%;width:32px;height:32px;top:18px;right:24px}@media (hover:hover) and (prefers-reduced-motion:no-preference){.project-card .illustration-shape{transition:transform .5s cubic-bezier(.2,1.14,.34,1),border-radius .44s cubic-bezier(.2,0,0,1)}.project-card .illustration-shape-one{transition-delay:70ms}.project-card .illustration-shape-two{transition-delay:35ms}.projects-grid>.project-card:nth-child(2n) .illustration-shape-one{--shape-hover-x:-12px;--shape-hover-rotation:7deg}.projects-grid>.project-card:nth-child(2n) .illustration-shape-two{--shape-hover-x:11px;--shape-hover-rotation:-9deg}.projects-grid>.project-card:nth-child(2n) .illustration-shape-three{--shape-hover-x:7px;--shape-hover-rotation:14deg}.project-card:hover .illustration-shape{transform:translate3d(var(--shape-hover-x), var(--shape-hover-y), 0) rotate(calc(var(--shape-rotation) + var(--shape-hover-rotation))) scale(var(--shape-hover-scale-x), var(--shape-hover-scale-y));will-change:transform, border-radius;transition-duration:.64s,.54s;transition-timing-function:cubic-bezier(.16,1.32,.3,1),cubic-bezier(.2,.8,.2,1)}.project-card:hover .illustration-shape-one{border-radius:42% 58% 34% 66%/58% 36% 64% 42%;transition-delay:0s}.project-card:hover .illustration-shape-two{border-radius:58% 42% 62% 38%/38% 60% 40% 62%;transition-delay:38ms}.project-card:hover .illustration-shape-three{border-radius:50% 24% 48% 30%/30% 52% 28% 50%;transition-delay:76ms}.project-card .project-illustration strong{transition:transform .5s cubic-bezier(.2,1.1,.34,1)}.project-card:hover .project-illustration strong{transform:translate3d(0, -3px, 0) rotate(calc(var(--illustration-rotation) + 2deg)) scale(1.035);transition-duration:.62s;transition-timing-function:cubic-bezier(.16,1.24,.3,1)}}.project-content{flex-direction:column;flex:1;min-width:0;padding:20px;display:flex}.project-title-row{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.project-title-row h2{letter-spacing:-.025em;margin:0;font-size:clamp(1.25rem,1.5vw,1.45rem);font-weight:700;line-height:1.12}.project-copy p{color:color-mix(in srgb, var(--md-sys-color-on-surface-variant) 78%, var(--md-sys-color-on-surface));-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:8px 0 12px;font-size:.94rem;line-height:1.48;display:-webkit-box;overflow:hidden}.project-meta{color:color-mix(in srgb, var(--md-sys-color-on-surface-variant) 66%, transparent);letter-spacing:.035em;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:650;line-height:1.4;display:block;overflow:hidden}.project-actions{justify-content:space-between;align-items:center;gap:14px;margin-top:auto;display:flex}.project-view-action{min-height:40px;color:color-mix(in srgb, var(--md-sys-color-on-surface-variant) 82%, transparent);align-items:center;gap:4px;font-size:.82rem;font-weight:650;transition:color .18s;display:inline-flex}.project-view-action svg{width:16px;height:16px;transition:transform .22s var(--spring)}.project-icon-actions{z-index:4;gap:7px;display:flex;position:relative}.project-icon-actions a,.project-icon-actions button{width:40px;height:40px;color:color-mix(in srgb, var(--md-sys-color-on-surface-variant) 72%, transparent);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;padding:0;transition:border-color .18s,color .18s,background .18s;display:grid}.project-icon-actions svg{width:19px;height:19px}.project-empty{border:1px dashed var(--md-sys-color-outline-variant);text-align:center;border-radius:32px;flex-direction:column;justify-content:center;align-items:center;min-height:420px;padding:40px;display:flex}.project-empty>span{color:var(--md-sys-color-primary);font-size:4rem}.project-empty h2{letter-spacing:-.04em;margin:12px 0 8px;font-size:2rem}.project-empty p{max-width:42ch;color:var(--md-sys-color-on-surface-variant);margin:0 0 20px}.project-empty .action-link--secondary{color:var(--md-sys-color-on-surface)}.project-card-skeleton{background:var(--md-sys-color-surface-container);border-color:#0000}.project-card-skeleton>span{background:linear-gradient(100deg,#ffffff06 20%,#ffffff14 40%,#ffffff06 60%) 0 0/200% 100%;border-radius:8px;animation:1.4s linear infinite skeleton-shimmer;position:absolute;inset:12px}.projects-footer a{color:var(--md-sys-color-primary);font-weight:620;text-decoration:none}@media (hover:hover){.brand-mark:hover img{filter:grayscale()contrast(1.7)brightness(1.02);transform:scale(1.13)}.nav-link:hover{color:var(--md-sys-color-on-surface);background:color-mix(in srgb, var(--md-sys-color-on-surface) 7%, transparent)}.nav-icon-link:hover{color:var(--md-sys-color-on-surface);background:var(--md-sys-color-surface-container-highest)}.mood-switcher:hover{border-color:var(--md-sys-color-primary);background:color-mix(in srgb, var(--md-sys-color-primary) 10%, transparent)}.status-popover-trigger:hover{background:color-mix(in srgb, var(--md-sys-color-on-surface) 7%, transparent)}.project-card:hover .project-media img,.project-card:hover .project-illustration{filter:grayscale(0)saturate(1.08)contrast()}.project-card:hover .project-media img{transform:scale(1.035)}.project-card:hover{background:color-mix(in srgb, var(--md-sys-color-on-surface) 3%, var(--md-sys-color-surface-container));box-shadow:0 12px 32px var(--shadow-color)}.project-icon-actions a:hover,.project-icon-actions button:hover{border-color:color-mix(in srgb, var(--md-sys-color-outline-variant) 42%, transparent);color:var(--md-sys-color-on-surface);background:color-mix(in srgb, var(--md-sys-color-on-surface) 7%, transparent)}.project-card:has(.project-card-primary-link:hover){border-color:color-mix(in srgb, var(--md-sys-color-outline-variant) 58%, transparent)}.project-card:has(.project-card-primary-link:hover) .project-view-action{color:var(--md-sys-color-on-surface)}.project-card:has(.project-card-primary-link:hover) .project-view-action svg{transform:translate(2px)}}@media (width<=1040px){.hero-card{grid-column:1/span 7}.portrait-card,.status-card{grid-column:8/span 5}.hero-bottom{flex-direction:column;align-items:flex-start}.about-card{grid-column:1/span 5}.latest-card{grid-column:6/span 7;grid-template-columns:minmax(0,1fr) minmax(170px,.7fr)}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-grid>.project-card:nth-child(odd){--project-reveal-x:-5px;--project-reveal-y:13px;--project-reveal-scale:.982;--project-reveal-origin:left center;--project-reveal-duration:.37s}.projects-grid>.project-card:nth-child(2n){--project-reveal-x:5px;--project-reveal-y:14px;--project-reveal-scale:.98;--project-reveal-origin:right center;--project-reveal-duration:.385s}}@media (width<=820px){.site-shell{width:min(100% - 24px,720px)}.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-card{grid-area:auto/1/auto/-1;min-height:520px}.portrait-card,.status-card,.about-card,.latest-card{grid-column:auto}.portrait-card,.portrait-card img{min-height:320px}.status-card{min-height:300px}.about-card,.latest-card{grid-column:1/-1}.projects-hero{grid-template-columns:1fr;align-items:start;gap:24px;min-height:500px}.projects-hero>p{place-self:end start;margin-top:0}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=580px){.site-shell{width:min(100% - 16px,520px);padding-top:8px}.site-nav-wrap{margin-bottom:12px;top:8px}.site-nav{min-height:0;padding:5px 6px}.brand-mark,.nav-icon-link,.mood-switcher{width:44px;height:44px}.nav-icon-link{display:none}.nav-link{min-height:44px;padding:0 12px;font-size:.82rem}.home-grid{grid-template-columns:1fr;gap:12px}.hero-card,.portrait-card,.status-card,.about-card,.latest-card{grid-column:1}.hero-card{border-radius:28px;min-height:520px;padding:28px 24px}.hero-title{white-space:normal;font-size:clamp(3.55rem,17vw,4.85rem)}.hero-detail{display:none}.hero-bottom{gap:24px}.hero-actions{flex-direction:column;width:100%}.action-link{width:100%}.hero-doodle{top:41%;right:-65px}.portrait-card,.portrait-card img{min-height:380px}.portrait-card{border-radius:28px}.status-card{border-radius:28px;min-height:210px;padding:25px}.activity-tooltip-content{grid-template-columns:96px minmax(0,1fr);gap:14px;min-height:96px}.activity-tooltip--listening .activity-tooltip-content{grid-template-columns:minmax(0,1fr) 96px}.activity-artwork,.activity-artwork>img,.activity-artwork-empty{width:96px;height:96px}.about-card{border-radius:28px;min-height:300px;padding:30px 26px}.latest-card{border-radius:28px;flex-direction:column-reverse;min-height:520px;display:flex}.latest-copy{min-height:260px;padding:26px}.latest-visual{border-radius:20px;min-height:270px;margin:10px 10px 0}.site-footer{flex-direction:column;align-items:flex-start;gap:8px}.secret-toast{bottom:8px;right:8px}.projects-hero{border-radius:28px;min-height:420px;padding:34px 26px}.projects-hero h1{font-size:clamp(3.6rem,17vw,5rem)}.projects-grid{grid-template-columns:1fr;gap:16px}.project-card{contain-intrinsic-size:auto 316px;flex-direction:column;align-items:stretch;min-height:316px;display:flex}.projects-grid>.project-card:nth-child(odd){--project-reveal-x:-4px;--project-reveal-y:12px;--project-reveal-scale:.985;--project-reveal-origin:left center;--project-reveal-duration:.35s}.projects-grid>.project-card:nth-child(2n){--project-reveal-x:4px;--project-reveal-y:13px;--project-reveal-scale:.983;--project-reveal-origin:right center;--project-reveal-duration:.365s}.project-media{width:auto;height:160px;min-height:160px;margin:10px 10px 0}.project-content{min-height:0;padding:20px}}@media (prefers-reduced-transparency:reduce){.site-nav,.status-card,.activity-tooltip,.secret-toast{-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.hero-title{font-style:normal!important;font-weight:680!important;font-stretch:100%!important;transform:none!important}.portrait-card{transform:none!important}}@keyframes hero-detail-breathe{0%,to{opacity:.45;transform:scaleX(.82)}50%{opacity:.9;transform:scaleX(1)}}@keyframes signal-equalizer{0%,to{opacity:.72;transform:scaleY(.68)}50%{opacity:1;transform:scaleY(1)}}@keyframes loading-dots{0%{width:0}to{width:1.5em}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}*{scrollbar-color:var(--md-sys-color-primary) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--md-sys-color-primary);border-radius:999px}
