:root{--font-header:"Figtree", "Helvetica Neue", Arial, sans-serif;color-scheme:dark;color:#e7e3d8;font-synthesis:none;text-rendering:geometricprecision;background:#050507;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{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{user-select:none;background:repeating-linear-gradient(112deg,#ffffff0b 0 1px,#0000 1px 42px),repeating-linear-gradient(68deg,#ffffff07 0 1px,#0000 1px 68px),radial-gradient(circle at 74% 18%,#7354ff57,#0000 33rem),radial-gradient(circle at 16% 84%,#7354ff2e,#0000 28rem),#050507;min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:-1;background:linear-gradient(#0000 0%,#05050747 68%,#050507 100%);position:fixed;inset:0}.noise{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{z-index:120;pointer-events:none;-webkit-backdrop-filter:blur(18px);background:#0505072e;width:100%;padding:25px 0 18px;position:fixed;top:0;left:0;box-shadow:0 12px 30px #05050714}.site-header-inner{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}.wordmark,.header-nav,.project-link,.site-footer{align-items:center;display:flex}.wordmark{color:#fff;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}.header-nav{justify-self:start;gap:20px}.header-nav a,.mobile-nav-link{color:#fff;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:#fff;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:#fff;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}.social-icon-btn{color:#fff;opacity:.7;-webkit-tap-highlight-color:transparent;border-radius:999px;place-items:center;width:28px;height:28px;line-height:0;transition:opacity .18s,background-color .18s,transform .18s;display:inline-grid}.social-icon-btn:hover,.social-icon-btn:focus-visible{opacity:1}.social-icon-btn:active,.nav-mobile-trigger:active{background:#ffffff1f;transform:scale(.94)}.social-icon-btn .brand-icon{fill:currentColor;width:15px;height:15px;display:block}.social-icon-btn[aria-label=LinkedIn] .brand-icon{transform:translateY(-.5px)}.social-icon-btn[aria-label=Email] .brand-icon{width:17px;height:17px}.nav-mobile-trigger{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;justify-self:end;place-items:center;width:34px;height:34px;padding:0;transition:background-color .18s,transform .18s,opacity .18s;display:none}.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:110;pointer-events:none;display:none;position:fixed;inset:0}.mobile-nav-overlay.is-visible{display:block}.mobile-nav-backdrop{opacity:0;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#7e6df2;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;place-items:center;min-height:100svh;padding:88px 28px 40px;display:grid;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)}.mobile-social-row{justify-content:center;gap:12px;display:flex;position:absolute;bottom:44px;left:0;right:0}.mobile-social{opacity:0;width:38px;height:38px;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:19px;height:19px}.mobile-social[aria-label=Email] .brand-icon{width:21px;height:21px}.mobile-nav-overlay.is-open .mobile-nav-link,.mobile-nav-overlay.is-open .mobile-social{opacity:.62;pointer-events:auto;transition-delay:calc(.2s + (var(--order) * 55ms));transform:translateY(0)}.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 .site-header{box-shadow:none;background:#7e6df2}.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:#fff;opacity:1}body.mobile-nav-open{touch-action:none;overflow:hidden}main{flex:1;padding-top:clamp(78px,7vw,96px)}.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:#e7e3d87a;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:#9bffdcad;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{color:#f5f1e7;letter-spacing:-.055em;max-width:940px;margin-bottom:0;font-size:clamp(1.8rem,4.8vw,3.8rem);font-weight:760;line-height:.95}.intro{color:#e7e3d894;max-width:440px;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:#7354ff24;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{width:48px;margin-right:var(--project-preview-inset);opacity:.42;grid-area:1/1;justify-content:flex-end;place-self:center end;align-items:center;transition:opacity .2s,transform .26s cubic-bezier(.2,.8,.2,1);display:flex}.project-icon svg{color:#e7e3d8;width:22px;height:22px}.project-row.is-previewing .project-icon{opacity:0;transform:translate(72px)}.project-main{flex:1;align-self:center;gap:10px;min-width:0;padding-bottom:30px;display:grid}.project-name{color:#f5f1e7;letter-spacing:-.08em;font-size:clamp(2.1rem,5vw,4.2rem);font-weight:740;line-height:.88;transition:color .18s,transform .18s}.project-description,.project-url{color:#e7e3d88a;transition:color .18s,transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s}.project-description{overflow-wrap:anywhere;word-break:break-word;max-width:560px;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{letter-spacing:.02em;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);opacity:0;background:#05050729;border:1px solid #05050757;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);box-shadow:0 -10px 24px #05050729}.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-icon,.project-row:focus-within .project-icon{opacity:0;transform:translate(72px)}.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:#f5f1e7;letter-spacing:-.08em;font-size:clamp(1.1rem,2.5vw,1.6rem);font-weight:740;line-height:.88}.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{background:#7354ff14;min-height:0}.about-interests-row:hover .project-link,.about-interests-row:focus-within .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{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{cursor:pointer;background:#8f7dff14;border:1px solid #8f7dff75;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:#f5f1e7c7;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;opacity:0;pointer-events:auto;box-sizing:border-box;background:#050507fa;border:1px solid #8f7dff6b;width:min(90vw,420px);max-width:420px;transition:opacity .18s,transform .18s;display:none;position:fixed;overflow:hidden;transform:translateY(4px);box-shadow:0 12px 40px #0000007a}.about-tooltip.is-visible{opacity:1;display:block;transform:translateY(0)}.about-tooltip p{color:#e7e3d8c7;overflow-wrap:anywhere;margin:0;font-size:.88rem;line-height:1.55}.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{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#111116;border:0;border-radius:8px;outline:none;justify-content:space-between;align-items:center;gap:18px;padding:18px 16px;transition:background .18s,color .18s;display:flex}.interest-cell:hover,.interest-cell:focus-visible{background:#1b1824}.interest-chevron{color:#e7e3d885;flex:none;width:18px;height:18px;transition:color .16s,transform .16s}.interest-cell:hover .interest-chevron,.interest-cell:focus-visible .interest-chevron{color:#f5f1e7;transform:translate(2px)}.interest-label{color:#f5f1e7;letter-spacing:-.05em;margin-bottom:4px;font-size:clamp(1rem,2vw,1.3rem);font-weight:740;line-height:.95;display:block}.interest-value{color:#e7e3d88a;font-size:clamp(.88rem,1.5vw,1rem);line-height:1.45;display:block}.interest-overlay{z-index:120;pointer-events:none;display:none;position:fixed;inset:0}.interest-overlay.is-visible{display:block}.interest-overlay-backdrop{opacity:0;background:#050507f5;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:2;color:#fff;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;width:34px;height:34px;padding:0;transition:opacity .24s,transform .24s,background-color .18s;display:grid;position:fixed;top:22px;right:24px;transform:translateY(12px)}.interest-overlay-close span{opacity:.82;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{background:#ffffff14}.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:#8f7dffd1;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{color:#f5f1e7;letter-spacing:-.08em;max-width:760px;margin:0;font-size:clamp(2.7rem,7.6vw,5.9rem);font-weight:760;line-height:.88}.interest-detail-topics{color:#e7e3d885;max-width:660px;margin:22px 0 0;font-size:clamp(.92rem,1.4vw,1rem);line-height:1.55}.interest-detail-copy{color:#e7e3d8c2;gap:18px;max-width:680px;margin-top:clamp(34px,6vw,58px);font-size:clamp(1rem,1.7vw,1.22rem);line-height:1.72;display:grid}.interest-detail-copy p{margin:0}body.interest-overlay-open{overflow:hidden}@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:16px;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:#f5f1e7;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{color:#e7e3d8ad;gap:18px;max-width:620px;font-size:clamp(1.04rem,1.7vw,1.2rem);line-height:1.72;display:grid}.about-text p{margin-bottom:0}.muted-line{color:#8f7dffbd;letter-spacing:.06em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.86rem}.portrait-frame{background:#e7e3d809;border:1px solid #e7e3d82e;max-width:280px;margin:0;padding:8px;position:relative}.portrait-frame:before{content:"";pointer-events:none;mix-blend-mode:screen;background:linear-gradient(135deg,#8f7dff2e,#0000 32%,#7354ff38);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 #e7e3d833}.db-topline{color:#8f7dffc7;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #e7e3d81f;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 #e7e3d81f;grid-template-columns:minmax(130px,.38fr) 1fr;gap:24px;padding:22px 0;display:grid}.kv-row dt{color:#e7e3d86b;letter-spacing:.11em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.76rem}.kv-row dd{color:#f5f1e7e0;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{background:#050507b8;border:1px solid #e7e3d824;overflow:hidden;box-shadow:0 24px 90px #00000057,inset 0 1px #ffffff0a}.database-toolbar{color:#e7e3d87a;background:#e7e3d809;border-bottom:1px solid #e7e3d81f;grid-template-columns:90px 1fr auto;align-items:center;gap:18px;min-height:46px;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 #8f7dffa3;width:9px;height:9px}.database-path{color:#f5f1e7bd}.database-state{color:#8f7dffcc}.database-body{grid-template-columns:190px 1fr;min-height:470px;display:grid}.database-sidebar{background:#ffffff05;border-right:1px solid #e7e3d81a;align-content:start;gap:6px;padding:18px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;display:grid}.sidebar-label{color:#e7e3d852;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;font-size:.68rem}.sidebar-row{color:#e7e3d88a;border:1px solid #0000;padding:10px 12px;font-size:.82rem}.sidebar-row.active{color:#f5f1e7e6;background:#8f7dff1a;border-color:#8f7dff5c}.sidebar-row.muted{color:#e7e3d847}.database-main{padding:18px}.query-line{color:#e7e3d87a;background:#0003;border:1px solid #e7e3d81a;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:#8f7dffe6;font-weight:500}.db-table{border:1px solid #e7e3d81f;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-bottom:1px solid #e7e3d814;border-right:1px solid #e7e3d814;padding:13px 14px}.db-table-head>span{color:#e7e3d866;letter-spacing:.14em;text-transform:uppercase;background:#e7e3d80a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem}.db-table-row>span{color:#f5f1e7c7;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:#8f7dff13;border-bottom-color:#8f7dff42}.db-table-row:hover>span:first-child,.db-table-row:focus-visible>span:first-child,.db-table-row:focus-within>span:first-child{color:#d8d1ff}.db-table-row>span:first-child,.db-table-row>span:nth-child(2),.db-table-row>span:nth-child(4){color:#e7e3d885;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem}.db-table-row>span:nth-child(4){color:#8f7dffd1}.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{color:#b8aeff}.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:#d8d1ff}.db-table-slim .db-table-row>.value-cell{color:#f5f1e7cc;letter-spacing:-.015em;grid-template-columns:minmax(0,1fr) 28px;justify-content:stretch;align-items:center;gap:14px;min-height:52px;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{width:38px;height:38px;color:inherit;cursor:pointer;background:#8f7dff14;border:1px solid #8f7dff75;flex:none;padding:3px;transition:border-color .16s,transform .16s;display:block}.portrait-thumb:hover{border-color:#f5f1e7c7;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:#e7e3d861;letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem}.detail-trigger{color:#e7e3d87a;cursor:pointer;text-align:center;background:#e7e3d806;border:1px solid #e7e3d821;flex:none;place-items:center;width:28px;height:28px;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{color:#f5f1e7;background:#8f7dff1f;border-color:#8f7dffb8;transform:translateY(-1px)}.mobile-row-detail{display:none}.about-inline{padding:0}.about-inline .database-window-slim{max-width:760px;box-shadow:none;background:0 0;border:0;border-radius:0;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:#b8aeff;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{color:#f5f1e7;background:#8f7dff2e;border-color:#8f7dffd6;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{color:#e7e3d8ad;min-height:0;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;background:#050507fa;border:1px solid #8f7dff6b;width:min(420px,100vw - 32px);display:none;position:fixed;top:50%;left:50%;box-shadow:0 24px 70px #0000007a,inset 0 1px #ffffff0d}.detail-window.is-open{display:block}.detail-window-portrait{width:min(258px,100vw - 32px);min-width:0}.detail-window-bar{color:#8f7dffd6;cursor:grab;letter-spacing:.12em;text-transform:uppercase;user-select:none;background:#e7e3d80a;border-bottom:1px solid #e7e3d81f;justify-content:space-between;align-items:center;gap:16px;min-height:38px;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{color:#e7e3d88f;cursor:pointer;background:0 0;border:1px solid #e7e3d829;place-items:center;width:22px;height:22px;padding:0;font-size:1rem;line-height:1;display:grid}.detail-close:hover{color:#f5f1e7;border-color:#f5f1e780}.detail-window-body{padding:18px}.detail-window-body p{color:#e7e3d8b8;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;color:#f5f1e7db;letter-spacing:.08em;text-transform:uppercase;background:#8f7dff14;border:1px solid #8f7dff5c;width:fit-content;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:#f5f1e794}.popover-panel{background:#030305eb;border:1px solid #e7e3d824;margin-top:12px;padding:16px;box-shadow:0 20px 60px #00000059}.popover-panel p{color:#e7e3d8b3;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{backdrop-filter:blur(8px);background:#030305c7;position:absolute;inset:0}.lightbox-panel{z-index:1;background:#050507f5;border:1px solid #8f7dff5c;width:min(360px,92vw);position:relative;box-shadow:0 28px 90px #00000094}.lightbox-bar{color:#8f7dffc7;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #e7e3d81f;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:#e7e3d894}.lightbox-bar a:hover{color:#f5f1e7}.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{background:#0505074d;border:1px solid #e7e3d824}.terminal-bar{color:#8f7dffc7;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #e7e3d81f;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{color:#f5f1e7d1;letter-spacing:-.035em;border-bottom:1px solid #e7e3d81a;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:#e7e3d857;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{background:#e7e3d808;border:1px solid #e7e3d824;min-height:132px;padding:18px}.map-node.primary{background:#8f7dff12}.map-node.wide{grid-column:span 2}.map-node.dim{border-color:#8f7dff3d}.map-node span{color:#e7e3d861;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:#f5f1e7e0;letter-spacing:-.035em;font-size:clamp(1.04rem,2.1vw,1.48rem);font-weight:500;line-height:1.35}.site-footer{color:#e7e3d86b;letter-spacing:-.01em;justify-content:space-between;gap:28px;margin-top:auto;padding:86px 0 34px;font-size:.9rem}.footer-note,.footer-links{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.footer-links{gap:10px}.footer-links a{color:#e7e3d89e;border:1px solid #e7e3d821;place-items:center;width:44px;height:44px;transition:border-color .16s,color .16s,transform .16s;display:grid}.footer-links a:hover{color:#f5f1e7;border-color:#8f7dffb8;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-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;position:fixed;top:11px;right:16px}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{display:none}.project-external{z-index:2;color:#e7e3d89e;border:1px solid #e7e3d821;place-items:center;width:36px;height:36px;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{color:#f5f1e7;border-color:#8f7dffb8;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-bottom:1px solid #e7e3d81a;border-right:0}.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:#b8aeff;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{color:#f5f1e7;background:#8f7dff2e;border-color:#8f7dffd6;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{color:#e7e3d8ad;min-height:0;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}}
