.house{--warm: #e9b877;--warm-dim: #c99a63;--sage: #9db08a;--ink: #e8e3d9;--ink-dim: #a09a8e;--rule: rgba(233, 184, 119, .18);--panel: #131210;--panel-w: min(440px, 38vw);min-height:100vh;color:var(--ink)}.house-lede{padding:0 var(--page-padding) 44px;border-bottom:1px solid var(--rule)}.house-lede h1{font-size:clamp(1.9rem,3.2vw,2.7rem);font-weight:900;line-height:1.04;letter-spacing:-.02em;margin-bottom:24px}.house-lede p{font-size:clamp(1rem,1.5vw,1.12rem);line-height:1.7;color:var(--ink-dim);max-width:62ch}.house-lede p+p{margin-top:16px}.house-lede strong{color:var(--ink);font-weight:400}.house-split{display:grid;grid-template-columns:1.15fr 1fr;gap:0;height:100vh;height:100dvh}.house-stage{position:relative;height:100%;border-right:1px solid var(--rule);overflow:hidden}.house-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.house-canvas:active{cursor:grabbing}.house-labels{position:absolute;inset:0;pointer-events:none}.hs-label{position:absolute;top:0;left:0;display:flex;align-items:center;gap:7px;padding:5px 10px 5px 7px;border:1px solid rgba(20,14,8,.25);border-radius:999px;background:#18120c9e;backdrop-filter:blur(6px);color:#f6ecd9;font:inherit;font-size:.74rem;letter-spacing:.01em;white-space:nowrap;cursor:pointer;pointer-events:auto;transition:background .2s ease,opacity .2s ease,border-color .2s ease}.hs-label:hover,.hs-label:focus-visible{background:#261b10d9;border-color:var(--warm);outline:none}.hs-label.is-active{background:var(--warm);color:#1a1207;border-color:var(--warm)}.hs-dot{width:6px;height:6px;border-radius:50%;background:var(--warm);flex:none}.hs-label.is-active .hs-dot{background:#1a1207}.house-hint{position:absolute;left:50%;transform:translate(-50%);bottom:18px;font-size:.72rem;color:#f6ecd99e;background:#18120c80;backdrop-filter:blur(6px);padding:6px 11px;border-radius:999px;pointer-events:none;transition:opacity .4s ease}.house-hint.is-gone{opacity:0}.house-nowebgl{display:none;padding:40px var(--page-padding);color:var(--ink-dim);font-size:.9rem;line-height:1.6}.house.no-webgl .house-stage{position:static;height:auto;border-right:none}.house.no-webgl .house-canvas,.house.no-webgl .house-labels,.house.no-webgl .house-hint{display:none}.house.no-webgl .house-nowebgl{display:block}.house-rail{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:132px 0 104px;scrollbar-width:thin;scrollbar-color:rgba(233,184,119,.28) transparent;-webkit-mask-image:linear-gradient(to bottom,transparent 54px,#000 118px,#000 calc(100% - 74px),transparent calc(100% - 22px));mask-image:linear-gradient(to bottom,transparent 54px,#000 118px,#000 calc(100% - 74px),transparent calc(100% - 22px))}.house-rail::-webkit-scrollbar{width:8px}.house-rail::-webkit-scrollbar-thumb{background:#e9b87747;border-radius:999px}.house-rail::-webkit-scrollbar-track{background:transparent}.house-zone{padding:52px var(--page-padding);border-bottom:1px solid var(--rule);cursor:pointer;transition:background .35s ease;position:relative}.house-zone:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--warm);transform:scaleY(0);transform-origin:top;transition:transform .35s cubic-bezier(.2,.8,.2,1)}.house-zone.is-active{background:#e9b8770b}.house-zone.is-active:before{transform:scaleY(1)}.house-zone:focus-visible{outline:2px solid var(--warm);outline-offset:-2px}.hz-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}.hz-name{font-size:1.32rem;font-weight:700;letter-spacing:-.01em}.hz-term{font-size:.85rem;color:var(--sage);font-style:italic}.hz-thesis{font-size:1.02rem;line-height:1.5;color:var(--warm);margin-bottom:16px;max-width:46ch}.hz-body{font-size:.95rem;line-height:1.75;color:var(--ink-dim);max-width:60ch}.hz-receipts{margin-top:24px;border-top:1px solid var(--rule);font-size:.82rem}.hz-receipts dl{display:grid;grid-template-columns:1fr auto;gap:0}.hz-receipts dt,.hz-receipts dd{padding:9px 0;border-bottom:1px dotted rgba(233,184,119,.12)}.hz-receipts dt{color:var(--ink-dim);padding-right:16px}.hz-receipts dd{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.hz-note{display:block;font-size:.74rem;color:#7d766a;font-style:italic;margin-top:2px}.hz-receipts dd .hz-note{text-align:right}body:has(.house) .footer{text-shadow:0 1px 10px rgba(12,8,4,.85)}.house-outro{padding:52px var(--page-padding) 24px}.house-outro p{font-size:.95rem;line-height:1.75;color:var(--ink-dim);max-width:62ch}.house-outro p+p{margin-top:14px}@media(min-width:901px){html:has(.house),body:has(.house){overflow:hidden}}@media(max-width:900px){.house-split{grid-template-columns:1fr;height:auto}.house-stage{position:sticky;top:0;height:56vh;min-height:340px;border-right:none;border-bottom:1px solid var(--rule);z-index:1}.house-rail{height:auto;overflow:visible;padding:40px 0 96px;-webkit-mask-image:none;mask-image:none}.hs-label{font-size:.68rem;padding:4px 8px 4px 6px}}@media(prefers-reduced-motion:reduce){.house-zone,.house-zone:before,.hs-label,.house-hint{transition:none}}@media(min-width:901px){.house-split{display:block;position:relative}.house-stage{position:absolute;inset:0;height:100%;border-right:none}.house-rail{position:relative;z-index:3;margin-left:auto;width:var(--panel-w);height:100dvh;padding:120px 0 96px;background:color-mix(in srgb,#161513 74%,transparent);backdrop-filter:blur(18px);border-left:1px solid var(--rule);-webkit-mask-image:none;mask-image:none}}.house-styles{position:absolute;left:16px;bottom:84px;z-index:11;display:flex;flex-wrap:wrap;gap:6px;max-width:min(60vw,520px)}.house-styles:empty{display:none}.house-nav{position:absolute;left:16px;bottom:84px;z-index:11;display:flex;flex-wrap:wrap;gap:6px;max-width:min(60vw,520px)}.house-styles:not(:empty)~.house-nav{bottom:130px}.house-nav:empty{display:none}.hs-style{appearance:none;border:1px solid color-mix(in srgb,var(--hs-pill-ink, #fdf0dd) 25%,transparent);background:var(--hs-pill-bg, rgba(56, 38, 22, .72));color:var(--hs-pill-ink, #fdf0dd);font:600 12px/1 var(--font-body, system-ui);letter-spacing:.02em;padding:8px 12px;border-radius:999px;cursor:pointer;opacity:.82;transition:opacity .15s ease,transform .15s ease}.hs-style:hover{opacity:1;transform:translateY(-1px)}.hs-style.is-on{opacity:1;border-color:var(--warm, #d8934f);box-shadow:inset 0 0 0 1px var(--warm, #d8934f)}
