/* Bisbe's canonical register. The shared material lives unchanged in vendor/aiu-glass.css. */
@font-face{font-family:'JetBrains Mono';src:url('assets/fonts/jetbrains-mono-latin-var.woff2?v=fresh-2026-09-07-r4-fix1') format('woff2');font-style:normal;font-weight:100 800;font-display:swap}
:root{--finish-ease:cubic-bezier(.2,.7,.2,1);--hv-ease:cubic-bezier(.2,.7,.2,1);--hv-dur:.24s}
.eyebrow,.rail-label,.key,.mono,.row-bottom,.preview-ribbon>span:first-child,.specimen-tabs small{font-family:var(--font-mono)}
h1,h2{font-weight:700;letter-spacing:-.028em}.fine,.preview-caption,.brand-preset small,.partner-statement p{font-size:12px}
.main-shell{background:var(--bg)}
.content{background:linear-gradient(180deg,var(--strata) 0%,transparent 30%,var(--strata-seam) 30%,var(--strata-seam) calc(30% + 1px),var(--strata-under) calc(30% + 1px),transparent 58%) top/100% 680px no-repeat,var(--bg)}
/* A 1px rule was reading as a line drawn through the page cards on phones and tablets.
   `.content` is the scroll container, so the seam is pinned to one screen row (its top + 204px)
   while the cards scroll under it. Measured at 1440 the row falls INSIDE the card band, so the
   rule is painted behind cards that are opaque paper and is not visible there; desktop keeps it
   unchanged. On narrow layouts the cards are narrower and scroll past, so the gutters and the
   gaps between cards expose the same row. Below the desktop layout the strata wash stays and
   the 1px rule is not painted. */
@media(max-width:900px){.content{background:linear-gradient(180deg,var(--strata) 0%,transparent 30%,var(--strata-under) calc(30% + 1px),transparent 58%) top/100% 680px no-repeat,var(--bg)}}
/* Older cached theme modules may not define --chrome. Navigation must still be opaque. */
.topbar,.partner-dock,.rail,.mobile-nav,.library-band,.partner-panel-head,.dialog-head{background:var(--chrome,var(--paper));-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
.topbar:after,.partner-dock:before{background:var(--line)}
.nav-item.active{background:var(--paper);box-shadow:none}.partner-entry{background:var(--paper);box-shadow:none}.partner-entry:focus-within{box-shadow:0 0 0 2px var(--brand-text)}
.partner-entry button,.btn.primary{background:var(--brand);color:var(--brand-ink);box-shadow:none}
.partner-entry button:hover{transform:none;box-shadow:none}
.firm-mark,.bisbe-mark.signature,.visitor-logo,.studio-logo,.specimen-logo{background:var(--identity-fill);color:var(--identity-ink);border-color:var(--line);box-shadow:none}
.bisbe-mark{color:var(--gilt-text)}.quote{border-left-color:var(--brand-text)}
.preview-ribbon i{background:var(--node);border:1px solid var(--ink);border-radius:50%;transform:none}.queue-pip{background:var(--ink);outline:none}
.tag.public,.tag.held,.coverage,.after-line,.status-message,.avatar.green,.avatar.blue,.avatar.rose{color:var(--ink);background:var(--surface-alt);border-color:var(--line)}
.tag.held,.coverage{background:transparent;border:1px dashed var(--gilt-text);color:var(--gilt-text)}
.btn.gold{background:transparent;color:var(--gilt-text);border-color:var(--gilt-text)}
.template-card,.book,.work-card,.contact-card,.portal-shelves>button,.neighbour-grid>button,.template-monogram{transition-duration:.18s;transition-timing-function:var(--finish-ease)}
.template-card:hover .template-monogram{transform:none}.template-art:before{background:none}.visitor-emblem:before{background:none}
/* Opt-in outer containers, never their children. Preserve the authored 1px box size and anchor the rim to it. */
.review-card.gl,.visitor-portal.gl,.portal-full.gl{--gl-radius:var(--radius);--gl-bloom:calc(var(--gl-radius) + 8px);--gl-accent:var(--brand-text);--gl-ins-t:1px;--gl-ins-r:1px;--gl-ins-b:1px;--gl-ins-l:1px;border:1px solid transparent;overflow:visible}
.review-card.gl>*{background:var(--paper)}
.review-card.gl>:first-child,.visitor-portal.gl>:first-child,.portal-full.gl>:first-child{border-radius:var(--radius) var(--radius) 0 0}
.review-card.gl>:last-child,.visitor-portal.gl>:last-child,.portal-full.gl>:last-child{border-radius:0 0 var(--radius) var(--radius)}
.visitor-portal.gl>.visitor-hero,.visitor-portal.gl>.visitor-support,.visitor-portal.gl>.portal-question,.visitor-portal.gl>.portal-neighbours,.portal-full.gl>section{background:var(--paper)}
.visitor-portal.gl>.portal-shelves,.visitor-portal.gl>.visitor-tabs{background:var(--paper)}
.answer,.source-link,.form-box,.brand-fields,.brand-specimen,.thread-heading,.thread-content{background:var(--paper)}
@media(prefers-reduced-transparency:reduce){.content{background:var(--bg)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.template-card:hover,.book:hover,.portal-shelves>button:hover,.neighbour-grid>button:hover{transform:none}}
@media(forced-colors:active){.content,.topbar,.partner-dock,.rail,.mobile-nav,.library-band{background:Canvas}.gl{background:Canvas;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid CanvasText}.gl::before,.gl::after{display:none}.tag.held,.coverage{color:CanvasText;border-color:CanvasText}}
/* Rendered dark-portal check: its tall shell stretches the lip gradient behind the name.
   The name is a reading ground, so it receives the same opaque paper as the portal body. */
.visitor-portal.gl>.visitor-brand{background:var(--paper)}
/* The rendered night checkbox used paper-colored ink on a forest fill. Keep the action pair. */
.check-wrap input:checked{background:var(--brand);border-color:var(--brand)}
.check-wrap input:checked:after{color:var(--brand-ink)}
/* The answer's Bisbe label is text, so it follows the text pair, including mint on night. */
.bisbe-sign{color:var(--brand-text)}
