.bs-root{--bg-dark-deep: #0f0a07;--bg-dark: #1a1410;--bg-dark-raised: #241815;--fg-dark-primary: #f5e6d3;--fg-dark-muted: #8a6f50;--border-dark: #3d2a20;--ink: #1b140d;--ink-mute: #6a5a44;--paper: #f3e9d8;--paper-soft:#faf2e2;--paper-deep:#ecdfc7;--rule: #b8a88a;--rule-soft: #d4c4a5;--acc-terracotta: #c25b2e;--acc-amber: #e8a878;--acc-moss: #6b8e6e;--acc: var(--acc-terracotta);--font-display: "Silkscreen", monospace;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--font-serif: "Source Serif 4", "Noto Serif SC", serif;--font-ital: "Instrument Serif", "Source Serif 4", serif;--font-body: "Noto Sans SC", system-ui, sans-serif;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.55;display:block;position:relative;min-height:100vh}html:has(.bs-root){scroll-behavior:smooth}body:has(.bs-root){background:var(--paper);overflow-x:hidden}.bs-root *,.bs-root *:before,.bs-root *:after{box-sizing:border-box;margin:0;padding:0}.bs-root a{color:inherit;text-decoration:none}.bs-root button{font:inherit;color:inherit;background:transparent;border:none;cursor:pointer;padding:0}.bs-root img,.bs-root svg{max-width:100%;display:block}.bs-root .grain{position:fixed;inset:0;z-index:300;pointer-events:none;mix-blend-mode:multiply;opacity:.22;background-image:radial-gradient(circle at 1px 1px,rgba(40,25,15,.6) .5px,transparent 1px),radial-gradient(circle at 3px 4px,rgba(40,25,15,.4) .5px,transparent 1px);background-size:3px 3px,5px 5px;animation:bs-grain-shift 2s steps(6) infinite}@keyframes bs-grain-shift{0%{transform:translate(0)}17%{transform:translate(-1px,1px)}34%{transform:translate(1px,-1px)}51%{transform:translate(-1px,-1px)}68%{transform:translate(1px,1px)}85%{transform:translateY(-1px)}to{transform:translate(0)}}.bs-root .vignette{position:fixed;inset:0;z-index:2;pointer-events:none;background:radial-gradient(120% 100% at 50% 40%,transparent 60%,rgba(30,20,10,.18) 100%)}@media(hover:hover)and (pointer:fine){body.bs-cursor-ready,body.bs-cursor-ready a,body.bs-cursor-ready button{cursor:none}}.bs-root .cursor{position:fixed;z-index:500;pointer-events:none;top:0;left:0;transform:translate(-50%,-50%);mix-blend-mode:difference;display:none}body.bs-cursor-ready .bs-root .cursor{display:block}.bs-root .cursor .crosshair{width:26px;height:26px;position:relative;transition:transform .15s ease}.bs-root .cursor .crosshair:before,.bs-root .cursor .crosshair:after{content:"";position:absolute;background:#f3e9d8}.bs-root .cursor .crosshair:before{left:50%;top:0;width:1px;height:100%;transform:translate(-50%)}.bs-root .cursor .crosshair:after{top:50%;left:0;height:1px;width:100%;transform:translateY(-50%)}.bs-root .cursor .dot{position:absolute;inset:0;margin:auto;width:4px;height:4px;background:var(--acc);border-radius:50%;mix-blend-mode:normal}.bs-root .cursor .readout{position:absolute;top:18px;left:18px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:1px;color:#f3e9d8;white-space:nowrap;opacity:.75}body.bs-cursor-active .bs-root .cursor .crosshair{transform:scale(1.6) rotate(45deg)}body.bs-cursor-active .bs-root .cursor .dot{background:#f3e9d8}.bs-root .shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh;position:relative;z-index:3}.bs-root .rail{background:var(--bg-dark-deep);color:var(--fg-dark-primary);padding:22px 22px 28px;border-right:1px solid var(--border-dark);position:sticky;top:0;align-self:start;height:100vh;overflow:hidden;display:flex;flex-direction:column;gap:22px}.bs-root .rail:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(180deg,transparent 0 3px,rgba(255,200,120,.018) 3px 4px);pointer-events:none}.bs-root .rail-scroll-bar{position:absolute;top:0;left:0;right:0;height:2px;background:var(--acc);transform-origin:left;transform:scaleX(0);transition:transform .1s linear;z-index:5}.bs-root .rail-id{display:flex;align-items:center;gap:10px;padding-bottom:16px;border-bottom:1px dashed var(--border-dark)}.bs-root .rail-id .mark{width:38px;height:38px;background:var(--acc);display:grid;place-items:center;font-family:var(--font-display);font-size:18px;color:var(--bg-dark-deep);letter-spacing:-1px;position:relative}.bs-root .rail-id .mark:after{content:"";position:absolute;inset:3px;border:1px solid var(--bg-dark-deep);pointer-events:none}.bs-root .rail-id .name{font-family:var(--font-display);font-size:11px;letter-spacing:1.5px;color:var(--acc-amber);line-height:1.35}.bs-root .rail-id .name em{display:block;font-family:var(--font-ital);font-style:italic;font-size:12px;letter-spacing:0;color:var(--fg-dark-muted);margin-top:3px}.bs-root .rail-live{background:var(--bg-dark);border:1px solid var(--border-dark);padding:10px 12px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.5px;color:var(--fg-dark-muted);display:grid;gap:6px}.bs-root .rail-live .row{display:flex;justify-content:space-between;gap:8px}.bs-root .rail-live .k{color:var(--fg-dark-muted)}.bs-root .rail-live .v{color:var(--fg-dark-primary);font-variant-numeric:tabular-nums}.bs-root .rail-live .v.acc{color:var(--acc-amber)}.bs-root .rail-live .pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--acc-moss);margin-right:6px;box-shadow:0 0 #6b8e6e99;animation:bs-pulse 2s ease-out infinite}@keyframes bs-pulse{0%{box-shadow:0 0 #6b8e6ecc}70%{box-shadow:0 0 0 10px #6b8e6e00}to{box-shadow:0 0 #6b8e6e00}}.bs-root .rail-nav{display:grid;gap:1px}.bs-root .rail-nav .nav-lbl{font-family:var(--font-mono);font-size:9px;letter-spacing:2px;color:var(--fg-dark-muted);margin-bottom:6px}.bs-root .rail-nav a{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;font-family:var(--font-display);font-size:11px;letter-spacing:1.3px;color:var(--fg-dark-primary);border-left:2px solid transparent;position:relative;transition:color .2s,background .2s,border-color .2s,padding-left .2s}.bs-root .rail-nav a:before{content:"›";margin-right:8px;color:var(--fg-dark-muted);transition:transform .2s,color .2s;display:inline-block}.bs-root .rail-nav a .c{font-family:var(--font-mono);font-size:9.5px;color:var(--fg-dark-muted);letter-spacing:0}.bs-root .rail-nav a:hover,.bs-root .rail-nav a.active{color:var(--acc-amber);background:var(--bg-dark);border-left-color:var(--acc);padding-left:14px}.bs-root .rail-nav a:hover:before{color:var(--acc);transform:translate(2px)}.bs-root .rail-nav a.active .c{color:var(--acc)}.bs-root .rail-social{margin-top:auto;padding-top:14px;border-top:1px dashed var(--border-dark);font-family:var(--font-mono);font-size:10px;color:var(--fg-dark-muted);letter-spacing:.5px;display:grid;gap:4px}.bs-root .rail-social a{color:var(--fg-dark-primary);transition:color .15s}.bs-root .rail-social a:hover{color:var(--acc)}.bs-root .rail-social a span{color:var(--fg-dark-muted);margin-right:6px}.bs-root .main{min-width:0;padding:0;position:relative}.bs-root .masthead{padding:30px 56px 22px;position:relative}.bs-root .masthead-top{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-mono);font-size:10px;letter-spacing:1.2px;color:var(--ink-mute);margin-bottom:18px}.bs-root .masthead-top .left,.bs-root .masthead-top .right{display:flex;gap:14px}.bs-root .masthead-top b{color:var(--ink);font-weight:500}.bs-root .masthead-title{font-family:var(--font-display);font-weight:400;font-size:clamp(40px,6.8vw,96px);line-height:.9;letter-spacing:-.03em;color:var(--ink);display:block;white-space:nowrap;position:relative}.bs-root .masthead-title .letter{display:inline-block;transition:transform .35s cubic-bezier(.2,.9,.2,1.3),color .3s}.bs-root .masthead-title .letter:hover{color:var(--acc);transform:translateY(-8px) rotate(-4deg)}.bs-root .masthead-title .dot{color:var(--acc);display:inline-block;animation:bs-dot-blink 1.1s steps(2) infinite}@keyframes bs-dot-blink{0%,50%{opacity:1}51%,to{opacity:.2}}.bs-root .masthead-sub{display:flex;align-items:baseline;gap:16px;margin-top:12px;padding-top:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;color:var(--ink-mute)}.bs-root .masthead-sub .spacer{flex:1}.bs-root .masthead-sub .edition{color:var(--acc);letter-spacing:1.5px}.bs-root .ticker{background:var(--bg-dark-deep);color:var(--acc-amber);font-family:var(--font-mono);font-size:11px;letter-spacing:1.2px;padding:10px 0;overflow:hidden;position:relative}.bs-root .ticker .track{display:flex;gap:48px;white-space:nowrap;animation:bs-tick 60s linear infinite;width:-moz-max-content;width:max-content}.bs-root .ticker .item{display:inline-flex;align-items:center;gap:10px}.bs-root .ticker .item b{font-family:var(--font-display);color:var(--acc);font-weight:400;letter-spacing:1.5px}.bs-root .ticker .sep{color:var(--fg-dark-muted)}@keyframes bs-tick{0%{transform:translate(0)}to{transform:translate(-50%)}}.bs-root .ticker:hover .track{animation-play-state:paused}.bs-root .hero{padding:52px 56px 42px;display:grid;grid-template-columns:1.2fr 1fr;gap:48px;position:relative}.bs-root .hero-lead{font-family:var(--font-serif);font-size:clamp(22px,2.2vw,32px);line-height:1.3;font-weight:400;color:var(--ink);text-wrap:pretty;max-width:22ch;min-height:4.5em}.bs-root .hero-lead em{font-family:var(--font-ital);font-style:italic;color:var(--acc)}.bs-root .hero-lead .typed{display:inline-block}.bs-root .hero-lead .typed:after{content:"▌";margin-left:2px;color:var(--acc);animation:bs-caret .9s steps(2) infinite}@keyframes bs-caret{0%,50%{opacity:1}51%,to{opacity:0}}.bs-root .hero-side{display:grid;gap:20px;align-content:start}.bs-root .hero-byline{font-family:var(--font-mono);font-size:11px;letter-spacing:1.2px;color:var(--ink-mute);line-height:1.7}.bs-root .hero-byline b{font-family:var(--font-display);color:var(--acc);font-weight:400;letter-spacing:1.5px;display:block;margin-bottom:6px;font-size:10px}.bs-root .stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.bs-root .stat-grid .c{padding:14px 16px 14px 0;font-family:var(--font-mono);font-size:10px;letter-spacing:1.2px;color:var(--ink-mute);position:relative;overflow:hidden;cursor:pointer}.bs-root .stat-grid .c b{display:block;font-family:var(--font-display);font-weight:400;font-size:44px;letter-spacing:-.02em;color:var(--ink);line-height:1;margin-bottom:8px;font-variant-numeric:tabular-nums;transition:color .2s}.bs-root .stat-grid .c:hover b{color:var(--acc)}.bs-root .hero-orb{position:absolute;top:40px;right:56px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--acc-amber),var(--acc) 60%,var(--bg-dark-deep));box-shadow:0 0 40px #c25b2e59,inset -10px -10px 30px #00000080;animation:bs-orb-drift 12s ease-in-out infinite;pointer-events:none;mix-blend-mode:multiply;opacity:.7}@keyframes bs-orb-drift{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-20px,12px) scale(1.08)}66%{transform:translate(16px,-10px) scale(.94)}}.bs-root .sec{padding:64px 56px 72px;position:relative}.bs-root .sec.alt{background:var(--paper-soft)}.bs-root .sec-head{display:grid;grid-template-columns:auto 1fr auto auto;gap:20px;align-items:baseline;margin-bottom:32px;position:relative}.bs-root .sec-head:before{content:attr(data-big);position:absolute;top:-58px;right:0;font-family:var(--font-display);font-size:140px;line-height:1;color:var(--ink);opacity:.05;letter-spacing:-.02em;pointer-events:none}.bs-root .sec-head .num{font-family:var(--font-display);font-size:11px;letter-spacing:2px;color:var(--paper);background:var(--ink);padding:5px 9px}.bs-root .sec-head h2{font-family:var(--font-display);font-weight:400;font-size:26px;letter-spacing:2px;color:var(--ink)}.bs-root .sec-head .sub{font-family:var(--font-ital);font-style:italic;font-size:18px;color:var(--ink-mute);letter-spacing:0}.bs-root .sec-head .all{font-family:var(--font-mono);font-size:10.5px;letter-spacing:1.2px;color:var(--ink-mute);transition:color .15s,transform .15s}.bs-root .sec-head .all:hover{color:var(--acc);transform:translate(3px)}.bs-root .writing-rows{display:grid;gap:0}.bs-root .w-row{display:grid;grid-template-columns:90px 1fr auto;gap:20px;padding:22px 4px 20px;position:relative;transition:padding-left .3s cubic-bezier(.2,.9,.2,1),background .25s;overflow:hidden}.bs-root .w-row+.w-row:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--rule-soft);opacity:.5}.bs-root .w-row:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--acc);transform:scaleY(0);transform-origin:top;transition:transform .3s cubic-bezier(.2,.9,.2,1)}.bs-root .w-row:hover{padding-left:20px;background:linear-gradient(90deg,rgba(194,91,46,.05) 0%,transparent 70%)}.bs-root .w-row:hover:after{transform:scaleY(1)}.bs-root .w-row .w-date{font-family:var(--font-mono);font-size:11px;color:var(--ink-mute);letter-spacing:.5px;font-variant-numeric:tabular-nums;padding-top:4px}.bs-root .w-row .w-date b{display:block;color:var(--ink);font-family:var(--font-display);font-size:16px;font-weight:400;letter-spacing:0;margin-top:2px}.bs-root .w-row .w-body .w-title{font-family:var(--font-serif);font-size:20px;font-weight:500;color:var(--ink);line-height:1.3;text-wrap:balance;transition:color .2s}.bs-root .w-row:hover .w-body .w-title{color:var(--acc)}.bs-root .w-row .w-en{font-family:var(--font-ital);font-style:italic;color:var(--ink-mute);font-size:13px;margin-top:2px}.bs-root .w-row .w-meta{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-mono);font-size:9.5px;letter-spacing:1.2px;color:var(--ink-mute);margin-top:8px;text-transform:uppercase}.bs-root .w-row .w-meta .cat{color:var(--acc);border:1px solid var(--acc);padding:1px 6px}.bs-root .w-row .w-meta .tag{border-bottom:1px dotted var(--ink-mute)}.bs-root .w-row .w-excerpt{grid-column:2 / 3;overflow:hidden;max-height:0;opacity:0;font-family:var(--font-serif);font-size:14px;color:var(--ink-mute);line-height:1.55;transition:max-height .4s ease,opacity .4s ease,margin-top .4s ease}.bs-root .w-row:hover .w-excerpt{max-height:80px;opacity:1;margin-top:10px}.bs-root .w-row .w-arrow{font-family:var(--font-serif);font-size:22px;color:var(--ink-mute);align-self:center;transition:transform .25s,color .25s}.bs-root .w-row:hover .w-arrow{transform:translate(6px);color:var(--acc)}.bs-root .filters{margin-top:26px;display:flex;flex-wrap:wrap;gap:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:1px;align-items:center}.bs-root .filters .lbl{color:var(--ink-mute);margin-right:6px}.bs-root .filters button{padding:4px 9px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);transition:background .15s,color .15s,border-color .15s}.bs-root .filters button .n{color:var(--ink-mute);margin-left:5px;font-size:9px}.bs-root .filters button:hover{border-color:var(--ink)}.bs-root .filters button.active{background:var(--acc);border-color:var(--acc);color:var(--paper)}.bs-root .filters button.active .n{color:var(--paper-soft)}.bs-root .w-empty{margin-top:18px;padding:16px 0;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:12px;color:var(--ink-mute);letter-spacing:.3px}.bs-root .w-empty[hidden]{display:none}.bs-root .w-empty .clear-btn{font-family:var(--font-display);font-size:9px;color:var(--acc);letter-spacing:1.5px}.bs-root .w-empty .clear-btn:hover{color:var(--acc-amber)}.bs-root .proj-list{display:grid;grid-template-columns:1fr 1fr;-moz-column-gap:28px;column-gap:28px;row-gap:32px;padding-top:4px}.bs-root .proj-list>.proj:nth-child(2n){transform:translateY(20px)}.bs-root .proj{position:relative;display:block;text-decoration:none;color:inherit;cursor:pointer;isolation:isolate}.bs-root .proj .p-shot{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:var(--bg-dark-deep);box-shadow:inset 0 0 0 1px var(--ink);transition:transform .45s cubic-bezier(.2,.9,.2,1),box-shadow .35s;z-index:1}.bs-root .proj .p-shot img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;filter:contrast(1.04) saturate(.88) brightness(.96);transition:transform .6s cubic-bezier(.2,.9,.2,1),filter .4s}.bs-root .proj .p-shot-placeholder{width:100%;height:100%;background:repeating-linear-gradient(45deg,#e2c78c40 0 6px,#9a6b3e59 6px 12px),linear-gradient(135deg,var(--bg-dark) 0%,var(--bg-dark-raised) 100%)}.bs-root .proj:hover .p-shot{transform:translate(-2px,-2px);box-shadow:inset 0 0 0 1px var(--ink),6px 6px 0 0 var(--acc-amber)}.bs-root .proj:hover .p-shot img{transform:scale(1.05);filter:contrast(1.08) saturate(1) brightness(1)}.bs-root .proj .p-st{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:9px;letter-spacing:1.4px;padding:4px 8px;background:#0f0a07db;color:var(--paper-soft);z-index:2}.bs-root .proj .p-st:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.bs-root .proj .p-st.active{color:#9cc38c}.bs-root .proj .p-st.shipped{color:var(--acc-amber)}.bs-root .proj .p-st.archived{color:var(--paper-deep)}.bs-root .proj .p-st.archived:before{background:transparent;box-shadow:inset 0 0 0 1px currentColor}.bs-root .proj .p-name{position:relative;margin:-18px 0 0 12px;z-index:3;display:block;font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:30px;line-height:1;letter-spacing:-.5px;color:var(--ink);text-wrap:balance;transition:color .25s,transform .35s cubic-bezier(.2,.9,.2,1)}.bs-root .proj:hover .p-name{color:var(--acc);transform:translate(4px)}.bs-root .proj .p-desc{margin:10px 0 0;font-family:var(--font-serif);font-size:13px;line-height:1.5;color:var(--ink);text-wrap:pretty;max-width:38ch}.bs-root .proj .p-meta{margin:8px 0 0;font-family:var(--font-mono);font-size:10px;letter-spacing:1.4px;color:var(--ink-mute);display:flex;align-items:baseline;gap:14px}.bs-root .proj .p-meta .p-year{color:var(--ink)}.bs-root .proj .p-meta .p-idx{color:var(--ink-mute)}.bs-root .proj .p-meta .p-arrow{margin-left:auto;color:var(--acc);opacity:0;transform:translate(-6px);transition:opacity .25s,transform .25s}.bs-root .proj:hover .p-meta .p-arrow{opacity:1;transform:translate(0)}.bs-root .uses-wrap{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px}.bs-root .uses-g{padding:0;position:relative}.bs-root .uses-g .lbl{font-family:var(--font-display);font-size:11px;letter-spacing:2px;color:var(--acc);margin-bottom:14px;padding-bottom:0}.bs-root .uses-g ul{list-style:none;display:grid;gap:10px}.bs-root .uses-g li{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-mono);font-size:12px;color:var(--ink);padding:0}.bs-root .uses-g li .n{color:var(--ink)}.bs-root .uses-g li a.n:hover{color:var(--acc)}.bs-root .uses-g li .v{font-size:9px;letter-spacing:1px;color:var(--ink-mute);padding:0}.bs-root .sheet{position:relative;height:560px;margin:0 auto;max-width:980px;padding:20px 0}.bs-root .sheet:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--rule-soft) 1px,transparent 1px),linear-gradient(90deg,var(--rule-soft) 1px,transparent 1px);background-size:48px 48px;opacity:.35;pointer-events:none}.bs-root .ph{position:absolute;width:200px;display:block;transform-origin:center center;transition:transform .4s cubic-bezier(.2,.9,.2,1),z-index 0s linear .4s,filter .35s;will-change:transform}.bs-root .ph .frame{position:relative;aspect-ratio:4/5;padding:10px 10px 36px;background:var(--paper-soft);-webkit-mask:radial-gradient(circle at 6px 6px,transparent 4px,#000 4.5px) 0 0 / 12px 12px;mask:radial-gradient(circle at 6px 6px,transparent 4px,#000 4.5px) 0 0 / 12px 12px;filter:drop-shadow(3px 4px 0 rgba(42,28,18,.18));transition:filter .35s}.bs-root .ph .frame:after{content:"";position:absolute;inset:10px 10px 36px;box-shadow:inset 0 0 0 1px #2a1c122e;pointer-events:none}.bs-root .ph .frame img{position:absolute;left:10px;top:10px;width:calc(100% - 20px);height:calc(100% - 56px);-o-object-fit:cover;object-fit:cover;filter:contrast(1.05) saturate(.92);transition:filter .35s}.bs-root .ph .no{position:absolute;left:12px;bottom:10px;font-family:var(--font-display);font-size:11px;color:var(--acc-amber);letter-spacing:1.4px}.bs-root .ph .cap{position:absolute;right:12px;bottom:10px;font-family:var(--font-mono);font-size:8.5px;color:var(--ink-mute);letter-spacing:1px;max-width:62%;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bs-root .ph:hover{z-index:50!important;transform:var(--hover-t, rotate(0deg) scale(1.14))!important;transition-delay:0s,0s,0s}.bs-root .ph:hover .frame{filter:drop-shadow(6px 8px 0 rgba(42,28,18,.28))}.bs-root .ph:hover .frame img{filter:contrast(1.1) saturate(1.05)}.bs-root .ph{opacity:0;animation:bs-ph-in .8s cubic-bezier(.2,.9,.2,1) forwards;animation-delay:calc(var(--i, 0) * 90ms + .2s)}@keyframes bs-ph-in{to{opacity:1}}.bs-root .lightbox{position:fixed;inset:0;z-index:600;background:#0a0604f0;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .3s}.bs-root .lightbox.open{opacity:1;pointer-events:auto}.bs-root .lightbox .frame{position:relative;max-width:80vw;max-height:80vh;aspect-ratio:4/5;background:#000;border:1px solid var(--border-dark);box-shadow:0 20px 80px #00000080}.bs-root .lightbox .frame img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.bs-root .lightbox .meta{position:absolute;left:0;right:0;bottom:-34px;display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10px;color:var(--acc-amber);letter-spacing:1.2px}.bs-root .lightbox .close{position:absolute;top:-34px;right:0;font-family:var(--font-mono);font-size:11px;color:var(--fg-dark-muted);letter-spacing:1.5px}.bs-root .lightbox .close:hover{color:var(--acc-amber)}.bs-root .lightbox .nav-btn{position:absolute;top:50%;transform:translateY(-50%);font-family:var(--font-display);font-size:14px;color:var(--fg-dark-muted);padding:8px 12px;letter-spacing:2px}.bs-root .lightbox .nav-btn:hover{color:var(--acc-amber)}.bs-root .lightbox .prev{left:-50px}.bs-root .lightbox .next{right:-50px}.bs-root .foot{padding:32px 56px;background:var(--bg-dark-deep);color:var(--fg-dark-primary);font-family:var(--font-mono);font-size:10.5px;letter-spacing:1px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.bs-root .foot .brand{font-family:var(--font-display);color:var(--acc-amber);letter-spacing:1.5px}.bs-root .foot .meta{color:var(--fg-dark-muted)}.bs-root .foot a{color:var(--fg-dark-primary)}.bs-root .foot a:hover{color:var(--acc)}.bs-root .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.9,.2,1)}.bs-root .reveal.in{opacity:1;transform:none}.bs-root .w-row.reveal,.bs-root .proj.reveal,.bs-root .uses-g.reveal{transition-delay:calc(var(--i, 0) * 60ms)}.bs-root .count{font-variant-numeric:tabular-nums}.bs-root ::-moz-selection{background:var(--acc);color:var(--paper-soft)}.bs-root ::selection{background:var(--acc);color:var(--paper-soft)}@media(max-width:1100px){.bs-root .shell{grid-template-columns:220px 1fr}.bs-root .rail{padding:18px 16px 22px;gap:16px}.bs-root .masthead,.bs-root .hero,.bs-root .sec,.bs-root .foot{padding-left:28px;padding-right:28px}.bs-root .hero{grid-template-columns:1fr;gap:30px;padding-top:36px}.bs-root .hero-orb{right:28px;top:18px;width:90px;height:90px}.bs-root .sheet{height:500px;max-width:100%}.bs-root .ph{width:170px}.bs-root .proj-list{grid-template-columns:1fr;row-gap:36px}.bs-root .proj-list>.proj:nth-child(2n){transform:none}.bs-root .proj .p-name{font-size:34px}}@media(max-width:760px){.bs-root .shell{grid-template-columns:1fr}.bs-root .rail{position:static;height:auto;border-right:none;border-bottom:1px solid var(--border-dark)}.bs-root .masthead,.bs-root .hero,.bs-root .sec,.bs-root .foot{padding-left:20px;padding-right:20px}.bs-root .masthead-top{flex-wrap:wrap;gap:8px}.bs-root .masthead-top .left,.bs-root .masthead-top .right{gap:10px;flex-wrap:wrap}.bs-root .uses-wrap{grid-template-columns:1fr;gap:24px}.bs-root .sheet{height:760px}.bs-root .ph{width:150px}.bs-root .w-row{grid-template-columns:70px 1fr}.bs-root .w-row .w-arrow{display:none}.bs-root .w-row .w-excerpt{grid-column:1 / -1}.bs-root .filters{gap:4px}.bs-root .stat-grid{grid-template-columns:1fr 1fr}.bs-root .lightbox .prev{left:6px}.bs-root .lightbox .next{right:6px}}
