:root{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}body{background:repeating-linear-gradient(112deg,#ffffff0b 0 1px,#0000 1px 58px),repeating-linear-gradient(68deg,#ffffff07 0 1px,#0000 1px 92px),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(1180px,100% - 40px);min-height:100vh;margin:0 auto;display:flex}.site-header{justify-content:space-between;align-items:center;gap:28px;padding:30px 0 18px;display:flex}.wordmark,nav,.project-link,.site-footer{align-items:center;display:flex}.wordmark{color:#f5f1e7;letter-spacing:-.01em;font-size:.94rem;font-weight:560}nav{gap:22px}nav a{color:#e7e3d88f;letter-spacing:-.01em;padding-bottom:8px;font-size:.86rem;font-weight:560;transition:color .16s;position:relative}nav a:hover,nav a.active{color:#f5f1e7}nav a:after{content:"";transform-origin:100%;background:#8f7dff;height:1px;transition:transform .16s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}nav a:hover:after,nav a.active:after{transform-origin:0;transform:scaleX(1)}.experiment-nav{color:#e7e3d86b;letter-spacing:.12em;text-transform:uppercase;justify-content:flex-end;align-items:center;gap:14px;margin:0 0 clamp(8px,1.8vw,18px);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;display:flex}.experiment-nav>span{color:#8f7dffad}.experiment-nav>div{align-items:center;gap:8px;display:flex}.experiment-nav a{color:#e7e3d885;border:1px solid #e7e3d81f;place-items:center;min-width:34px;height:30px;padding:0;transition:border-color .16s,color .16s,background .16s;display:grid}.experiment-nav a:after{content:none}.experiment-nav a:hover,.experiment-nav a.active{color:#f5f1e7;background:#8f7dff17;border-color:#8f7dffb8}main{flex:1}.hero{padding:clamp(42px,7vw,86px) 0 clamp(26px,5vw,56px)}.hero.compact{padding:clamp(22px,4vw,42px) 0 14px}.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}.work-list{border-top:1px solid #e7e3d82e}.project-row{border-bottom:1px solid #e7e3d82e;position:relative}.project-row:before{content:"";transform-origin:0;background:#e7e3d8;transition:transform .22s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0;transform:scaleX(0)}.project-row:hover:before,.project-row:focus-within:before,.project-row.is-previewing:before{transform:scaleX(1)}.project-link{z-index:1;gap:clamp(18px,4vw,52px);min-height:142px;padding:30px 0;position:relative}.project-index{color:#e7e3d86b;width:48px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;transition:color .18s}.project-main{flex:1;gap:12px;display:grid}.project-name{color:#f5f1e7;letter-spacing:-.08em;font-size:clamp(2.1rem,6.2vw,5.6rem);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{max-width:560px;font-size:clamp(.98rem,1.8vw,1.16rem);line-height:1.55}.project-action{flex:0 0 min(30vw,320px);place-items:center end;width:min(30vw,320px);min-height:108px;display:grid;position:relative;overflow:hidden}.project-url{text-align:right;overflow-wrap:anywhere;grid-area:1/1;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8rem}.project-preview{aspect-ratio:16/10;opacity:0;background:#05050729;border:1px solid #05050757;grid-area:1/1;width:min(100%,260px);transition:opacity .22s 40ms,transform .26s cubic-bezier(.2,.8,.2,1) 40ms;transform:translate(-28px)scale(.98);box-shadow:0 18px 40px #05050733}.project-preview img{object-fit:cover;width:100%;height:100%;display:block}.project-row:hover .project-index,.project-row:hover .project-name,.project-row:hover .project-description,.project-row:hover .project-url,.project-row:focus-within .project-index,.project-row:focus-within .project-name,.project-row:focus-within .project-description,.project-row:focus-within .project-url,.project-row.is-previewing .project-index,.project-row.is-previewing .project-name,.project-row.is-previewing .project-description,.project-row.is-previewing .project-url{color:#050507}.project-row:hover .project-name,.project-row:focus-within .project-name,.project-row.is-previewing .project-name{transform:translate(10px)}.project-row:hover .project-url,.project-row:focus-within .project-url,.project-row.is-previewing .project-url{opacity:0;transform:translate(72px)}.project-row:hover .project-preview,.project-row:focus-within .project-preview,.project-row.is-previewing .project-preview{opacity:1;transform:translate(0)scale(1)}.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}.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:#8f7dffb8}.db-table-slim .db-table-row>span:last-child{color:#f5f1e7cc;letter-spacing:-.015em;justify-content:space-between;align-items:center;gap:14px;min-height:52px;font-size:clamp(.9rem,1.15vw,1rem);display:flex}.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;background:#e7e3d806;border:1px solid #e7e3d821;flex:none;place-items:center;width:28px;height:28px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;line-height:1;transition:border-color .16s,color .16s,background .16s,transform .16s;display:grid}.detail-trigger:hover{color:#f5f1e7;background:#8f7dff17;border-color:#8f7dffa8;transform:translateY(-1px)}.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-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}.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;border-top:1px solid #e7e3d81a;justify-content:space-between;gap:28px;margin-top:auto;padding:34px 0;font-size:.9rem}.footer-note,.footer-links{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.footer-note span+span:before{content:"•";color:#8f7dffb8;margin-right:12px}.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:min(100% - 28px,1180px)}.site-header{flex-direction:column;align-items:flex-start}nav{justify-content:space-between;width:100%}.experiment-nav{flex-direction:column;justify-content:flex-start;align-items:flex-start}.experiment-nav>div{flex-wrap:wrap}h1{font-size:clamp(2rem,11vw,3.8rem)}.project-link{flex-direction:column;align-items:flex-start;gap:16px;min-height:0;padding:28px 0}.project-index,.project-action{width:auto}.project-action{flex-basis:auto;place-items:center start;width:min(100%,340px);min-height:112px}.project-url{text-align:left}.project-row:hover .project-name,.project-row:focus-within .project-name,.project-row.is-previewing .project-name{transform:none}.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-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>span:last-child{flex-direction:row;align-items:center}.portrait-frame{max-width:260px}.site-footer,.footer-note{flex-direction:column;align-items:flex-start}.footer-note span+span:before{content:none}}
