:root{color-scheme:light;--wall: #efe9df;--wall-deep: #e6dfd2;--ink: #232019;--sub: #5f594e;--faint: #7a7364;--faint-2: #a69d88;--paper: #fbf7ec;--paper-deep: #f2ebda;--paper-edge: #ddd2bb;--btn-border: #b9ae95;--btn-border-strong: #9d9278;--ui-glass: rgba(251, 247, 236, .78);--ui-glass-strong: rgba(251, 247, 236, .94);--orange: #e8590c;--blue: #3366cc;--blue-soft: rgba(51, 102, 204, .1);--focus: #b57a28;--shadow-sm: 0 2px 8px -2px rgba(60, 44, 16, .16);--shadow-md: 0 14px 36px -16px rgba(20, 12, 2, .45);--shadow-lg: 0 70px 140px -30px rgba(18, 11, 2, .62);--shadow-paper: 0 1px 2px rgba(58, 42, 15, .08), 0 24px 64px -28px rgba(30, 20, 5, .55), inset 0 0 0 1px color-mix(in srgb, var(--paper-edge) 82%, transparent), inset 0 1px 0 color-mix(in srgb, #fff 46%, transparent);--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-body: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-hand: "Caveat", "Comic Sans MS", cursive;--r-xs: 7px;--r-sm: 9px;--r-md: 13px;--r-lg: 18px;--r-xl: 26px;--ease-out: cubic-bezier(.2, .8, .25, 1);--ease-spring: cubic-bezier(.34, 1.2, .64, 1);--dur-fast: .16s;--dur-med: .28s;--dur-slow: .44s;--z-vignette: 2;--z-chrome: 10;--z-cursor: 70;--z-spread: 50}html.dark{color-scheme:dark;--wall: #211c14;--wall-deep: #1a1611;--ink: #ece5d4;--sub: #b5ac9b;--faint: #9c927e;--faint-2: #6f675a;--paper: #2b251b;--paper-deep: #241f16;--paper-edge: #463d2c;--btn-border: #5a5140;--btn-border-strong: #6d624c;--ui-glass: rgba(33, 28, 20, .72);--ui-glass-strong: rgba(33, 28, 20, .94);--focus: #e8bd73;--blue: #7ea6e8;--blue-soft: rgba(126, 166, 232, .12);--shadow-sm: 0 2px 8px -2px rgba(0, 0, 0, .5);--shadow-md: 0 16px 40px -16px rgba(0, 0, 0, .65);--shadow-lg: 0 70px 140px -30px rgba(0, 0, 0, .78);--shadow-paper: 0 1px 2px rgba(0, 0, 0, .35), 0 30px 70px -30px rgba(0, 0, 0, .8), inset 0 0 0 1px color-mix(in srgb, var(--paper-edge) 82%, transparent), inset 0 1px 0 color-mix(in srgb, #fff 7%, transparent)}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden}html{-webkit-text-size-adjust:100%}body{background:var(--wall);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .55s ease,color .55s ease}#root{position:relative;transition:opacity .17s ease}body.leaving #root{opacity:0}::selection{background:color-mix(in srgb,var(--focus) 30%,transparent)}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px;box-shadow:0 0 0 1px color-mix(in srgb,var(--focus) 18%,transparent)}@media(prefers-contrast:more){:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline-width:3px}}.display{font-family:var(--font-display)}.mono{font-family:var(--font-mono)}.hand{font-family:var(--font-hand)}.kick{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.16em;font-size:10.5px;color:var(--faint);text-wrap:balance}.stage{position:relative;height:100%;min-height:0;overflow:hidden;isolation:isolate}.stage:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(120% 90% at 50% 42%,transparent 52%,color-mix(in srgb,var(--wall-deep) 56%,transparent) 100%),linear-gradient(180deg,color-mix(in srgb,var(--wall) 70%,transparent) 0%,transparent 22%);opacity:.85}.stage canvas{touch-action:pan-y}.stage.fallback-mode{height:auto;min-height:100vh;overflow:visible}.stage.fallback-mode:after{display:none}.fallback-mode .hero{position:static;padding-top:96px}.canvas-wrap{position:absolute;inset:0;transition:filter .42s cubic-bezier(.32,.72,0,1),opacity .42s cubic-bezier(.32,.72,0,1);animation:sceneIn 1.1s ease both}@keyframes sceneIn{0%{opacity:0}to{opacity:1}}.canvas-wrap.dimmed{filter:saturate(.9) brightness(.9);transition-delay:.95s;transition-duration:.5s}html.dark .canvas-wrap.dimmed{filter:brightness(.78)}header.site{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:14px;padding:max(14px,env(safe-area-inset-top)) clamp(16px,3vw,32px);z-index:var(--z-chrome);pointer-events:none}header.site>*{pointer-events:auto}#theme-toggle{margin-left:auto;padding:6px 0;border:0;border-radius:0;background:transparent;color:var(--sub);cursor:pointer;line-height:1;-webkit-tap-highlight-color:transparent;transition:color var(--dur-fast) ease,opacity var(--dur-fast) ease}.theme-choice{display:flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}.theme-choice>span:not(.theme-divider){color:var(--faint);padding:3px 0;border-bottom:1px solid transparent;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease}.theme-choice>span.current{color:var(--ink);border-bottom-color:currentColor;font-weight:600}.theme-divider{color:color-mix(in srgb,var(--faint) 58%,transparent);font-size:9px}#theme-toggle:hover{color:var(--ink)}#theme-toggle:active{opacity:.62}.cursor-chip{--chip-accent: var(--orange);--chip-tint: #1d3f72;position:fixed;top:0;left:0;z-index:var(--z-cursor);pointer-events:none;display:flex;align-items:center;gap:11px;padding:9px 12px 9px 10px;background:var(--ui-glass-strong);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);border:1px solid color-mix(in srgb,var(--chip-accent) 30%,var(--btn-border));border-radius:13px 13px 13px 4px;box-shadow:0 14px 34px -16px #1810058c,inset 0 1px color-mix(in srgb,#fff 34%,transparent)}.cursor-chip:before{content:"↗";display:grid;place-items:center;width:24px;height:24px;flex:none;border-radius:7px;background:color-mix(in srgb,var(--chip-accent) 90%,#000);color:#fff;font-size:13px;line-height:1;box-shadow:inset 0 1px color-mix(in srgb,#fff 22%,transparent)}.chip-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.cursor-chip b{display:block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--chip-accent)}.cursor-chip span{display:block;font-family:var(--font-display);font-size:12.5px;line-height:1.2;color:var(--ink);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(pointer:coarse){.cursor-chip{display:none}}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}nav.sr-only{left:50%!important;top:calc(14px + env(safe-area-inset-top))!important;width:auto!important;height:auto!important;margin:0!important;white-space:normal!important;clip:auto!important;clip-path:none!important;overflow:visible!important;transform:translate(-50%,-16px);opacity:0;pointer-events:none;transition:opacity var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}nav.sr-only:has(:focus-visible){opacity:1;transform:translate(-50%);pointer-events:auto;z-index:calc(var(--z-chrome) + 2)}nav.sr-only button{display:inline-block;margin:3px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--btn-border-strong) 70%,transparent);border-radius:999px;background:var(--ui-glass-strong);color:var(--ink);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;box-shadow:var(--shadow-md)}nav.sr-only:has(:focus-visible) button{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}nav.sr-only button:hover{border-color:var(--focus)}nav.sr-only button:focus-visible{outline-offset:2px}.spread-layer{position:fixed;inset:0;z-index:var(--z-spread);display:flex;align-items:center;justify-content:center;padding:clamp(18px,3vw,36px);perspective:1600px}.spread-backdrop{position:absolute;inset:0;background:radial-gradient(900px 520px at 50% 36%,rgba(30,22,10,.18),transparent 68%),#140e076b}html.dark .spread-backdrop{background:radial-gradient(900px 520px at 50% 36%,rgba(0,0,0,.34),transparent 68%),#00000094}.spread{--book-accent: var(--orange);position:relative;display:flex;width:min(1080px,100%);min-height:min(580px,calc(100dvh - 40px));max-height:min(780px,calc(100dvh - 40px));overflow:hidden;background:linear-gradient(104deg,var(--paper-deep) 0%,var(--paper) 34%,var(--paper) 100%);border-radius:12px 22px 22px 12px;box-shadow:var(--shadow-paper);contain:layout paint}.spread:before{content:"";position:absolute;top:0;bottom:0;left:0;width:5px;background:linear-gradient(180deg,var(--book-accent),color-mix(in srgb,var(--book-accent) 26%,transparent));opacity:.92;z-index:2}.spread:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.045),transparent 7% 93%,rgba(0,0,0,.05)),radial-gradient(120% 60% at 50% 0%,rgba(255,255,255,.22),transparent 55%);pointer-events:none}.page{flex:1;min-width:0;position:relative;z-index:1;padding:clamp(30px,4vw,50px) clamp(24px,3.4vw,48px)}.page-left{flex:0 0 47.4%;border-right:1px solid color-mix(in srgb,var(--paper-edge) 78%,transparent);display:flex;flex-direction:column;padding-bottom:clamp(26px,3vw,40px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--faint) 45%,transparent) transparent}.page-left::-webkit-scrollbar{width:9px}.page-left::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--faint) 40%,transparent);border-radius:99px;border:3px solid var(--paper)}.page-left:after{content:"";position:sticky;bottom:-1px;display:block;flex:none;height:42px;margin:auto -48px -40px;pointer-events:none;background:linear-gradient(180deg,transparent,var(--paper) 72%);opacity:.85}.page-right{flex:1.12;display:flex;flex-direction:column;padding:clamp(26px,3vw,40px) clamp(24px,3.4vw,48px) 0;overflow:hidden}.page-right .toc{flex:1 1 auto;width:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--faint) 55%,transparent) transparent;padding:12px 4px 18px 0}.page-right .toc::-webkit-scrollbar{width:9px}.page-right .toc::-webkit-scrollbar-track{background:transparent}.page-right .toc::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--faint) 48%,transparent);border-radius:99px;border:3px solid var(--paper)}.page-right .resume-chip{flex:none;margin-right:4px;margin-bottom:14px}.spread-actions{position:absolute;left:47.4%;right:0;bottom:0;z-index:3;display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:20px clamp(24px,3.4vw,48px) clamp(24px,2.6vw,32px);pointer-events:none}.spread-actions:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent,var(--paper) 42%);opacity:.96;pointer-events:none}.spread-actions>*{pointer-events:auto}.gutter{width:0;position:absolute;left:47.4%;top:12px;bottom:12px;z-index:0;box-shadow:0 0 36px 14px #3c2c102b}html.dark .gutter{box-shadow:0 0 36px 14px #00000085}.edition{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);line-height:1.7;max-width:52ch}.vendor-lockup{display:inline-flex;align-items:center;align-self:flex-start;gap:8px;margin-top:14px;padding:5px 12px 5px 6px;border:1px solid color-mix(in srgb,var(--book-accent) 36%,var(--btn-border));border-radius:999px;background:color-mix(in srgb,var(--paper) 84%,transparent);color:var(--sub);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;box-shadow:inset 0 1px color-mix(in srgb,#fff 34%,transparent)}.vendor-lockup img{display:block;border-radius:5px}.page-left h2{font-family:var(--font-display);font-size:clamp(30px,3.6vw,44px);line-height:1.05;margin:18px 0 0;font-weight:650;letter-spacing:-.018em;color:var(--ink);text-wrap:balance;max-width:15ch}.diamond-rule{margin:20px 0;height:10px;display:flex;align-items:center}.diamond-rule span{display:inline-block;width:9px;height:9px;background:var(--book-accent);transform:rotate(45deg);box-shadow:14px 0 0 -3px var(--book-accent),-14px 0 0 -3px var(--book-accent);transition:transform .4s var(--ease-spring)}.spread:hover .diamond-rule span{transform:rotate(135deg)}.diamond-rule:before,.diamond-rule:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--paper-edge) 85%,transparent))}.diamond-rule:after{background:linear-gradient(90deg,color-mix(in srgb,var(--paper-edge) 85%,transparent),transparent)}.diamond-rule span{margin:0 10px}.blurb{color:var(--sub);font-size:15.5px;line-height:1.7;margin:0;max-width:48ch;text-wrap:pretty}.blurb:first-letter{float:left;font-family:var(--font-display);font-size:3em;line-height:.85;padding:.08em .1em 0 0;color:var(--book-accent)}.note{color:var(--faint);font-size:21px;margin-top:auto;padding-top:22px;transform:rotate(-1.2deg);transform-origin:left center;line-height:1.32;max-width:40ch}.colophon{margin-top:22px;font-size:9.5px;letter-spacing:.15em;color:var(--faint);line-height:1.7}.spec-sheet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:18px 0 0;border-top:1px solid color-mix(in srgb,var(--paper-edge) 82%,transparent);border-bottom:1px solid color-mix(in srgb,var(--paper-edge) 82%,transparent)}.spec-sheet .spec{min-width:0;padding:10px 12px 10px 0;border-bottom:1px solid color-mix(in srgb,var(--paper-edge) 55%,transparent)}.spec-sheet .spec:nth-last-child(-n+2){border-bottom:0}.spec-sheet .spec:nth-child(odd){padding-right:18px}.spec-sheet dt{font-family:var(--font-mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}.spec-sheet dd{margin:0;font-family:var(--font-mono);font-size:10.5px;line-height:1.4;color:var(--ink);font-weight:500;letter-spacing:.01em}.spec-sheet+.blurb{margin-top:16px}.model-kind{align-self:flex-start;margin-bottom:12px;padding:5px 11px;color:var(--book-accent);background:color-mix(in srgb,var(--book-accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--book-accent) 38%,transparent);border-radius:999px;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.model-abstract{max-width:46ch;margin:0;color:var(--sub);font-size:14.5px;line-height:1.68;text-wrap:pretty}.model-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 0;padding:14px 0;border-top:1px solid color-mix(in srgb,var(--paper-edge) 78%,transparent);border-bottom:1px solid color-mix(in srgb,var(--paper-edge) 78%,transparent)}.model-meta div{min-width:0;position:relative}.model-meta div+div:before{content:"";position:absolute;left:-7px;top:2px;bottom:2px;width:1px;background:color-mix(in srgb,var(--paper-edge) 70%,transparent)}.model-meta dt{margin-bottom:5px;color:var(--faint);font-size:8px;letter-spacing:.12em;text-transform:uppercase}.model-meta dd{margin:0;color:var(--ink);font-size:11px;line-height:1.35}.model-tags{margin-top:18px}.model-tags-label{margin-bottom:9px;color:var(--faint);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase}.model-tags ul{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.model-tags li{padding:5px 9px;border:1px solid color-mix(in srgb,var(--model-chip) 78%,#111);border-radius:999px;background:color-mix(in srgb,var(--model-chip) 58%,#111);color:#fff;font-family:var(--font-mono);font-size:9px;line-height:1;letter-spacing:.01em;box-shadow:inset 0 1px color-mix(in srgb,#fff 14%,transparent)}.toc-head{flex:none;display:flex;align-items:center;gap:14px;margin:0 0 6px;padding:0 48px 8px 0;border-bottom:1px solid color-mix(in srgb,var(--paper-edge) 60%,transparent)}.toc-head .kick{display:inline-flex;align-items:center;gap:8px;color:var(--sub)}.toc-head .kick:before{content:"";width:7px;height:7px;background:var(--book-accent);transform:rotate(45deg);transition:transform .4s var(--ease-spring)}.toc-head:hover .kick:before{transform:rotate(135deg)}.toc-rule{flex:1;height:1px;background:linear-gradient(90deg,color-mix(in srgb,var(--paper-edge) 80%,transparent),transparent)}.toc{margin:0;display:flex;flex-direction:column;gap:3px;scroll-behavior:smooth}.toc a,.toc .pending{display:flex;gap:13px;align-items:baseline;padding:11px 12px;border-radius:var(--r-md);font-size:14.5px;position:relative;flex:none}.toc a{color:var(--blue);text-decoration:none;border:1px solid transparent;transition:background var(--dur-fast),border-color var(--dur-fast),transform .2s var(--ease-out),box-shadow var(--dur-fast)}.toc a:before{content:"";position:absolute;left:-1px;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--book-accent);opacity:0;transform:scaleY(.5);transition:opacity .18s,transform .2s var(--ease-out)}.toc a:hover{background:var(--blue-soft);border-color:color-mix(in srgb,var(--blue) 22%,transparent);transform:translate(4px)}.toc a:hover:before{opacity:1;transform:scaleY(1)}.toc a:hover .go{opacity:1;transform:translate(1px,-1px)}.toc a:focus-visible{background:var(--blue-soft);border-color:color-mix(in srgb,var(--blue) 24%,transparent)}.toc .pending{color:var(--faint);cursor:default}.toc .pending .t{font-style:italic}.toc .n{font-family:var(--font-mono);font-size:10.5px;color:var(--faint);width:30px;text-align:right;flex:none;font-weight:500}.toc a .n{color:var(--book-accent)}.toc .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.toc .dots{flex:1;border-bottom:1px dotted color-mix(in srgb,var(--faint) 44%,transparent);transform:translateY(-4px);min-width:18px}.toc .go{flex:none;color:var(--book-accent);font-size:12px;opacity:0;transform:translate(-2px,-1px);transition:opacity .18s,transform .2s var(--ease-out)}.toc a:focus-visible .go,.toc a:hover .go{opacity:1;transform:translateY(-1px)}.actions,.spread-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.02em;border:1px solid var(--btn-border-strong);background:var(--paper-deep);color:var(--ink);border-radius:var(--r-md);padding:11px 18px;cursor:pointer;text-decoration:none;transition:transform .2s var(--ease-out),background var(--dur-fast),box-shadow var(--dur-fast),border-color var(--dur-fast)}.btn:after{content:"↗";font-size:.92em;opacity:.55;transition:transform .2s var(--ease-out),opacity var(--dur-fast)}.btn:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--paper-deep) 78%,var(--btn-border));border-color:color-mix(in srgb,var(--book-accent) 48%,var(--btn-border));box-shadow:0 14px 30px -18px color-mix(in srgb,var(--book-accent) 55%,rgba(20,12,2,.55))}.btn:hover:after{transform:translate(1px,-1px);opacity:1}.btn:active{transform:translateY(0) scale(.98)}.btn.primary{background:var(--ink);color:var(--wall);border-color:var(--ink);box-shadow:0 14px 28px -18px color-mix(in srgb,var(--book-accent) 72%,transparent)}.btn.primary:hover{background:color-mix(in srgb,var(--ink) 90%,var(--book-accent))}html.dark .btn.primary{background:#e8dfc8;color:#211c14;border-color:#e8dfc8}html.dark .btn.primary:hover{background:#f4ecda}.closex{position:absolute;top:14px;right:14px;z-index:4;width:42px;height:42px;border-radius:50%;border:1px solid color-mix(in srgb,var(--btn-border-strong) 70%,transparent);background:var(--ui-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--sub);font-size:22px;line-height:1;cursor:pointer;box-shadow:0 10px 26px -10px #140c028c;transition:transform .24s var(--ease-spring),background var(--dur-fast),color var(--dur-fast),box-shadow var(--dur-fast),border-color var(--dur-fast)}.closex:hover{transform:scale(1.08) rotate(90deg);background:var(--paper);color:var(--ink);border-color:color-mix(in srgb,var(--book-accent) 55%,var(--btn-border));box-shadow:var(--shadow-md)}.closex:active{transform:scale(.95) rotate(90deg)}.fallback{max-width:1120px;margin:0 auto;padding:0 clamp(18px,3vw,32px) 64px}.fb-hero{padding:92px 8px 8px}.fb-hero h1{margin:0;font-size:clamp(32px,5vw,46px);font-weight:700;line-height:1.04;letter-spacing:-.02em}.fb-hero p{margin:12px 0 0;color:var(--sub);font-size:15.5px;line-height:1.65;max-width:56ch}.fb-shelf{margin-top:48px}.fb-label{display:flex;align-items:baseline;gap:12px;margin:0 8px 16px;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--btn-border) 55%,transparent)}.fb-label .n{font-family:var(--font-display);font-size:23px}.fb-label .n:before{content:"";display:inline-block;width:9px;height:9px;margin-right:10px;background:var(--orange);transform:rotate(45deg)}.fb-row{display:flex;align-items:flex-end;gap:22px;padding:0 24px;min-height:240px;flex-wrap:wrap}.fb-plank{height:15px;border-radius:3px;background:linear-gradient(#a07a52,#8a6a4b 45%,#6f5238);box-shadow:0 10px 22px -8px #3c281473,inset 0 1px #ffffff40}.fb-book{position:relative;cursor:pointer;border:none;padding:16px 0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;border-radius:2px 5px 5px 2px;box-shadow:inset 4px 0 9px #00000057,inset -3px 0 7px #00000040,6px 8px 18px -6px #32230f80;transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out)}.fb-book:hover{transform:translateY(-14px) rotate(-2deg);box-shadow:inset 4px 0 9px #00000057,inset -3px 0 7px #00000040,12px 18px 34px -12px #32230f9e}.fb-book:active{transform:translateY(-8px) rotate(-1deg) scale(.99)}.fb-book:focus-visible{outline:3px solid var(--focus);outline-offset:5px}.fb-book .fb-vendor{width:20px;height:20px;object-fit:contain;border-radius:50%}.fb-book .t{writing-mode:vertical-rl;font-family:var(--font-display);font-weight:600;letter-spacing:.06em}.fb-book .bands{width:70%;border-top:2px solid rgba(255,255,255,.35);border-bottom:2px solid rgba(255,255,255,.35);height:6px}@media(max-width:720px){.spread-layer{padding:0;align-items:flex-end}.spread{flex-direction:column;width:100%;height:auto;max-height:min(92dvh,900px);border-radius:20px 20px 8px 8px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.spread::-webkit-scrollbar{display:none}.spread:before{inset:0 0 auto;width:auto;height:5px;background:linear-gradient(90deg,var(--book-accent),color-mix(in srgb,var(--book-accent) 28%,transparent))}.page{padding:26px 22px 22px}.page-left{border-right:none;border-bottom:1px solid color-mix(in srgb,var(--paper-edge) 80%,transparent);flex:0 0 auto;overflow:visible;padding-right:24px}.page-left:after{display:none}.page-right{flex:1 1 auto;overflow:visible;display:block;padding:22px 22px 10px}.page-right .toc{overflow:visible;padding:10px 0 6px}.page-right .toc::-webkit-scrollbar{display:none}.page-left h2{font-size:clamp(27px,8vw,34px)}.blurb{font-size:15px;line-height:1.66}.gutter{display:none}.closex{top:10px;right:10px;width:40px;height:40px}.toc .t{white-space:normal;overflow:visible;text-overflow:clip}.toc .dots{display:none}.toc a,.toc .pending{padding:10px 11px}.model-meta{gap:8px}.spec-sheet{grid-template-columns:1fr}.spec-sheet .spec{border-bottom:1px solid color-mix(in srgb,var(--paper-edge) 55%,transparent)}.spec-sheet .spec:nth-last-child(-n+1){border-bottom:0}.spread-actions{position:sticky;bottom:0;left:0;right:0;width:auto;margin:18px 0 0;padding:14px 20px calc(14px + env(safe-area-inset-bottom));gap:8px}.spread-actions:before{inset:-2px 0 -10px;background:linear-gradient(180deg,transparent,var(--paper) 46%)}.spread-actions .btn{flex:1 1 auto;justify-content:center}.spread-actions .btn:not(.primary){flex:0 1 auto}}.resume-chip{margin-top:20px;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r-md);border:1px solid color-mix(in srgb,var(--book-accent) 36%,transparent);background:color-mix(in srgb,var(--book-accent) 9%,transparent);text-decoration:none;color:var(--ink);transition:transform .2s var(--ease-out),background var(--dur-fast),border-color var(--dur-fast)}.resume-chip:hover{background:color-mix(in srgb,var(--book-accent) 15%,transparent);border-color:color-mix(in srgb,var(--book-accent) 55%,transparent);transform:translate(2px)}.resume-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--book-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--book-accent) 18%,transparent)}.resume-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.resume-copy b{font-size:12.5px;font-weight:600;letter-spacing:.01em}.resume-copy span{font-size:12px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resume-pct{margin-left:auto;font-size:12px;color:var(--book-accent);font-weight:500}@media(max-height:640px)and (min-width:721px){.spread{min-height:calc(100dvh - 28px);max-height:calc(100dvh - 28px)}.page{padding-top:26px;padding-bottom:26px}.page-left{overflow-y:auto}}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}.fb-book:hover,.toc a:hover,.btn:hover{transform:none}}:root{--paper-2: #fffaf0;--paper-edge-2: #e8ddc6;--surface-glass: rgba(251, 247, 236, .62);--hairline: color-mix(in srgb, var(--paper-edge) 72%, transparent);--hairline-strong: color-mix(in srgb, var(--paper-edge) 92%, transparent);--shadow-float: 0 2px 10px -4px rgba(58, 42, 15, .24), 0 24px 60px -30px rgba(30, 20, 5, .5);--shadow-key: 0 1px 2px rgba(58, 42, 15, .06), 0 18px 50px -26px rgba(30, 20, 5, .46);--spread-gutter: 46.2%}html.dark{--paper-2: #2f291e;--paper-edge-2: #534932;--surface-glass: rgba(33, 28, 20, .5);--shadow-float: 0 2px 10px -4px rgba(0, 0, 0, .62), 0 28px 70px -30px rgba(0, 0, 0, .82);--shadow-key: 0 1px 2px rgba(0, 0, 0, .42), 0 20px 54px -26px rgba(0, 0, 0, .72)}body{background:radial-gradient(120% 88% at 50% 40%,transparent 58%,color-mix(in srgb,var(--wall-deep) 48%,transparent) 100%),var(--wall)}.stage:after{opacity:.7;background:radial-gradient(118% 88% at 50% 42%,transparent 46%,color-mix(in srgb,var(--wall-deep) 60%,transparent) 100%),linear-gradient(180deg,color-mix(in srgb,var(--wall) 84%,transparent) 0%,transparent 18%),linear-gradient(0deg,color-mix(in srgb,var(--wall-deep) 38%,transparent) 0%,transparent 14%)}.canvas-wrap.dimmed{filter:saturate(.92) brightness(.92);pointer-events:none}html.dark .canvas-wrap.dimmed{filter:brightness(.72)}header.site{padding:max(16px,env(safe-area-inset-top)) clamp(18px,3vw,34px)}#theme-toggle{padding:6px 0}.cursor-chip{gap:12px;padding:10px 13px 10px 11px;border-radius:15px 15px 15px 5px;border-color:color-mix(in srgb,var(--chip-accent) 34%,var(--btn-border));box-shadow:0 18px 44px -18px #18100599,0 1px color-mix(in srgb,#fff 38%,transparent) inset}.cursor-chip:before{width:26px;height:26px;border-radius:8px;font-size:14px}.chip-copy{gap:2px}.cursor-chip b{font-size:9px}.cursor-chip span{font-size:13px;max-width:220px}.chip-copy small{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.06em;color:var(--faint);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}nav.sr-only{top:calc(18px + env(safe-area-inset-top))!important}nav.sr-only button{padding:11px 15px;font-size:10px;border-radius:12px;border-color:color-mix(in srgb,var(--btn-border-strong) 62%,transparent);background:var(--ui-glass-strong);box-shadow:var(--shadow-key)}nav.sr-only button:hover{transform:translateY(-1px)}.spread-layer{padding:clamp(16px,3vw,40px)}.spread-backdrop{background:radial-gradient(980px 560px at 50% 34%,rgba(30,22,10,.2),transparent 70%),#140e077a}html.dark .spread-backdrop{background:radial-gradient(980px 560px at 50% 34%,rgba(0,0,0,.38),transparent 70%),#0000009e}.spread{width:min(1120px,100%);min-height:min(600px,calc(100dvh - 32px));max-height:min(820px,calc(100dvh - 32px));border-radius:14px 26px 26px 14px;background:linear-gradient(105deg,var(--paper-deep) 0%,var(--paper) 30%,var(--paper-2) 64%,var(--paper) 100%);box-shadow:var(--shadow-paper)}.spread:before{width:6px;background:linear-gradient(180deg,var(--book-accent) 0%,color-mix(in srgb,var(--book-accent) 62%,transparent) 52%,color-mix(in srgb,var(--book-accent) 16%,transparent) 100%);opacity:.95}.spread:after{background:linear-gradient(90deg,rgba(0,0,0,.05),transparent 6% 94%,rgba(0,0,0,.055)),radial-gradient(120% 52% at 50% 0%,rgba(255,255,255,.2),transparent 58%),repeating-linear-gradient(0deg,color-mix(in srgb,var(--paper-edge) 8%,transparent) 0 1px,transparent 1px 5px);opacity:.85}.page{padding:clamp(32px,4vw,52px) clamp(26px,3.6vw,50px)}.page-left{flex:0 0 var(--spread-gutter);padding-bottom:clamp(30px,3.4vw,46px);border-right-color:var(--hairline)}.page-left:after{margin:auto -50px -46px;height:52px;background:linear-gradient(180deg,transparent,var(--paper) 78%)}.page-right{padding:clamp(28px,3.2vw,44px) clamp(26px,3.6vw,50px) 0}.gutter{left:var(--spread-gutter);box-shadow:0 0 42px 16px #3c2c1024}html.dark .gutter{box-shadow:0 0 42px 16px #00000080}.edition{font-size:9.5px;letter-spacing:.17em;color:var(--faint)}.vendor-lockup{gap:9px;margin-top:16px;padding:6px 13px 6px 7px;background:color-mix(in srgb,var(--paper) 86%,transparent);border-color:color-mix(in srgb,var(--book-accent) 42%,var(--btn-border));box-shadow:0 1px color-mix(in srgb,#fff 36%,transparent) inset,0 8px 18px -14px color-mix(in srgb,var(--book-accent) 60%,transparent)}.vendor-lockup img{border-radius:6px}.page-left h2{font-size:clamp(34px,4vw,48px);margin-top:20px;line-height:1.04;max-width:13ch;letter-spacing:-.021em}.diamond-rule{margin:22px 0;height:11px}.diamond-rule span{width:10px;height:10px;box-shadow:16px 0 0 -3.5px var(--book-accent),-16px 0 0 -3.5px var(--book-accent);transition:transform .5s var(--ease-spring),opacity var(--dur-med)}.diamond-rule:before,.diamond-rule:after{height:1px}.blurb{font-size:15.5px;line-height:1.74;color:var(--sub)}.blurb:first-letter{font-size:3.15em;line-height:.82;padding:.1em .12em 0 0}.note{font-size:22px;margin-top:auto;padding-top:26px;color:color-mix(in srgb,var(--faint) 92%,var(--book-accent))}.colophon{margin-top:24px}.spec-sheet{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0 0;padding:8px;border:1px solid var(--hairline);border-radius:16px;background:color-mix(in srgb,var(--paper) 52%,var(--paper-edge));box-shadow:0 1px color-mix(in srgb,#fff 30%,transparent) inset,0 12px 28px -22px #140c0280}.spec-sheet .spec{min-width:0;padding:11px 13px;border:1px solid transparent;border-radius:11px;background:color-mix(in srgb,var(--paper) 88%,transparent);transition:border-color var(--dur-fast) ease,background var(--dur-fast) ease}.spec-sheet .spec:hover{border-color:color-mix(in srgb,var(--book-accent) 26%,var(--hairline));background:var(--paper)}.spec-sheet .spec:nth-child(odd){padding-right:13px}.spec-sheet dt{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:8px;letter-spacing:.15em}.spec-sheet dt:before{content:"";width:5px;height:5px;flex:none;background:var(--book-accent);transform:rotate(45deg);box-shadow:7px 0 0 -2px color-mix(in srgb,var(--book-accent) 55%,transparent)}.spec-sheet dd{font-size:11px;line-height:1.45;letter-spacing:.005em}.spec-sheet+.blurb{margin-top:18px}.model-kind{margin-bottom:14px;padding:6px 12px;font-size:9.5px}.model-abstract{font-size:14.5px;line-height:1.72}.model-meta{gap:14px;margin-top:24px;padding:15px 0}.model-tags{margin-top:20px}.model-tags li{padding:6px 10px;font-size:9.5px}.toc-head{gap:16px;margin-bottom:4px;padding:2px 48px 10px 2px;border-bottom-color:var(--hairline)}.toc-head .kick:before{width:8px;height:8px}.toc{gap:2px;padding:14px 4px 22px 0}.toc a,.toc .pending{gap:14px;min-height:46px;padding:11px 13px;border-radius:12px;font-size:14.5px;transition:background var(--dur-fast) ease,border-color var(--dur-fast) ease,transform .24s var(--ease-out),box-shadow var(--dur-fast) ease}.toc a{color:color-mix(in srgb,var(--blue) 90%,var(--ink))}.toc a:before{left:-1px;top:12px;bottom:12px;width:3px;border-radius:4px}.toc a:hover{background:var(--blue-soft);border-color:color-mix(in srgb,var(--blue) 26%,transparent);transform:translate(5px);box-shadow:0 10px 24px -20px color-mix(in srgb,var(--blue) 70%,transparent)}.toc a:active{transform:translate(2px) scale(.995)}.toc .pending{color:var(--faint)}.toc .n{width:36px;font-size:10.5px;font-variant-numeric:tabular-nums}.toc .t{font-size:14px}.toc .dots{border-bottom-color:color-mix(in srgb,var(--faint) 36%,transparent)}.toc .go{font-size:12.5px}.toc .part-row{margin-top:12px;padding-top:13px;min-height:0;border-top:1px solid var(--hairline);border-radius:0 12px 12px 0}.toc .part-row:after{content:"";position:absolute;left:0;top:-1px;width:42px;height:1px;background:var(--book-accent)}.toc .part-row .n{color:var(--book-accent);font-weight:700}.toc .part-row .t{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--sub)}.spread-actions{left:var(--spread-gutter);right:0;gap:10px;padding:18px clamp(26px,3.6vw,50px) clamp(26px,3vw,36px);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.spread-actions:before{background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--paper) 78%,transparent) 36%,var(--paper) 82%);opacity:.98}.kbd-hint{display:inline-flex;align-items:center;gap:7px;margin-left:auto;font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);pointer-events:none;white-space:nowrap}.kbd-hint kbd{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border:1px solid var(--btn-border);border-bottom-width:2px;border-radius:6px;background:color-mix(in srgb,var(--paper) 86%,var(--btn-border));color:var(--sub);font-family:var(--font-mono);font-size:9px;letter-spacing:0;box-shadow:0 1px color-mix(in srgb,#fff 30%,transparent) inset}.btn{padding:12px 19px;font-size:11.5px;border-radius:12px;box-shadow:0 1px color-mix(in srgb,#fff 24%,transparent) inset}.btn:after{opacity:.45}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.97)}.btn.primary{box-shadow:0 16px 32px -20px color-mix(in srgb,var(--book-accent) 78%,transparent)}.closex{top:16px;right:16px;width:44px;height:44px;font-size:23px;background:var(--surface-glass);border-color:color-mix(in srgb,var(--btn-border-strong) 62%,transparent);box-shadow:var(--shadow-key)}.closex:hover{transform:scale(1.07) rotate(90deg)}.closex:active{transform:scale(.94) rotate(90deg)}.resume-chip{margin-top:22px;padding:11px 15px;border-radius:13px;box-shadow:0 12px 28px -22px color-mix(in srgb,var(--book-accent) 60%,transparent)}.resume-chip:hover{transform:translate(3px)}.fallback{max-width:1160px;padding:0 clamp(18px,4vw,40px) 72px}.fb-hero{padding:max(92px,env(safe-area-inset-top) + 70px) 8px 10px}.fb-hero .kick{margin:0 0 12px}.fb-hero h1{font-size:clamp(34px,5.4vw,50px)}.fb-hero p{font-size:16px;line-height:1.7}.fb-shelf{margin-top:54px}.fb-label{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0 6px 18px}.fb-label .n{font-size:24px}.fb-label .n:before{background:var(--orange)}.fb-run{margin:0 0 26px}.fb-run-head{display:flex;align-items:center;gap:8px;margin:0 14px 10px;font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.fb-run-head img{width:16px;height:16px;object-fit:contain;opacity:.85}.fb-run-count{display:inline-grid;place-items:center;min-width:22px;height:18px;padding:0 6px;border:1px solid var(--btn-border);border-radius:999px;color:var(--sub);letter-spacing:0}.fb-run-frontier .fb-run-count{color:#8fb7e8}.fb-run-body{display:flex;align-items:flex-end;gap:18px;padding:0 18px;min-height:220px;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--faint) 50%,transparent) transparent}.fb-books{display:flex;align-items:flex-end;gap:18px;flex:1 0 auto;justify-content:center;min-width:max-content;padding:8px 2px 0}.fb-bookend{flex:0 0 18px;align-self:stretch;min-height:150px;max-height:215px;border-radius:3px 8px 8px 3px;background:linear-gradient(90deg,rgba(0,0,0,.3),transparent 38%,rgba(255,255,255,.2) 62%,rgba(0,0,0,.35)),linear-gradient(180deg,#b58b4f,#73502a 70%,#543817);box-shadow:inset -4px 0 8px #00000047,0 16px 30px -18px #32230fb3}.fb-bookend-right{transform:scaleX(-1);border-radius:8px 3px 3px 8px}.fb-bookend-vendor{background:linear-gradient(90deg,rgba(0,0,0,.35),transparent 38%,rgba(255,255,255,.18) 62%,rgba(0,0,0,.4)),linear-gradient(180deg,#37570f,#142306 70%,#0a1302)}.fb-run-gallery{align-items:center;gap:10px;flex-wrap:wrap;padding:8px 18px 14px;min-height:0}.fb-gallery-bookend{display:inline-grid;place-items:center;width:76px;height:74px;padding:6px 2px;border:1px solid transparent;border-radius:4px 9px 9px 4px;box-shadow:inset -3px 0 7px #0000004d,0 10px 20px -12px #32230fb3}.fb-gallery-bookend img{width:22px;height:22px;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.fb-gallery-bookend span{max-width:68px;overflow:hidden;font-size:7px;letter-spacing:.04em;color:#ffffffdb;text-overflow:ellipsis;white-space:nowrap}.fb-book{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;flex:0 0 auto;padding:12px 4px;border:1px solid rgba(0,0,0,.42);border-radius:2px 6px 6px 2px;box-shadow:inset 4px 0 9px #00000057,inset -3px 0 7px #00000040,8px 14px 26px -12px #32230f9e;cursor:pointer;transition:transform .24s var(--ease-out),box-shadow .24s var(--ease-out),filter var(--dur-fast);-webkit-tap-highlight-color:transparent}.fb-book:hover{transform:translateY(-16px) rotate(-1.5deg);filter:saturate(1.06) brightness(1.04);box-shadow:inset 4px 0 9px #00000057,inset -3px 0 7px #00000040,14px 22px 38px -12px #32230fa8}.fb-book:active{transform:translateY(-8px) rotate(-.5deg) scale(.99)}.fb-book:focus-visible{outline:3px solid var(--focus);outline-offset:6px}.fb-book .t{writing-mode:vertical-rl;text-orientation:mixed;font-family:var(--font-display);font-weight:600;letter-spacing:.055em;text-overflow:ellipsis;overflow:hidden;max-height:72%}.fb-book .bands{width:64%;height:5px;border-top:2px solid rgba(255,255,255,.32);border-bottom:2px solid rgba(255,255,255,.32)}.fb-book .fb-vendor{width:22px;height:22px;object-fit:contain;border-radius:50%;background:#00000040;padding:2px}.fb-plank{height:12px;margin:6px 0 0;border-radius:3px;background:linear-gradient(180deg,#a07a52,#6f5238 65%,#5b4029);box-shadow:0 3px 8px #3c281466,inset 0 1px #ffffff47}@media(min-width:721px)and (max-width:980px){.spread{width:min(980px,100%)}.page,.spread-actions{padding-left:26px;padding-right:26px}.toc a,.toc .pending{padding-left:11px;padding-right:11px}}@media(max-width:720px){.spread-layer{padding:0;align-items:flex-end}.spread{max-height:94dvh;border-radius:22px 22px 10px 10px}.spread:before{height:5px;width:100%;background:linear-gradient(90deg,var(--book-accent),color-mix(in srgb,var(--book-accent) 30%,transparent))}.spread:after{background:radial-gradient(130% 44% at 50% 0%,rgba(255,255,255,.2),transparent 60%)}.page{padding:28px 22px 20px}.page-left{padding-top:22px}.page-left h2{font-size:clamp(28px,8.4vw,36px)}.blurb{font-size:15px;line-height:1.68}.spec-sheet{gap:6px;padding:6px;border-radius:14px}.spec-sheet .spec{padding:10px 12px;border-radius:9px}.page-right{padding:22px 22px 8px}.toc{gap:1px}.toc a,.toc .pending{min-height:44px;padding:10px 11px;border-radius:11px}.toc .n{width:32px}.toc .dots{display:none}.toc .t{white-space:normal;overflow:visible;text-overflow:clip}.closex{top:10px;right:10px;width:42px;height:42px}.spread-actions{position:sticky;bottom:0;left:0;right:0;width:auto;margin:18px 0 0;padding:14px 18px calc(14px + env(safe-area-inset-bottom));gap:8px;backdrop-filter:none}.spread-actions:before{inset:-2px 0 -10px;background:linear-gradient(180deg,transparent,var(--paper) 50%)}.spread-actions .btn{flex:1 1 auto;justify-content:center;padding:12px 16px}.spread-actions .btn:not(.primary){flex:0 1 auto}.kbd-hint{display:none}.fb-run-body{padding:0 12px;gap:12px}.fb-books{gap:12px}}@media(max-width:460px){.page{padding-left:18px;padding-right:18px}.page-left h2{font-size:27px}.edition{font-size:8.5px}.vendor-lockup{font-size:8.5px;padding-right:10px}.note{font-size:19px}.toc .part-row .t{font-size:9px}.fb-shelf{margin-top:38px}.fb-run-body{padding:0 8px}}@media(max-height:640px)and (min-width:721px){.spread{min-height:calc(100dvh - 22px);max-height:calc(100dvh - 22px)}.page{padding-top:24px;padding-bottom:22px}.page-left h2{font-size:30px;margin-top:12px}.diamond-rule{margin:14px 0}.spec-sheet{margin-top:14px}.note{padding-top:16px}.toc a,.toc .pending{min-height:38px;padding-top:8px;padding-bottom:8px}.spread-actions{padding-top:12px;padding-bottom:16px}}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline-offset:3px;box-shadow:0 0 0 5px color-mix(in srgb,var(--focus) 14%,transparent)}.toc a:focus-visible{outline-offset:2px;background:var(--blue-soft);border-color:color-mix(in srgb,var(--blue) 30%,transparent);box-shadow:0 0 0 5px color-mix(in srgb,var(--blue) 12%,transparent)}@media(prefers-contrast:more){.vendor-lockup,.btn,.closex,.cursor-chip{border-width:2px}.toc a:hover{outline:2px solid var(--blue)}}@media(forced-colors:active){.spread,.spread-backdrop,.toc a,.btn,.closex{forced-color-adjust:auto}}:root{--sub: #595348;--faint: #6d6657;--faint-2: #99907c;--paper-2: #fffaf0;--paper-edge-2: #e6dbc4;--surface-glass: rgba(251, 247, 236, .68);--surface-glass-strong: rgba(251, 247, 236, .92);--shadow-float: 0 2px 10px -4px rgba(58, 42, 15, .24), 0 24px 60px -30px rgba(30, 20, 5, .5);--shadow-key: 0 1px 2px rgba(58, 42, 15, .06), 0 18px 50px -26px rgba(30, 20, 5, .46)}html.dark{--sub: #c0b8a8;--faint: #a79d89;--faint-2: #837966;--paper-2: #302a1f;--paper-edge-2: #574e37;--surface-glass: rgba(33, 28, 20, .62);--surface-glass-strong: rgba(33, 28, 20, .92)}#theme-toggle{height:44px;padding:4px 5px;border:1px solid color-mix(in srgb,var(--btn-border-strong) 58%,transparent);border-radius:999px;background:var(--surface-glass);backdrop-filter:blur(14px) saturate(1.08);-webkit-backdrop-filter:blur(14px) saturate(1.08);box-shadow:var(--shadow-key),inset 0 1px color-mix(in srgb,#fff 34%,transparent);transition:transform .22s var(--ease-out),border-color var(--dur-fast) ease,background var(--dur-fast) ease,box-shadow var(--dur-fast) ease}#theme-toggle:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--focus) 46%,var(--btn-border-strong));box-shadow:var(--shadow-float),inset 0 1px color-mix(in srgb,#fff 34%,transparent)}#theme-toggle:active{transform:translateY(0) scale(.97)}.theme-choice{gap:2px}.theme-choice>span:not(.theme-divider){min-height:32px;display:inline-flex;align-items:center;padding:7px 13px;border-radius:999px;color:var(--sub);border-bottom:0;transition:color var(--dur-fast) ease,background var(--dur-fast) ease,box-shadow var(--dur-fast) ease,transform .18s var(--ease-out)}.theme-choice>span:not(.theme-divider):hover{color:var(--ink)}.theme-choice>span.current{background:var(--ink);color:var(--wall);border-bottom:0;box-shadow:inset 0 1px #ffffff24,0 6px 16px -10px #140c02a6}.theme-divider{margin:0 3px}nav.sr-only{display:flex!important;align-items:center;max-width:min(820px,calc(100vw - 28px));overflow-x:auto;overflow-y:hidden;scrollbar-width:none;gap:2px}nav.sr-only::-webkit-scrollbar{display:none}nav.sr-only button{flex:none;scroll-margin-inline:8px}.spread-layer{padding:clamp(14px,2.6vw,34px)}.spread-backdrop{background:radial-gradient(1000px 580px at 50% 32%,rgba(30,22,10,.2),transparent 70%),#140e0780}html.dark .spread-backdrop{background:radial-gradient(1000px 580px at 50% 32%,rgba(0,0,0,.4),transparent 70%),#000000a3}.spread{width:min(1160px,100%);min-height:min(620px,calc(100dvh - 28px));max-height:min(840px,calc(100dvh - 28px));--page-pad-x: clamp(28px, 3.8vw, 54px);--page-pad-y: clamp(34px, 4.2vw, 54px)}.page{padding:var(--page-pad-y) var(--page-pad-x)}.page-left{flex:0 0 var(--spread-gutter);padding-bottom:clamp(30px,3.4vw,46px)}.page-left:after{margin:auto calc(-1 * var(--page-pad-x)) -46px;height:54px;background:linear-gradient(180deg,transparent,var(--paper) 76%)}.page-right{padding:clamp(30px,3.4vw,46px) var(--page-pad-x) 0}.page-right .toc{padding-bottom:132px}.spread-actions{left:var(--spread-gutter);padding:16px var(--page-pad-x) clamp(24px,2.8vw,34px);border-top:1px solid color-mix(in srgb,var(--paper-edge) 46%,transparent)}.spread-actions:before{background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--paper) 72%,transparent) 34%,var(--paper) 86%);opacity:.98}.read-rail{display:flex;align-items:center;gap:10px;margin:16px 0 0;color:var(--faint);font-size:9px;letter-spacing:.13em;text-transform:uppercase}.read-rail-track{flex:1;max-width:190px;height:3px;border-radius:999px;background:color-mix(in srgb,var(--paper-edge) 70%,transparent);overflow:hidden}.read-rail-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--book-accent) 72%,transparent),var(--book-accent));transition:width .5s var(--ease-out)}.read-rail b{font-weight:500;color:var(--book-accent);font-variant-numeric:tabular-nums}.toc-head{padding-right:0;margin-bottom:6px}.toc-count{flex:none;margin-left:auto;padding:4px 9px;border:1px solid var(--hairline);border-radius:999px;color:var(--faint);font-size:8.5px;letter-spacing:.11em;text-transform:uppercase;background:color-mix(in srgb,var(--paper) 62%,transparent)}.toc{gap:3px;padding:14px 4px 22px 0}.toc a,.toc .pending{min-height:48px;padding:10px 12px;align-items:center;gap:12px;border-radius:12px}.toc .n{width:34px;flex:none}.toc .t{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.38;text-wrap:pretty}.toc .dots{min-width:10px}.toc .go{font-size:12px}.toc a:hover{transform:translate(4px)}.toc .part-row{min-height:0;padding-top:13px}.btn{min-height:44px;padding:12px 20px;border-radius:12px}.btn.primary{letter-spacing:.03em}.closex{width:46px;height:46px;font-size:24px}.fb-run-head{margin:0 16px 12px}.fb-run-body{scrollbar-gutter:stable}.fb-book{scroll-margin:16px}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:8px}.toc a:focus-visible{outline-color:var(--blue);outline-offset:2px;border-radius:10px;background:var(--blue-soft)}@media(prefers-contrast:more){:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline-width:3px}.toc-count,.vendor-lockup,.btn,.closex,.cursor-chip,#theme-toggle{border-width:2px}}@media(prefers-reduced-transparency:reduce){#theme-toggle,.cursor-chip,.closex{background:var(--ui-glass-strong)}}@media(forced-colors:active){.spread,.spread-backdrop,.toc a,.btn,.closex,#theme-toggle{forced-color-adjust:auto}}@media(min-width:721px)and (max-width:1020px){.page{--page-pad-x: 30px}.spread-actions{padding-left:30px;padding-right:30px}}@media(max-width:720px){#theme-toggle{height:42px}.theme-choice>span:not(.theme-divider){padding:7px 11px}.spread{--page-pad-x: 22px}.page-right .toc{padding-bottom:10px}.toc-count{margin-left:6px}.toc a,.toc .pending{align-items:flex-start;padding-top:11px;padding-bottom:11px}.toc .dots{display:none}.spread-actions{border-top-color:transparent}.read-rail{margin-top:14px}}@media(max-width:460px){.page{--page-pad-x: 18px}.theme-choice>span:not(.theme-divider){padding:7px 9px}.theme-divider{display:none}}@media(max-height:640px)and (min-width:721px){.spread{--page-pad-y: 22px}.page-right .toc{padding-bottom:116px}.spread-actions{padding-top:10px;padding-bottom:14px}}@media(max-width:720px){.spread{--page-pad-y: 26px}.page-left{padding-bottom:22px}.page-right{padding-top:24px;padding-bottom:10px}}html.perf-nofx .canvas-wrap,html.perf-nofx .canvas-wrap.dimmed{filter:none!important}html.perf-nofx .spread-layer,html.perf-nofx .spread-backdrop,html.perf-nofx .spread-actions,html.perf-nofx .closex,html.perf-nofx #theme-toggle,html.perf-nofx nav.sr-only button,html.perf-nofx .cursor-chip{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.canvas-wrap{background:var(--wall) url(../room/poster.webp) center / cover no-repeat}.canvas-wrap canvas{opacity:0;transition:opacity .6s ease}.canvas-wrap.ready canvas{opacity:1}@media(prefers-reduced-motion:reduce){.canvas-wrap canvas{transition:none}}
