:root{--font-header:"Figtree", "Helvetica Neue", Arial, sans-serif;--font-about:"Roboto", "Helvetica Neue", Arial, sans-serif;--bg:#17231e;--bg-rgb:23, 35, 30;--bg-strong:#121c18;--surface:#1f3029;--surface-strong:#284035;--interest-bg:#203229;--interest-hover:#2a4336;--interest-border:rgba(var(--accent-glow-rgb), .36);--text:#e7e3d8;--text-rgb:231, 227, 216;--text-strong:#f5f1e7;--text-strong-rgb:245, 241, 231;--nav-text:#fff;--nav-text-rgb:255, 255, 255;--accent:#4f9b6b;--accent-soft:#75b889;--accent-strong:#2f6f4e;--accent-glow-rgb:67, 137, 91;--success-rgb:155, 255, 220;--page-pattern:radial-gradient(circle, rgba(var(--nav-text-rgb), .088) 0 1px, transparent 1.35px) 0 0 / 26px 26px, radial-gradient(circle, rgba(var(--accent-glow-rgb), .06) 0 1px, transparent 1.35px) 13px 13px / 26px 26px, var(--bg);--page-fades:radial-gradient(circle at 82% 8%, rgba(var(--bg-rgb), .46) 0 7rem, rgba(var(--bg-rgb), .28) 13rem, rgba(var(--bg-rgb), 0) 29rem), radial-gradient(circle at 7% 80%, rgba(var(--bg-rgb), .48) 0 10rem, rgba(var(--bg-rgb), .3) 18rem, rgba(var(--bg-rgb), 0) 34rem), linear-gradient(180deg, transparent 0%, rgba(var(--bg-rgb), .1) 72%, rgba(var(--bg-rgb), .38) 100%);--header-bg:var(--bg);--mobile-menu-bg:var(--bg);--mobile-menu-text:#fff;--mobile-menu-text-rgb:255, 255, 255;color-scheme:dark;background:var(--bg);color:var(--text);font-synthesis:none;text-rendering:geometricprecision;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=light]{--bg:#fff;--bg-rgb:255, 255, 255;--bg-strong:#f5faf2;--surface:#fff;--surface-strong:#eef7ea;--interest-bg:#f3f5f1;--interest-hover:#ecefe8;--interest-border:rgba(var(--accent-glow-rgb), .38);--text:#233129;--text-rgb:35, 49, 41;--text-strong:#08110c;--text-strong-rgb:8, 17, 12;--nav-text:#142119;--nav-text-rgb:20, 33, 25;--accent:#2f6f4e;--accent-soft:#3f875f;--accent-strong:#24583f;--accent-glow-rgb:47, 111, 78;--success-rgb:28, 118, 92;--page-pattern:radial-gradient(circle, rgba(var(--nav-text-rgb), .105) 0 1px, transparent 1.35px) 0 0 / 26px 26px, radial-gradient(circle, rgba(var(--accent-glow-rgb), .078) 0 1px, transparent 1.35px) 13px 13px / 26px 26px, var(--bg);--page-fades:radial-gradient(circle at 82% 8%, rgba(var(--bg-rgb), .44) 0 7rem, rgba(var(--bg-rgb), .26) 13rem, rgba(var(--bg-rgb), 0) 29rem), radial-gradient(circle at 7% 80%, rgba(var(--bg-rgb), .46) 0 10rem, rgba(var(--bg-rgb), .28) 18rem, rgba(var(--bg-rgb), 0) 34rem), linear-gradient(180deg, transparent 0%, rgba(var(--bg-rgb), .08) 72%, rgba(var(--bg-rgb), .3) 100%);--header-bg:var(--bg);--mobile-menu-bg:var(--bg);--mobile-menu-text:var(--nav-text);--mobile-menu-text-rgb:var(--nav-text-rgb);color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}body{isolation:isolate;user-select:none;background:var(--page-pattern);min-width:320px;min-height:100vh;margin:0;position:relative;overflow-x:hidden}body:before{content:"";pointer-events:none;background:var(--page-fades);z-index:0;position:fixed;inset:0}.noise{z-index:1;pointer-events:none;opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-decoration:none}.page-shell{flex-direction:column;width:min(1120px,100% - 40px);min-height:100vh;margin:0 auto;display:flex}.site-header-bg{z-index:120;pointer-events:none;background:var(--header-bg);width:100%;height:57px;position:fixed;top:0;left:0}.site-header{z-index:140;pointer-events:none;width:100%;padding:25px 0 18px;position:fixed;top:0;left:0}.site-header-inner{z-index:1;pointer-events:auto;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:28px;width:min(1120px,100% - 40px);margin:0 auto;display:grid;position:relative}.wordmark,.header-nav,.project-link,.site-footer{align-items:center;display:flex}.wordmark{z-index:140;color:var(--nav-text);font-family:var(--font-header);letter-spacing:.01em;opacity:1;-webkit-tap-highlight-color:transparent;justify-self:center;font-size:14px;font-weight:500;line-height:1;transition:opacity .18s;position:relative}.header-nav{justify-self:start;gap:20px}.header-nav a,.mobile-nav-link{color:var(--nav-text);font-family:var(--font-header);letter-spacing:0;opacity:.58;-webkit-tap-highlight-color:transparent;padding-bottom:5px;font-size:14px;font-weight:500;line-height:1;transition:color .18s,opacity .18s,transform .18s;position:relative}.header-nav a:after,.mobile-nav-link:after{content:"";opacity:0;transform-origin:50%;background:currentColor;height:1px;transition:opacity .18s,transform .18s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.header-nav a:hover,.header-nav a:focus-visible,.mobile-nav-link:hover,.mobile-nav-link:focus-visible{color:var(--nav-text);opacity:1}.header-nav a:hover:after,.header-nav a:focus-visible:after,.mobile-nav-link:hover:after,.mobile-nav-link:focus-visible:after{opacity:1;transform:scaleX(1)}.header-nav a.active,.mobile-nav-link.active{color:var(--nav-text);opacity:1}.header-nav a.active:after,.mobile-nav-link.active:after{opacity:.9;transform:scaleX(1)}.header-socials{justify-self:end;align-items:center;gap:7px;display:flex}.theme-toggle-desktop{margin-left:13px}.social-icon-btn{width:28px;height:28px;color:var(--nav-text);opacity:.7;-webkit-tap-highlight-color:transparent;border-radius:999px;justify-content:center;align-items:center;line-height:0;transition:opacity .18s,background-color .18s,transform .18s;display:inline-flex}.header-socials .social-icon-btn{opacity:.48}.social-icon-btn:hover,.social-icon-btn:focus-visible{background:rgba(var(--nav-text-rgb), .08);opacity:1}.social-icon-btn:active,.nav-mobile-trigger:active,.theme-toggle:active{background:rgba(var(--nav-text-rgb), .12);transform:scale(.94)}.theme-toggle{width:32px;height:32px;color:var(--nav-text);cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;place-items:center;padding:0;line-height:0;transition:opacity .18s,background-color .18s,transform .18s;display:inline-grid}.theme-toggle:hover,.theme-toggle:focus-visible{opacity:1}.theme-toggle-icon{fill:none;stroke:currentColor;stroke-width:1.85px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px;display:block;overflow:visible}.theme-sun,.theme-moon{transform-origin:16px 16px;transition:opacity .26s,transform .36s cubic-bezier(.2,.8,.2,1)}.theme-sun{opacity:0;transform:rotate(-35deg)scale(.55)}.theme-sun circle{fill:currentColor;stroke:none}.theme-moon{fill:currentColor;stroke:none;opacity:1;transform:rotate(0)scale(1)}:root[data-theme=light] .theme-sun{opacity:1;transform:rotate(0)scale(1)}:root[data-theme=light] .theme-moon{opacity:0;transform:rotate(35deg)scale(.45)}.social-icon-btn .brand-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:17px;height:17px;display:block}.social-icon-btn[aria-label=Email] .brand-icon{width:17px;height:17px}.nav-mobile-trigger{z-index:140;width:34px;height:34px;color:var(--nav-text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;justify-self:end;place-items:center;padding:0;transition:background-color .18s,transform .18s,opacity .18s;display:none;position:relative}.nav-mobile-trigger:hover,.nav-mobile-trigger:focus-visible{opacity:1}.nav-mobile-trigger span{opacity:.82;transform-origin:50%;background:currentColor;border-radius:999px;grid-area:1/1;width:20px;height:1.6px;transition:transform .24s,opacity .18s;display:block}.nav-mobile-trigger span:first-child{transform:translateY(-4px)}.nav-mobile-trigger span:last-child{transform:translateY(4px)}.nav-mobile-trigger[aria-expanded=true] span:first-child{transform:rotate(45deg)}.nav-mobile-trigger[aria-expanded=true] span:last-child{transform:rotate(-45deg)}.mobile-nav-overlay{z-index:130;pointer-events:none;--nav-text:var(--mobile-menu-text);--nav-text-rgb:var(--mobile-menu-text-rgb);display:none;position:fixed;inset:0}.mobile-nav-overlay.is-visible{display:block}.mobile-nav-backdrop{background:var(--mobile-menu-bg);opacity:0;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;width:100%;height:100%;padding:0;transition:opacity .26s;position:absolute;inset:0}.mobile-nav-overlay.is-open .mobile-nav-backdrop{opacity:1;pointer-events:auto;transition-delay:0s}.mobile-nav-menu{z-index:1;pointer-events:none;flex-direction:column;justify-content:space-between;align-items:center;gap:clamp(20px,4vh,40px);min-height:100svh;padding:clamp(94px,13vh,124px) 28px clamp(34px,7vh,58px);display:flex;position:relative}.mobile-nav-links{flex-direction:column;align-items:center;gap:20px;display:flex}.mobile-nav-link{opacity:0;font-size:clamp(30px,13vw,64px);font-weight:500;transition:opacity .36s cubic-bezier(.2,.8,.2,1),transform .36s cubic-bezier(.2,.8,.2,1);display:inline-flex;transform:translateY(26px)}.theme-toggle-mobile{opacity:0;width:48px;height:48px;transition:opacity .36s cubic-bezier(.2,.8,.2,1),background-color .18s,transform .36s cubic-bezier(.2,.8,.2,1);position:relative;transform:translateY(26px)}.theme-toggle-mobile .theme-toggle-icon{width:28px;height:28px}.mobile-social-row{justify-content:center;gap:12px;display:flex}.mobile-social{opacity:0;width:44px;height:44px;transition:opacity .36s cubic-bezier(.2,.8,.2,1),background-color .18s,transform .36s cubic-bezier(.2,.8,.2,1);transform:translateY(26px)}.mobile-social .brand-icon{width:22px;height:22px}.mobile-social[aria-label=Email] .brand-icon{width:24px;height:24px}.mobile-nav-overlay.is-open .mobile-nav-link,.mobile-nav-overlay.is-open .theme-toggle-mobile,.mobile-nav-overlay.is-open .mobile-social{opacity:.62;pointer-events:auto;transition-delay:calc(.2s + (var(--order) * 55ms))}.mobile-nav-overlay.is-open .theme-toggle-mobile{opacity:.9}.mobile-nav-overlay.is-open .mobile-nav-link,.mobile-nav-overlay.is-open .mobile-social,.mobile-nav-overlay.is-open .theme-toggle-mobile{transform:translateY(0)}.mobile-nav-overlay.is-visible:not(.is-open) .theme-toggle-mobile,.mobile-nav-overlay.is-visible:not(.is-open) .mobile-social{transition-delay:0s}.mobile-nav-overlay.is-visible:not(.is-open) .mobile-social:nth-child(2){transition-delay:45ms}.mobile-nav-overlay.is-visible:not(.is-open) .mobile-social:nth-child(3){transition-delay:90ms}.mobile-nav-overlay.is-visible:not(.is-open) .mobile-nav-link{transition-delay:.16s}.mobile-nav-overlay.is-visible:not(.is-open) .mobile-nav-link:nth-child(2){transition-delay:.11s}.mobile-nav-overlay.is-visible:not(.is-open) .mobile-nav-link.active{opacity:0}.mobile-nav-overlay.is-visible:not(.is-open) .mobile-nav-backdrop{transition-delay:.34s}body.mobile-nav-open .nav-mobile-trigger,body.mobile-nav-open .wordmark{z-index:140;color:var(--mobile-menu-text)}.mobile-nav-overlay.is-open .mobile-nav-link.active{opacity:1}.mobile-nav-overlay.is-open .mobile-nav-link:hover,.mobile-nav-overlay.is-open .mobile-nav-link:focus-visible,.mobile-nav-overlay.is-open .mobile-social:hover,.mobile-nav-overlay.is-open .mobile-social:focus-visible{color:var(--nav-text);opacity:1}body.mobile-nav-open{touch-action:none;overflow:hidden}:root[data-theme=light] .section-label,:root[data-theme=light] .about-row-kicker,:root[data-theme=light] .interest-meta,:root[data-theme=light] .work-meta,:root[data-theme=light] .stat-label,:root[data-theme=light] .site-footer{color:rgba(var(--text-rgb), .68)}:root[data-theme=light] .project-description{color:rgba(var(--text-rgb), .76)}:root[data-theme=light] .project-url{color:rgba(var(--text-rgb), .58)}:root[data-theme=light] .intro,:root[data-theme=light] .interest-description,:root[data-theme=light] .footer-note{color:rgba(var(--text-rgb), .72)}main{z-index:2;flex:1;padding-top:clamp(78px,7vw,96px);position:relative}.hero{padding:clamp(42px,7vw,86px) 0 clamp(26px,5vw,56px)}.hero.compact{text-align:center;padding:clamp(22px,4vw,42px) 0 14px}.hero.compact .section-label{margin-left:auto;margin-right:auto}.section-label{color:rgba(var(--text-rgb), .48);letter-spacing:.18em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.74rem;font-weight:700;line-height:1}.kicker{color:rgba(var(--success-rgb), .68);letter-spacing:.18em;text-transform:uppercase;margin:0 0 20px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem}h1,p{margin-top:0}h1{max-width:940px;color:var(--text-strong);letter-spacing:-.055em;margin-bottom:0;font-size:clamp(1.8rem,4.8vw,3.8rem);font-weight:760;line-height:.95}.intro{max-width:440px;color:rgba(var(--text-rgb), .58);margin:0;font-size:clamp(1rem,1.8vw,1.22rem);line-height:1.7}.project-row{position:relative}.project-row:before{content:"";transform-origin:0;background:rgba(var(--accent-glow-rgb), .14);transition:transform .22s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0;transform:scaleX(0)}.project-row.is-previewing:before{transform:scaleX(1)}.project-row.is-previewing .project-link{min-height:276px}.project-row.is-previewing .project-main{align-self:start}.project-link{z-index:1;align-items:stretch;gap:clamp(18px,4vw,52px);min-height:142px;padding:30px clamp(24px,3vw,36px) 0;transition:min-height .26s cubic-bezier(.2,.8,.2,1);position:relative}#about.work-list{max-width:920px}.project-icon{color:currentColor;opacity:1;flex:none;justify-content:center;align-items:center;width:clamp(24px,2.65vw,30px);height:clamp(24px,2.65vw,30px);display:inline-flex}.project-icon svg{color:currentColor;width:100%;height:100%;display:block}.project-main{flex:1;align-self:center;gap:10px;min-width:0;padding-bottom:30px;display:grid}.project-name{color:var(--text-strong);letter-spacing:-.08em;align-items:center;gap:clamp(10px,1.6vw,16px);font-size:clamp(2.1rem,5vw,4.2rem);font-weight:740;line-height:.88;transition:color .18s,transform .18s;display:flex}.project-title-text{min-width:0}.project-description,.project-url{transition:color .18s,transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s}.project-description{max-width:560px;color:rgba(var(--text-rgb), .68);overflow-wrap:anywhere;word-break:break-word;font-size:clamp(.98rem,1.8vw,1.16rem);line-height:1.55}.project-description,.project-url{width:100%;max-width:100%;display:block}.project-action{--project-preview-inset:clamp(42px, 4vw, 64px);flex:0 0 min(40vw,490px);align-self:stretch;place-items:stretch end;width:min(40vw,490px);min-height:0;display:grid;position:relative;overflow:visible}.project-url{color:rgba(var(--text-rgb), .46);letter-spacing:.02em;text-transform:lowercase;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem}.project-preview{top:0;right:var(--project-preview-inset);width:min(calc(100% - var(--project-preview-inset)), 450px);border:1px solid rgba(var(--bg-rgb), .34);background:rgba(var(--bg-rgb), .16);opacity:0;border-radius:12px 12px 0 0;grid-area:1/1;margin-right:0;transition:opacity .22s 40ms,transform .26s cubic-bezier(.2,.8,.2,1) 40ms;position:absolute;bottom:0;overflow:hidden;transform:translate(-28px)scale(.98)}.project-preview img{object-fit:cover;object-position:center top;width:100%;height:100%;display:block}.project-row.is-previewing .project-name{transform:translate(10px)}.project-row.is-previewing .project-preview{opacity:1;transform:translate(0)scale(1)}@media (hover:hover) and (pointer:fine) and (width>=761px){.project-row:hover:before,.project-row:focus-within:before{transform:scaleX(1)}.project-row:hover .project-link,.project-row:focus-within .project-link{min-height:276px}.project-row:hover .project-main,.project-row:focus-within .project-main{align-self:start}.project-row:hover .project-name,.project-row:focus-within .project-name{transform:translate(10px)}.project-row:hover .project-preview,.project-row:focus-within .project-preview{opacity:1;transform:translate(0)scale(1)}}.project-external{display:none}.about-name{color:var(--text-strong);font-family:var(--font-about);letter-spacing:-.025em;font-size:clamp(1.02rem,2.15vw,1.38rem);font-weight:500;line-height:1.05}.about-row .project-description{color:rgba(var(--text-rgb), .7);font-family:var(--font-about);letter-spacing:0;font-size:clamp(.94rem,1.5vw,1.04rem);font-weight:400;line-height:1.58}.about-row .project-link{gap:clamp(18px,4vw,52px);min-height:0;padding:18px 16px;transition:background-color .16s}.about-row .project-main{padding-bottom:0}.about-row:hover:before,.about-row:focus-within:before{transform:scaleX(0)}.about-row:hover .project-link,.about-row:focus-within .project-link,.about-row.is-detail-active .project-link{background:rgba(var(--accent-glow-rgb), .08);min-height:0}.about-interests-row:hover .project-link,.about-interests-row:focus-within .project-link,.about-interests-row.is-detail-active .project-link{background:0 0}@media (hover:none),(pointer:coarse){.about-row:hover .project-link,.about-row:focus-within .project-link{background:0 0}.about-row.is-detail-active .project-link{background:rgba(var(--accent-glow-rgb), .08)}.about-portrait-row.is-detail-active .project-link,.about-interests-row.is-detail-active .project-link{background:0 0}}.about-row:hover .project-main,.about-row:focus-within .project-main{align-self:stretch}.about-row.is-previewing .project-link{min-height:0}.about-portrait-row:hover:before,.about-portrait-row:focus-within:before{transform:scaleX(0)}.about-portrait-row:hover .project-link,.about-portrait-row:focus-within .project-link,.about-portrait-row.is-detail-active .project-link{background:0 0}.about-portrait-row .project-link{justify-content:flex-start;align-items:center;gap:clamp(18px,3vw,36px);display:flex}.about-portrait-link{cursor:pointer}.about-portrait-row .portrait-thumb{border:1px solid rgba(var(--accent-glow-rgb), .46);cursor:pointer;background:rgba(var(--accent-glow-rgb), .08);border-radius:3px;flex:none;width:56px;height:70px;padding:2px;transition:border-color .16s,transform .16s;display:block;overflow:hidden}.about-portrait-row .portrait-thumb:hover{border-color:rgba(var(--text-strong-rgb), .78);transform:translateY(-1px)}.about-portrait-row .project-link,.about-portrait-row .project-main{cursor:default}.about-portrait-row .portrait-thumb img{object-fit:cover;object-position:50% 48%;filter:contrast(1.18);width:100%;height:100%;image-rendering:pixelated;display:block}.about-tooltip{z-index:50;background:rgba(var(--bg-rgb), .98);border:1px solid rgba(var(--accent-glow-rgb), .42);opacity:0;pointer-events:auto;box-sizing:border-box;width:min(90vw,420px);max-width:420px;transition:opacity .18s,transform .18s;display:none;position:fixed;overflow:hidden;transform:translateY(4px)}.about-tooltip.is-visible{opacity:1;display:block;transform:translateY(0)}.about-tooltip p{color:rgba(var(--text-rgb), .78);overflow-wrap:anywhere;white-space:pre-line;margin:0;font-size:.88rem;line-height:1.55}.about-tooltip.is-action{width:auto;min-width:92px}.about-tooltip.is-action .detail-window-bar{display:none}.about-tooltip.is-action .detail-window-body{padding:10px 12px}.about-tooltip.is-action p{color:rgba(var(--text-strong-rgb), .88);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.about-tooltip.is-action p:after{content:"";border-top:1.5px solid;border-right:1.5px solid;width:7px;height:7px;display:block;transform:rotate(45deg)}.about-interests-row .project-link{padding:18px 16px 14px}.about-interests-row .interests-grid{margin:0 16px}.interests-grid{background:0 0;border:0;grid-template-columns:1fr 1fr;gap:8px;display:grid}.interest-cell{background:var(--interest-bg);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #0000;border-radius:8px;outline:none;justify-content:space-between;align-items:center;gap:18px;padding:18px 16px;transition:background .18s,border-color .18s,color .18s;display:flex}.interest-cell:hover,.interest-cell:focus-visible{border-color:var(--interest-border);background:var(--interest-hover)}.interest-chevron{width:18px;height:18px;color:rgba(var(--text-rgb), .52);flex:none;transition:color .16s,transform .16s}.interest-cell:hover .interest-chevron,.interest-cell:focus-visible .interest-chevron{color:var(--text-strong);transform:translate(2px)}.interest-label{color:var(--text-strong);font-family:var(--font-about);letter-spacing:-.02em;margin-bottom:5px;font-size:clamp(.98rem,1.75vw,1.18rem);font-weight:500;line-height:1.08;display:block}.interest-value{color:rgba(var(--text-rgb), .56);font-family:var(--font-about);letter-spacing:0;font-size:clamp(.88rem,1.35vw,.96rem);line-height:1.48;display:block}.interest-overlay{z-index:300;pointer-events:none;display:none;position:fixed;inset:0}.interest-overlay.is-visible{display:block}.interest-overlay-backdrop{background:var(--bg);opacity:0;transition:opacity .24s;position:absolute;inset:0}.interest-overlay.is-open .interest-overlay-backdrop{opacity:1;pointer-events:auto}.interest-overlay-panel{z-index:1;box-sizing:border-box;pointer-events:none;align-items:center;width:min(820px,100% - 40px);min-height:100svh;max-height:100svh;margin:0 auto;padding:clamp(82px,12vh,128px) 0 clamp(42px,8vh,72px);display:grid;position:relative;overflow-y:auto}.interest-overlay.is-open .interest-overlay-panel{pointer-events:auto}.interest-overlay-close{z-index:320;width:34px;height:34px;color:var(--text-strong);cursor:pointer;opacity:0;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;outline:none;place-items:center;padding:0;transition:opacity .24s,transform .24s,color .18s;display:grid;position:fixed;top:clamp(72px,10vh,104px);right:max(24px,50vw - 410px);transform:translateY(12px)}.interest-overlay-close span{opacity:1;transform-origin:50%;background:currentColor;border-radius:999px;grid-area:1/1;width:20px;height:1.6px;display:block}.interest-overlay-close span:first-child{transform:rotate(45deg)}.interest-overlay-close span:last-child{transform:rotate(-45deg)}.interest-overlay-close:hover,.interest-overlay-close:focus-visible{color:var(--text-strong);background:0 0}.interest-detail{opacity:0;flex-direction:column;min-height:0;transition:opacity .36s cubic-bezier(.2,.8,.2,1),transform .36s cubic-bezier(.2,.8,.2,1);display:flex;transform:translateY(26px)}.interest-detail[hidden]{display:none}.interest-overlay.is-open .interest-detail:not([hidden]),.interest-overlay.is-open .interest-overlay-close{opacity:1;transition-delay:.18s;transform:translateY(0)}.interest-detail-kicker{color:rgba(var(--accent-glow-rgb), .82);letter-spacing:.18em;text-transform:uppercase;margin:0 0 18px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;font-weight:700;line-height:1}.interest-detail-title{max-width:760px;color:var(--text-strong);font-family:var(--font-about);letter-spacing:-.04em;margin:0;font-size:clamp(2.25rem,5.9vw,4.65rem);font-weight:400;line-height:.98}.interest-detail-topics{max-width:660px;color:rgba(var(--text-rgb), .56);font-family:var(--font-about);margin:22px 0 0;font-size:clamp(.92rem,1.35vw,1rem);line-height:1.58}.interest-detail-copy{max-width:680px;color:rgba(var(--text-rgb), .78);font-family:var(--font-about);letter-spacing:0;gap:18px;margin-top:clamp(34px,6vw,58px);font-size:clamp(1rem,1.55vw,1.16rem);font-weight:400;line-height:1.78;display:grid}.interest-detail-copy p{margin:0}body.interest-overlay-open{overflow:hidden}body.interest-overlay-open .site-header,body.interest-overlay-open .site-header-bg{visibility:hidden;opacity:0;pointer-events:none}@media (width<=760px){.about-tooltip{position:absolute}.interests-grid{grid-template-columns:1fr}.about-row .project-link,.about-row.is-previewing .project-link{min-height:0;padding:14px 16px}.about-row .project-main,.about-row.is-previewing .project-main{margin-bottom:0}.about-portrait-row .project-link{padding:14px 16px}.about-portrait-row .portrait-thumb{width:62px;height:78px}.about-interests-row .interests-grid{margin:0 16px}.about-interests-row .interest-cell{padding:14px 16px}.interest-overlay-panel{align-items:stretch;width:100%;height:100svh;max-height:100svh;padding:86px 22px 0;overflow:hidden}.interest-overlay-close{top:calc(env(safe-area-inset-top,0px) + 16px);z-index:320;right:16px}.interest-overlay-close:hover,.interest-overlay-close:focus-visible{background:0 0}.interest-detail:not([hidden]){height:100%}.interest-detail-kicker,.interest-detail-title,.interest-detail-topics{flex:none}.interest-detail-title{font-size:clamp(2.35rem,13.5vw,4.1rem)}.interest-detail-copy{box-sizing:border-box;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:0 6px 42px 0;font-size:1rem;line-height:1.65;overflow-y:auto}}.about-page{grid-template-columns:minmax(190px,280px) minmax(0,620px);align-items:center;gap:clamp(34px,8vw,108px);padding:clamp(46px,8vw,96px) 0 clamp(56px,8vw,104px);display:grid}.identity{color:var(--text-strong);letter-spacing:-.065em;margin:0 0 clamp(22px,4vw,38px);font-size:clamp(1.6rem,4.4vw,3.6rem);font-weight:760;line-height:.95}.about-text{max-width:620px;color:rgba(var(--text-rgb), .68);gap:18px;font-size:clamp(1.04rem,1.7vw,1.2rem);line-height:1.72;display:grid}.about-text p{margin-bottom:0}.muted-line{color:rgba(var(--accent-glow-rgb), .74);letter-spacing:.06em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.86rem}.portrait-frame{border:1px solid rgba(var(--text-rgb), .18);background:rgba(var(--text-rgb), .035);max-width:280px;margin:0;padding:8px;position:relative}.portrait-frame:before{content:"";pointer-events:none;background:linear-gradient(135deg, rgba(var(--accent-glow-rgb), .18), transparent 32%, rgba(var(--accent-glow-rgb), .22));mix-blend-mode:screen;position:absolute;inset:-1px}.portrait-frame img{aspect-ratio:4/5;object-fit:cover;object-position:50% 48%;filter:contrast(1.15);width:100%;image-rendering:pixelated;display:block}.about-db{grid-template-columns:minmax(150px,220px) minmax(0,760px);align-items:start;gap:clamp(28px,7vw,84px);padding:clamp(44px,8vw,92px) 0 clamp(56px,8vw,104px);display:grid}.compact-portrait{max-width:220px}.db-panel{border-top:1px solid rgba(var(--text-rgb), .2)}.db-topline{border-bottom:1px solid rgba(var(--text-rgb), .12);color:rgba(var(--accent-glow-rgb), .78);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;gap:20px;padding:12px 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;display:flex}.kv-grid{margin:0}.kv-row{border-bottom:1px solid rgba(var(--text-rgb), .12);grid-template-columns:minmax(130px,.38fr) 1fr;gap:24px;padding:22px 0;display:grid}.kv-row dt{color:rgba(var(--text-rgb), .42);letter-spacing:.11em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.76rem}.kv-row dd{color:rgba(var(--text-strong-rgb), .88);letter-spacing:-.025em;margin:0;font-size:clamp(1.05rem,2vw,1.42rem)}.database-shell{padding:clamp(44px,8vw,92px) 0 clamp(56px,8vw,104px)}.database-window{border:1px solid rgba(var(--text-rgb), .14);background:rgba(var(--bg-rgb), .72);overflow:hidden}.database-toolbar{border-bottom:1px solid rgba(var(--text-rgb), .12);background:rgba(var(--text-rgb), .035);min-height:46px;color:rgba(var(--text-rgb), .48);grid-template-columns:90px 1fr auto;align-items:center;gap:18px;padding:0 16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.76rem;display:grid}.window-controls{gap:8px;display:flex}.window-controls span{border:1px solid rgba(var(--accent-glow-rgb), .64);width:9px;height:9px}.database-path{color:rgba(var(--text-strong-rgb), .74)}.database-state{color:rgba(var(--accent-glow-rgb), .8)}.database-body{grid-template-columns:190px 1fr;min-height:470px;display:grid}.database-sidebar{border-right:1px solid rgba(var(--text-rgb), .1);background:rgba(var(--nav-text-rgb), .018);align-content:start;gap:6px;padding:18px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;display:grid}.sidebar-label{color:rgba(var(--text-rgb), .32);letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;font-size:.68rem}.sidebar-row{color:rgba(var(--text-rgb), .54);border:1px solid #0000;padding:10px 12px;font-size:.82rem}.sidebar-row.active{border-color:rgba(var(--accent-glow-rgb), .36);background:rgba(var(--accent-glow-rgb), .1);color:rgba(var(--text-strong-rgb), .9)}.sidebar-row.muted{color:rgba(var(--text-rgb), .28)}.database-main{padding:18px}.query-line{border:1px solid rgba(var(--text-rgb), .1);background:rgba(var(--bg-rgb), .2);color:rgba(var(--text-rgb), .48);flex-wrap:wrap;gap:8px;margin-bottom:18px;padding:13px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;display:flex}.query-line strong{color:rgba(var(--accent-glow-rgb), .9);font-weight:500}.db-table{border:1px solid rgba(var(--text-rgb), .12);overflow-x:auto}.db-table-head,.db-table-row{grid-template-columns:.78fr .52fr minmax(340px,1.8fr) .72fr;min-width:820px;display:grid}.db-table-head>span,.db-table-row>span{border-right:1px solid rgba(var(--text-rgb), .08);border-bottom:1px solid rgba(var(--text-rgb), .08);padding:13px 14px}.db-table-head>span{background:rgba(var(--text-rgb), .04);color:rgba(var(--text-rgb), .4);letter-spacing:.14em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem}.db-table-row>span{color:rgba(var(--text-strong-rgb), .78);font-size:.92rem;transition:background .16s,border-color .16s,color .16s}.db-table-row{cursor:pointer;outline:none}.db-table-row:hover>span,.db-table-row:focus-visible>span,.db-table-row:focus-within>span{background:rgba(var(--accent-glow-rgb), .075);border-bottom-color:rgba(var(--accent-glow-rgb), .26)}.db-table-row:hover>span:first-child,.db-table-row:focus-visible>span:first-child,.db-table-row:focus-within>span:first-child{color:var(--accent-soft)}.db-table-row>span:first-child,.db-table-row>span:nth-child(2),.db-table-row>span:nth-child(4){color:rgba(var(--text-rgb), .52);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem}.db-table-row>span:nth-child(4){color:rgba(var(--accent-glow-rgb), .82)}.database-window-slim{max-width:980px;margin:0 auto}.database-main-slim{padding:clamp(14px,2.4vw,22px)}.query-line-slim{justify-content:flex-start;gap:8px}.db-table-slim .db-table-head,.db-table-slim .db-table-row{grid-template-columns:minmax(120px,.42fr) minmax(0,1.58fr);min-width:0}.db-table-slim .db-table-row>span:first-child,.db-table-slim .db-table-row:hover>span:first-child,.db-table-slim .db-table-row:focus-visible>span:first-child,.db-table-slim .db-table-row:focus-within>span:first-child{color:var(--accent-soft)}.db-table-slim .db-table-row>.value-cell{min-height:52px;color:rgba(var(--text-strong-rgb), .8);letter-spacing:-.015em;grid-template-columns:minmax(0,1fr) 28px;justify-content:stretch;align-items:center;gap:14px;font-size:clamp(.9rem,1.15vw,1rem);display:grid}.db-table-slim .db-table-row>.value-cell:has(.portrait-thumb):not(:has(.detail-trigger)){grid-template-columns:auto;justify-content:start}.cell-value{min-width:0}.portrait-thumb{border:1px solid rgba(var(--accent-glow-rgb), .46);background:rgba(var(--accent-glow-rgb), .08);width:38px;height:38px;color:inherit;cursor:pointer;flex:none;padding:3px;transition:border-color .16s,transform .16s;display:block}.portrait-thumb:hover{border-color:rgba(var(--text-strong-rgb), .78);transform:translateY(-1px)}.portrait-thumb img{object-fit:cover;object-position:50% 48%;filter:contrast(1.18);width:100%;height:100%;image-rendering:pixelated;display:block}.cell-note{color:rgba(var(--text-rgb), .38);letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem}.detail-trigger{border:1px solid rgba(var(--text-rgb), .13);background:rgba(var(--text-rgb), .025);width:28px;height:28px;color:rgba(var(--text-rgb), .48);cursor:pointer;text-align:center;flex:none;place-items:center;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:0;line-height:1;transition:border-color .16s,color .16s,background .16s,transform .16s;display:grid}.detail-trigger:before{content:"↗";font-size:1.08rem;line-height:1;display:block}.detail-trigger:hover,.db-table-row:hover .detail-trigger,.db-table-row:focus-visible .detail-trigger,.db-table-row:focus-within .detail-trigger{border-color:rgba(var(--accent-glow-rgb), .72);background:rgba(var(--accent-glow-rgb), .12);color:var(--text-strong);transform:translateY(-1px)}.mobile-row-detail{display:none}.about-inline{padding:0}.about-inline .database-window-slim{background:0 0;border:0;border-radius:0;max-width:760px;margin:0}.about-inline .database-toolbar,.about-inline .query-line-slim,.about-inline .db-table-head{display:none}.about-inline .database-main-slim{padding:0}.about-inline .db-table-slim{border:0;overflow-x:visible}.about-inline .db-table-slim .db-table-row{border-bottom:0;min-width:0;margin:0;display:block;position:relative}.about-inline .db-table-slim .db-table-row>span{border:0;padding:12px 0;display:block}.about-inline .db-table-slim .db-table-row>span:first-child{color:var(--accent-soft);letter-spacing:.1em;text-transform:uppercase;padding-bottom:0;padding-right:42px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem}.about-inline .db-table-slim .db-table-row>.value-cell{min-height:0;padding-top:0;padding-right:42px;display:block}.about-inline .db-table-slim .db-table-row:not(:has(.detail-trigger))>span:first-child,.about-inline .db-table-slim .db-table-row:not(:has(.detail-trigger))>.value-cell{padding-right:0}.about-inline .db-table-slim .detail-trigger{z-index:2;place-self:start end;position:absolute;top:12px;right:0}.about-inline .db-table-slim .detail-trigger:before{content:"›";font-size:1.25rem;line-height:1}.about-inline .db-table-slim .db-table-row.is-expanded .detail-trigger{border-color:rgba(var(--accent-glow-rgb), .84);background:rgba(var(--accent-glow-rgb), .18);color:var(--text-strong);transform:none}.about-inline .db-table-slim .db-table-row.is-expanded .detail-trigger:before{content:"⌄";font-size:1.08rem;transform:translateY(-1px)}.about-inline .mobile-row-detail{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .22s cubic-bezier(.2,.8,.2,1),opacity .18s;display:grid;overflow:hidden}.about-inline .mobile-row-detail p{min-height:0;color:rgba(var(--text-rgb), .68);margin:0;padding:0 42px 0 0;font-size:.9rem;line-height:1.55;transition:padding .22s cubic-bezier(.2,.8,.2,1)}.about-inline .db-table-slim .db-table-row.is-expanded .mobile-row-detail{opacity:1;grid-template-rows:1fr}.about-inline .db-table-slim .db-table-row.is-expanded .mobile-row-detail p{padding:7px 42px 16px 0}.detail-window{z-index:30;border:1px solid rgba(var(--accent-glow-rgb), .42);background:rgba(var(--bg-rgb), .98);width:min(420px,100vw - 32px);display:none;position:fixed;top:50%;left:50%}.detail-window.is-open{display:block}.detail-window-portrait{width:min(258px,100vw - 32px);min-width:0}.detail-window-bar{border-bottom:1px solid rgba(var(--text-rgb), .12);background:rgba(var(--text-rgb), .04);min-height:38px;color:rgba(var(--accent-glow-rgb), .84);cursor:grab;letter-spacing:.12em;text-transform:uppercase;user-select:none;justify-content:space-between;align-items:center;gap:16px;padding:0 10px 0 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;display:flex}.detail-window-bar:active{cursor:grabbing}.detail-close{border:1px solid rgba(var(--text-rgb), .16);width:22px;height:22px;color:rgba(var(--text-rgb), .56);cursor:pointer;background:0 0;place-items:center;padding:0;font-size:1rem;line-height:1;display:grid}.detail-close:hover{border-color:rgba(var(--text-strong-rgb), .5);color:var(--text-strong)}.detail-window-body{padding:18px}.detail-window-body p{color:rgba(var(--text-rgb), .72);margin:0;font-size:.98rem;line-height:1.62}.detail-window-body-portrait img{aspect-ratio:4/5;object-fit:cover;object-position:50% 48%;filter:contrast(1.18);width:min(220px,100%);image-rendering:pixelated;margin-bottom:14px;display:block}.detail-window-body-portrait canvas{aspect-ratio:4/5;width:min(220px,100%);image-rendering:pixelated;margin-bottom:14px;display:block}.ui-popover{width:min(100%,520px);position:relative}.ui-popover summary{cursor:pointer;border:1px solid rgba(var(--accent-glow-rgb), .36);background:rgba(var(--accent-glow-rgb), .08);width:fit-content;color:rgba(var(--text-strong-rgb), .86);letter-spacing:.08em;text-transform:uppercase;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.76rem;list-style:none}.ui-popover summary::-webkit-details-marker{display:none}.ui-popover[open] summary{border-color:rgba(var(--text-strong-rgb), .58)}.popover-panel{border:1px solid rgba(var(--text-rgb), .14);background:rgba(var(--bg-rgb), .92);margin-top:12px;padding:16px}.popover-panel p{color:rgba(var(--text-rgb), .7);margin:0;font-size:.96rem;line-height:1.6}.popover-panel p+p{margin-top:10px}.image-lightbox{z-index:20;place-items:center;padding:24px;display:none;position:fixed;inset:0}.image-lightbox:target{display:grid}.lightbox-backdrop{background:rgba(var(--bg-rgb), .78);backdrop-filter:blur(8px);position:absolute;inset:0}.lightbox-panel{z-index:1;border:1px solid rgba(var(--accent-glow-rgb), .36);background:rgba(var(--bg-rgb), .96);width:min(360px,92vw);position:relative}.lightbox-bar{border-bottom:1px solid rgba(var(--text-rgb), .12);color:rgba(var(--accent-glow-rgb), .78);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;gap:18px;padding:11px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;display:flex}.lightbox-bar a{color:rgba(var(--text-rgb), .58)}.lightbox-bar a:hover{color:var(--text-strong)}.lightbox-panel img{aspect-ratio:4/5;object-fit:cover;object-position:50% 48%;filter:contrast(1.18);width:100%;image-rendering:pixelated;display:block}.about-terminal{grid-template-columns:minmax(0,1fr) minmax(150px,240px);align-items:start;gap:clamp(30px,7vw,88px);padding:clamp(44px,8vw,92px) 0 clamp(56px,8vw,104px);display:grid}.terminal-panel{border:1px solid rgba(var(--text-rgb), .14);background:rgba(var(--bg-rgb), .3)}.terminal-bar{border-bottom:1px solid rgba(var(--text-rgb), .12);color:rgba(var(--accent-glow-rgb), .78);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;gap:18px;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;display:flex}.terminal-lines p{border-bottom:1px solid rgba(var(--text-rgb), .1);color:rgba(var(--text-strong-rgb), .82);letter-spacing:-.035em;grid-template-columns:48px 1fr;gap:18px;margin:0;padding:22px 16px;font-size:clamp(1.05rem,2.2vw,1.55rem);line-height:1.42;display:grid}.terminal-lines p:last-child{border-bottom:0}.terminal-lines span{color:rgba(var(--text-rgb), .34);letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem}.terminal-portrait{max-width:240px}.about-map{grid-template-columns:minmax(150px,230px) minmax(0,760px);align-items:start;gap:clamp(30px,7vw,88px);padding:clamp(44px,8vw,92px) 0 clamp(56px,8vw,104px);display:grid}.map-portrait{max-width:230px}.map-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.map-node{border:1px solid rgba(var(--text-rgb), .14);background:rgba(var(--text-rgb), .03);min-height:132px;padding:18px}.map-node.primary{background:rgba(var(--accent-glow-rgb), .07)}.map-node.wide{grid-column:span 2}.map-node.dim{border-color:rgba(var(--accent-glow-rgb), .24)}.map-node span{color:rgba(var(--text-rgb), .38);letter-spacing:.12em;text-transform:uppercase;margin-bottom:30px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;display:block}.map-node strong{color:rgba(var(--text-strong-rgb), .88);letter-spacing:-.035em;font-size:clamp(1.04rem,2.1vw,1.48rem);font-weight:500;line-height:1.35}.site-footer{z-index:2;color:rgba(var(--text-rgb), .42);letter-spacing:-.01em;flex-direction:column;justify-content:center;gap:0;margin-top:auto;padding:92px 0 30px;font-size:.76rem;position:relative}.site-footer:before{content:"";background:rgba(var(--text-rgb), .18);width:56px;height:1px;margin-bottom:28px;display:block}.footer-note,.footer-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.footer-links{gap:10px}.footer-links a{border:1px solid rgba(var(--text-rgb), .13);width:44px;height:44px;color:rgba(var(--text-rgb), .62);place-items:center;transition:border-color .16s,color .16s,transform .16s;display:grid}.footer-links a:hover{border-color:rgba(var(--accent-glow-rgb), .72);color:var(--text-strong);transform:translateY(-1px)}.footer-links svg{fill:none;stroke:currentColor;stroke-width:1.55px;stroke-linecap:square;stroke-linejoin:miter;width:22px;height:22px}.footer-links svg.brand-icon{fill:currentColor;stroke:none}@media (width<=760px){.page-shell{width:100%}.site-header{width:100%;padding:18px 0}.site-header-bg{height:70px}.site-header-inner{grid-template-columns:1fr auto;gap:14px;width:calc(100% - 32px)}.header-nav,.header-socials{display:none}.wordmark{justify-self:start}.nav-mobile-trigger{display:grid}h1{font-size:clamp(2rem,11vw,3.8rem)}.project-link{flex-direction:column;align-items:flex-start;gap:0;width:100%;min-height:0;padding:22px 16px 8px}.project-row.is-previewing .project-link{min-height:0;padding-bottom:0}.about-row .project-link,.about-row.is-previewing .project-link{min-height:0}.project-main,.project-row.is-previewing .project-main{text-align:left;align-self:stretch;width:100%;max-width:calc(100vw - 32px);margin-bottom:14px;padding-bottom:0}.project-description,.project-url{max-width:calc(100vw - 32px)}.project-icon{width:23px;height:23px}.project-external{z-index:2;border:1px solid rgba(var(--text-rgb), .13);width:36px;height:36px;color:rgba(var(--text-rgb), .62);place-items:center;transition:border-color .16s,color .16s,transform .16s;display:none;position:absolute;top:22px;right:16px}.project-external svg{width:18px;height:18px}.project-row.is-previewing .project-external{display:grid}.project-external:hover{border-color:rgba(var(--accent-glow-rgb), .72);color:var(--text-strong);transform:translateY(-1px)}.project-action{--project-preview-inset:0px;flex-basis:auto;place-items:stretch start;width:100%;min-height:0;max-height:0;font-size:0;transition:max-height .3s cubic-bezier(.2,.8,.2,1);overflow:hidden}.project-row.is-previewing .project-action{max-height:268px}.project-preview{aspect-ratio:16/10.6;width:100%;height:auto;margin-right:0;position:relative;inset:auto}.project-url{text-align:left}.project-row:hover .project-name,.project-row:focus-within .project-name,.project-row.is-previewing .project-name{transform:none}.hero.compact{padding-left:16px;padding-right:16px}.about-page{grid-template-columns:1fr;align-items:start}.about-db,.database-body,.about-terminal,.about-map,.about-signal,.map-stack{grid-template-columns:1fr}.database-shell,.about-db{padding-left:16px;padding-right:16px}.database-toolbar{grid-template-columns:1fr;align-items:start;gap:8px;padding:14px}.database-sidebar{border-right:0;border-bottom:1px solid rgba(var(--text-rgb), .1)}.kv-row{grid-template-columns:1fr;gap:8px}.db-table-slim .db-table-head,.db-table-slim .db-table-row{grid-template-columns:minmax(110px,.38fr) minmax(360px,1.62fr);min-width:560px}.db-table-slim .db-table-row>.value-cell{flex-direction:row;align-items:center}.portrait-frame{max-width:260px}.site-footer{flex-direction:column;align-items:flex-start;padding-left:16px;padding-right:16px}.footer-links{order:-1}.footer-note{flex-direction:column-reverse;align-items:flex-start}.footer-note span+span:before{content:none}.database-shell:has(.database-window-slim){padding:0}.database-window-slim{background:0 0;border:0;border-radius:0;max-width:none;margin:0}.database-window-slim .database-toolbar{display:none}.database-main-slim{padding:0}.query-line-slim{display:none}.db-table-slim{border:0;overflow-x:visible}.db-table-slim .db-table-head{display:none}.db-table-slim .db-table-row{border-bottom:0;min-width:0;margin:0;display:block;position:relative}.db-table-slim .db-table-row>span{border:0;padding:12px 16px;display:block}.db-table-slim .db-table-row>span:first-child{color:var(--accent-soft);letter-spacing:.1em;text-transform:uppercase;padding-bottom:0;padding-right:58px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem}.db-table-slim .db-table-row>.value-cell{min-height:0;padding-top:0;padding-right:58px;display:block}.db-table-slim .db-table-row:not(:has(.detail-trigger))>span:first-child,.db-table-slim .db-table-row:not(:has(.detail-trigger))>.value-cell{padding-right:16px}.db-table-slim .detail-trigger{z-index:2;place-self:start end;position:absolute;top:12px;right:16px}.db-table-slim .detail-trigger:before{content:"›";font-size:1.25rem;line-height:1}.db-table-slim .db-table-row.is-expanded .detail-trigger{border-color:rgba(var(--accent-glow-rgb), .84);background:rgba(var(--accent-glow-rgb), .18);color:var(--text-strong);transform:none}.db-table-slim .db-table-row.is-expanded .detail-trigger:before{content:"⌄";font-size:1.08rem;transform:translateY(-1px)}.mobile-row-detail{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .22s cubic-bezier(.2,.8,.2,1),opacity .18s;display:grid;overflow:hidden}.mobile-row-detail p{min-height:0;color:rgba(var(--text-rgb), .68);margin:0;padding:0 58px 0 16px;font-size:.9rem;line-height:1.55;transition:padding .22s cubic-bezier(.2,.8,.2,1)}.db-table-slim .db-table-row.is-expanded .mobile-row-detail{opacity:1;grid-template-rows:1fr}.db-table-slim .db-table-row.is-expanded .mobile-row-detail p{padding:7px 58px 16px 16px}.about-inline .database-window-slim{max-width:none}.about-inline .db-table-slim .db-table-row>span{padding:12px 16px}.about-inline .db-table-slim .db-table-row>span:first-child{padding-bottom:0;padding-right:58px}.about-inline .db-table-slim .db-table-row>.value-cell{padding-top:0;padding-right:58px}.about-inline .db-table-slim .db-table-row:not(:has(.detail-trigger))>span:first-child,.about-inline .db-table-slim .db-table-row:not(:has(.detail-trigger))>.value-cell{padding-right:16px}.about-inline .db-table-slim .detail-trigger{right:16px}.about-inline .mobile-row-detail p{padding:0 58px 0 16px}.about-inline .db-table-slim .db-table-row.is-expanded .mobile-row-detail p{padding:7px 58px 16px 16px}}
