:root,html[data-theme=light]{--bg:#f6f3ee;--bg-elev:#fbfaf7;--bg-sunken:#efebe4;--surface:#fff;--line:#e5dfd5;--line-strong:#cfc7ba;--ink:#1b1a18;--ink-2:#3b3833;--muted:#6f695f;--faint:#a29b90;--accent:#8a6a45;--accent-ink:#6e5233;--accent-soft:#8a6a451a;--success:#3f6b4e;--success-soft:#3f6b4e1a;--danger:#a1453a;--danger-soft:#a1453a17;--on-ink:#f6f3ee;--overlay:#1b1a1852;--shadow-sm:0 1px 2px #1b1a180d;--shadow-md:0 18px 40px -24px #1b1a1840;--shadow-lg:0 40px 80px -40px #1b1a1859;--sq-light:#efe5d6;--sq-dark:#b49a78;--font-display:"Instrument Serif","Iowan Old Style","Palatino Linotype",Georgia,serif;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--radius-sm:6px;--radius:12px;--radius-lg:18px;--radius-pill:999px;--container:1200px;--gutter:clamp(20px,4vw,48px);--section-y:clamp(80px,10vw,144px);--nav-h:72px;--ease:cubic-bezier(0.22,1,0.36,1);--dur:0.45s;color-scheme:light}html[data-theme=dark]{--bg:#121110;--bg-elev:#171614;--bg-sunken:#0d0c0b;--surface:#1b1a18;--line:#2a2825;--line-strong:#3d3a35;--ink:#eeeae3;--ink-2:#cfc9bf;--muted:#9a938a;--faint:#6c665e;--accent:#c9a97f;--accent-ink:#dcc19b;--accent-soft:#c9a97f1f;--success:#8fbf9b;--success-soft:#8fbf9b1f;--danger:#e09a8f;--danger-soft:#e09a8f1f;--on-ink:#121110;--overlay:#0000008c;--shadow-sm:0 1px 2px #0006;--shadow-md:0 18px 40px -24px #000000b3;--shadow-lg:0 40px 80px -40px #000c;--sq-light:#d8c9b2;--sq-dark:#8a7155;color-scheme:dark}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px;scroll-padding-top:calc(var(--nav-h) + 16px)}body{font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f3ee;background:var(--bg);color:#3b3833;color:var(--ink-2);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-family:var(--font-sans);font-size:17px;line-height:1.65;margin:0;overflow-x:clip;text-rendering:optimizeLegibility}iframe,img,svg,video{display:block;max-width:100%}blockquote,dd,dl,figure,h1,h2,h3,h4,ol,p,ul{margin:0}ol,ul{list-style:none;padding:0}a{text-decoration:none}a,button{color:inherit}button{background:none;border:0;cursor:pointer;font:inherit}kbd{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--font-mono)}::selection{background:#8a6a451a;background:var(--accent-soft);color:#1b1a18;color:var(--ink)}:focus-visible{border-radius:4px;outline:2px solid #8a6a45;outline:2px solid var(--accent);outline-offset:3px}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.skip-link{background:#1b1a18;background:var(--ink);border-radius:6px;border-radius:var(--radius-sm);color:#f6f3ee;color:var(--on-ink);font-size:14px;font-weight:600;left:16px;padding:10px 16px;position:absolute;top:-60px;transition:top .2s cubic-bezier(.22,1,.36,1);transition:top .2s var(--ease);z-index:3000}.skip-link:focus{top:12px}.display{color:#1b1a18;color:var(--ink);font-family:"Instrument Serif",Iowan Old Style,Palatino Linotype,Georgia,serif;font-family:var(--font-display);font-size:clamp(46px,7.4vw,104px);font-weight:400;letter-spacing:-.025em;line-height:.98}.display em,.title em{color:#8a6a45;color:var(--accent);font-style:italic}.title{font-size:clamp(34px,4.6vw,60px);letter-spacing:-.02em;line-height:1.04}.title,.title-sm{color:#1b1a18;color:var(--ink);font-family:"Instrument Serif",Iowan Old Style,Palatino Linotype,Georgia,serif;font-family:var(--font-display);font-weight:400}.title-sm{font-size:clamp(26px,2.6vw,34px);letter-spacing:-.01em;line-height:1.12}.eyebrow{align-items:center;color:#6f695f;color:var(--muted);display:inline-flex;font-size:12px;font-weight:600;gap:10px;letter-spacing:.16em;text-transform:uppercase}.eyebrow:before{background:currentColor;content:"";height:1px;opacity:.6;width:22px}.eyebrow.no-rule:before{display:none}.lead{color:#3b3833;color:var(--ink-2);font-size:clamp(18px,1.5vw,21px);line-height:1.6}.muted{color:#6f695f;color:var(--muted)}.mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--font-mono);font-size:.82em;letter-spacing:0}.container{margin:0 auto;max-width:calc(1200px + clamp(20px, 4vw, 48px)*2);max-width:calc(var(--container) + var(--gutter)*2);padding:0 clamp(20px,4vw,48px);padding:0 var(--gutter);width:100%}.section{padding:clamp(80px,10vw,144px) 0;padding:var(--section-y) 0}.section+.section{padding-top:0}.section-rule{border-top:1px solid #e5dfd5;border-top:1px solid var(--line)}.section-head{align-items:flex-end;display:flex;gap:32px;justify-content:space-between;margin-bottom:clamp(36px,5vw,64px)}.section-head-text{grid-gap:18px;display:grid;gap:18px;max-width:720px}.section-head .lead{max-width:600px}@media (max-width:767px){.section-head{align-items:flex-start;flex-direction:column;gap:20px}}.page-header{padding:calc(72px + clamp(56px, 9vw, 120px)) 0 clamp(40px,6vw,72px);padding:calc(var(--nav-h) + clamp(56px, 9vw, 120px)) 0 clamp(40px,6vw,72px)}.page-header-inner{grid-gap:22px;display:grid;gap:22px;max-width:860px}main{display:block;min-height:70vh}.btn{align-items:center;border-radius:999px;border-radius:var(--radius-pill);display:inline-flex;font-size:15px;font-weight:600;gap:10px;height:50px;justify-content:center;letter-spacing:.005em;padding:0 26px;transition:background-color .25s cubic-bezier(.22,1,.36,1),color .25s cubic-bezier(.22,1,.36,1),border-color .25s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.22,1,.36,1),box-shadow .25s cubic-bezier(.22,1,.36,1);transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .2s var(--ease),box-shadow .25s var(--ease);white-space:nowrap}.btn:active{transform:scale(.98)}.btn svg{transition:transform .3s cubic-bezier(.22,1,.36,1);transition:transform .3s var(--ease)}.btn-primary{background:#1b1a18;background:var(--ink)}.btn-primary,.btn-primary:hover{color:#f6f3ee;color:var(--on-ink)}.btn-primary:hover{box-shadow:0 18px 40px -24px #1b1a1840;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:hover svg.arrow{transform:translateX(3px)}.btn-secondary{background:#0000;border:1px solid #cfc7ba;border:1px solid var(--line-strong);color:#1b1a18;color:var(--ink)}.btn-secondary:hover{background:#fbfaf7;background:var(--bg-elev);border-color:#1b1a18;border-color:var(--ink);color:#1b1a18;color:var(--ink)}.btn-secondary:hover svg.arrow-down{transform:translateY(2px)}.btn-sm{font-size:14px;height:40px;padding:0 18px}.btn[disabled]{cursor:default;opacity:.5;transform:none}.link{align-items:center;color:#1b1a18;color:var(--ink);display:inline-flex;font-weight:600;gap:8px;position:relative}.link:after{background:currentColor;bottom:-3px;content:"";height:1px;left:0;opacity:.5;position:absolute;right:0;transform:scaleX(.35);transform-origin:left;transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .35s cubic-bezier(.22,1,.36,1);transition:transform .35s var(--ease),opacity .35s var(--ease)}.link:hover{color:#1b1a18;color:var(--ink)}.link:hover:after{opacity:1;transform:scaleX(1)}.link svg{transition:transform .3s cubic-bezier(.22,1,.36,1);transition:transform .3s var(--ease)}.link:hover svg{transform:translate(2px,-2px)}.prose-link{text-decoration:underline;text-decoration-color:#cfc7ba;text-decoration-color:var(--line-strong);text-decoration-thickness:1px;text-underline-offset:4px;transition:text-decoration-color .25s cubic-bezier(.22,1,.36,1);transition:text-decoration-color .25s var(--ease)}.prose-link,.prose-link:hover{color:#1b1a18;color:var(--ink)}.prose-link:hover{text-decoration-color:#8a6a45;text-decoration-color:var(--accent)}.tag{align-items:center;background:#fbfaf7;background:var(--bg-elev);border:1px solid #e5dfd5;border:1px solid var(--line);border-radius:999px;border-radius:var(--radius-pill);color:#3b3833;color:var(--ink-2);display:inline-flex;font-size:12.5px;font-weight:500;height:28px;padding:0 12px}.tags{display:flex;flex-wrap:wrap;gap:8px}.status-dot{flex:none;height:7px;position:relative;width:7px}.status-dot,.status-dot:after{background:#3f6b4e;background:var(--success);border-radius:50%}.status-dot:after{animation:status-ping 2.4s cubic-bezier(.22,1,.36,1) infinite;animation:status-ping 2.4s var(--ease) infinite;content:"";inset:0;position:absolute}@keyframes status-ping{0%{opacity:.6;transform:scale(1)}70%,to{opacity:0;transform:scale(2.6)}}kbd.key{align-items:center;background:#fbfaf7;background:var(--bg-elev);border:1px solid #e5dfd5;border:1px solid var(--line);border-radius:5px;box-shadow:none;color:#6f695f;color:var(--muted);display:inline-flex;font-size:11px;font-weight:500;height:22px;justify-content:center;line-height:1;min-width:22px;padding:0 6px}.frame{background:#efebe4;background:var(--bg-sunken);border:1px solid #e5dfd5;border:1px solid var(--line);border-radius:12px;border-radius:var(--radius);overflow:hidden;position:relative}.frame-stage{align-items:flex-start;display:flex;inset:0;justify-content:center;padding:8% 8% 0;position:absolute}.frame-shot{background:#fff;background:var(--surface);border-radius:8px 8px 0 0;box-shadow:0 40px 80px -40px #1b1a1859;box-shadow:var(--shadow-lg);overflow:hidden;transform-origin:50% 0;transition:transform .9s cubic-bezier(.22,1,.36,1);transition:transform .9s var(--ease);width:100%}.frame-shot .browser-bar{align-items:center;background:#fbfaf7;background:var(--bg-elev);border-bottom:1px solid #e5dfd5;border-bottom:1px solid var(--line);display:flex;gap:6px;height:22px;padding:0 10px}.frame-shot .browser-bar span{background:#cfc7ba;background:var(--line-strong);border-radius:50%;height:7px;width:7px}.frame-shot img{height:auto;width:100%}.lazy-image img{opacity:0;transition:opacity .6s cubic-bezier(.22,1,.36,1);transition:opacity .6s var(--ease)}.lazy-image.is-loaded img{opacity:1}.site-nav{border-bottom:1px solid #0000;height:72px;height:var(--nav-h);inset:0 0 auto 0;position:fixed;transition:background-color .35s cubic-bezier(.22,1,.36,1),border-color .35s cubic-bezier(.22,1,.36,1);transition:background-color .35s var(--ease),border-color .35s var(--ease);z-index:1000}.site-nav.is-open,.site-nav.is-scrolled{background:color-mix(in srgb,#f6f3ee 92%,#0000);background:color-mix(in srgb,var(--bg) 92%,#0000);border-bottom-color:#e5dfd5;border-bottom-color:var(--line)}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.site-nav.is-scrolled{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:color-mix(in srgb,#f6f3ee 94%,#0000);background:color-mix(in srgb,var(--bg) 94%,#0000)}}.site-nav-inner{align-items:center;display:flex;gap:24px;height:100%}.brand{align-items:center;display:inline-flex;gap:12px;margin-right:auto}.brand,.brand:hover{color:#1b1a18;color:var(--ink)}.brand-mark{border:1px solid #cfc7ba;border:1px solid var(--line-strong);border-radius:50%;display:grid;font-family:"Instrument Serif",Iowan Old Style,Palatino Linotype,Georgia,serif;font-family:var(--font-display);font-size:17px;height:36px;letter-spacing:.02em;place-items:center;transition:background-color .3s cubic-bezier(.22,1,.36,1),color .3s cubic-bezier(.22,1,.36,1),border-color .3s cubic-bezier(.22,1,.36,1);transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);width:36px}.brand:hover .brand-mark{background:#1b1a18;background:var(--ink);border-color:#1b1a18;border-color:var(--ink);color:#f6f3ee;color:var(--on-ink)}.brand-name{font-size:15px;font-weight:600;letter-spacing:-.005em;white-space:nowrap}.brand-role{color:#6f695f;color:var(--muted);display:block;font-size:12px;font-weight:500;line-height:1.2}.nav-links{align-items:center;display:flex;gap:4px}.nav-link{color:#6f695f;color:var(--muted);font-size:14.5px;font-weight:500;padding:8px 12px;position:relative;transition:color .25s cubic-bezier(.22,1,.36,1);transition:color .25s var(--ease)}.nav-link:after{background:#1b1a18;background:var(--ink);bottom:2px;content:"";height:1px;left:12px;position:absolute;right:12px;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,1,.36,1);transition:transform .35s var(--ease)}.nav-link.active,.nav-link:hover{color:#1b1a18;color:var(--ink)}.nav-link.active:after,.nav-link:hover:after{transform:scaleX(1)}.nav-actions{display:flex}.icon-button,.nav-actions{align-items:center;gap:8px}.icon-button{border:1px solid #e5dfd5;border:1px solid var(--line);border-radius:999px;border-radius:var(--radius-pill);color:#1b1a18;color:var(--ink);display:inline-flex;font-size:13px;height:38px;justify-content:center;min-width:38px;padding:0 10px;transition:border-color .25s cubic-bezier(.22,1,.36,1),background-color .25s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.22,1,.36,1);transition:border-color .25s var(--ease),background-color .25s var(--ease),transform .2s var(--ease)}.icon-button:hover{background:#fbfaf7;background:var(--bg-elev);border-color:#cfc7ba;border-color:var(--line-strong)}.icon-button:active{transform:scale(.96)}.icon-button svg{height:17px;width:17px}.theme-toggle svg{overflow:visible}.theme-toggle-core,.theme-toggle-cut,.theme-toggle-rays{transform-box:fill-box;transform-origin:center;transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .35s cubic-bezier(.22,1,.36,1);transition:transform .5s var(--ease),opacity .35s var(--ease)}.theme-toggle.is-dark .theme-toggle-core{transform:scale(1.7)}.theme-toggle.is-dark .theme-toggle-cut{transform:translateX(-7px)}.theme-toggle.is-dark .theme-toggle-rays{opacity:0;transform:rotate(-30deg) scale(.6)}.menu-button{display:none}.menu-icon{height:10px;position:relative;width:18px}.menu-icon span{background:currentColor;border-radius:2px;height:1.5px;left:0;position:absolute;right:0;transition:transform .35s cubic-bezier(.22,1,.36,1),top .35s cubic-bezier(.22,1,.36,1);transition:transform .35s var(--ease),top .35s var(--ease)}.menu-icon span:first-child{top:0}.menu-icon span:last-child{top:8.5px}.site-nav.is-open .menu-icon span:first-child{top:4.25px;transform:rotate(45deg)}.site-nav.is-open .menu-icon span:last-child{top:4.25px;transform:rotate(-45deg)}.mobile-menu{display:none}@media (max-width:991px){.nav-links{display:none}.menu-button{display:inline-flex}.brand-role{display:none}.mobile-menu{background:#f6f3ee;background:var(--bg);display:flex;flex-direction:column;inset:72px 0 0 0;inset:var(--nav-h) 0 0 0;justify-content:space-between;opacity:0;padding:24px clamp(20px,4vw,48px) 40px;padding:24px var(--gutter) 40px;position:fixed;transform:translateY(-8px);transition:opacity .3s cubic-bezier(.22,1,.36,1),transform .4s cubic-bezier(.22,1,.36,1),visibility .3s;transition:opacity .3s var(--ease),transform .4s var(--ease),visibility .3s;visibility:hidden;z-index:999}.site-nav.is-open+.mobile-menu{opacity:1;transform:none;visibility:visible}.mobile-menu a.mobile-link{align-items:baseline;border-bottom:1px solid #e5dfd5;border-bottom:1px solid var(--line);color:#1b1a18;color:var(--ink);display:flex;font-family:"Instrument Serif",Iowan Old Style,Palatino Linotype,Georgia,serif;font-family:var(--font-display);font-size:36px;justify-content:space-between;line-height:1.1;padding:14px 0}.mobile-menu a.mobile-link.active{color:#8a6a45;color:var(--accent)}.mobile-menu a.mobile-link small{color:#a29b90;color:var(--faint);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--font-mono);font-size:12px}.mobile-menu-foot{color:#6f695f;color:var(--muted);display:flex;flex-wrap:wrap;font-size:14px;gap:10px 22px}}@media (max-width:575px){.palette-button kbd{display:none}.palette-button{padding:0;width:38px}.brand-name{font-size:14px}}.site-footer{background:#fbfaf7;background:var(--bg-elev);border-top:1px solid #e5dfd5;border-top:1px solid var(--line);font-size:14.5px;margin-top:clamp(80px,10vw,144px);margin-top:var(--section-y)}.footer-cta{align-items:flex-end;border-bottom:1px solid #e5dfd5;border-bottom:1px solid var(--line);display:flex;gap:32px;justify-content:space-between;padding:clamp(56px,8vw,96px) 0 clamp(48px,6vw,72px)}.footer-cta .title{max-width:13ch}.footer-cta-actions{display:flex;flex-wrap:wrap;gap:12px}.footer-grid{grid-gap:40px;display:grid;gap:40px;grid-template-columns:1.6fr repeat(3,1fr);padding:56px 0}.footer-brand p{color:#6f695f;color:var(--muted);margin-top:16px;max-width:320px}.footer-col h3{color:#a29b90;color:var(--faint);font-size:12px;font-weight:600;letter-spacing:.14em;margin-bottom:16px;text-transform:uppercase}.footer-col li+li{margin-top:10px}.footer-col a{color:#3b3833;color:var(--ink-2);transition:color .2s cubic-bezier(.22,1,.36,1);transition:color .2s var(--ease)}.footer-col a:hover{color:#8a6a45;color:var(--accent)}.footer-col a .ext{display:inline-block;font-size:.8em;margin-left:4px;opacity:.5}.footer-bottom{border-top:1px solid #e5dfd5;border-top:1px solid var(--line);color:#a29b90;color:var(--faint);display:flex;flex-wrap:wrap;font-size:13px;gap:16px;justify-content:space-between;padding:22px 72px 28px 0}@media (max-width:991px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}@media (max-width:767px){.footer-cta{align-items:flex-start;flex-direction:column}}.footer-icons{display:none}@media (max-width:767px){.site-footer{margin-top:clamp(48px,12vw,72px)}.footer-bottom>span+span,.footer-credit,.footer-cta,.footer-grid{display:none}.footer-icons{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;padding:28px 0 18px}.footer-icons a{border:1px solid #e5dfd5;border:1px solid var(--line);border-radius:50%;color:#3b3833;color:var(--ink-2);display:grid;height:40px;place-items:center;transition:color .2s cubic-bezier(.22,1,.36,1),border-color .2s cubic-bezier(.22,1,.36,1),background-color .2s cubic-bezier(.22,1,.36,1);transition:color .2s var(--ease),border-color .2s var(--ease),background-color .2s var(--ease);width:40px}.footer-icons a:active,.footer-icons a:hover{background:#f6f3ee;background:var(--bg);border-color:#cfc7ba;border-color:var(--line-strong);color:#1b1a18;color:var(--ink)}.footer-icons svg{height:18px;width:18px}.footer-bottom{justify-content:center;padding:14px 0 22px;text-align:center}}.scroll-progress{background:#8a6a45;background:var(--accent);height:2px;left:0;pointer-events:none;position:fixed;right:0;top:0;transform:scaleX(0);transform-origin:0 50%;z-index:1100}.back-to-top{background:#fff;background:var(--surface);border:1px solid #cfc7ba;border:1px solid var(--line-strong);border-radius:50%;bottom:24px;box-shadow:0 18px 40px -24px #1b1a1840;box-shadow:var(--shadow-md);color:#1b1a18;color:var(--ink);display:grid;height:46px;opacity:0;place-items:center;position:fixed;right:24px;transform:translateY(12px);transition:opacity .3s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1),visibility .3s,background-color .25s;transition:opacity .3s var(--ease),transform .35s var(--ease),visibility .3s,background-color .25s;visibility:hidden;width:46px;z-index:900}.back-to-top.is-visible{opacity:1;transform:none;visibility:visible}.back-to-top:hover{background:#1b1a18;background:var(--ink);color:#f6f3ee;color:var(--on-ink)}@media (max-width:575px){.back-to-top{bottom:16px;right:16px}}.page-transition{animation:page-in .5s cubic-bezier(.22,1,.36,1) both;animation:page-in .5s var(--ease) both}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal:not(.is-visible){will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:none}.reveal-stagger>*{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal-stagger.is-visible>*{opacity:1;transform:none}.reveal-stagger.is-visible>:nth-child(2){transition-delay:70ms}.reveal-stagger.is-visible>:nth-child(3){transition-delay:.14s}.reveal-stagger.is-visible>:nth-child(4){transition-delay:.21s}.reveal-stagger.is-visible>:nth-child(5){transition-delay:.28s}.reveal-stagger.is-visible>:nth-child(6){transition-delay:.35s}.reveal-stagger.is-visible>:nth-child(n+7){transition-delay:.42s}.rise{animation:rise 1s cubic-bezier(.22,1,.36,1) both;animation:rise 1s var(--ease) both;animation-delay:0ms;animation-delay:var(--d,0ms)}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.page-loader{height:60vh}::view-transition-new(root),::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-new(root){z-index:9999}html.theme-fade *,html.theme-fade :after,html.theme-fade :before{transition:background-color .35s ease,color .35s ease,border-color .35s ease!important}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-delay:0ms!important;transition-duration:.01ms!important}.reveal,.reveal-stagger>*{opacity:1!important;transform:none!important}}.hero{padding:calc(var(--nav-h) + clamp(48px, 7vw, 104px)) 0 0}.hero-grid{grid-gap:clamp(40px,6vw,96px);align-items:center;display:grid;gap:clamp(40px,6vw,96px);grid-template-columns:minmax(0,1.08fr) minmax(0,1fr)}.hero-kicker{align-items:center;color:var(--muted);display:inline-flex;font-size:14px;font-weight:500;gap:12px;margin-bottom:28px}.hero-title{font-size:clamp(44px,5.3vw,88px)}.hero-title>span{display:block}.hero-lead{color:var(--muted);margin-top:32px;max-width:540px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}.hero-visual{aspect-ratio:1/1.02;position:relative}.hero-shot{box-shadow:var(--shadow-lg);position:absolute}.hero-shot-back{right:0;top:0;width:82%}.hero-shot-front{background:var(--bg-elev);bottom:9%;left:0;width:78%}.hero-shot .frame-stage{padding:7% 7% 0}.hero-caption{align-items:baseline;bottom:0;color:var(--muted);display:flex;font-size:13px;gap:10px;position:absolute;right:0}.hero-caption .mono{color:var(--faint);font-size:11px;letter-spacing:.12em;text-transform:uppercase}@media (hover:hover){.hero-visual:hover .hero-shot-front .frame-shot{transform:translateY(-6px)}.hero-visual:hover .hero-shot-back .frame-shot{transform:translateY(-3px)}}.figures{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(64px,8vw,112px)}.figure{padding:28px 24px 0 0}.figure+.figure{border-left:1px solid var(--line);padding-left:24px}.figure-value{color:var(--ink);font-family:var(--font-display);font-size:clamp(40px,4.4vw,58px);letter-spacing:-.02em;line-height:1}.figure-label{color:var(--muted);font-size:14px;line-height:1.5;margin-top:10px;max-width:22ch}@media (max-width:991px){.hero-grid{grid-template-columns:1fr}.hero-title{font-size:clamp(44px,9vw,80px)}.hero-visual{aspect-ratio:1/.86;margin:0 auto;max-width:640px;width:100%}.figures{grid-template-columns:repeat(2,minmax(0,1fr))}.figure:nth-child(3){border-left:0;padding-left:0}.figure:nth-child(n+3){border-top:1px solid var(--line);margin-top:28px}}@media (max-width:575px){.hero-kicker{align-items:flex-start;font-size:13px;gap:10px}.hero-kicker .status-dot{margin-top:7px}.hero-actions .btn{flex:1 1 100%}.figure{padding:22px 14px 0 0}.figure+.figure{padding-left:14px}.figure:nth-child(3){padding-left:0}.figure-label{font-size:13px}}.work-card{grid-gap:24px;display:grid;gap:24px}.work-media{border-radius:var(--radius);display:block}.work-media .frame{transition:border-color .4s var(--ease)}.work-card:hover .work-media .frame{border-color:var(--line-strong)}.work-card:hover .frame-shot{transform:translateY(-4px) scale(1.015)}.work-body{grid-gap:12px;align-content:start;display:grid;gap:12px}.work-meta{align-items:center;color:var(--muted);display:flex;font-size:12px;font-weight:600;gap:12px;letter-spacing:.14em;text-transform:uppercase}.work-meta .mono{color:var(--faint);letter-spacing:.04em}.work-title{color:var(--ink);font-family:var(--font-display);font-size:clamp(28px,2.6vw,36px);font-weight:400;letter-spacing:-.01em;line-height:1.1}.work-title a{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:background-size .45s var(--ease)}.work-card:hover .work-title a{background-size:100% 1px}.work-summary{color:var(--ink-2);font-size:16px}.work-description{color:var(--muted)}.work-card .tags{margin-top:4px}.work-links{display:flex;flex-wrap:wrap;font-size:15px;gap:24px;margin-top:8px}.link-quiet{color:var(--muted);font-weight:500}.work-card-feature{align-items:center;border-bottom:1px solid var(--line);gap:clamp(32px,5vw,72px);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);margin-bottom:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,80px)}.work-card-feature .work-title{font-size:clamp(34px,3.6vw,48px)}.work-card-feature .work-summary{font-size:19px}@media (min-width:768px){.work-card-feature.is-reversed{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}.work-card-feature.is-reversed .work-media{order:2}}.work-highlights{grid-gap:10px 20px;border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;gap:10px 20px;grid-template-columns:repeat(2,minmax(0,1fr));margin:6px 0 4px;padding:16px 0}.work-highlights li{color:var(--ink-2);font-size:14.5px;line-height:1.45;padding-left:18px;position:relative}.work-highlights li:before{background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.65em;width:8px}@media (max-width:575px){.work-highlights{grid-template-columns:1fr}}.featured-badge{background:var(--accent-soft);border-radius:var(--radius-pill);color:var(--accent-ink);letter-spacing:.1em;padding:3px 9px}.more-work{align-items:center;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between}.work-grid{grid-gap:clamp(48px,6vw,80px) clamp(28px,4vw,56px);display:grid;gap:clamp(48px,6vw,80px) clamp(28px,4vw,56px);grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:767px){.work-card-feature,.work-grid{grid-template-columns:1fr}}.work-index{padding-top:0}.filter-bar{border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(40px,5vw,64px);padding-bottom:28px}.filter-chip{align-items:center;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--ink-2);display:inline-flex;font-size:14px;font-weight:500;gap:8px;height:40px;padding:0 16px;transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}.filter-chip:hover{border-color:var(--line-strong)}.filter-chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.filter-count{font-family:var(--font-mono);font-size:11px;opacity:.6}.intro-grid{grid-gap:clamp(40px,7vw,120px);display:grid;gap:clamp(40px,7vw,120px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-top:var(--section-y)}.intro-statement{grid-gap:24px;align-content:start;display:grid;gap:24px;position:-webkit-sticky;position:sticky;top:calc(var(--nav-h) + 40px)}.intro-body{grid-gap:22px;display:grid;gap:22px}.intro-body>p:not(.lead){color:var(--muted)}.capabilities{border-top:1px solid var(--line);margin-top:20px}.capability{grid-gap:20px;border-bottom:1px solid var(--line);display:grid;font-size:15px;gap:20px;grid-template-columns:150px 1fr;padding:16px 0}.capability dt{color:var(--ink);font-weight:600}.capability dd{color:var(--muted)}@media (max-width:991px){.intro-grid{grid-template-columns:1fr}.intro-statement{position:static}}@media (max-width:575px){.capability{gap:4px;grid-template-columns:1fr}}.roles{border-top:1px solid var(--line)}.role-row{grid-gap:24px;align-items:baseline;border-bottom:1px solid var(--line);display:grid;gap:24px;grid-template-columns:140px minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1fr);padding:22px 0;transition:padding-left .4s var(--ease),background-color .4s var(--ease)}@media (hover:hover){.role-row:hover{padding-left:12px}}.role-period{color:var(--faint)}.role-title{color:var(--ink);font-family:var(--font-display);font-size:24px;line-height:1.2}.role-org{color:var(--ink-2);font-weight:600}.role-note{color:var(--muted);font-size:15px}@media (max-width:767px){.role-row{gap:4px 16px;grid-template-columns:1fr auto}.role-period{grid-column:2;grid-row:1;text-align:right}.role-title{font-size:21px;grid-column:1;grid-row:1}.role-note,.role-org{grid-column:1/-1}}.puzzle{grid-gap:clamp(40px,6vw,96px);align-items:center;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);display:grid;gap:clamp(40px,6vw,96px);grid-template-columns:minmax(0,1fr) minmax(0,440px);padding:clamp(28px,4vw,56px)}.puzzle-placeholder{min-height:520px}.puzzle-copy{grid-gap:20px;align-content:start;display:grid;gap:20px}.puzzle-copy .eyebrow svg{margin-left:-2px}.puzzle-copy .eyebrow:before{display:none}.puzzle-name{color:var(--ink);font-weight:600}.puzzle-status{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink-2);font-size:15px;font-weight:500;min-height:56px;padding:14px 18px;transition:background-color .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease)}.puzzle-status.is-solved{background:var(--success-soft);border-color:#0000;color:var(--success)}.puzzle-status.is-wrong{background:var(--danger-soft);border-color:#0000;color:var(--danger)}.puzzle-actions{align-items:center;display:flex;gap:16px}.puzzle-count{color:var(--faint)}.puzzle-hint{color:var(--muted);font-family:var(--font-display);font-size:15px;font-size:20px;font-style:italic}.board{aspect-ratio:1;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg),0 0 0 1px var(--line-strong);container-type:inline-size;display:grid;grid-template-columns:repeat(8,1fr);overflow:hidden;transition:box-shadow .4s var(--ease);-webkit-user-select:none;user-select:none;width:100%}.board.is-wrong{animation:board-shake .4s var(--ease)}.board.is-solved{box-shadow:var(--shadow-lg),0 0 0 2px var(--success)}@keyframes board-shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}.sq{-webkit-tap-highlight-color:transparent;aspect-ratio:1;border:none;cursor:pointer;display:grid;padding:0;place-items:center;position:relative}.sq-light{background:var(--sq-light)}.sq-dark{background:var(--sq-dark)}.sq:focus-visible{border-radius:0;outline:2px solid var(--ink);outline-offset:-2px}.sq.is-last:before,.sq.is-selected:before{background:#d6b25c6b;content:"";inset:0;position:absolute}.sq.is-selected:before{background:#d6b25c99}.sq.is-target:after{background:#1b1a1847;height:28%;width:28%}.sq.is-capture:after,.sq.is-target:after{animation:dot-in .2s var(--ease) both;border-radius:50%;content:""}.sq.is-capture:after{border:4px solid #1b1a1847;inset:6%;position:absolute}@keyframes dot-in{0%{transform:scale(0)}}.sq.is-mated{animation:mated .9s ease-in-out 2;background:#c97b6c}@keyframes mated{50%{background:#e2a99d}}.piece{animation:piece-land .3s var(--ease);font-family:Segoe UI Symbol,Apple Symbols,Noto Sans Symbols\ 2,DejaVu Sans,serif;font-size:36px;font-size:9.2cqw;line-height:1;pointer-events:none;position:relative;transition:transform .2s var(--ease);z-index:1}@keyframes piece-land{0%{opacity:.4;transform:scale(.7)}}.piece-w{-webkit-text-stroke:1.1px #2a241c;color:#fbf8f2;text-shadow:0 2px 2px #00000040}.piece-b{color:#1d1914;text-shadow:0 1px 1px #ffffff26}@media (hover:hover){.sq:hover .piece-w{transform:translateY(-2px) scale(1.05)}}.sq.is-selected .piece{transform:translateY(-2px) scale(1.08)}.sq-file,.sq-rank{font-family:var(--font-mono);font-size:9px;font-weight:500;pointer-events:none;position:absolute;z-index:1}.sq-rank{left:4px;top:3px}.sq-file{bottom:2px;right:4px}.sq-light .sq-file,.sq-light .sq-rank{color:var(--sq-dark)}.sq-dark .sq-file,.sq-dark .sq-rank{color:var(--sq-light)}@media (max-width:767px){.puzzle{gap:28px;grid-template-columns:1fr;padding:22px}}.story{padding-top:0}.story-grid{grid-gap:clamp(40px,7vw,120px);align-items:start;display:grid;gap:clamp(40px,7vw,120px);grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.story-body{grid-gap:22px;display:grid;gap:22px}.story-body>p:not(.lead){color:var(--muted)}.story-interests{grid-gap:14px;display:grid;gap:14px;margin-top:12px}.pull-quote{border-left:1px solid var(--accent);margin-top:20px;padding-left:24px}.pull-quote p{color:var(--ink);font-family:var(--font-display);font-size:clamp(22px,2.2vw,28px);font-style:italic;line-height:1.3}.pull-quote cite{color:var(--muted);display:block;font-size:14px;font-style:normal;margin-top:10px}.story-figure{grid-gap:14px;display:grid;gap:14px;position:-webkit-sticky;position:sticky;top:calc(var(--nav-h) + 32px)}.story-photo{aspect-ratio:4/4.2;background:var(--bg-sunken);border-radius:var(--radius);overflow:hidden}.story-photo .lazy-image,.story-photo img{height:100%;width:100%}.story-photo img{object-fit:cover;transition:transform 1.2s var(--ease),opacity .6s var(--ease)}.story-figure:hover .story-photo img{transform:scale(1.03)}.story-figure figcaption{font-size:14px}@media (max-width:991px){.story-grid{grid-template-columns:1fr}.story-figure{max-width:520px;position:static}}.stack-columns{grid-gap:clamp(32px,5vw,72px);display:grid;gap:clamp(32px,5vw,72px);grid-template-columns:repeat(2,minmax(0,1fr))}.stack-title{color:var(--faint);font-size:12px;font-weight:600;letter-spacing:.14em;margin-bottom:18px;text-transform:uppercase}.stack-items{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.stack-item{align-items:center;border-bottom:1px solid var(--line);color:var(--ink);display:flex;font-size:16px;font-weight:500;gap:14px;padding:16px 0}.stack-item:nth-child(odd){padding-right:16px}.stack-item svg{color:var(--muted);flex:none;height:20px;transition:color .25s var(--ease),transform .35s var(--ease);width:20px}.stack-item:hover svg{color:var(--accent);transform:scale(1.1)}@media (max-width:767px){.stack-columns{grid-template-columns:1fr}}.exp-list{border-top:1px solid var(--line)}.exp-company{grid-gap:clamp(28px,5vw,80px);border-bottom:1px solid var(--line);display:grid;gap:clamp(28px,5vw,80px);grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr);padding:clamp(32px,4vw,52px) 0}.exp-company-head{grid-gap:8px;align-content:start;display:grid;gap:8px}.exp-tagline{color:var(--ink-2);font-weight:500}.exp-meta{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:14px}.exp-meta svg{margin-right:6px}.tl-sep{color:var(--faint);margin:0 8px}.exp-award{align-items:flex-start;background:var(--accent-soft);border-radius:var(--radius);color:var(--accent-ink);display:flex;font-size:14px;gap:10px;line-height:1.55;margin-top:14px;padding:14px 16px}.exp-award svg{flex:none;margin-top:3px}.tl{padding-left:26px}.tl,.tl-role{position:relative}.tl-role{padding:4px 0 20px}.tl-role:before{background:var(--line-strong);bottom:-4px;content:"";left:-21px;position:absolute;top:22px;width:1px}.tl-role.is-last:before{display:none}.tl-dot{background:var(--bg);border:1px solid var(--line-strong);border-radius:50%;height:9px;left:-25px;position:absolute;top:14px;width:9px}.tl-role.is-current .tl-dot{background:var(--ink);border-color:var(--ink)}.tl-role-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;padding:6px 0;text-align:left;width:100%}.tl-role-title{color:var(--ink);display:block;font-size:18px;font-weight:600;transition:color .25s var(--ease)}.tl-role-head:hover .tl-role-title{color:var(--accent)}.tl-role-dates{color:var(--muted);display:block;font-size:14px;margin-top:4px}.tl-role-right{align-items:center;display:flex;flex:none;gap:14px;padding-top:3px}.now-badge{align-items:center;background:var(--success-soft);border-radius:var(--radius-pill);color:var(--success);display:inline-flex;font-size:12px;font-weight:600;gap:8px;padding:3px 10px}.tl-chevron{color:var(--muted);transition:transform .35s var(--ease)}.tl-chevron.is-open{transform:rotate(180deg)}.tl-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}.tl-collapse.is-open{grid-template-rows:1fr}.tl-collapse>div{overflow:hidden}.tl-highlights{grid-gap:8px;display:grid;gap:8px;margin:12px 0 16px}.tl-highlights li{color:var(--ink-2);font-size:15.5px;padding-left:18px;position:relative}.tl-highlights li:before{background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.8em;width:8px}.tl-collapse .tags{padding-bottom:6px}@media (max-width:991px){.exp-company{grid-template-columns:1fr}}.teaser{align-items:center;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;flex-wrap:wrap;gap:32px;justify-content:space-between;padding:clamp(28px,4vw,48px)}.teaser>div{grid-gap:10px;display:grid;gap:10px;max-width:560px}.contact{padding-top:0}.contact-grid{grid-gap:clamp(40px,7vw,120px);align-items:start;display:grid;gap:clamp(40px,7vw,120px);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.contact-primary{grid-gap:14px;display:grid;gap:14px}.contact-availability{align-items:center;color:var(--ink-2);display:flex;gap:12px;margin-bottom:14px}.contact-row{align-items:center;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:16px;justify-content:space-between;padding:22px 24px;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}.contact-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.contact-link{align-items:center;display:flex;gap:18px;min-width:0}.contact-icon{color:var(--muted);flex:none;height:20px;width:20px}.contact-link small{color:var(--faint);display:block;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.contact-link strong{color:var(--ink);display:block;font-size:clamp(17px,1.7vw,21px);font-weight:500;letter-spacing:-.01em;line-height:1.3;margin-top:4px;overflow-wrap:anywhere}.copy-btn{flex:none}.copy-btn.is-copied{border-color:var(--success);color:var(--success)}.contact-signoff{margin-top:18px}.contact-side{grid-gap:16px;display:grid;gap:16px}.contact-links{border-top:1px solid var(--line)}.contact-links a{align-items:center;border-bottom:1px solid var(--line);color:var(--ink);display:flex;font-size:17px;font-weight:500;justify-content:space-between;padding:16px 0;transition:padding-left .35s var(--ease),color .25s var(--ease)}.contact-links a svg{color:var(--faint);transition:transform .3s var(--ease),color .25s var(--ease)}.contact-links a:hover{color:var(--accent);padding-left:8px}.contact-links a:hover svg{color:var(--accent);transform:translate(2px,-2px)}@media (max-width:991px){.contact-grid{grid-template-columns:1fr}}@media (max-width:575px){.contact-row{padding:18px}.copy-btn span{display:none}.copy-btn{padding:0;width:40px}}.resume{padding-top:0}.resume-frame{background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden;position:relative}.resume-iframe{border:0;height:min(1100px,82vh);opacity:0;transition:opacity .6s var(--ease);width:100%}.resume-frame.is-loaded .resume-iframe{opacity:1}.resume-skeleton{animation:shimmer 1.4s ease-in-out infinite;background:linear-gradient(100deg,#0000 30%,var(--bg-elev) 50%,#0000 70%);background-size:200% 100%;inset:0;position:absolute}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.activity-section{padding-top:0}.activity-shell{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(20px,3vw,36px)}.activity-toolbar{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:24px}.activity-month{color:var(--ink);font-family:var(--font-display);font-size:clamp(28px,3vw,40px);font-weight:400;margin:0}.activity-month span{color:var(--muted)}.icon-btn{border:1px solid var(--line);border-radius:50%;color:var(--ink);display:grid;height:42px;place-items:center;transition:background-color .2s var(--ease),border-color .2s var(--ease);width:42px}.icon-btn:hover:not(:disabled){background:var(--bg);border-color:var(--line-strong)}.icon-btn:disabled{cursor:not-allowed;opacity:.3}.month-bars{grid-gap:6px;border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;gap:6px;grid-template-columns:repeat(12,minmax(0,1fr));margin-bottom:28px;padding:16px 0 20px}.month-bar{align-items:center;border-radius:var(--radius-sm);color:var(--muted);display:flex;flex-direction:column;gap:8px;padding:6px 0;transition:background-color .2s var(--ease)}.month-bar:hover:not(:disabled){background:var(--bg)}.month-bar:disabled{cursor:default;opacity:.35}.month-bar-count{font-family:var(--font-mono);font-size:11px;min-height:1.2em}.month-bar-track{align-items:flex-end;display:flex;height:64px;width:18px}.month-bar-fill{background:var(--line-strong);border-radius:3px;transition:height .7s var(--ease),background-color .25s var(--ease);width:100%}.month-bar-label{font-size:12px;font-weight:500}.month-bar.is-active{color:var(--ink)}.month-bar.is-active .month-bar-fill{background:var(--ink)}.activity-grid{grid-gap:clamp(24px,3vw,40px);display:grid;gap:clamp(24px,3vw,40px);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.activity-stats{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}.stat-pill{padding:14px 0 0}.stat-pill+.stat-pill{border-left:1px solid var(--line);padding-left:16px}.stat-pill strong{font-feature-settings:"tnum";align-items:center;color:var(--ink);display:flex;font-size:30px;font-variant-numeric:tabular-nums;font-weight:500;gap:6px;letter-spacing:-.03em;line-height:1}.stat-pill span{color:var(--muted);display:block;font-size:13px;margin-top:6px}.streak-icon{color:var(--accent);width:.55em}.activity-note{color:var(--danger);font-size:14px}.calendar{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekday{color:var(--faint);font-size:11px;font-weight:600;letter-spacing:.08em;padding-bottom:4px;text-align:center;text-transform:uppercase}.calendar-day{aspect-ratio:1;border:1px solid #0000;border-radius:8px;color:var(--ink);font-size:13px;position:relative;transition:transform .2s var(--ease),border-color .2s var(--ease)}.calendar-day:hover:not(:disabled){border-color:var(--line-strong);transform:translateY(-1px)}.calendar-day:disabled{cursor:default;opacity:.3}.calendar-day.is-selected{border-color:var(--ink)}.calendar-day.is-loading{animation:cal-pulse 1.2s ease-in-out infinite alternate}@keyframes cal-pulse{0%{opacity:.35}to{opacity:.8}}.calendar-day-num{font-weight:500;left:7px;position:absolute;top:5px}.calendar-day-count{bottom:4px;font-family:var(--font-mono);font-size:10px;position:absolute;right:7px}.level-0{background:var(--bg)}.level-1{background:color-mix(in srgb,var(--accent) 22%,var(--bg))}.level-2{background:color-mix(in srgb,var(--accent) 42%,var(--bg))}.level-3{background:color-mix(in srgb,var(--accent) 66%,var(--bg))}.level-3,.level-4{color:var(--on-ink)}.level-4{background:var(--accent)}html[data-theme=dark] .level-3,html[data-theme=dark] .level-4{color:#121110}.calendar-legend{align-items:center;color:var(--muted);display:flex;font-size:12px;gap:5px;justify-content:flex-end;margin-top:14px}.legend-swatch{border:1px solid var(--line);border-radius:3px;height:12px;width:12px}.commit-panel{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;min-width:0;padding:20px}.commit-panel-head{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:14px}.commit-panel-head h3{align-items:center;color:var(--ink);display:flex;font-size:16px;font-weight:600;gap:8px;margin:0}.commit-count{color:var(--muted);font-family:var(--font-mono);font-size:12px}.chip-btn{border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink);font-size:12px;font-weight:500;padding:2px 10px}.commit-list{max-height:480px;overflow-y:auto;padding-right:4px}.commit-day{margin-bottom:16px}.commit-day-label{background:var(--bg);color:var(--faint);font-size:11px;font-weight:600;letter-spacing:.1em;padding:4px 0 8px;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;z-index:1}.commit-item{border-bottom:1px solid var(--line);color:var(--ink);display:block;padding:12px 0;transition:padding-left .3s var(--ease)}.commit-item:hover{color:var(--ink);padding-left:6px}.commit-msg{display:block;font-size:15px;line-height:1.45;overflow-wrap:anywhere}.commit-meta{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:12.5px;gap:6px;margin-top:4px}.commit-meta code{color:var(--accent);font-family:var(--font-mono);margin-left:auto}.commit-skeleton{animation:shimmer 1.4s ease-in-out infinite;background:linear-gradient(100deg,var(--bg-sunken) 30%,var(--bg-elev) 50%,var(--bg-sunken) 70%);background-size:200% 100%;border-radius:var(--radius-sm);height:58px;margin-bottom:8px}.activity-empty{color:var(--muted);padding:32px 10px;text-align:center}.activity-empty .btn{margin-top:12px}@media (max-width:991px){.activity-grid{grid-template-columns:1fr}}@media (max-width:575px){.month-bars{gap:2px}.month-bar-count{display:none}.month-bar-label{font-size:10px}.month-bar-track{height:48px;width:12px}.calendar{gap:4px}.calendar-day{border-radius:6px;font-size:11px}.calendar-day-num{left:5px;top:3px}.calendar-day-count{display:none}.stat-pill strong{font-size:26px}}.palette-backdrop{align-items:flex-start;animation:fade-in .18s ease both;background:var(--overlay);display:flex;inset:0;justify-content:center;padding:14vh 16px 16px;position:fixed;z-index:2000}@keyframes fade-in{0%{opacity:0}}.palette{animation:palette-in .26s var(--ease) both;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--ink-2);overflow:hidden;width:min(600px,100%)}@keyframes palette-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}}.palette-search{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;padding:16px 20px}.palette-prompt{color:var(--accent);font-family:var(--font-display);font-size:24px;line-height:1}.palette-search input{background:#0000;border:none;color:var(--ink);flex:1 1;font-size:17px;min-width:0;outline:none}.palette-search input:focus,.palette-search input:focus-visible{outline:none}.palette-search input::placeholder{color:var(--faint)}.palette kbd{background:var(--bg-elev);border:1px solid var(--line);border-radius:5px;color:var(--muted);font-size:11px;padding:2px 6px}.palette-list{max-height:min(52vh,420px);overflow-y:auto;padding:8px}.palette-group{color:var(--faint);font-size:11px;font-weight:600;letter-spacing:.14em;padding:12px 12px 6px;text-transform:uppercase}.palette-item{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-size:15px;gap:12px;padding:10px 12px}.palette-item.is-active{background:var(--bg-sunken);color:var(--ink)}.palette-icon{color:var(--muted);flex:none}.palette-enter{margin-left:auto}.palette-empty{color:var(--muted);padding:24px;text-align:center}.palette-foot{border-top:1px solid var(--line);color:var(--muted);display:flex;font-size:12px;gap:18px;padding:10px 20px}.palette-foot kbd{margin-right:3px}.palette-toast{animation:toast-in .3s var(--ease) both;background:var(--ink);border-radius:var(--radius-pill);bottom:28px;color:var(--on-ink);font-size:14px;font-weight:500;left:50%;padding:10px 18px;position:fixed;transform:translateX(-50%);z-index:2001}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}@media (max-width:575px){.palette-foot{display:none}}
/*# sourceMappingURL=main.ebe19c87.css.map*/