/* The three faces the portal is set in, served from the chapter's own domain. A private members'
   portal should not have to ask Google for its own lettering — that is a third-party request, and
   a brother's address, on every page load. Licences are in fonts/OFL.txt.

   Latin subset only, and the `unicode-range` is what makes that safe: a character none of them
   carries — the Greek lambda of the chapter's own monogram, among others — falls through to the
   system stack rather than printing an empty box. Inter and JetBrains Mono are variable, so one
   file covers every weight the portal uses. `swap` keeps the lettering readable from first paint. */
@font-face{font-family:Franklin;font-style:normal;font-weight:100 900;font-display:swap;src:url(/welcome/fonts/libre-franklin-latin-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/welcome/fonts/fraunces-latin-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/welcome/fonts/fraunces-latin-italic-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:100 800;font-display:swap;src:url(/welcome/fonts/jetbrains-mono-latin-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Iota Mu Lambda — Members’ Portal. Same palette as the public site: ink black, old gold, ivory. */
:root{
  /* Every translucent surface, hairline and shadow is mixed from these two. Swapping the pair
     is what turns the portal light, so the themes cannot drift apart rule by rule. */
  --tint:255,255,255; --shade:0,0,0;
  /* Composite surfaces the light theme restates rather than re-tints. */
  --page:#080706;
  --ambient:
    radial-gradient(60% 45% at 12% -8%, rgba(226,179,79,.16), transparent 70%),
    radial-gradient(45% 38% at 92% 4%, rgba(183,121,33,.13), transparent 72%),
    radial-gradient(70% 55% at 50% 108%, rgba(120,84,26,.11), transparent 70%),
    linear-gradient(180deg,#120e0a 0%,#0a0908 46%,#050504 100%);
  --pane:linear-gradient(165deg,rgba(30,24,18,.90),rgba(13,11,9,.94));
  /* The same pane with nothing behind it. A list of answers is read, not looked through: anything
     showing faintly through a citation is a word a brother has to fight past. */
  --pane-solid:linear-gradient(165deg,#1E1812,#0D0B09);
  --pane-edge:rgba(226,179,79,.34);
  --bar:rgba(12,10,8,.94);
  /* THE RAIL IS COLOURED GLASS, not a pale flat field.
     It stands the whole height of every screen, so a flat fill there is the largest dead surface
     in the portal. This is the chapter's own gold coming down it and the ink taking over at the
     foot — the same move the tiles make, at the scale of a wall rather than a card. */
  --rail:
    radial-gradient(120% 52% at 50% -8%, rgba(226,179,79,.14), transparent 68%),
    radial-gradient(90% 34% at 12% 44%, rgba(183,121,33,.09), transparent 72%),
    linear-gradient(180deg,rgba(34,27,19,.86) 0%,rgba(20,16,12,.84) 46%,rgba(9,8,7,.90) 100%);
  --header:rgba(10,9,7,.62);
  --toast-bg:linear-gradient(160deg,rgba(32,26,19,.94),rgba(15,12,10,.96));
  --avatar-bg:linear-gradient(145deg,rgba(226,179,79,.22),rgba(20,16,11,.9));
  --scrim:rgba(0,0,0,.72);
  /* A photograph reads best against a dark mat in either theme, so these do not flip. */
  --mat:#0f0d0b; --on-mat:#fbf6ec; --on-mat-2:rgba(247,240,228,.84); --on-mat-gold:#efca75;
  --ink:#090807; --ink-2:#0d0b09; --ink-3:#12100e; --panel:#15120e; --panel-2:#1b1712;
  --gold:#e2b34f; --gold-deep:#b77921; --gold-light:#efca75; --gold-2:#d7b36a; --gold-dim:rgba(226,179,79,.16); --gold-line:rgba(226,179,79,.22);
  --ivory:#f5efe6; --cream:#f2ebdf; --text:#efe7da; --muted:#cfc5b7; --muted-2:#9b9084; --muted-3:#6f665b;
  --green:#4fb37a; --red:#d2574f; --amber:#e2a23f; --blue:#7fa7d9;
  /* The lettering of a status badge, and the gold fill a chip or primary button is poured from.
     A wash of colour reads differently on ink than on paper, so the lettering is a token rather
     than a fixed tint — that is what keeps both themes legible without changing a single rule. */
  --tone-green:#8fd7ad; --tone-red:#f0a9a4; --tone-amber:#f2c886; --tone-blue:#b9d0ee;
  --gold-fill:linear-gradient(135deg,var(--gold-deep),var(--gold-light)); --on-gold:#17100a;
  /* Gold does two jobs and they want different values. `--leaf` is gold as an *object* — a rule,
     a monogram, the disc behind an arrow — and never carries lettering, so it stays bright on
     paper as well as on ink. `--gold` is gold as *text*, which is why the paper theme darkens it
     and why only one of the two ever has to answer to a contrast check. */
  --leaf:#e2b34f; --leaf-hair:rgba(226,179,79,.26);
  /* The solid button. At night it is gold leaf; on cream that same leaf goes muddy, so on paper
     the pill is near-black — which is what the sign-in screen shows. The gold rides it as the
     arrow disc instead, in both themes. */
  --solid:linear-gradient(135deg,var(--gold-deep),var(--gold-light)); --on-solid:#17100a;
  --radius:22px; --radius-sm:14px; --shadow:0 18px 48px rgba(var(--shade),.38);
  /* Glass surfaces: a translucent pane, a lit top edge, and a blur that lets the gold ambience
     behind it show through. Text colours are unchanged, so contrast is unaffected. */
  --glass:rgba(var(--tint),.048); --glass-2:rgba(var(--tint),.028); --glass-strong:rgba(var(--tint),.075);
  --glass-edge:rgba(var(--tint),.10); --glass-lit:inset 0 1px 0 rgba(var(--tint),.09);
  --glass-blur:saturate(150%) blur(22px);
  --depth:0 1px 2px rgba(var(--shade),.28), 0 12px 32px rgba(var(--shade),.34);
  --depth-lift:0 2px 6px rgba(var(--shade),.34), 0 26px 60px rgba(var(--shade),.48);
  --ease:cubic-bezier(.22,.61,.36,1);
  /* Men of distinction. Fraunces is an old-style with real mass — thick stems, wedge serifs that
     are planted rather than hung — and it holds that weight from a 96px greeting down to a 14px
     citation. Its soft and wonk axes are pinned flat in the file: the flourished forms are
     charming on a menu and wrong on a chapter's law. Libre Franklin carries the text, because
     Franklin Gothic is the voice American civic printing has used for a century and it does not
     flinch. Both are self-hosted; the content policy allows no font from anywhere else. */
  --serif:Fraunces,Georgia,"Times New Roman",serif; --sans:Franklin,"Libre Franklin",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sidebar:272px;
  /* The measure of the room. Every gutter, gap and inset is one of these four, so a screen's
     spacing is a property of the width the portal is being read at rather than of the view that
     happened to be written last. The three registers are a desk, a tablet held in two hands, and
     a phone held in one; the values step down together at each. */
  --gutter:34px; --gap:20px; --stack:16px; --pad:24px;
}

*{box-sizing:border-box}
html{background:var(--ink);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.5;background:var(--page) fixed;position:relative;isolation:isolate}
/* Ambient light behind the glass. Fixed and inert, so it costs nothing to scroll past. */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--ambient)}
h1,h2,h3,h4,.serif{font-family:var(--serif);font-weight:600;letter-spacing:-.005em;margin:0;text-wrap:balance}
h1{font-size:clamp(31px,3.3vw,40px);line-height:1.08}h2{font-size:29px;line-height:1.18}h3{font-size:23px;line-height:1.22}
p{margin:0 0 .8em}a{color:var(--gold-2);text-decoration:none}a:hover{color:var(--gold-light)}
button,input,select,textarea{font:inherit;color:inherit}
img{max-width:100%}
::selection{background:rgba(226,179,79,.35)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* ---- icons: 1em inline by default; components override ---- */
svg.ic{width:1em;height:1em;flex:none;vertical-align:-.15em}
.row > svg.ic{width:20px;height:20px;color:var(--gold-2);margin-top:2px}
.item .avatar svg.ic{width:18px;height:18px}

/* ---- primitives ---- */
.eyebrow{font-family:var(--serif);color:var(--gold);font-size:14.5px;font-weight:600;letter-spacing:.19em;text-transform:uppercase;margin:0 0 6px;font-synthesis-weight:none}
.eyebrow.muted{color:var(--muted-2)}
.lede{color:var(--muted);font-size:18px;line-height:1.6}
.small{font-size:15.5px;color:var(--muted-2)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14.5px;letter-spacing:.02em}
.rule{display:flex;align-items:center;gap:14px;color:var(--gold);margin:8px 0 18px}
.rule:before,.rule:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold-line));}.rule:after{background:linear-gradient(90deg,var(--gold-line),transparent)}
.rule span{font-size:14.5px;letter-spacing:.22em}
.card{position:relative;background:linear-gradient(180deg,rgba(var(--tint),.035),rgba(var(--tint),.012));border:1px solid var(--gold-dim);border-radius:var(--radius);padding:var(--pad);box-shadow:var(--shadow)}
.card.tight{padding:16px 18px}
.card.gold{background:linear-gradient(135deg,rgba(183,121,33,.22),rgba(239,202,117,.06));border-color:rgba(226,179,79,.4)}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.card-head h2,.card-head h3{margin:0}
.card-head .actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.grid{display:grid;gap:var(--gap)}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid.main-aside{grid-template-columns:minmax(0,1.6fr) minmax(300px,.9fr)}
.stack{display:flex;flex-direction:column;gap:var(--stack)}
.row{display:flex;align-items:center;gap:12px}
.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}
.spacer{flex:1}
.kpi{display:flex;flex-direction:column;gap:4px;padding:18px 20px;border-radius:var(--radius-sm);background:rgba(var(--tint),.025);border:1px solid rgba(var(--tint),.05)}
.kpi .value{font-family:var(--serif);font-weight:700;font-size:32px;line-height:1;color:var(--ivory)}.kpi .value.gold{color:var(--gold-light)}
.kpi .label{font-size:14.5px;color:var(--muted-2);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.kpi .sub{font-size:14.5px;color:var(--muted-2)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 18px;border-radius:999px;border:1px solid var(--gold-line);background:transparent;color:var(--ivory);font-weight:700;font-size:16.5px;cursor:pointer;white-space:nowrap;transition:transform .15s ease,background .15s ease,border-color .15s ease}
.btn:hover{border-color:rgba(226,179,79,.55);background:rgba(226,179,79,.06)}.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn-primary{background:var(--solid);border:0;color:var(--on-solid);font-weight:800;box-shadow:var(--depth)}
.btn-primary:hover{filter:brightness(1.14);color:var(--on-solid)}
/* The sign-in's continue pill: the button proper with a gold disc at its end carrying the
   arrow. The disc is an object rather than lettering, so it keeps its leaf gold on paper. */
.btn-go{position:relative;min-height:54px;padding:9px 56px;font-size:15px;letter-spacing:.16em;text-transform:uppercase}
.btn-go .say{display:block;white-space:normal;line-height:1.3}
.btn-go .go{position:absolute;right:6px;top:50%;display:grid;place-items:center;width:38px;height:38px;margin-top:-19px;border-radius:50%;background:var(--leaf);color:#17120A;transition:transform .2s var(--ease)}
.btn-go .go svg{width:16px;height:16px}
.btn-go:hover .go{transform:translateX(3px)}
.btn-go[disabled] .go{opacity:.6}
.btn-ghost{border-color:transparent;color:var(--gold-2)}
.btn-danger{border-color:rgba(210,87,79,.5);color:var(--tone-red)}.btn-danger:hover{background:rgba(210,87,79,.12);border-color:rgba(210,87,79,.8)}
/* Slightly generous even under a mouse; on a touch screen the rule below takes over. */
.btn-sm{min-height:36px;padding:0 14px;font-size:15.5px}
.btn-block{width:100%}
.btn svg{width:16px;height:16px}
.icon-btn{flex:none;display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--gold-dim);background:transparent;color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--gold-light);border-color:var(--gold-line)}
.icon-btn svg{width:18px;height:18px}

/* badges & chips */
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:13.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border:1px solid transparent;white-space:nowrap}
.badge.gold{background:var(--gold-fill);color:var(--on-gold)}
.badge.outline{border-color:var(--gold-line);color:var(--gold-2)}
.badge.slate{background:rgba(var(--tint),.06);color:var(--muted);border-color:rgba(var(--tint),.08)}
.badge.green{background:rgba(79,179,122,.14);color:var(--tone-green);border-color:rgba(79,179,122,.35)}
.badge.red{background:rgba(210,87,79,.14);color:var(--tone-red);border-color:rgba(210,87,79,.35)}
.badge.amber{background:rgba(226,162,63,.14);color:var(--tone-amber);border-color:rgba(226,162,63,.35)}
/* ---- the marks beside a brother's name ----
   Life membership is an honour and sits with the name in gold. The compliance marks — his
   certificates, the General Office, the background check — sit together in the column of
   statuses, each under the word for what it is, so a row of four green pills still says which
   green pill is which. */
.life{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:2px 9px;border-radius:999px;
  border:1px solid var(--gold-line);background:var(--gold-dim);color:var(--gold-light);
  font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;vertical-align:2px}
.life svg{width:12px;height:12px}
.item .marks{align-items:center;justify-content:flex-end;flex-wrap:wrap}
.mark-of{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-3)}
.mark-edit{margin-top:4px;align-self:flex-end}
@media (max-width:700px){
  .item .marks{justify-content:flex-start}
  .life{margin-left:0;margin-top:4px}
}
.badge.blue{background:rgba(127,167,217,.14);color:var(--tone-blue);border-color:rgba(127,167,217,.35)}
.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--gold-dim);background:rgba(var(--tint),.02);font-size:15.5px;color:var(--muted);cursor:pointer}
.chip.active,.chip:hover{border-color:var(--gold);color:var(--ivory);background:rgba(226,179,79,.1)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--gold-dim);margin-bottom:18px;overflow-x:auto}
.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;color:var(--muted);font-weight:700;cursor:pointer;white-space:nowrap}
.tabs button.active{color:var(--gold-light);border-bottom-color:var(--gold)}

/* lists & tables */
.list{display:flex;flex-direction:column}
.list > .item{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid rgba(var(--tint),.06)}
.list > .item:first-child{border-top:0}
.list > .item.link{cursor:pointer}.list > .item.link:hover{background:rgba(var(--tint),.02)}
.item .body{flex:1;min-width:0}.item .title{font-weight:700;color:var(--ivory)}.item .meta{font-size:15.5px;color:var(--muted-2);margin-top:2px}
.item .title,.item .meta{overflow:hidden;text-overflow:ellipsis}
/* The right-hand column of a row carries badges, and badges do not shrink. Left to itself it
   holds its full width and pushes the row off the side of a phone, so it is allowed to wrap and,
   where there is no room at all, to drop under the name. */
.item .aside{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:0;flex-shrink:1}
.item .aside .row{flex-wrap:wrap;justify-content:flex-end}
.table-wrap{overflow-x:auto;margin:0 -6px}
table.table{width:100%;border-collapse:collapse;font-size:16.5px}
.table th{text-align:left;font-size:13.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);font-weight:800;padding:10px 8px;border-bottom:1px solid var(--gold-dim)}
.table td{padding:12px 8px;border-bottom:1px solid rgba(var(--tint),.05);vertical-align:middle}
.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}
.table tr.link{cursor:pointer}.table tr.link:hover td{background:rgba(var(--tint),.02)}
.avatar{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#2a2218,#16120d);border:1px solid var(--gold-line);color:var(--gold-light);font-family:var(--serif);font-size:17px}
.avatar.lg{width:56px;height:56px;font-size:22px}
.progress{height:8px;border-radius:999px;background:rgba(var(--tint),.07);overflow:hidden}
.progress > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold-deep),var(--gold-light))}
.bar-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:12px;align-items:center;font-size:15.5px}
.bar{height:10px;border-radius:999px;background:rgba(var(--tint),.06);overflow:hidden;display:flex}
.bar .in{background:linear-gradient(90deg,var(--gold-deep),var(--gold-light))}.bar .out{background:rgba(210,87,79,.6)}
.empty{text-align:center;padding:34px 20px;color:var(--muted-2)}
.empty h3{color:var(--muted);margin-bottom:6px}
.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:1px solid var(--gold-dim)}
.timeline li{position:relative;padding:0 0 14px 14px}
.timeline li:before{content:"";position:absolute;left:-23px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--gold)}
.seal{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;border:1px solid var(--gold-line);background:rgba(226,179,79,.06);color:var(--gold-light);font-size:14.5px;font-weight:700}
.seal.bad{border-color:rgba(210,87,79,.5);color:var(--tone-red);background:rgba(210,87,79,.08)}
.prose{color:var(--text);line-height:1.7;white-space:pre-wrap;word-wrap:break-word}
.prose h4{color:var(--gold);font-family:var(--sans);font-size:13.5px;letter-spacing:.17em;text-transform:uppercase;margin:22px 0 8px}
.notice{padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--gold-line);background:rgba(226,179,79,.06);color:var(--cream);font-size:16.5px}
.notice.warn{border-color:rgba(226,162,63,.5);background:rgba(226,162,63,.08)}
.notice.danger{border-color:rgba(210,87,79,.5);background:rgba(210,87,79,.08)}
.notice.success{border-color:rgba(79,179,122,.5);background:rgba(79,179,122,.08)}

/* forms */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-size:14.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.field .hint{font-size:14.5px;color:var(--muted-2)}
.field input,.field select,.field textarea,.input{width:100%;min-height:46px;padding:11px 14px;border-radius:var(--radius-sm);border:1px solid rgba(226,179,79,.22);background:#0f0d0b;color:var(--ivory);transition:border-color .15s}
.field textarea{min-height:110px;resize:vertical;line-height:1.55}
.field input:focus,.field select:focus,.field textarea:focus,.input:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(226,179,79,.14)}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold-2) 50%),linear-gradient(135deg,var(--gold-2) 50%,transparent 50%);background-position:calc(100% - 20px) 20px,calc(100% - 15px) 20px;background-size:5px 5px;background-repeat:no-repeat;padding-right:38px}
.field input[type=checkbox]{width:auto;min-height:0}
/* A field can carry a mark at its head — the envelope on the sign-in's email box. It is set
   over the control rather than beside it, so the label above still points at the input. */
.field .lead{position:relative;display:flex;align-items:center}
.field .lead > svg{position:absolute;left:15px;width:17px;height:17px;color:var(--muted-2);pointer-events:none}
.field .lead input{padding-left:44px}
.field .lead:focus-within > svg{color:var(--gold)}
.check{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:16.5px;color:var(--text)}
.check input{width:18px;height:18px;accent-color:var(--gold)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.form-grid .full{grid-column:1 / -1}
.form-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}
.dropzone{border:1px dashed var(--gold-line);border-radius:var(--radius-sm);padding:18px;text-align:center;color:var(--muted);cursor:pointer;background:rgba(226,179,79,.03)}
.dropzone:hover{border-color:var(--gold);color:var(--ivory)}
.thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.thumb{position:relative;width:96px;height:96px;border-radius:12px;overflow:hidden;border:1px solid var(--gold-dim);background:var(--mat);display:grid;place-items:center;font-size:15px;color:var(--muted);text-align:center;padding:6px}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb button{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.7);color:#fff;cursor:pointer;font-size:14.5px;line-height:1}

/* ---- boot & auth ---- */
.boot{
  position:fixed;inset:0;z-index:1000;min-height:100vh;min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;padding:max(28px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom));
  text-align:center;color:#2d261d;overflow:hidden;
  background:
    radial-gradient(circle at 50% 41%,rgba(222,174,76,.13),transparent 27%),
    radial-gradient(circle at 50% 100%,rgba(190,143,52,.08),transparent 45%),
    linear-gradient(180deg,#faf4e8 0%,#f5ecdb 55%,#efe4d0 100%);
}
.boot-seal-stage{
  position:relative;width:clamp(210px,42vw,310px);height:clamp(210px,42vw,310px);aspect-ratio:1/1;border-radius:50%;
  overflow:hidden;isolation:isolate;flex:0 0 auto;
}
.boot-seal{
  display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
  aspect-ratio:1/1;object-fit:contain;object-position:center;opacity:1;
  animation:none!important;filter:none!important;box-shadow:none!important;
}
.boot-seal-stage::after{content:none}
.boot-title{
  margin:10px 0 0;color:#815913;font-size:clamp(15px,2.1vw,18px);
  letter-spacing:.23em;font-weight:650;
}
.boot-note{
  margin:0;color:#4a4136;font-family:var(--serif);font-size:clamp(21px,3vw,29px);
  line-height:1.2;letter-spacing:.015em;
}

@media(max-width:520px){
  .boot{justify-content:center;gap:12px;padding-inline:22px}
  .boot-seal-stage{width:min(70vw,286px);height:min(70vw,286px)}
  .boot-title{margin-top:8px}
  .boot-note{font-size:clamp(21px,6.1vw,27px)}
}

/* The one box. Its label carries the little (i); its right end carries the eye. */
.door-field .label-row{display:flex;align-items:center;gap:8px}
.door-field .lead input{padding-right:48px}
.peek{position:absolute;right:8px;top:50%;width:32px;height:32px;margin-top:-16px;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:var(--muted-2);cursor:pointer}
.peek:hover,.peek[aria-pressed="true"]{color:var(--gold)}
.peek svg{width:17px;height:17px}
.info{display:inline-grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:var(--glass-strong);color:var(--muted-2);cursor:pointer;flex:none}
.info svg{width:13px;height:13px}
.info:hover,.info[aria-expanded="true"]{color:var(--gold);background:var(--gold-dim)}
.pop{margin:8px 0 2px;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--gold-line);background:var(--glass-strong);font-size:15.5px;line-height:1.5;color:var(--text)}
.pop[hidden]{display:none}
.pop strong{color:var(--ivory)}
.remember-row{display:flex;align-items:center;gap:6px;margin:-4px 0 10px}
.remember-row .check{padding:6px 0;font-size:16px}
.linklike{padding:0;border:0;background:none;font:inherit;font-size:15.5px;font-weight:600;color:var(--gold);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.linklike:hover{color:var(--gold-light)}
.passkey-link{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:14px;text-decoration:none;font-weight:700;font-size:15px}
.passkey-link svg{width:16px;height:16px}
.passkey-link[hidden]{display:none}
/* Step two of the door: who the House takes this to be, and the way to correct it. */
.whoami{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--glass-edge);font-size:15.5px}
.whoami[hidden]{display:none}
.whoami svg{width:16px;height:16px;flex:none;color:var(--muted-2)}
.whoami .addr{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--text)}
.whoami .change{flex:none;padding:0;border:0;background:none;font:inherit;font-size:14.5px;font-weight:700;color:var(--gold);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.whoami .change:hover{color:var(--gold-light)}
/* The passkey lane at the head of the door, and the rule that separates it from the six digits. */
.passkey-lane[hidden]{display:none}
.passkey-lane .btn-go{margin-bottom:4px}
.or{display:flex;align-items:center;gap:12px;margin:16px 0 14px;color:var(--muted-3);font-size:13px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;white-space:nowrap}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--gold-dim)}
/* The offer of Face ID, on the screen after the first sign-in. */
.offer{text-align:center}
.offer-mark{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 14px;border-radius:50%;background:var(--gold-dim);color:var(--gold)}
.offer-mark svg{width:30px;height:30px}
.offer .lede{font-size:17px;text-align:left}
.offer-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.offer-note{margin-top:12px}
/* Six digits want to be read as six digits, not as prose. */
.field input[inputmode="numeric"]{font-family:var(--mono);letter-spacing:.34em;font-size:19px}
.field input[inputmode="numeric"]::placeholder{font-family:var(--sans);letter-spacing:0;font-size:16.5px}

/* ---- shell ---- */
.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh;background:linear-gradient(var(--gold-dim),var(--gold-dim)) calc(var(--sidebar) - 1px) 0/1px 100% no-repeat,var(--rail) 0 0/var(--sidebar) 100% no-repeat}
.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;padding:26px 18px 22px}
/* The chapter's mark, then its name, then where it sits. Set rather than stacked, so the rail
   reads as a masthead rather than as an app's logo lockup. */
.brand{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 6px 22px;margin-bottom:18px;text-align:center}
.brand:hover{color:inherit}
/* The chapter's seal. A raster mark with its own gold rim, so it takes no border, no background
   and no shadow from the portal — the seal already has all three drawn into it. */
.seal-mark{width:78px;height:auto;display:block;border-radius:50%}
.brand .seal-mark{width:86px;margin-bottom:2px}
/* Half again as large. It is the chapter's own seal and the first thing a brother sees; at 104px
   it read as a bullet beside the wordmark rather than as the mark itself. */
.mono{width:74px;height:auto;display:block}
.mono text{font-family:var(--serif);fill:var(--gold)}
.mono .mono-m{font-size:60px;letter-spacing:-.02em}
.mono .mono-s{font-size:36px;opacity:.92}
.mono .mono-l{fill:var(--gold);opacity:.92}
.mono .mono-rule{stroke:var(--gold);stroke-width:1.4;opacity:.55}
.brand .name{margin-top:8px;font-size:14px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--ivory)}
/* House 512 sits between the chapter's name and its city, in the chapter's gold — it is what the
   brothers call this place, and it is the only line of the three that is theirs alone.
   `.house-name` rather than `.house`: that one already belongs to the dashboard's own grid, and
   a brand span inheriting `display:grid` from it put the words through the side of the rail. */
.brand .house-name{margin-top:3px;font-family:var(--serif);font-size:16px;font-weight:700;letter-spacing:.02em;color:var(--gold)}
.brand .place{margin-top:3px;font-size:12.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-2)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav.secondary{margin-top:14px;padding-top:14px;border-top:1px solid var(--gold-dim)}
.nav.secondary a{padding:8px 12px;font-size:15px;font-weight:600;color:var(--muted-2)}
.nav.secondary a svg{width:15px;height:15px}
/* The four words the chapter runs on, and the verse under them. */
.creed{margin-top:auto;padding:22px 12px 0;display:flex;flex-direction:column;gap:5px}
/* --muted-2, not --muted-3: at 9.5px with a quarter-em of tracking this is the smallest type in
   the portal, and --muted-3 left the chapter's own creed at 3.46:1 in the rail. */
.creed span{font-size:12.5px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--muted-2)}
.scripture{padding:18px 12px 0;margin-top:14px;border-top:1px solid var(--gold-dim)}
.scripture p{font-family:var(--serif);font-style:italic;font-weight:500;font-size:15px;color:var(--muted-2);line-height:1.5}
.scripture .cite{font-family:var(--sans);font-style:normal;font-size:12.5px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--muted-3);margin-top:6px}
.nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;color:var(--muted);font-weight:600;font-size:16.5px;position:relative}
.nav a svg{width:18px;height:18px;opacity:.85}
.nav a:hover{color:var(--ivory);background:rgba(var(--tint),.03)}
.nav a.active{color:var(--ivory);background:rgba(226,179,79,.09)}
.nav a.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--gold)}
/* A section heading in the rail, set on its own hairline so the groups read as groups rather
   than as a list that happens to have gaps in it. */
.nav .section{display:flex;align-items:center;gap:10px;margin:20px 12px 8px;font-size:13px;letter-spacing:.19em;text-transform:uppercase;color:var(--muted-2);font-weight:800}
.nav .section::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--gold-dim),transparent)}
.roll-chip{display:none}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;padding:14px var(--gutter);padding-top:max(14px,env(safe-area-inset-top));background:var(--header);backdrop-filter:blur(14px);border-bottom:1px solid var(--gold-line)}
.topbar .titles{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.topbar .who{display:flex;align-items:center;gap:10px;flex:none;white-space:nowrap}
.topbar .who .name{font-weight:700;font-size:16px;color:var(--ivory)}
.topbar .who .role{font-size:13px;color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-weight:800}
.topbar .datestamp{text-align:right;line-height:1.4;white-space:nowrap;flex:none}
.topbar .datestamp .day{font-family:var(--mono);font-size:14.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ivory)}
.topbar .datestamp .place{font-family:var(--mono);font-size:13px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2)}
/* Search reaches the chapter's places and the brothers on the roll. */
.search{position:relative;display:flex;align-items:center;gap:10px;flex:0 1 420px;min-width:0;padding:0 18px;height:44px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-edge);box-shadow:var(--glass-lit)}
.search:focus-within{border-color:rgba(226,179,79,.45)}
.search svg{width:17px;height:17px;color:var(--muted-2);flex:none}
.search input{flex:1;min-width:0;border:0;background:none;color:var(--text);font:inherit;font-size:16px;outline:none}
.search input::placeholder{color:var(--muted-3)}
.search input::-webkit-search-cancel-button{-webkit-appearance:none}
.search .results{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:40;padding:6px;border-radius:var(--radius-sm);background:var(--pane-solid);border:1px solid var(--pane-edge);box-shadow:var(--depth-lift);max-height:min(60vh,420px);overflow:auto}
.search .results[hidden]{display:none}
.search .results a{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:var(--text);font-size:16px}
.search .results a svg{width:16px;height:16px;color:var(--gold)}
.search .results a span{display:flex;flex-direction:column;min-width:0}
.search .results a .small{color:var(--muted-2)}
.search .results a:hover,.search .results a.on{background:rgba(226,179,79,.12);color:var(--ivory)}
.wx-chip{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;border:1px solid var(--gold-dim);background:rgba(var(--tint),.02);font-size:15.5px;color:var(--muted)}
.wx-chip[hidden]{display:none}
.wx-chip svg{width:20px;height:20px;color:var(--gold-light)}.wx-chip strong{color:var(--ivory);font-family:var(--serif);font-size:19px}
.view{padding:24px var(--gutter) 40px;padding-left:max(var(--gutter),env(safe-area-inset-left));padding-right:max(var(--gutter),env(safe-area-inset-right));max-width:1560px;width:100%;margin-inline:auto}
/* The chapter's name at the foot of every screen, the way it sits at the foot of a programme. */
.colophon{display:flex;align-items:center;gap:26px;padding:22px var(--gutter) 96px;max-width:1560px;width:100%;margin-inline:auto;color:var(--muted-3)}
.colophon nav{display:flex;flex-wrap:wrap;gap:16px;flex:1}
/* --muted-2: at 9.5px in small caps these measured 4.43–4.46:1 on paper, just under. */
.colophon nav a{font-size:12.5px;font-weight:800;letter-spacing:.14em;white-space:nowrap;text-transform:uppercase;color:var(--muted-2);position:relative;padding-bottom:10px}
.colophon nav a:hover{color:var(--gold)}
.colophon nav a.active{color:var(--text)}
.colophon nav a.active::after{content:"";position:absolute;left:50%;bottom:0;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--gold)}
.colophon .seal{flex:none;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--pane);border:1px solid var(--pane-edge);box-shadow:var(--depth)}
.colophon .seal .mono{width:38px}
.colophon .est{flex:1;display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.colophon .est span{font-family:var(--mono);font-size:12.5px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2)}
.view > .card,.view > .grid{margin-bottom:18px}
.tabbar{display:none}

/* ---- dashboard ---- */
.status-pill{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;border:1px solid var(--gold-dim);background:rgba(var(--shade),.25);font-size:15.5px}
.status-pill .lbl{color:var(--muted-2);font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:800}
.weather{display:flex;flex-direction:column;gap:12px}
.weather .now{display:flex;align-items:center;gap:16px}.weather .now svg{width:52px;height:52px;color:var(--gold-light)}
.weather .temp{font-family:var(--serif);font-weight:700;font-size:56px;line-height:1;color:var(--ivory)}.weather .cond{color:var(--muted)}
.weather .days{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:4px}
.weather .day{text-align:center;font-size:14.5px;color:var(--muted-2);padding:8px 4px;border-radius:12px;background:rgba(var(--tint),.025)}
.weather .day svg{width:22px;height:22px;color:var(--gold-2);display:block;margin:4px auto}.weather .day b{color:var(--ivory)}
.alert{padding:10px 12px;border-radius:12px;border:1px solid rgba(226,162,63,.5);background:rgba(226,162,63,.1);font-size:15.5px}
.news .item .title{font-weight:600;font-size:16.5px;line-height:1.35;white-space:normal}
.celebration{display:flex;align-items:center;gap:12px}
.celebration .date{flex:none;width:52px;text-align:center;border-radius:12px;padding:6px 0;background:rgba(226,179,79,.08);border:1px solid var(--gold-dim)}
.celebration .date b{display:block;font-family:var(--serif);font-weight:700;font-size:22px;color:var(--gold-light);line-height:1}.celebration .date span{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}

/* ---- calendar ---- */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.cal-head .row{flex-wrap:wrap}
.cal-head h2{font-size:28px}
.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.month-grid .dow{text-align:center;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-3);font-weight:800;padding:6px 0}
.month-grid .day{min-height:96px;padding:8px;border-radius:12px;background:rgba(var(--tint),.02);border:1px solid rgba(var(--tint),.04);display:flex;flex-direction:column;gap:4px}
.month-grid .day.other{opacity:.35}.month-grid .day.today{border-color:var(--gold);background:rgba(226,179,79,.07)}
.month-grid .day .num{font-size:14.5px;color:var(--muted-2);font-weight:700}
.month-grid .day button.num{width:100%;min-height:44px;padding:0;justify-content:flex-start}
.month-grid .day:has(button.num[aria-pressed="true"]){border-color:var(--gold);background:var(--gold-dim)}
.month-grid .day.today .num{color:var(--gold-light)}
.ev{display:block;font-size:15px;line-height:1.3;padding:3px 7px;border-radius:7px;background:rgba(226,179,79,.14);color:var(--ivory);border-left:2px solid var(--gold);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev.CHAPTER_MEETING{border-left-color:var(--gold)}.ev.EXECUTIVE_BOARD{border-left-color:#d7b36a}.ev.COMMUNITY_SERVICE{border-left-color:var(--green)}.ev.SOCIAL{border-left-color:var(--blue)}.ev.FRATERNITY{border-left-color:#c996ff}.ev.DEADLINE{border-left-color:var(--red)}.ev.COMMITTEE{border-left-color:var(--amber)}
.when{flex:none;width:64px;text-align:center;border-radius:12px;padding:8px 0;background:rgba(var(--tint),.03);border:1px solid rgba(var(--tint),.06)}
.when b{display:block;font-family:var(--serif);font-weight:700;font-size:24px;line-height:1;color:var(--ivory)}.when span{font-size:14.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}

/* ---- modal & toast ---- */
.modal-back{position:fixed;inset:0;z-index:1000;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center;padding:16px;backdrop-filter:blur(3px)}
.modal{width:min(100%,560px);max-height:calc(100vh - 32px);overflow:auto;background:linear-gradient(180deg,#17130f,#0d0b09);border:1px solid rgba(226,179,79,.4);border-radius:24px;padding:24px;box-shadow:0 24px 70px rgba(var(--shade),.6)}
.modal.wide{width:min(100%,820px)}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.modal-head h2{font-size:26px}
.toast{position:relative;padding:12px 16px;border-radius:14px;background:#17130f;border:1px solid var(--gold-line);color:var(--ivory);font-size:16.5px;box-shadow:var(--shadow);animation:rise .25s ease}
.toast.error{border-color:rgba(210,87,79,.6)}.toast.ok{border-color:rgba(79,179,122,.5)}
#toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1100;display:flex;flex-direction:column;gap:8px;width:min(92vw,480px)}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.noscript{padding:40px;text-align:center;color:var(--ivory)}
.skeleton{height:14px;border-radius:7px;background:linear-gradient(90deg,rgba(var(--tint),.04),rgba(var(--tint),.09),rgba(var(--tint),.04));background-size:200% 100%;animation:shimmer 1.4s infinite}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.spinner{width:22px;height:22px;border-radius:50%;border:2px solid rgba(226,179,79,.25);border-top-color:var(--gold);animation:spin .8s linear infinite;margin:20px auto}
@keyframes spin{to{transform:rotate(360deg)}}
.motion-table td:first-child{font-weight:700;color:var(--ivory)}
.yes{color:var(--tone-green);font-weight:800}.no{color:var(--muted-3)}

/* ============================================================================
   Three registers: a desk, a tablet held in two hands, a phone held in one.

   The old stylesheet had two — everything above 960px and everything below —
   which meant an iPad in portrait was treated as a large phone: one column of
   full-width cards down an 834px screen, with three-quarters of the room spent
   on margins. What follows gives the tablet a register of its own. The rail
   still gives way to the bar at the foot, because a 272px rail on an 834px
   screen leaves too little for the work; but the tiles stay in columns, the
   gutters stay wide, and the topbar keeps the brother's name and the weather.

   Only the tokens change at each step wherever that is enough, so the three
   registers cannot drift apart rule by rule.
   ============================================================================ */
@media (min-width:961px){.modal-back{align-items:center}}

/* ---- a narrow desk: the rail narrows before the content does ---- */
@media (max-width:1180px){
  :root{--sidebar:252px;--gutter:28px;--gap:18px}
  .grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.main-aside{grid-template-columns:1fr}
}

/* ---- a tablet: no rail, but the room is still a room ---- */
@media (max-width:960px){
  :root{--gutter:26px;--gap:18px;--stack:14px;--pad:22px}
  .shell{grid-template-columns:1fr;background:none}
  .sidebar{display:none}
  .view{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .colophon{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
  /* Four tiles go two by two rather than four deep; three stay three across
     while there is room for them, which on a tablet there is. */
  .grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid.cols-3:has(> .card){grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
  .month-grid .day{min-height:76px}
  /* The bar at the foot is a set of destinations, not a stretched ribbon. */
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-auto-flow:column;justify-content:center;gap:8px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--bar);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid rgba(226,179,79,.18)}
  .tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:104px;min-height:52px;padding:6px 4px;border:0;background:none;color:var(--muted-2);font-size:14.5px;font-weight:700;letter-spacing:.04em;border-radius:14px}
  .tabbar a.active{color:var(--gold-light);background:var(--glass)}
  .tabbar svg{width:20px;height:20px}
}

/* ---- a phone: one hand, one column, and the thumb at the foot ---- */
@media (max-width:700px){
  :root{--gutter:18px;--gap:14px;--stack:12px;--pad:20px}
  .topbar{gap:10px}
  .topbar h1{font-size:23px}
  .topbar .who .name,.topbar .who .role{display:none}
  .wx-chip{display:none}
  .topbar .datestamp{display:none}
  /* Prose wants the full width; figures are better two by two than four deep. */
  .grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}
  .grid.cols-3:has(> .kpi),.grid.cols-4:has(> .kpi){grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .grid.tiles .kpi{padding:14px}
  .grid.tiles .kpi .value{font-size:24px}
  .grid.tiles .kpi .label{font-size:13px}
  .form-grid{grid-template-columns:1fr}
  .view{padding-top:18px}
  .kpi{padding:15px 16px}
  .kpi .value{font-size:27px}
  .month-grid .day{min-height:58px;padding:5px}
  .month-grid .ev{font-size:0;padding:0;height:6px;width:6px;border-radius:50%;border:0;background:var(--gold);display:inline-block;margin-right:3px}
  .month-grid .ev.COMMUNITY_SERVICE{background:var(--green)}.month-grid .ev.SOCIAL{background:var(--blue)}.month-grid .ev.FRATERNITY{background:#c996ff}.month-grid .ev.DEADLINE{background:var(--red)}
  /* A heading and its buttons do not fit side by side on a phone; stacking them keeps the
     sentence readable rather than squeezing it into a column three words wide. */
  .card-head{flex-direction:column;align-items:stretch;gap:12px}
  .card-head .actions{justify-content:flex-start}
  .card-head .actions .field{flex:1}
  /* A row's badges drop under the name rather than off the side of the screen. */
  .list > .item{flex-wrap:wrap}
  .item .aside{width:100%;align-items:flex-start;text-align:left;padding-left:54px}
  .item .aside .row{justify-content:flex-start}
  .table th:nth-child(n+4),.table td:nth-child(n+4){display:none}
  .table.keep-all th,.table.keep-all td{display:table-cell}
  .tabbar{grid-auto-flow:unset;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
  .tabbar a,.tabbar button{width:auto}
}

/* ---- anything tapped rather than clicked ----
   Sized by how the portal is being touched rather than by how wide the window
   is, so a touch laptop and a phone both get a target a thumb can find. */
@media (pointer:coarse){
  .btn{min-height:46px}
  .btn-sm{min-height:42px;padding:0 16px}
  .icon-btn{width:44px;height:44px}
  .chip{min-height:42px;padding:8px 16px}
  .tabs button{min-height:46px}
  .peek{width:40px;height:40px;margin-top:-20px}
  .info{width:26px;height:26px}
  .info svg{width:15px;height:15px}
  .list > .item{padding:16px 0}
}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* ============================================================================
   Glass surfaces
   One pass over the panels that carry content. Colours and sizes come from the
   tokens above, so both themes and every contrast decision still hold; what
   changes is the material: a translucent pane, a lit top edge, and depth.
   ============================================================================ */
.card,.kpi,.modal,.wx-chip,.chip,.thumb,.dropzone,.month-grid .day,.when,.celebration .date,.seal,.notice,.status-pill,.tabs,.field input,.field select,.field textarea,.input{
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}

.card{background:linear-gradient(160deg,var(--glass),var(--glass-2));border:1px solid var(--glass-edge);box-shadow:var(--depth),var(--glass-lit);transition:box-shadow .32s var(--ease),border-color .32s var(--ease),transform .32s var(--ease)}
.card:hover{border-color:rgba(226,179,79,.26);box-shadow:var(--depth-lift),var(--glass-lit)}
.card.gold{background:linear-gradient(150deg,rgba(226,179,79,.20),rgba(183,121,33,.07) 52%,var(--glass-2));border-color:rgba(226,179,79,.34)}
.card.tight{box-shadow:var(--depth)}

.kpi{background:linear-gradient(160deg,var(--glass),transparent);border:1px solid var(--glass-edge);box-shadow:var(--glass-lit);transition:border-color .3s var(--ease),background .3s var(--ease)}
.kpi:hover{border-color:rgba(226,179,79,.24);background:linear-gradient(160deg,var(--glass-strong),transparent)}

.shell{background:linear-gradient(var(--glass-edge),var(--glass-edge)) calc(var(--sidebar) - 1px) 0/1px 100% no-repeat,var(--rail) 0 0/var(--sidebar) 100% no-repeat}
.sidebar{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}
.nav a{transition:background .22s var(--ease),color .22s var(--ease),transform .22s var(--ease)}
.nav a:hover{transform:translateX(2px)}
/* The room he is standing in. Lit glass rather than a highlight: the gold runs out of the left
   edge and fades, which is the same gesture the rail itself makes down its height. */
.nav a.active{background:linear-gradient(90deg,rgba(226,179,79,.22),rgba(226,179,79,.05) 62%,transparent);border:1px solid rgba(226,179,79,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.nav a.active svg{opacity:1;color:var(--gold)}

.topbar{background:var(--header);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-edge)}
/* --bar-glass, not a literal: this was a fixed dark fill with no light-theme counterpart, so on
   paper every screen but the dashboard — which sets its own through [data-house="on"] — put dark
   brown labels on a dark brown bar at 1.02:1. It had never been measured at phone width in the
   light theme, which is the only place it shows. */
.tabbar{background:var(--bar-glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-top:1px solid var(--glass-edge)}
.modal{background:var(--pane);border:1px solid var(--pane-edge);box-shadow:0 30px 80px rgba(var(--shade),.66),var(--glass-lit)}
.modal-back{background:rgba(6,5,4,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

.btn{background:linear-gradient(160deg,var(--glass),transparent);transition:border-color .22s var(--ease),background .22s var(--ease),transform .12s var(--ease),box-shadow .22s var(--ease)}
.btn:hover{background:linear-gradient(160deg,var(--glass-strong),var(--glass-2));box-shadow:var(--glass-lit)}
.btn-primary,.btn-primary:hover{background:var(--solid);color:var(--on-solid)}
.btn-primary{box-shadow:var(--depth),inset 0 1px 0 rgba(255,255,255,.14)}
.btn-primary:hover{box-shadow:var(--depth-lift),inset 0 1px 0 rgba(255,255,255,.18)}
.btn-ghost{background:none}.btn-ghost:hover{background:var(--glass-2)}

.field input,.field select,.field textarea,.input{background:rgba(var(--tint),.035);border-color:var(--glass-edge)}
.field input:focus,.field select:focus,.field textarea:focus,.input:focus{background:rgba(var(--tint),.055)}

.status-pill{background:rgba(var(--shade),.26);border-color:var(--glass-edge)}
.month-grid .day{background:var(--glass-2);border-color:rgba(var(--tint),.055);transition:background .22s var(--ease),border-color .22s var(--ease)}
.month-grid .day:hover{background:var(--glass);border-color:rgba(226,179,79,.20)}
.month-grid .day.today{background:linear-gradient(160deg,rgba(226,179,79,.14),var(--glass-2));border-color:rgba(226,179,79,.46)}
.ev{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .18s var(--ease),background .18s var(--ease)}
.ev:hover{transform:translateY(-1px);background:rgba(226,179,79,.24)}
.list > .item.link,.table tr.link{transition:background .2s var(--ease)}
.list > .item.link:hover{background:var(--glass-2);border-radius:10px}
.avatar{background:var(--avatar-bg);box-shadow:var(--glass-lit)}
.progress{background:rgba(var(--tint),.07);box-shadow:inset 0 1px 2px rgba(var(--shade),.35)}
.progress > span{box-shadow:0 0 14px rgba(226,179,79,.42)}
.toast{background:var(--toast-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--depth-lift)}

/* Views arrive with a short settle rather than a jump. They start visible, so the page is
   complete even if the animation never runs. */
@keyframes settle{from{opacity:.001;transform:translateY(7px)}to{opacity:1;transform:none}}
.view > *{animation:settle .34s var(--ease) both}
.view > *:nth-child(2){animation-delay:.04s}
.view > *:nth-child(3){animation-delay:.08s}
.view > *:nth-child(n+4){animation-delay:.11s}

@media (prefers-reduced-motion:reduce){
  .view > *{animation:none}
  .card,.btn,.nav a,.ev,.kpi{transition:none}
}
/* Backdrop blur is costly on a long grid; drop it on phones and keep the colour. */
@media (max-width:960px){
  .kpi,.chip,.thumb,.month-grid .day,.when,.celebration .date,.field input,.field select,.field textarea,.input{-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* ---- shared album, meeting notes ---- */
/* Photographs read best edge to edge, so the tiles carry the glass frame rather than sitting
   inside one. A tile is a button: the whole picture is the target, on a phone as much as a desk. */
.mosaic{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.mosaic.review{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.tile{position:relative;display:block;aspect-ratio:1;padding:0;border:1px solid var(--glass-edge);border-radius:var(--radius-sm);overflow:hidden;background:var(--mat);cursor:pointer;box-shadow:var(--depth);transition:transform .26s var(--ease),box-shadow .26s var(--ease),border-color .26s var(--ease)}
.tile:hover,.tile:focus-visible{transform:translateY(-3px);border-color:rgba(226,179,79,.42);box-shadow:var(--depth-lift)}
.tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.tile:hover img{transform:scale(1.045)}
.tile .veil{position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(8,7,6,.86));opacity:.78;transition:opacity .26s var(--ease)}
.tile:hover .veil{opacity:.95}
.tile .meta{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:2px;padding:10px 12px;text-align:left}
.tile .cap{font-size:15.5px;font-weight:600;color:var(--ivory);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile .by{font-size:15px;color:var(--muted-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile .flag{position:absolute;top:8px;left:8px}
.lightbox{margin:0;border-radius:var(--radius-sm);overflow:hidden;background:#0a0908;border:1px solid var(--glass-edge);display:grid;place-items:center}
.lightbox img{max-width:100%;max-height:min(66vh,720px);display:block;object-fit:contain}

/* ---- the date, and the sky over Tacoma ----
   The chapter meets in person and serves outdoors, so both of these are chapter business. The
   date leads the greeting because a man opening the portal on a Tuesday evening wants to know
   what day it is before he wants to know anything else. */
.hero-date{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 10px;margin:0 0 12px}
.hero-date .weekday{font-family:var(--serif);font-weight:600;font-size:clamp(23px,2vw,29px);line-height:1;color:var(--on-mat)}
.hero-date .rest{font-family:var(--mono);font-size:14px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--on-mat-gold)}

.wx .card-head{margin-bottom:10px}
.wx-alert{display:flex;align-items:flex-start;gap:9px;margin-bottom:12px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid rgba(226,162,63,.5);background:rgba(226,162,63,.09);font-size:15.5px}
.wx-alert svg{width:15px;height:15px;flex:none;color:var(--amber);margin-top:2px}
.wx-alert span{display:flex;flex-direction:column;gap:2px;min-width:0}
.wx-alert strong{color:var(--ivory)}
.wx-now{display:flex;align-items:center;gap:14px;padding:4px 0 16px}
.wx-mark{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--gold-dim);color:var(--gold-light)}
.wx-mark svg{width:24px;height:24px}
.wx-temp{font-family:var(--serif);font-weight:700;font-size:46px;line-height:.9;color:var(--ivory)}
.wx-temp .deg{font-size:28px;vertical-align:super;line-height:1}
.wx-said{display:flex;flex-direction:column;gap:2px;min-width:0}
.wx-said strong{font-size:17px;color:var(--text)}
/* Five days as a table rather than five little cards: the eye runs down the highs. */
.wx-days{display:grid;gap:2px;padding-top:12px;border-top:1px solid var(--gold-dim)}
.wx-day{display:grid;grid-template-columns:4.5ch 22px 1fr auto auto;align-items:center;gap:10px;padding:7px 2px;font-size:15.5px}
.wx-day + .wx-day{border-top:1px solid rgba(var(--tint),.05)}
.wx-when{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
.wx-ic{display:grid;place-items:center;color:var(--gold-2)}
.wx-ic svg{width:17px;height:17px}
.wx-hi{justify-self:end;font-weight:700;color:var(--ivory);font-variant-numeric:tabular-nums}
.wx-lo{justify-self:end;min-width:4ch;text-align:right;color:var(--muted-2);font-variant-numeric:tabular-nums}
.wx-wet{justify-self:end;min-width:5ch;text-align:right;font-size:14px;color:var(--blue);font-variant-numeric:tabular-nums}
.wx-wet.dry{color:transparent}
.wx-from{margin:12px 0 0;font-size:14px;color:var(--muted-2)}

/* ---- asking the House ----
   The question box on The House, the one inside The Book, and the answers either of them gives.
   An answer is a row rather than a card: a citation, the words the match sits in, and which of the
   two documents it came from, so a brother can read it in the room without opening anything. */
/* The question box floats above everything below it on the screen, because what it suggests
   hangs down over the hero and must not be painted under it. */
.ask{position:relative;z-index:30;margin-bottom:var(--gap)}
.ask-bar{position:relative;z-index:2;display:flex;align-items:center;gap:12px;padding:0 18px;min-height:56px;border-radius:999px;background:var(--glass-strong);border:1px solid var(--glass-edge);box-shadow:var(--glass-lit)}
.ask-bar:focus-within{border-color:rgba(226,179,79,.45)}
.ask-bar > svg{width:19px;height:19px;flex:none;color:var(--muted-2)}
.ask-bar input{flex:1;min-width:0;border:0;background:none;color:var(--text);font:inherit;font-size:17.5px;outline:none}
.ask-bar input::placeholder{color:var(--muted-3)}
.ask-bar input::-webkit-search-cancel-button{-webkit-appearance:none}
.ask-clear{flex:none;display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:var(--glass);color:var(--muted-2);cursor:pointer}
.ask-clear[hidden]{display:none}
.ask-clear:hover{color:var(--gold)}
.ask-clear svg{width:15px;height:15px}
.ask-foot{position:relative;z-index:1;display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin:10px 4px 0;font-size:15px;color:var(--muted-2)}

/* ---- what the box suggests, while he types ----
   Hung under the bar rather than pushing the screen down, because a brother mid-question should
   not have the House move beneath him. It is opaque, not glass: these are words to read at a
   glance, and a photograph showing through them would cost the reading to save an effect. */
.ask-results{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;
  max-height:min(62vh,520px);overflow-y:auto;overscroll-behavior:contain;
  padding:6px;border-radius:18px;border:1px solid var(--pane-edge);
  background:var(--pane-solid);box-shadow:var(--depth-lift)}
.ask-results[hidden]{display:none}
.ask-results > a{display:flex;align-items:flex-start;gap:12px;padding:11px 12px;border-radius:12px;
  border:1px solid transparent;color:var(--text);text-decoration:none}
.ask-results > a.on,.ask-results > a:hover{background:var(--glass);border-color:var(--glass-edge)}
.ask-results > a.on{border-color:rgba(226,179,79,.40)}
.ans-mark{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--gold-dim);color:var(--gold)}
.ans-mark svg{width:15px;height:15px}
.ans-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.ans-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 10px}
.ans-head strong{font-size:17px;color:var(--ivory)}
.ans-head .cite{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--gold)}
/* Two lines of the passage, no more: enough to recognise the clause, not enough to become the
   page. The whole of it is one press away. */
.ans-text{font-size:15.5px;line-height:1.5;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:700px){ .ask-results{max-height:56vh} }
.answer{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid transparent;color:var(--text)}
.answer:hover,.answer:focus-visible{background:var(--glass);border-color:var(--glass-edge);color:var(--text)}
.answer-mark{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--gold-dim);color:var(--gold)}
.answer-mark svg{width:16px;height:16px}
.answer-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.answer-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
.answer-head strong{color:var(--ivory);font-size:17px}
.answer .cite{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.answer-text{font-size:16px;line-height:1.55;color:var(--muted)}
.answer-doc{font-size:15px;color:var(--muted-3)}
mark{background:rgba(226,179,79,.26);color:var(--ivory);border-radius:3px;padding:0 2px}

/* ---- The Book ----
   A reading surface rather than a page of an app: one measure, generous leading, and nothing in
   the margins competing with the words. The two modes share a stylesheet because they share a
   DOM — `paged` turns the same flow into columns as wide as the viewport, which is what lets a
   highlight, a search result and a bookmark work identically in both. */
.reader{margin-top:var(--gap);border-radius:var(--radius);border:1px solid var(--glass-edge);background:linear-gradient(160deg,var(--glass),var(--glass-2));box-shadow:var(--depth),var(--glass-lit);overflow:hidden}
.reader-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px var(--pad);border-bottom:1px solid var(--glass-edge);background:var(--header);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}
.reader-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.seg{display:flex;padding:3px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-edge)}
.seg button{display:flex;align-items:center;gap:6px;min-height:34px;padding:0 13px;border:0;border-radius:999px;background:none;color:var(--muted-2);font:inherit;font-size:15px;font-weight:700;cursor:pointer}
.seg button.on{background:var(--glass-strong);color:var(--ivory)}
.seg button svg{width:15px;height:15px}
.seg .tiny{font-size:14.5px}.seg .big{font-size:16.5px}
.resume{display:flex;align-items:center;gap:8px;width:100%;padding:11px var(--pad);border:0;border-bottom:1px solid var(--glass-edge);background:rgba(226,179,79,.07);color:var(--text);font:inherit;font-size:16px;text-align:left;cursor:pointer}
.resume:hover{background:rgba(226,179,79,.13)}
.resume svg{width:15px;height:15px;color:var(--gold);flex:none}
.resume strong{color:var(--ivory)}

.surface{padding:26px var(--pad) 30px}
.flow{transition:transform .32s var(--ease)}
.reader.paged .surface{overflow:hidden;padding-bottom:10px}
.reader.paged .flow{column-fill:auto;height:100%}
/* A column break in the middle of a heading strands it at the foot of a page. */
.reader.paged .law-article-head,.reader.paged .law-section h4,.reader.paged .law-section .cite{break-after:avoid;break-inside:avoid}
.reader.paged .law-section{break-inside:auto}
.reader.focus .surface{padding-top:clamp(34px,6vw,72px);padding-bottom:clamp(38px,7vw,84px)}
.reader.focus .law-article{display:block;margin:0}
.reader.focus .law-article + .law-article{margin-top:0}
.reader.focus .law-article-head{display:none}
.reader.focus .law-section{display:none;max-width:760px;margin:0 auto}
.reader.focus .law-section.focused{display:block}
.reader.focus .law-section .cite{justify-content:center;margin-bottom:10px}
.reader.focus .law-section h4{text-align:center;font-size:clamp(24px,3vw,34px);margin-bottom:22px}
.reader.focus .law-body{max-width:58ch;margin:0 auto;font-size:var(--read-size,18px);line-height:1.9}
.turner{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 0 16px;border-top:1px solid var(--glass-edge);font-family:var(--mono);font-size:13.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.turner[hidden]{display:none}

.lawbook,.law-article{display:flex;flex-direction:column;gap:26px}
.law-article + .law-article{margin-top:30px}
.law-article-head{margin:0 0 2px;padding-bottom:10px;border-bottom:1px solid var(--gold-dim);font-size:17px;letter-spacing:.06em;color:var(--gold)}
.law-section{scroll-margin-top:110px;outline:0;border-radius:var(--radius-sm);transition:background .5s var(--ease)}
.law-section .cite{display:flex;align-items:center;gap:7px;margin:0 0 3px;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.law-section h4{margin:0 0 9px;font-size:22px;line-height:1.25;color:var(--ivory)}
.law-body{margin:0;max-width:66ch;white-space:pre-wrap;font-size:var(--read-size,18px);line-height:1.78;color:var(--text);letter-spacing:.004em;text-wrap:pretty}
.law-section.lit{background:rgba(226,179,79,.12)}

/* A word the books define. Marked in the running text with a rule beneath it rather than a colour,
   so a page of law does not read as a page of links, and so it sits under a brother's own
   highlight without fighting it for the same ink. */
.term{color:inherit;cursor:help;border-bottom:1px dotted var(--gold);padding-bottom:1px;border-radius:2px}
.term:hover,.term:focus-visible{background:rgba(226,179,79,.14);border-bottom-style:solid;outline:none}
.term:focus-visible{box-shadow:0 0 0 2px rgba(226,179,79,.45)}
mark.hl .term{border-bottom-color:rgba(20,22,30,.5)}
.define{display:grid;gap:12px}
.define-kind{margin:0;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.define.said .define-kind{color:var(--muted-2)}
.define-short{margin:0;font-size:20px;line-height:1.45;font-weight:600;color:var(--ivory)}
.define-long{margin:0;font-size:17px;line-height:1.7;color:var(--text)}
.define-cite{margin:0;padding-top:10px;border-top:1px solid var(--edge);font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--muted-2)}
.define-also{margin:0;font-size:15px;color:var(--muted-2)}
.define-warn{display:flex;gap:8px;align-items:flex-start;margin:0;padding:11px 13px;border-radius:10px;background:var(--glass);font-size:14px;line-height:1.55;color:var(--muted-2)}
.define-warn svg{width:16px;height:16px;flex:0 0 auto;margin-top:2px;color:var(--gold)}
.flagged svg,.flag-btn svg{width:13px;height:13px}
.flagged{color:var(--gold-light);display:inline-flex}
.flag-btn{margin-left:auto;display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:none;color:var(--muted-3);cursor:pointer}
.flag-btn:hover{color:var(--gold);background:var(--glass)}

/* A brother's own marks. Four colours, legible in ink and on paper, and never so strong that the
   words underneath stop being the point. */
.hl{background:rgba(226,179,79,.26);color:inherit;border-radius:3px;padding:.06em .1em;cursor:pointer;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hl.gold{background:rgba(226,179,79,.28)}
.hl.green{background:rgba(79,179,122,.26)}
.hl.blue{background:rgba(127,167,217,.26)}
.hl.rose{background:rgba(210,87,79,.24)}
.hl:hover{filter:brightness(1.12)}
.marked{margin:0 0 16px;padding:12px 16px;border-left:3px solid var(--gold);background:var(--glass);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:17px;line-height:1.7;color:var(--text)}
.swatch{width:30px;height:30px;padding:0;border:2px solid transparent;border-radius:50%;cursor:pointer;background:rgba(226,179,79,.5)}
.swatch.green{background:rgba(79,179,122,.55)}.swatch.blue{background:rgba(127,167,217,.55)}.swatch.rose{background:rgba(210,87,79,.5)}
.swatch.on{border-color:var(--gold);box-shadow:0 0 0 2px rgba(226,179,79,.28)}

/* What appears over a passage a brother has just selected. */
.sel-tools{position:absolute;z-index:60;display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:999px;background:var(--pane);border:1px solid var(--pane-edge);box-shadow:var(--depth-lift)}
.sel-tools[hidden]{display:none}

.toc{display:flex;flex-direction:column;gap:18px;max-height:min(66vh,620px);overflow:auto}
.toc-group{display:flex;flex-direction:column;gap:1px}
.toc-row{display:flex;align-items:baseline;gap:10px;width:100%;padding:9px 11px;border:0;border-radius:10px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.toc-row:hover{background:var(--glass)}
.toc-cite{flex:none;font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);min-width:9ch}
.toc-head{flex:1;font-size:16.5px}
.toc-row svg{width:13px;height:13px;color:var(--gold-light)}
.item .cite{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}

@media (max-width:700px){
  .ask-bar{min-height:52px;padding:0 14px}
  .ask-bar input{font-size:18px}   /* 16px or iOS zooms the page when the box is tapped */
  .reader-bar{padding:10px 14px;gap:8px}
  .hide-narrow{display:none}
  .surface{padding:20px 16px 24px}
  .law-body{font-size:var(--read-size,17px);line-height:1.75}
  .law-section h4{font-size:19.5px}
  .toc-cite{min-width:0;display:block}
  .toc-row{flex-direction:column;gap:2px}
}

/* ---- putting the House on a phone ----
   The invitation on The House is a strip rather than a card, so it reads as an aside to the room
   instead of another tile competing with the chapter's own figures; the full account in House Account
   is an ordinary card. The steps are numbered because on an iPhone they are the whole mechanism. */
.invite{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;margin-bottom:var(--gap);border-radius:var(--radius-sm);background:linear-gradient(160deg,var(--glass-strong),var(--glass-2));border:1px solid var(--glass-edge);box-shadow:var(--glass-lit)}
.invite-mark{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--gold-dim);color:var(--gold)}
.invite-mark svg{width:18px;height:18px}
.invite-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.invite-body strong{color:var(--ivory);font-size:17px}
.invite-body > span{font-size:15.5px;color:var(--muted-2)}
.invite .btn-go{margin-top:10px}
.steps{display:flex;flex-direction:column;gap:10px;margin:12px 0 0;padding:0;counter-reset:step;list-style:none}
.steps li{position:relative;display:flex;flex-direction:column;gap:1px;padding-left:34px;counter-increment:step}
.steps li::before{content:counter(step);position:absolute;left:0;top:-1px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--gold-dim);color:var(--gold);font-family:var(--serif);font-size:15.5px}
.steps strong{color:var(--ivory);font-size:16.5px}
.steps span{font-size:15px;color:var(--muted-2)}

/* The three ways a photograph reaches the album, side by side, so nobody has to be told twice. */
.intake-way{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:var(--radius-sm);background:linear-gradient(160deg,var(--glass),transparent);border:1px solid var(--glass-edge);box-shadow:var(--glass-lit)}
.intake-way .ring{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(226,179,79,.34);background:radial-gradient(circle at 30% 25%,rgba(226,179,79,.24),transparent 70%);color:var(--gold-light)}
.intake-way .ring svg{width:18px;height:18px}
.intake-way strong{display:block;margin-bottom:3px}
.intake-way .btn{margin-top:8px}

/* A recording in progress needs to be unmistakable from across a room. */
.rec-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--red);margin-right:6px;vertical-align:baseline;animation:pulse 1.6s var(--ease) infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(210,87,79,.55)}50%{opacity:.55;box-shadow:0 0 0 7px rgba(210,87,79,0)}}

@media (max-width:700px){
  .mosaic{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:9px}
  .lightbox img{max-height:52vh}
}

/* ---- daylight ----
   The same chapter colours read on paper rather than in ink: warm ivory ground, ink text, and
   the gold darkened until it carries its weight against a light field. Nothing below changes a
   rule — only the tokens every rule already draws from, so the two themes cannot drift apart.

   `[data-theme]` is set by js/theme.js before the page paints, always — which is why this block
   is gated on the attribute alone and appears once. Paper is what `auto` resolves to. */
:root[data-theme="light"]{
  --tint:22,16,7; --shade:74,54,22;
  --page:#F2EBDD;
  --ambient:
    radial-gradient(60% 45% at 12% -8%, rgba(201,162,39,.20), transparent 70%),
    radial-gradient(45% 38% at 92% 4%, rgba(183,121,33,.13), transparent 72%),
    radial-gradient(70% 55% at 50% 108%, rgba(160,120,50,.10), transparent 70%),
    linear-gradient(180deg,#FAF5EA 0%,#F2EBDD 48%,#EAE0CD 100%);
  --pane:linear-gradient(165deg,rgba(253,250,244,.97),rgba(243,236,222,.99));
  --pane-solid:linear-gradient(165deg,#FDFAF4,#F3ECDE);
  --pane-edge:rgba(138,94,18,.28);
  --bar:rgba(250,245,234,.94);
  --toast-bg:linear-gradient(160deg,rgba(255,253,248,.97),rgba(246,240,229,.98));
  --avatar-bg:linear-gradient(145deg,rgba(226,179,79,.42),rgba(138,94,18,.16));
  --scrim:rgba(38,28,12,.44);

  --ink:#F6F0E4; --ink-2:#F2EBDD; --ink-3:#EDE4D3; --panel:#FDFAF4; --panel-2:#F3ECDE;
  /* Old gold is a light colour; on paper it needs darkening to stay readable as text. The
     lighter tones stay bright because they are only ever used as fills behind dark text. */
  /* --gold-light is emphasis lettering, not a highlight, so on paper it is the darkest of the
     three rather than the lightest. */
  /* #8A5E12 measured 4.05–4.46:1 as lettering on the light theme's own cards — under 4.5
     everywhere it is used for an eyebrow, a rule or a role. Two steps darker clears it without
     changing what the colour is. */
  --gold:#7C5310; --gold-deep:#6F4A0C; --gold-light:#6F4A0C; --gold-2:#6E4A0E;
  --gold-dim:rgba(176,138,42,.22); --gold-line:rgba(176,138,42,.34);
  /* Leaf is decoration, so on paper it stays gold rather than going brown like the lettering. */
  --leaf:#B08A2A; --leaf-hair:rgba(176,138,42,.34);
  --ivory:#14110C; --cream:#1F1A12; --text:#1F1A12; --muted:#3C3328; --muted-2:#564B3C; --muted-3:#6C6052;
  --green:#2F6B45; --red:#9E3A31; --amber:#8C6011; --blue:#2F5C8C;
  --tone-green:#1F5735; --tone-red:#8A2F27; --tone-amber:#6E4A08; --tone-blue:#234A73;
  /* Gold leaf carries dark lettering on ink and light lettering on paper, so both the fill and
     what sits on it flip together. */
  --gold-fill:linear-gradient(135deg,#9A6B16,#7A5210); --on-gold:#FFFBF2;
  --solid:linear-gradient(165deg,#241E15,#12100B); --on-solid:#F7F1E4;
  --rail:
    radial-gradient(120% 52% at 50% -8%, rgba(201,162,39,.20), transparent 68%),
    radial-gradient(90% 34% at 12% 44%, rgba(183,121,33,.10), transparent 72%),
    linear-gradient(180deg,rgba(253,249,241,.94) 0%,rgba(244,236,221,.95) 48%,rgba(233,222,201,.96) 100%);
  --header:rgba(249,244,234,.74);

  --glass:rgba(255,255,255,.62); --glass-2:rgba(255,255,255,.40); --glass-strong:rgba(255,255,255,.82);
  --glass-edge:rgba(74,54,22,.14); --glass-lit:inset 0 1px 0 rgba(255,255,255,.75);
  --depth:0 1px 2px rgba(74,54,22,.07), 0 10px 28px rgba(74,54,22,.09);
  --depth-lift:0 2px 6px rgba(74,54,22,.10), 0 22px 52px rgba(74,54,22,.16);
  --shadow:0 16px 42px rgba(74,54,22,.14);
}
/* A few surfaces are built from a gradient rather than a token, and read backwards on paper. */
:root[data-theme="light"] .card{background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.34))}
:root[data-theme="light"] .kpi{background:linear-gradient(160deg,rgba(255,255,255,.70),rgba(255,255,255,.30))}
:root[data-theme="light"] .kpi:hover{background:linear-gradient(160deg,#fff,rgba(255,255,255,.45))}
:root[data-theme="light"] .btn:not(.btn-primary){background:linear-gradient(160deg,rgba(255,255,255,.72),rgba(255,255,255,.38))}
:root[data-theme="light"] .btn:not(.btn-primary):hover{background:linear-gradient(160deg,#fff,rgba(255,255,255,.52))}
:root[data-theme="light"] .btn-ghost{background:none}
:root[data-theme="light"] .btn-ghost:hover{background:rgba(74,54,22,.06)}
:root[data-theme="light"] .month-grid .day.today{background:linear-gradient(160deg,rgba(226,179,79,.24),rgba(255,255,255,.45))}
:root[data-theme="light"] .field input,
:root[data-theme="light"] .field select,
:root[data-theme="light"] .field textarea,
:root[data-theme="light"] .input{background:rgba(255,255,255,.80)}
:root[data-theme="light"] .field input:focus,
:root[data-theme="light"] .field select:focus,
:root[data-theme="light"] .field textarea:focus,
:root[data-theme="light"] .input:focus{background:#fff}
:root[data-theme="light"] .status-pill{background:rgba(255,255,255,.62)}
:root[data-theme="light"] .ev{background:rgba(226,179,79,.26);color:var(--ivory)}
:root[data-theme="light"] .ev:hover{background:rgba(226,179,79,.40)}
:root[data-theme="light"] .month-grid .ev.EXECUTIVE_BOARD{border-left-color:#8A5E12}
:root[data-theme="light"] .badge.slate{background:rgba(74,54,22,.07);border-color:rgba(74,54,22,.16)}
:root[data-theme="light"] .seal{background:rgba(226,179,79,.16)}
:root[data-theme="light"] .notice{background:rgba(226,179,79,.14);color:var(--text)}
:root[data-theme="light"] .notice.warn{background:rgba(226,162,63,.18)}
:root[data-theme="light"] .notice.danger{background:rgba(210,87,79,.13)}
:root[data-theme="light"] .notice.success{background:rgba(79,179,122,.16)}
:root[data-theme="light"] .toast{color:var(--text)}
:root[data-theme="light"] .sidebar .brand img,
:root[data-theme="light"] ::selection{background:rgba(138,94,18,.22)}

/* ---- the order of business ----
   Numbered by the browser rather than by hand, so an item moved between sections renumbers
   itself and nobody has to keep a list in their head. */
.order{list-style:none;counter-reset:sec;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.order-section{counter-increment:sec;padding:14px 0 6px;border-top:1px solid var(--glass-edge)}
.order-section:first-child{border-top:0;padding-top:0}
.order-section h4{display:flex;align-items:baseline;gap:10px;font-family:var(--serif);font-size:19px;color:var(--gold-light)}
.order-section h4::before{content:counter(sec) ".";font-family:var(--mono);font-size:14.5px;color:var(--gold);flex:none;min-width:1.6em}
.order-section > .small{margin:2px 0 8px 1.6em;color:var(--muted-3)}
.order-section .list{margin-left:1.6em}

/* ---- The House ----
   The chapter's front door. A photograph under everything, the chapter's colours where the album
   has nothing to give, and gold only where it means something. */
.house{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.house-main{display:flex;flex-direction:column;gap:18px;min-width:0}

/* Any panel that carries a picture: the picture, then a scrim, then the words. */
.plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;border:0}
/* Photographs arrive from many phones in many lights. A grade pulls every one toward the same
   warm register — desaturated a touch, warmed a touch — so the home screen reads as one thing. */
img.plate{filter:saturate(.72) sepia(.2) contrast(1.06) brightness(.9)}
.scrim::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(226,179,79,.26),rgba(9,8,7,0) 48%,rgba(90,60,16,.34));mix-blend-mode:soft-light;pointer-events:none}
.plate-ink{background:linear-gradient(150deg,#1b1611 0%,#0c0a08 60%,#161009 100%)}
.plate-dusk{background:linear-gradient(170deg,#1d2740 0%,#3a2f3e 44%,#6b4a2c 74%,#2a1d12 100%)}
.plate-gold{background:linear-gradient(145deg,#4a3312 0%,#a5762a 48%,#2a1d10 100%)}
.scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,5,4,.88) 0%,rgba(6,5,4,.62) 42%,rgba(6,5,4,.34) 100%)}

.hero{position:relative;overflow:hidden;background:var(--mat);border-radius:var(--radius);min-height:390px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:center;gap:24px;padding:44px 40px;border:1px solid var(--glass-edge);box-shadow:var(--depth-lift)}
.hero-words{position:relative;z-index:1;max-width:30ch}
.hero-words .eyebrow{color:var(--on-mat-gold);font-size:13.5px;letter-spacing:.19em}
.hero-words h1{font-family:var(--serif);font-weight:700;letter-spacing:-.022em;font-size:clamp(42px,5vw,70px);line-height:.92;color:#fbf6ec;margin:4px 0 0;letter-spacing:-.015em}
.gold-rule{width:64px;height:2px;background:var(--leaf);margin:18px 0 14px;border-radius:2px;transform-origin:left center}
.hero .gold-rule{animation:draw .9s var(--ease) .3s both}
@keyframes draw{from{scale:0 1}to{scale:1 1}}
/* The hero photograph drifts the way a still does on a good screen: barely, and forever. */
.hero img.plate,.hero .plate{animation:drift 34s ease-in-out infinite alternate}
@keyframes drift{from{scale:1}to{scale:1.07}}
/* The doors, the legacy and the rail rise into place as they enter the viewport — scrubbed by
   the scroll, no script. `translate` rather than `transform`, so the hover lift still works. */
@supports (animation-timeline: view()){
  .door,.mark,.rail .card,.legacy,.standing{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 32%}
}
@keyframes rise{from{opacity:.001;translate:0 22px}to{opacity:1;translate:0 0}}
.next .go svg{transition:translate .22s var(--ease)}
.next:hover .go svg{translate:3px 0}
.matters svg:last-child{transition:translate .22s var(--ease)}
.matters:hover svg:last-child{translate:3px 0}
.hero-words .lede{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(19.5px,1.95vw,26px);color:#f0e6d6;text-wrap:balance}
.hero-words .motto{margin-top:20px;font-size:13.5px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--on-mat-2);line-height:1.8}

/* ---- the roll, called at the top of a meeting ----
   Two taps per brother and nothing else on the row, because this is used standing up, in a room,
   while men are still arriving. The three states are told apart by shape as well as by colour:
   present is filled, absent is hollow, and not-yet-called is neither. */
.roll-card .roll-count{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;padding:12px 0 4px;font-size:15.5px;color:var(--muted-2)}
.roll-card .roll-count strong{font-family:var(--serif);font-size:22px;color:var(--text);margin-right:4px}
.roll-card .roll-count .unmarked strong{color:var(--gold)}
.roll-card .roll-count .need{margin-left:auto;font-size:14.5px;letter-spacing:.04em}
/* Find a brother rather than scroll past fifty-four of them. */
.roll-find{position:relative;display:flex;align-items:center;gap:10px;margin:10px 0 2px;padding:0 14px;min-height:44px;
  border-radius:999px;background:var(--glass);border:1px solid var(--glass-edge)}
.roll-find > svg{width:16px;height:16px;flex:none;color:var(--muted-2)}
.roll-find input{flex:1;min-width:0;border:0;background:none;color:var(--text);font:inherit;font-size:16.5px;outline:none}
.roll-find input::placeholder{color:var(--muted-3)}
.roll-find input::-webkit-search-cancel-button{-webkit-appearance:none}
.roll-find .small{flex:none;color:var(--muted-2);font-variant-numeric:tabular-nums}
.roll-note{margin:12px 2px 0;color:var(--muted-2);font-size:14.5px;line-height:1.55}
.roll-man .zsaid{color:var(--muted-3)}
.roll-sheet{margin-top:10px;border-top:1px solid var(--glass-edge)}
.roll-man{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid var(--glass-edge)}
.roll-man:last-child{border-bottom:0}
.roll-man .who{flex:1;min-width:0;font-size:17px;color:var(--text)}
.roll-man .who .small{color:var(--muted-2)}
.roll-man.unmarked .who{color:var(--muted)}
.roll-man.absent .who{color:var(--muted-2)}
.roll-man[hidden]{display:none}
.roll-man:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;border-radius:8px}
.roll-man.room .who,.roll-man.zoom .who{color:var(--text)}
/* Its own name, not `.mark`: that class already belongs to the legacy timeline, which is a
   112px vertical column, and the roll was quietly inheriting its direction and its width. */
.roll-man .roll-mark{display:flex;flex-direction:row;align-items:center;gap:6px;flex:none;width:auto}
/* Forty-four pixels: this is tapped with a thumb, in a room, by a man who is also talking. */
.pipbtn{width:44px;height:36px;display:grid;place-items:center;border-radius:9px;cursor:pointer;
  border:1px solid var(--glass-edge);background:transparent;color:var(--muted-2);
  transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}
.pipbtn svg{width:17px;height:17px}
.pipbtn:hover{border-color:var(--gold-dim);color:var(--text)}
/* Three states, three colours, and each lit only when it is the one that holds. The room and the
   Zoom are both present and both count; they are told apart by hue rather than by weight, because
   neither is the lesser way to attend a meeting. */
.pipbtn.room.on{background:rgba(79,179,122,.20);border-color:rgba(79,179,122,.52);color:var(--green)}
.pipbtn.zoom.on{background:rgba(95,150,214,.20);border-color:rgba(95,150,214,.55);color:var(--blue)}
.pipbtn.absent.on{background:rgba(226,179,79,.12);border-color:var(--gold-dim);color:var(--muted)}
.pipbtn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (max-width:700px){
  .roll-card .roll-count .need{margin-left:0;width:100%}
  .roll-man{padding:11px 2px}
  /* Three marks and a name in 390px. The name wraps rather than being cut: a Secretary calling
     the roll has to tell one Freeman from another, and half a surname will not do it. */
  .roll-man .who{line-height:1.3}
  .roll-man .who .small{display:block}
  .roll-man .zsaid{display:none}
  /* The marks give up what they can spare so the name keeps its line. 36px is still a thumb —
     the WCAG floor is 24 and Apple's guidance is 44 including the gap around it, which these
     have. Past this the name would have to wrap, and a Secretary calling the roll has to tell
     one Freeman from another at a glance. */
  .roll-man .roll-mark{gap:4px}
  .pipbtn{width:36px;height:38px}
  .roll-find{padding:0 12px}
  .roll-find input{font-size:18px}
}
@media (prefers-reduced-motion:reduce){ .pipbtn{transition:none} }
/* What Zoom proposed, with the evidence for each. Every one is a tick the Secretary can clear. */
.zoom-hits{display:flex;flex-direction:column;gap:2px;max-height:min(46vh,380px);overflow:auto}
.zoom-hit{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:10px;cursor:pointer}
.zoom-hit:hover{background:var(--glass)}
.zoom-hit input{flex:none;width:18px;height:18px;accent-color:var(--gold)}
.zoom-hit .zh-who{flex:1;min-width:0}
.zoom-hit .zh-how{flex:none;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
/* ---- the flyer on an event ----
   A brother designed it; it goes at the head of the event at the size it was drawn at, not as a
   line saying a flyer exists. Capped in height so a tall poster does not push the date, the place
   and the RSVP buttons off the bottom of a phone. */
.flyer{display:block;margin:0 0 16px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--gold-dim);background:var(--mat);line-height:0}
.flyer img{display:block;width:100%;height:auto;max-height:min(52vh,460px);object-fit:contain;background:var(--mat)}
.flyer:hover{border-color:var(--gold)}
.flyer:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* A bulletin whose art is still on its way from the General Office. */
.bull-waiting{display:grid;place-items:center;background:var(--glass);color:var(--muted-3);border:1px dashed var(--gold-dim)}
.bull-waiting svg{width:28px;height:28px}
/* A room the chapter is not in. Centred and unhurried — it is not an error, and it should not
   wear the furniture of one. */
.shut-room{text-align:center;max-width:62ch;margin:0 auto;padding:44px 32px 38px}
.shut-room .shut-mark{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 18px;border-radius:50%;background:var(--gold-dim);color:var(--gold)}
.shut-room .shut-mark svg{width:28px;height:28px}
.shut-room h2{margin:6px 0 12px}
.shut-room .lede{margin:0 auto 14px;max-width:52ch}
.shut-room .small{max-width:52ch;margin:0 auto;color:var(--muted-2);line-height:1.6}
.shut-room .row{justify-content:center}

/* ---- being met at the door, and walked round ----

   THE GREETING is set as a letter rather than as a dialogue: the seal at the head, the note in
   the reading face at reading size, the chapter's name under it. It is the one screen in the
   portal a brother will only ever see once, so it is worth the room. */
.greet{text-align:center}
.greet-seal{display:block;width:86px;margin:2px auto 18px}
.greet-seal img{width:100%;height:auto;display:block;border-radius:50%}
.greet-words{text-align:left;max-width:46ch;margin:0 auto}
.greet-words p{font-family:var(--serif);font-size:18px;line-height:1.62;color:var(--text);margin:0 0 .85em}
.greet-words p:last-child{margin-bottom:0}
.greet-by{margin:20px 0 4px;font-size:13px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--muted-2)}
.greet .form-actions{justify-content:center;margin-top:20px}

/* THE WALK. The spotlight is a hole cut in a wash by a very large shadow rather than four
   rectangles around the target: one element, no seams, and it follows the real thing on the real
   screen. The card is positioned in script because where there is room changes at every stop. */
.tour{position:fixed;inset:0;z-index:180;pointer-events:none}
.tour-light{position:fixed;border-radius:18px;opacity:0;pointer-events:none;
  box-shadow:0 0 0 9999px rgba(4,3,2,.62), inset 0 0 0 2px rgba(226,179,79,.85), 0 0 34px rgba(226,179,79,.28);
  transition:left .32s var(--ease),top .32s var(--ease),width .32s var(--ease),height .32s var(--ease),opacity .2s}
.tour-centre .tour-light{box-shadow:0 0 0 9999px rgba(4,3,2,.62)}
.tour-card{position:fixed;left:50%;top:50%;width:min(92vw,380px);pointer-events:auto;
  padding:20px 22px 18px;border-radius:20px;background:var(--pane-solid);border:1px solid var(--pane-edge);
  box-shadow:var(--depth-lift);transition:left .32s var(--ease),top .32s var(--ease)}
.tour-centre .tour-card{left:50%!important;top:50%!important;translate:-50% -50%}
.tour-card h3{margin:2px 0 8px;font-size:23px}
.tour-card p{font-size:16.5px;line-height:1.6;color:var(--muted);margin:0}
.tour-dots{display:flex;gap:5px;margin:16px 0 14px}
.tour-dots span{width:100%;height:3px;border-radius:2px;background:var(--glass-edge)}
.tour-dots span.done{background:var(--gold-dim)}
.tour-dots span.on{background:var(--gold)}
.tour-feet{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
@media (max-width:700px){
  /* In a hand there is nowhere beside anything, so the card sits at the foot and the spotlight
     does its own work above it. */
  .tour-card{left:12px!important;right:12px;top:auto!important;bottom:calc(12px + env(safe-area-inset-bottom));width:auto}
}
@media (prefers-reduced-motion:reduce){ .tour-light,.tour-card{transition:none} }

/* Picking the walk up where he left it. A strip among the toasts, not a dialogue: he came back
   to do something else and the House should not stand in the doorway. */
.tour-again{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;
  background:var(--pane-solid);border:1px solid var(--pane-edge);box-shadow:var(--depth-lift);pointer-events:auto}
.tour-again svg{width:17px;height:17px;color:var(--gold);flex:none}
.tour-again-words{font-size:15.5px;color:var(--text)}

/* ---- from the President ----
   A letter read in the portal is not a preview of an email; it is the letter. So it is set the
   way a letter is set — a measure a man can read without moving his head, the display face for
   the subject, the body in the reading face at reading size — rather than as another card. */
.letters .letter-list .item{align-items:flex-start}
.letter-mark{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--glass);border:1px solid var(--glass-edge);color:var(--muted-2)}
.letter-mark svg{width:19px;height:19px}
.letter-mark.unread{background:var(--gold-dim);border-color:var(--gold-line);color:var(--gold)}
.letter-mark.draft{border-style:dashed}
.letter-list .title .dot{display:inline-block;width:8px;height:8px;margin-left:8px;border-radius:50%;background:var(--gold);vertical-align:middle}

.letter{max-width:62ch;margin:0 auto;padding:34px clamp(22px,4vw,46px) 34px}
.letter-subject{margin:8px 0 0;font-size:clamp(30px,3.2vw,40px);line-height:1.12;color:var(--ivory)}
.letter-stand{margin:12px 0 0;font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.45;color:var(--muted)}
.letter .gold-rule{margin:22px 0 24px}
.letter-salutation{margin:0 0 16px;font-family:var(--serif);font-size:21px;color:var(--ivory)}
.letter-body p{font-family:var(--serif);font-size:18px;line-height:1.72;color:var(--text);margin:0 0 1.05em}
.letter-body p:last-child{margin-bottom:0}

.letter-update{margin:26px 0 6px;padding:22px 24px;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--gold-line)}
.letter-update h3{margin:4px 0 10px;font-size:23px}
.letter-update p{font-family:var(--serif);font-size:16.5px;line-height:1.6;color:var(--text);margin:0 0 14px}

.letter-foot{display:flex;align-items:flex-start;gap:26px;flex-wrap:wrap;margin-top:34px;padding-top:24px;border-top:1px solid var(--gold-dim)}
.letter-foot > div{flex:1;min-width:200px}
.letter-sign{margin:8px 0 2px;font-family:var(--serif);font-style:italic;font-size:28px;color:var(--ivory)}
.letter-foot blockquote{flex:1;min-width:220px;margin:0;padding-left:22px;border-left:1px solid var(--gold-dim);font-family:var(--serif);font-style:italic;font-size:18px;line-height:1.5;color:var(--muted)}
.letter-sent{margin-top:20px;color:var(--muted-3)}

/* A form filled from a picture, with the fields it strained over named at the top. It is a notice
   rather than a warning: nothing has gone wrong, a man is simply being told where to look. */
.from-flyer{margin-bottom:18px;border-color:var(--gold-line);background:var(--gold-dim)}
.from-flyer p{margin:0 0 6px}
.from-flyer p:last-child{margin-bottom:0}
.from-flyer svg{width:16px;height:16px;vertical-align:-3px;color:var(--gold)}
@media (max-width:700px){
  .letter{padding:24px 18px 28px}
  .letter-foot{gap:18px}
  .letter-foot blockquote{padding-left:0;border-left:0;border-top:1px solid var(--gold-dim);padding-top:16px}
}

/* ---- taking your own file with you ----
   Quiet by design. This is not a feature to be sold; it is the chapter keeping its side of the
   statement a brother agreed to when he filled the Directory in, and it should read like a
   filing cabinet rather than like an offer. */
.take-file h3{font-family:var(--serif);font-weight:600;font-size:19px;letter-spacing:-.01em}
.file-list{margin-top:14px;padding-top:12px;border-top:1px solid var(--glass-edge)}
.file-list .row{padding:5px 0}
.file-list .mono{font-size:15.5px;color:var(--gold)}
.file-list .mono.none{color:var(--muted-2);font-weight:500}
.file-list p{color:var(--muted)}
.file-list p strong{color:var(--text)}

/* ---- the chapter's own day, in the hero's own words column ----
   The sky marks it without speaking; this is the sentence, and the door. It sits inside the
   hero's thirty-character measure on purpose — the words are prose and belong to the same column
   as the greeting — so the type is sized to fit that measure rather than to break out of it.
   The colours are the non-flipping mat tokens, because the hero keeps its own photograph under
   this block in both themes and a token that flipped would read as paper over a night picture. */
.hero-words .chapter-day{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 11px;align-items:start;
  margin:18px 0 0;padding:11px 13px 10px;border-radius:12px;
  border:1px solid rgba(226,179,79,.30);border-left:3px solid var(--on-mat-gold);
  background:linear-gradient(104deg,rgba(226,179,79,.17),rgba(10,9,7,.40));
  text-decoration:none;color:inherit;
  transition:border-color .2s var(--ease),transform .2s var(--ease),background .2s var(--ease)}
.hero-words .chapter-day:hover{border-color:rgba(226,179,79,.58);transform:translateY(-1px)}
.hero-words .cd-mark{grid-row:1/span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(226,179,79,.20);color:var(--on-mat-gold)}
.hero-words .cd-mark svg{width:15px;height:15px}
.hero-words .cd-words{display:flex;flex-direction:column;gap:2px;min-width:0}
.hero-words .cd-words strong{font-family:var(--serif);font-weight:600;font-size:17.5px;line-height:1.25;color:#fbf6ec;letter-spacing:-.008em;text-wrap:balance}
.hero-words .cd-note{font-size:14.5px;line-height:1.45;color:var(--on-mat-2);text-wrap:balance}
.hero-words .cd-go{grid-column:2;display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-size:13px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--on-mat-gold)}
.hero-words .cd-go svg{width:12px;height:12px;transition:transform .2s var(--ease)}
.hero-words .chapter-day:hover .cd-go svg{transform:translateX(3px)}
/* Installation day carries the warmer edge of the two, the way the sky behind it does. */
.hero-words .chapter-day[data-day="installation"]{border-color:rgba(226,179,79,.44);background:linear-gradient(104deg,rgba(226,179,79,.24),rgba(10,9,7,.40))}
@media (prefers-reduced-motion:reduce){
  .hero-words .chapter-day,.hero-words .cd-go svg{transition:none}
  .hero-words .chapter-day:hover{transform:none}
  .hero-words .chapter-day:hover .cd-go svg{transform:none}
}

.hero-card{position:relative;z-index:1;padding:20px;border-radius:var(--radius-sm);background:rgba(14,11,8,.84);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid rgba(247,240,228,.16);box-shadow:var(--depth)}
.hero-card .eyebrow{color:#f3ead9;letter-spacing:.16em}
.hero-card .quiet{font-size:14.5px;font-weight:700;color:#f3ead9;display:inline-flex;align-items:center;gap:6px}
.hero-card .quiet svg{width:14px;height:14px}
.hero-card .quiet:hover{color:var(--on-mat-gold)}
.next{display:flex;align-items:center;gap:18px;margin-top:14px;padding:14px 4px 18px;border-bottom:1px solid rgba(247,240,228,.16);color:#f7f0e4}
.next:hover{color:#fff}
.next .stamp{flex:none;text-align:center;line-height:1}
.next .stamp span{display:block;font-family:var(--mono);font-size:15px;font-weight:600;letter-spacing:.14em;color:var(--on-mat-gold)}
.next .stamp b{display:block;font-family:var(--serif);font-weight:700;font-size:46px;margin-top:2px;color:#fbf6ec}
.next .what{flex:1;min-width:0}
.next .what h3{font-family:var(--serif);font-size:26px;color:#fbf6ec;line-height:1.16;text-wrap:balance}
.next .meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px;font-family:var(--mono);font-size:14px;color:var(--on-mat-2)}
.next .meta svg{width:14px;height:14px;color:var(--on-mat-gold)}
.next .go{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--gold-fill);color:var(--on-gold);box-shadow:0 6px 18px rgba(0,0,0,.36)}
.next .go svg{width:20px;height:20px}
.next.empty-next{color:var(--on-mat-2)}
.matters{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 4px 2px;border:0;background:none;font:inherit;font-size:14.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--on-mat-gold);cursor:pointer;text-align:left}
.matters[aria-expanded="true"] svg:last-child{rotate:90deg}
.matter-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.matter-list[hidden]{display:none}
.matter-list a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:10px;font-size:15.5px;color:var(--on-mat);background:rgba(247,240,228,.06)}
.matter-list a:hover{background:rgba(247,240,228,.12);color:#fff}
.matter-list a svg{width:14px;height:14px;color:var(--on-mat-gold);flex:none}
.matters .ct{display:inline-flex;align-items:center;gap:9px}
.matters svg{width:15px;height:15px}
.matters:hover{color:#fff}
/* The gold rule is drawn on a photograph too, so it keeps the bright gold in both themes. */
.hero .gold-rule,.purpose .gold-rule{background:var(--on-mat-gold)}
.matters.settled{color:var(--on-mat-2)}
.live{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 18px;background:var(--gold-fill);color:var(--on-gold);font-size:15.5px;font-weight:700}
.live svg{width:16px;height:16px}

/* A brother's own standing, kept in front of him rather than filed two screens away. */
.standing{display:flex;flex-wrap:wrap;gap:10px}
.standing .pill{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-edge);box-shadow:var(--glass-lit)}
.standing .lbl{font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2)}
.standing .small{color:var(--muted)}
.standing .roll strong{color:var(--gold-light);font-family:var(--serif);font-size:18px}

/* The four doors. */
.doors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.door{position:relative;overflow:hidden;min-width:0;background:var(--mat);border-radius:var(--radius-sm);min-height:306px;display:flex;align-items:flex-end;border:1px solid var(--glass-edge);box-shadow:var(--depth);color:var(--text);transition:transform .26s var(--ease),box-shadow .26s var(--ease)}
.door .scrim{background:linear-gradient(180deg,rgba(6,5,4,.20) 0%,rgba(6,5,4,.72) 52%,rgba(6,5,4,.94) 100%)}
.door:hover,.door:focus-visible{transform:translateY(-3px);box-shadow:var(--depth-lift);color:var(--text)}
.door-words{position:relative;z-index:1;padding:16px;width:100%;min-width:0}
.door-words .eyebrow{color:var(--on-mat-gold);font-size:13px;letter-spacing:.17em}
.door-words h3{font-family:var(--serif);font-size:25px;line-height:1.14;color:#fbf6ec;margin:8px 0 6px;text-wrap:balance}
.door-words .line{font-size:15px;color:var(--on-mat-2);margin-bottom:14px}
.door-cta{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:8px 12px;border-radius:999px;border:1px solid rgba(247,240,228,.42);background:rgba(10,8,6,.34);color:#fbf6ec;font-size:12.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
.door-cta svg{width:14px;height:14px}
.door:hover .door-cta,.door:focus-visible .door-cta{border-color:var(--on-mat-gold);color:var(--on-mat-gold);background:rgba(10,8,6,.5)}

/* The chapter's own history, walked with a finger or the arrow. */
.legacy{position:relative;display:grid;grid-template-columns:200px minmax(0,1fr);gap:22px;align-items:center;padding:20px 22px;border-radius:var(--radius);background:var(--glass);border:1px solid var(--glass-edge);box-shadow:var(--glass-lit)}
.legacy-head h3{font-family:var(--serif);font-size:32px;line-height:1.08;margin-top:6px}
.legacy-head .gold-rule{margin:14px 0 0}
.track{display:flex;gap:18px;overflow-x:auto;padding:4px 58px 4px 0;scrollbar-width:none;scroll-snap-type:x proximity}
.track::-webkit-scrollbar{display:none}
.mark{flex:none;width:112px;display:flex;flex-direction:column;align-items:center;gap:0;color:var(--muted);scroll-snap-align:start}
.mark .plate{position:relative;width:112px;height:64px;border-radius:8px;border:1px solid var(--gold-dim)}
.mark .dot{width:9px;height:9px;border-radius:50%;background:var(--gold);margin:10px 0 8px;box-shadow:0 0 0 3px rgba(226,179,79,.2)}
.mark .year{font-family:var(--serif);font-size:21px;color:var(--text)}
.mark .what{font-size:15px;color:var(--muted-2);text-align:center;line-height:1.35}
.mark:hover{color:var(--text)}
.mark:hover .plate{border-color:var(--gold)}
.scroller{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--gold-dim);background:var(--pane);color:var(--gold-light);cursor:pointer}
.scroller:hover{border-color:var(--gold)}
.scroller svg{width:17px;height:17px}

/* The rail. */
.rail{display:flex;flex-direction:column;gap:14px;min-width:0}
.rail .card{padding:16px}
.rail .card-head{margin-bottom:10px}
.purpose,.serve,
:root[data-theme="light"] .purpose,
:root[data-theme="light"] .serve{position:relative;overflow:hidden;min-height:172px;display:flex;align-items:flex-end;padding:0;background:var(--mat);border:1px solid var(--glass-edge)}
.serve .scrim{background:linear-gradient(180deg,rgba(6,5,4,.46) 0%,rgba(6,5,4,.88) 100%)}
/* At .86 over the top this read as a black rectangle with words on it, and nobody could tell
   there was a photograph of the chapter behind it at all. Enough to carry the words and no more;
   the words themselves are measured off the pixels by the sky harness. */
.purpose .scrim{background:linear-gradient(180deg,rgba(6,5,4,.62) 0%,rgba(6,5,4,.34) 58%,rgba(6,5,4,.74) 100%)}
.purpose-words,.serve-words{position:relative;z-index:1;padding:18px}
.purpose-words .eyebrow{color:var(--on-mat);font-size:14.5px;letter-spacing:.16em;line-height:1.7}
.purpose-words .gold-rule{margin:12px 0 10px}
.purpose-words .line,.serve-words .line{font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--on-mat-2);line-height:1.7}
.serve-words .eyebrow{color:var(--on-mat-gold)}
.serve-words .btn{margin-top:12px}
.thread{list-style:none;margin:0;padding:0 0 0 20px;border-left:1px solid var(--gold-dim);display:flex;flex-direction:column;gap:14px}
.thread li{position:relative}
.thread li::before{content:"";position:absolute;left:-24px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(226,179,79,.18)}
.thread a{display:flex;flex-direction:column;gap:2px;color:var(--text)}
.thread .when{width:auto;display:inline-block;padding:4px 10px;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);align-self:flex-start}
.thread .what strong{display:block;font-size:16px}
/* The smallest line on the smallest card, and the one thing the clearer sky cost: at --muted-2
   over glass over a photograph it measured 4.1:1 in seven of the twelve skies. A step up the
   scale, and it holds in all of them. The picture kept its gain; the words kept their floor. */
.thread .what .small{color:var(--muted)}
.thread a:hover .what strong{color:var(--gold-light)}
.update{display:flex;align-items:flex-start;gap:11px;color:var(--text)}
.update .avatar{flex:none}
.update .body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.update .body strong{font-size:16px}
.update .excerpt{color:var(--muted-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.update > svg{flex:none;width:16px;height:16px;color:var(--gold);margin-top:4px}
.update:hover{color:var(--gold-light)}

@media (max-width:1460px){
  .house{grid-template-columns:minmax(0,1fr) 284px}
  .doors{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1180px){
  .house{grid-template-columns:1fr}
  .hero{grid-template-columns:1fr;min-height:0}
  .rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:960px){
  .topbar{padding:12px 16px;gap:10px}
  .topbar .datestamp,.topbar .who .name,.topbar .who .role{display:none}
  .search{flex:1}
  .view{padding:16px 16px 24px}
  .colophon{flex-direction:column;gap:16px;padding:20px 16px 110px;text-align:center}
  .colophon nav{justify-content:center;gap:14px}
  .colophon .est{align-items:center;text-align:center}
  .hero{padding:26px 20px;min-height:0}
  .hero-words h1{font-size:46px}
  .doors{grid-template-columns:1fr}
  .door{min-height:230px}
  .legacy{grid-template-columns:1fr;padding:18px}
  .scroller{display:none}
  .track{padding-right:0}
  .rail{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.door:hover,.door:focus-visible{transform:none}}


/* ---- The House, first paint ----
   The shape of the screen appears at once; the figures fill it a moment later. */
.house.skeleton{pointer-events:none}
.sk{position:relative;overflow:hidden;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--glass-edge)}
.sk::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 20%,rgba(var(--tint),.06) 50%,transparent 80%);translate:-100% 0;animation:shimmer 1.5s ease-in-out infinite}
@keyframes shimmer{to{translate:100% 0}}
.sk-hero{min-height:390px;border-radius:var(--radius)}
.sk-row{display:flex;gap:10px}.sk-row .sk{height:42px;flex:1;border-radius:999px}
.sk-doors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.sk-doors .sk{min-height:306px}
.sk-rail .sk{min-height:150px}
@media (max-width:1460px){.sk-doors{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:960px){.sk-doors{grid-template-columns:1fr}.sk-doors .sk{min-height:230px}}

/* ---- the treasury pulse ----
   One figure, its direction, and six months in a line. Text wears text tokens; only the line
   and its end-dot wear the gold. */
.pulse-figure{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:2px 0 10px}
.pulse-figure .value{font-family:var(--sans);font-weight:600;font-size:28px;letter-spacing:-.01em;color:var(--ivory)}
.pulse-figure .delta{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:15px;color:var(--muted-2)}
.pulse-figure .delta.up{color:var(--tone-green)}.pulse-figure .delta.down{color:var(--tone-red)}
.spark{position:relative;margin:0 -4px}
.spark svg{display:block;width:100%;height:auto;overflow:visible}
.spark .base{stroke:rgba(var(--tint),.16);stroke-width:1}
.spark .area{fill:var(--gold);fill-opacity:.1}
.spark .line{fill:none;stroke:var(--gold);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.spark .end{fill:var(--gold);stroke:var(--page);stroke-width:2}
.spark .hair{stroke:rgba(var(--tint),.35);stroke-width:1;opacity:0;transition:opacity .15s}
.spark .hit{fill:transparent;cursor:crosshair;outline:none}
.spark .hit:focus-visible ~ .hair,.spark.on .hair{opacity:1}
.spark-tip{position:absolute;top:-4px;translate:-50% -100%;padding:6px 9px;border-radius:8px;background:var(--pane);border:1px solid var(--pane-edge);box-shadow:var(--depth);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;font-size:14.5px;color:var(--muted-2)}
.spark-tip strong{display:block;font-family:var(--mono);font-size:15.5px;color:var(--ivory)}
.spark-tip::before{content:"";display:inline-block;width:10px;height:2px;background:var(--gold);vertical-align:middle;margin-right:6px}
.spark-tip.on{opacity:1}
.spark-months{margin-top:8px}
.spark-months summary{cursor:pointer;font-size:14px;color:var(--muted-2);list-style:none}
.spark-months summary::-webkit-details-marker{display:none}
.spark-months summary::before{content:"+ ";color:var(--gold)}
.spark-months[open] summary::before{content:"– "}
.spark-months table{width:100%;margin-top:8px;border-collapse:collapse;font-size:14.5px}
.spark-months td{padding:5px 0;border-top:1px solid rgba(var(--tint),.07);color:var(--muted)}
.spark-months td:last-child{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text)}

@media (prefers-reduced-motion:reduce){
  .hero img.plate,.hero .plate,.hero .gold-rule,.sk::after{animation:none}
  .door,.mark,.rail .card,.legacy,.standing{animation:none;opacity:1;translate:none}
  .hero .gold-rule{scale:1 1}
}

/* ---- the wire from the General Office ----
   What the Fraternity has announced, on a screen of its own and in a panel on The House. The
   bulletins are the national office's words, not the chapter's, so they are set as news rather
   than as chapter furniture: a lead with its photograph, then a grid that reads down the page.
   The pictures come from this origin — the portal fetched and converted them — which is why an
   ordinary <img> works here under a content policy that allows nothing remote. */
.wire{display:flex;flex-direction:column;gap:var(--gap)}
.wire-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--gap);flex-wrap:wrap}
.wire-head h2{margin:2px 0 4px}
.wire-head .actions{display:flex;gap:8px;flex-wrap:wrap}
.wire-new{color:var(--gold-light)}
.wire-warn{display:flex;align-items:flex-start;gap:9px;margin:0;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid rgba(226,162,63,.45);background:rgba(226,162,63,.08);font-size:15.5px;color:var(--muted)}
.wire-warn svg{width:15px;height:15px;flex:none;color:var(--amber);margin-top:2px}
.wire-topics{display:flex;flex-wrap:wrap;gap:8px}
.wire-topics .chip{text-decoration:none}
.wire-topics .chip.on{border-color:var(--gold);color:var(--ivory);background:rgba(226,179,79,.12)}
.wire-topics .chip span{font-family:var(--mono);font-size:15px;color:var(--muted-2)}
.wire-topics .chip.on span{color:var(--gold-2)}

/* One bulletin in the grid reads as a news card — picture above, words below — because three of
   them side by side leave a column too narrow for a headline to sit in. Only the lead is set
   across, where there is the width to carry it. */
.bull{position:relative;display:grid;grid-template-columns:1fr;gap:var(--stack);align-content:start;
  background:linear-gradient(180deg,rgba(var(--tint),.035),rgba(var(--tint),.012));
  border:1px solid var(--gold-dim);border-radius:var(--radius);padding:var(--pad);box-shadow:var(--shadow)}
.bull-lead{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:calc(var(--pad) * 1.4)}
.bull-lead.bull-plain{grid-template-columns:1fr}
.bull-plate{display:block;border-radius:var(--radius-sm);overflow:hidden;background:rgba(var(--shade),.25);border:1px solid var(--glass-edge)}
.bull-plate img{display:block;width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;transition:scale .5s var(--ease)}
.bull-plate:hover img{scale:1.03}
.bull-lead .bull-plate img{aspect-ratio:16/10}
.bull-body{min-width:0;display:flex;flex-direction:column;gap:9px}
.bull-tags{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0}
.bull-when{font-family:var(--mono);font-size:13.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
.bull h3{margin:0;font-size:21px;line-height:1.28}
.bull-lead h3{font-size:clamp(25px,2.2vw,32px);line-height:1.18}
.bull h3 a{color:var(--ivory);text-decoration:none}
.bull h3 a:hover{color:var(--gold-light)}
.bull-sum{margin:0;font-size:16.5px;line-height:1.62;color:var(--muted);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.bull-lead .bull-sum{-webkit-line-clamp:5;line-clamp:5;font-size:17px}
.bull-foot{display:flex;flex-wrap:wrap;gap:14px;margin:2px 0 0}
.bull-foot .quiet{display:inline-flex;align-items:center;gap:6px;font-size:15px}
.bull-foot svg{width:14px;height:14px}
.wire-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--gap)}
.wire-from{margin:4px 0 0;font-size:14px;color:var(--muted-2)}
.wire-from a{color:var(--muted-2)}

/* The panel on The House: three headlines, small enough to sit under the weather. */
.wire-card .card-head{align-items:flex-start;gap:10px}
.wire-card .card-head h3{margin:2px 0 0}
.wire-card .card-head .quiet{flex:none;white-space:nowrap}
.wire-count{margin:8px 0 0;font-size:15px;color:var(--muted-2)}
.wire-mini{display:flex;flex-direction:column}
.wire-row{display:flex;align-items:center;gap:12px;padding:11px 0;text-decoration:none;min-width:0}
.wire-row + .wire-row{border-top:1px solid rgba(var(--tint),.06)}
.wire-row img,.wire-mark{flex:none;width:52px;height:52px;border-radius:var(--radius-sm);object-fit:cover}
.wire-mark{display:grid;place-items:center;background:var(--gold-dim);color:var(--gold-light)}
.wire-mark svg{width:22px;height:22px}
.wire-row .body{display:flex;flex-direction:column;gap:3px;min-width:0}
.wire-row .title{font-size:16px;line-height:1.4;color:var(--text);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.wire-row:hover .title{color:var(--ivory)}
.wire-row .meta{font-size:14px;color:var(--muted-2)}

/* A tablet drops the lead to one column before the headline starts wrapping to four lines;
   a phone gives every bulletin the full width and keeps the picture above the words. */
@media (max-width:1180px){ .wire-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))} }
/* A tablet gives the lead its own column before the headline starts wrapping every other word;
   below that the grid is one card wide and every bulletin reads the same way. */
@media (max-width:960px){
  .bull-lead,.bull-lead.bull-plain{grid-template-columns:1fr;gap:var(--gap)}
  .wire-grid{grid-template-columns:1fr}
  .wire-head{align-items:flex-start}
  .bull-lead .bull-plate img{aspect-ratio:16/9}
}
@media (max-width:700px){
  .bull-plate img,.bull-lead .bull-plate img{aspect-ratio:16/9}
  .bull h3{font-size:19px}
  .bull-lead h3{font-size:23px}
  .wire-head .actions{width:100%}
  .wire-head .actions .btn{flex:1}
}

/* ================================================================= the rail, narrowed
   The menu extends and retracts so a brother can give the screen back to the chapter's business.
   Narrowed it keeps the seal and the icons and nothing else; extended it carries the names, the
   creed and the scripture as before. The width is one token, so the content column takes back
   every pixel the rail gives up without a second rule knowing about it. */
:root[data-rail="slim"]{--sidebar:78px}
/* In the rail's own flow rather than hung off its edge: the rail scrolls its contents, and a
   chip at a negative offset would be clipped by that scroll on every screen too short to hold
   the whole menu. */
.rail-toggle{flex:none;align-self:flex-end;display:grid;place-items:center;width:28px;height:28px;padding:0;margin:-6px -2px 8px;border-radius:50%;
  background:transparent;border:1px solid var(--gold-dim);color:var(--muted-2);cursor:pointer;
  transition:color .18s var(--ease),border-color .18s var(--ease),background .18s var(--ease)}
.rail-toggle:hover{color:var(--gold);border-color:var(--gold);background:rgba(var(--tint),.04)}
.rail-toggle svg{width:14px;height:14px}

:root[data-rail="slim"] .sidebar{padding:26px 10px 22px;align-items:center}
:root[data-rail="slim"] .rail-toggle{align-self:center;margin:-6px 0 10px}
:root[data-rail="slim"] .brand{padding:4px 0 18px;margin-bottom:14px}
/* The seal carries a rim, a creed around it and two dates; at fifty pixels all three become a
   smudge. The monogram exists for exactly this — the same identity cut down for sizes the seal
   cannot survive — so the rail swaps one for the other rather than shrinking the wrong mark. */
.brand .mono.rail-mark{display:none}
:root[data-rail="slim"] .brand .seal-mark{display:none}
:root[data-rail="slim"] .brand .mono.rail-mark{display:block;width:46px;margin:0 auto}
/* The chapter's name, the creed and the scripture are the first things to go: they are the rail
   being generous, and a narrowed rail is a brother asking for the room back. */
:root[data-rail="slim"] .brand .house-name,
:root[data-rail="slim"] .brand .name,
:root[data-rail="slim"] .brand .place,
:root[data-rail="slim"] .creed,
:root[data-rail="slim"] .scripture{display:none}
:root[data-rail="slim"] .sidebar .nav{gap:2px}
:root[data-rail="slim"] .sidebar .nav a{justify-content:center;padding:11px 0;gap:0}
/* Clipped rather than removed, so the label is still the link's name to a screen reader and the
   title is what a pointer gets. A narrow rail must not be a rail of unlabelled buttons. */
:root[data-rail="slim"] .sidebar .nav a span{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
:root[data-rail="slim"] .sidebar .nav a svg{width:21px;height:21px}
@media (prefers-reduced-motion:no-preference){
  .shell{transition:grid-template-columns .22s var(--ease)}
}
/* Below the tablet register there is no rail at all, so there is nothing to narrow. */
@media (max-width:960px){ .rail-toggle{display:none} :root[data-rail="slim"]{--sidebar:0px} }

/* ---- one question box, not two ----
   The House carries its own, with the examples under it and the answers beneath that. The top
   bar's is for every other screen. Showing both, one directly above the other, was the portal
   asking the same question twice. */
:root[data-view="dashboard"] .topbar .search{display:none}

/* ================= THE ARCHIVE =================
   The one screen in the portal with a register of its own, and the exception is the point:
   photographs read against near-black the way they read in a gallery, and against cream they do
   not. So when the archive is showing, the house dims its lights — the rail, the top bar and the
   ground all drop to the dark register whatever theme the brother keeps, and come back up when
   he leaves. A light-themed portal with one black rectangle cut out of the middle would look
   broken; a light-themed portal that dims for the gallery looks deliberate, because it is.

   These rules sit after the light theme's own block, so they win on order rather than on any
   escalation of specificity. Nothing here is !important. */
:root[data-view="photos"]{
  --tint:255,255,255; --shade:0,0,0;
  --page:#07070a;
  --ambient:
    radial-gradient(58% 42% at 14% -10%, rgba(226,179,79,.10), transparent 72%),
    radial-gradient(48% 38% at 88% 2%, rgba(120,84,26,.08), transparent 74%),
    linear-gradient(180deg,#0c0b0d 0%,#08080a 52%,#050506 100%);
  --pane:linear-gradient(165deg,rgba(26,24,26,.88),rgba(12,11,13,.94));
  --pane-solid:linear-gradient(165deg,#1A181A,#0C0B0D);
  --pane-edge:rgba(226,179,79,.26);
  --bar:rgba(9,9,11,.94); --header:rgba(8,8,10,.66);
  --rail:linear-gradient(180deg,rgba(19,18,20,.82),rgba(9,9,11,.88));
  --rail-glass:rgba(10,10,12,.58); --header-glass:rgba(10,10,12,.62); --bar-glass:rgba(10,10,12,.70);
  --toast-bg:linear-gradient(160deg,rgba(30,28,30,.95),rgba(14,13,15,.97));
  --avatar-bg:linear-gradient(145deg,rgba(226,179,79,.22),rgba(20,18,16,.9));
  --scrim:rgba(0,0,0,.80);
  --ink:#08080a; --ink-2:#0c0c0e; --ink-3:#121214; --panel:#141416; --panel-2:#1a1a1d;
  --gold:#e2b34f; --gold-deep:#b77921; --gold-light:#efca75; --gold-2:#d7b36a;
  --gold-dim:rgba(226,179,79,.14); --gold-line:rgba(226,179,79,.20);
  --ivory:#f5efe6; --cream:#f2ebdf; --text:#ece7de; --muted:#c7c1b8; --muted-2:#968f86; --muted-3:#6b655d;
  --tone-green:#8fd7ad; --tone-red:#f0a9a4; --tone-amber:#f2c886; --tone-blue:#b9d0ee;
  --gold-fill:linear-gradient(135deg,var(--gold-deep),var(--gold-light)); --on-gold:#17100a;
  --tile:rgba(20,20,23,.72); --tile-firm:rgba(16,16,19,.88); --tile-edge:rgba(247,240,228,.13);
  --glass-edge:rgba(247,240,228,.11);
  /* What an occasion's heading has to clear when it sticks. Measured off the top bar, which is
     one line of 13.5px type in 14px of padding either side. */
  --topbar-h:62px;
}
/* The house lights come back up smoothly rather than snapping, on the surfaces broad enough to
   show the change. A brother who has asked for less motion gets the snap. */
.shell,.topbar,.sidebar,.view{transition:background-color .4s var(--ease),background-image .4s var(--ease),border-color .4s var(--ease)}
@media (prefers-reduced-motion:reduce){.shell,.topbar,.sidebar,.view{transition:none}}

/* ---- the head of the screen ---- */
#archive{display:flex;flex-direction:column;gap:22px}
.arch-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.arch-head h2{font-family:var(--serif);font-size:clamp(28px,3.1vw,38px);font-weight:600;line-height:1.05;letter-spacing:-.012em;margin:2px 0 0}
.arch-head .count{font-size:15.5px;color:var(--muted-2);margin-top:7px}
.arch-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.arch-search{position:relative;min-width:min(340px,72vw)}
#archive>.arch-search{display:block;width:100%;min-width:0;flex:none;margin-top:0}
.arch-search .ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--muted-2);pointer-events:none}
.arch-search input{width:100%;padding:11px 16px 11px 40px;border-radius:999px;background:var(--tile);border:1px solid var(--tile-edge);color:var(--text);font:inherit;font-size:16.5px;backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%)}
.arch-search input:focus-visible{outline:none;border-color:rgba(226,179,79,.44);box-shadow:0 0 0 3px rgba(226,179,79,.14)}
.arch-chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.arch-chips::-webkit-scrollbar{display:none}
.arch-chips .chip{flex:0 0 auto;background:var(--tile);border:1px solid var(--tile-edge);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}

/* ---- an occasion ---- */
.occasion{display:flex;flex-direction:column;gap:14px}
/* The heading rides above the wall as the brother scrolls, so he always knows which evening he is
   looking at. It carries just enough of the ground with it to keep the type off the photographs —
   a wash that fades out downward, no border, no card. */
.occ-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;
  position:sticky;top:var(--topbar-h,62px);z-index:3;margin:0 -6px;padding:10px 6px 12px;
  background:linear-gradient(180deg,#08080a 0%,rgba(8,8,10,.92) 62%,rgba(8,8,10,0) 100%);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.occ-head > div:first-child{flex:1 1 320px;min-width:0}
.occ-head h3{font-family:var(--serif);font-size:21px;font-weight:600;letter-spacing:-.008em;margin:0;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.occ-head .occ-when{font-size:14.5px;color:var(--muted-2);margin-top:3px}
.occ-head .by{font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-3);border:1px solid var(--tile-edge);border-radius:999px;padding:2px 8px;font-weight:600}
.occ-acts{display:flex;gap:7px;align-items:center}

/* ---- the wall ----
   Columns rather than a fixed grid, because a photograph has the shape the camera gave it and
   cropping every one to a square to make the rows line up throws away what the brother framed.
   Each figure carries its own aspect ratio, so the columns settle before a single byte of image
   has loaded and nothing jumps as the wall fills in. */
.wall{columns:4;column-gap:14px}
.shot{break-inside:avoid;margin:0 0 14px;position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;border-radius:var(--radius-sm);overflow:hidden;
  transform:translateZ(0);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.shot img{width:100%;height:auto;display:block;border-radius:var(--radius-sm);background:#141416;
  box-shadow:0 2px 14px rgba(0,0,0,.42);transition:filter .3s var(--ease)}
.shot:hover,.shot:focus-visible{outline:none;transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,.5)}
.shot:focus-visible img{outline:2px solid var(--gold);outline-offset:2px}
.shot .lift{position:absolute;inset:0;border-radius:var(--radius-sm);background:linear-gradient(180deg,transparent 52%,rgba(4,4,6,.82));opacity:0;transition:opacity .3s var(--ease);pointer-events:none}
.shot:hover .lift,.shot:focus-visible .lift{opacity:1}
.shot .said{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;text-align:left;opacity:0;transform:translateY(5px);transition:opacity .3s var(--ease),transform .3s var(--ease);pointer-events:none}
.shot:hover .said,.shot:focus-visible .said{opacity:1;transform:none}
.shot .said b{display:block;font-size:15px;font-weight:600;color:#fbf7ef;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shot .said span{display:block;font-size:14.5px;color:rgba(247,240,228,.74);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* A burst says how many frames are folded behind it; an edit says it is one. Both sit on glass
   so they read over a bright sky and a dark suit alike. */
.shot .mark{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;gap:4px;
  padding:4px 8px;border-radius:999px;font-size:15px;font-weight:600;color:#fbf7ef;
  background:rgba(10,10,12,.62);border:1px solid rgba(247,240,228,.18);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.shot .mark .ic{width:13px;height:13px}
.shot .mark.left{right:auto;left:8px}
@media (max-width:1180px){.wall{columns:3}}
@media (max-width:700px){.wall{columns:2;column-gap:10px}.shot{margin-bottom:10px}
  .occ-head{position:static;margin:0;padding:6px 0 8px;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}.arch-search{min-width:0;flex:1 1 200px}}

/* ---- the viewer ----
   Edge to edge, with the photograph's own self blurred behind it. That backdrop is the picture
   again at thumbnail size, blown up and blurred to nothing — so it costs no extra request and it
   is always exactly the right colour, which no fixed grey ever is. */
.viewer-back{position:fixed;inset:0;z-index:70;background:rgba(3,3,5,.94);display:grid;
  animation:viewer-in .24s var(--ease)}
@keyframes viewer-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.viewer-back{animation:none}}
.viewer{position:relative;display:grid;grid-template-rows:auto 1fr auto;width:100%;height:100%;overflow:hidden}
.viewer .haze{position:absolute;inset:-8%;z-index:0;background-size:cover;background-position:center;
  filter:blur(56px) saturate(150%) brightness(.52);transform:scale(1.14);pointer-events:none}
.viewer .haze::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 70% at 50% 45%,transparent 30%,rgba(3,3,5,.72) 100%)}
/* min-width:0, or a grid item refuses to shrink below its min-content — and the bar's min-content
   is a caption set in nowrap, which on a phone pushes the controls clean off the right of the
   screen while the overlay's own overflow:hidden keeps the page from ever reporting a scroll. */
.viewer > *{position:relative;z-index:1;min-width:0}

.vw-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:max(14px,env(safe-area-inset-top)) 18px 12px}
.vw-title{flex:1 1 auto;min-width:0}
.vw-title b{display:block;font-family:var(--serif);font-size:19px;font-weight:600;color:#fbf7ef;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vw-title span{display:block;font-size:14px;color:rgba(247,240,228,.72);margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vw-acts{display:flex;gap:8px;flex:none}
/* Circular glass, as in the reference: one ring per action, the label carried by the title
   attribute and by aria-label rather than by text, because at this size text would crowd the
   photograph and the photograph is the point. */
.vw-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:999px;
  background:rgba(247,240,228,.12);border:1px solid rgba(247,240,228,.18);color:#fbf7ef;cursor:pointer;
  backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);
  transition:background .2s var(--ease),transform .2s var(--ease),border-color .2s var(--ease)}
.vw-btn:hover{background:rgba(247,240,228,.2);transform:translateY(-1px)}
.vw-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.vw-btn .ic{width:19px;height:19px}
.vw-btn.on{background:#fbf7ef;border-color:#fbf7ef;color:#17161a}
.vw-btn.danger:hover{background:rgba(210,87,79,.34);border-color:rgba(210,87,79,.5)}

/* An explicit minmax(0,1fr) track in both axes. Left implicit, the track is sized from its
   content, so the frame's own max-width:100% resolves against a track already as wide as the
   frame wanted to be — it clamps to nothing and the photograph runs off both sides of a phone. */
.vw-stage{position:relative;display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;min-height:0;min-width:0;padding:4px 18px}
/* The frame shrink-wraps the photograph so the warmth wash can sit exactly on it — inset:0 of a
   box that is the picture's own size, rather than of the stage it is letterboxed inside. */
.vw-stage .frame{position:relative;height:100%;max-width:100%;max-height:100%;margin:auto;min-height:0;
  aspect-ratio:var(--shot-ratio,4/3)}
.vw-stage img{width:100%;height:100%;display:block;object-fit:contain;
  border-radius:10px;filter:drop-shadow(0 22px 48px rgba(0,0,0,.55))}
.vw-stage .wash{position:absolute;inset:0;border-radius:10px;pointer-events:none;opacity:0;
  mix-blend-mode:soft-light;transition:opacity .12s linear}
/* A step the brother is already at the end of is shown as spent rather than hidden, so the
   controls do not jump about as he moves through an evening. */
.vw-btn:disabled{opacity:.3;cursor:default;transform:none}
.vw-btn:disabled:hover{background:rgba(247,240,228,.12);transform:none}
.vw-step{position:absolute;top:50%;transform:translateY(-50%);z-index:2}
.vw-step.prev{left:14px} .vw-step.next{right:14px}
.vw-foot{padding:12px 18px max(16px,env(safe-area-inset-bottom))}
.vw-cap{font-size:15.5px;color:rgba(247,240,228,.9);text-align:center;margin:0 0 10px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vw-cap em{font-style:normal;color:rgba(247,240,228,.6)}
/* The filmstrip: where you are in the evening, and one tap to anywhere else in it. */
/* Centred while the evening fits on one line, and scrolling from the left once it does not —
   an evening of four photographs should not sit in the corner. */
.strip{display:flex;justify-content:safe center;gap:7px;overflow-x:auto;padding:2px;scrollbar-width:none;scroll-behavior:smooth}
.strip::-webkit-scrollbar{display:none}
.strip button{flex:0 0 auto;width:54px;height:54px;padding:0;border-radius:9px;overflow:hidden;cursor:pointer;
  border:1.5px solid transparent;background:rgba(247,240,228,.08);opacity:.56;
  transition:opacity .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
.strip button img{width:100%;height:100%;object-fit:cover;display:block}
.strip button:hover{opacity:.85}
.strip button[aria-current="true"]{opacity:1;border-color:var(--gold);transform:translateY(-2px)}
.strip button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (max-width:700px){
  .arch-head{align-items:stretch}
  .arch-tools{width:100%}
  .arch-tools .btn{flex:0 0 auto}
  #archive .arch-tools .lbl{display:none}   /* the icon already says it, and the line has to fit */
  .vw-bar{padding:max(10px,env(safe-area-inset-top)) 12px 8px}
  .vw-stage{padding:2px 8px}.vw-foot{padding:10px 12px max(12px,env(safe-area-inset-bottom))}
  .vw-btn{width:38px;height:38px}.strip button{width:46px;height:46px}
  .vw-step{display:none}   /* a thumb swipes; it does not aim for a 40px target at the edge */
}

/* ---- the sheet: sharing, and improving ----
   Both slide up from the foot of the viewer over the photograph, because both are things done
   TO the photograph and it should stay in sight while they are done. */
.sheet{margin-top:10px;border-radius:18px;padding:16px;
  background:rgba(14,14,17,.80);border:1px solid rgba(247,240,228,.14);
  backdrop-filter:blur(26px) saturate(150%);-webkit-backdrop-filter:blur(26px) saturate(150%);
  box-shadow:0 -10px 44px rgba(0,0,0,.44);animation:sheet-up .26s var(--ease)}
@keyframes sheet-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.sheet{animation:none}}
.sheet .sheet-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
.sheet .sheet-head .small{flex:1 1 auto;min-width:0}
.sheet .sheet-head .vw-btn{flex:none;align-self:center;margin-left:auto}
.sheet .sheet-head strong{font-family:var(--serif);font-size:17px;font-weight:600;color:#fbf7ef}
.sheet .sheet-head .small{color:rgba(247,240,228,.62)}
/* Where it can go: a row of rings with the name under each, as the reference has them. */
.ways{display:flex;gap:14px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.ways::-webkit-scrollbar{display:none}
.way{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:7px;width:66px;
  background:none;border:0;padding:0;cursor:pointer;color:rgba(247,240,228,.82);font:inherit}
.way .ring{display:grid;place-items:center;width:50px;height:50px;border-radius:999px;
  background:rgba(247,240,228,.11);border:1px solid rgba(247,240,228,.17);color:#fbf7ef;
  transition:background .2s var(--ease),transform .2s var(--ease)}
.way:hover .ring{background:rgba(247,240,228,.2);transform:translateY(-2px)}
.way:focus-visible{outline:none}.way:focus-visible .ring{outline:2px solid var(--gold);outline-offset:2px}
.way .ring .ic{width:21px;height:21px}
.way span{font-size:13px;line-height:1.25;text-align:center}

/* ---- the dial ----
   A ruler that slides under a fixed caret, which is what the reference draws as a curve. The
   control that actually moves is a range input lying invisibly across the whole band, so this
   works from a keyboard and answers to a screen reader while looking like a camera. */
.dial{position:relative;height:84px;display:grid;place-items:center;margin:2px 0 14px;user-select:none}
.dial .ticks{position:absolute;inset:0 0 44px;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.dial .ticks i{position:absolute;top:8px;width:1.5px;border-radius:1px;background:rgba(247,240,228,.45);
  transform:translateX(-50%);transition:height .15s var(--ease)}
.dial .ticks i.major{background:rgba(247,240,228,.8);height:20px}
.dial .caret{position:absolute;top:0;left:50%;transform:translateX(-50%);width:0;height:0;
  border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--gold)}
.dial .read{position:absolute;bottom:0;left:0;right:0;text-align:center;pointer-events:none}
.dial .read b{display:block;font-family:var(--mono);font-size:23px;font-weight:600;color:#fbf7ef;letter-spacing:-.01em}
.dial .read span{display:block;font-size:13px;letter-spacing:.11em;text-transform:uppercase;color:rgba(247,240,228,.6);margin-top:1px}
.dial input[type="range"]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none;background:none}
.dial input[type="range"]:focus-visible{opacity:0}
.dial:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:4px;border-radius:12px}
.tools{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.tool{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:999px;cursor:pointer;
  background:rgba(247,240,228,.09);border:1px solid rgba(247,240,228,.15);color:rgba(247,240,228,.82);
  transition:background .2s var(--ease),color .2s var(--ease),transform .2s var(--ease)}
.tool:hover{background:rgba(247,240,228,.17);transform:translateY(-1px)}
.tool:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.tool[aria-pressed="true"]{background:#fbf7ef;border-color:#fbf7ef;color:#17161a}
/* A dot on any dial that has been moved off nought, so a brother can see at a glance what he has
   changed without going back through all four. */
.tool.moved::after{content:"";position:absolute;top:6px;right:6px;width:5px;height:5px;border-radius:999px;background:var(--gold)}
.tool[aria-pressed="true"].moved::after{background:var(--gold-deep)}
.tool .ic{width:19px;height:19px}
.sheet .form-actions{margin-top:14px;padding-top:0;border-top:0}
@media (max-width:700px){
  .sheet{padding:13px;border-radius:16px}
  .dial{height:76px}.dial .read b{font-size:21px}
  /* Seven tools on one line: at 42px with a 10px gap they are fourteen pixels too wide for a
     390px screen and the last one drops to a row of its own. */
  .tools{gap:8px}.tool{width:38px;height:38px}.tool .ic{width:17px;height:17px}
}

/* ---- what the light theme paints in literal cream ----
   A handful of surfaces are not mixed from the token pair, because on paper they are not a tint
   of anything: a button, a field, a notice and a toast are all simply near-white. Swapping the
   tokens for the archive therefore does not reach them, and a cream button with cream lettering
   on a black wall is what the pixel harness found — five of them, at 1.5:1.

   These are restated rather than exempted at source. Adding :not([data-view="photos"]) to the
   light theme's own rules looks tidier and is wrong: it lifts them by one class of specificity,
   which is enough to beat [data-house="on"] .house .card and hand the dashboard back a
   translucent card the winter sky shows through. Specificity is not a free parameter — a rule
   that only means to opt out of one screen should not change what it outranks on every other. */
:root[data-view="photos"] .btn:not(.btn-primary){background:linear-gradient(160deg,rgba(247,240,228,.10),rgba(247,240,228,.03));color:var(--ivory);border-color:rgba(247,240,228,.16)}
:root[data-view="photos"] .btn:not(.btn-primary):hover{background:linear-gradient(160deg,rgba(247,240,228,.18),rgba(247,240,228,.07));border-color:rgba(226,179,79,.42)}
:root[data-view="photos"] .btn-ghost{background:none;color:var(--gold-2);border-color:transparent}
:root[data-view="photos"] .btn-ghost:hover{background:rgba(247,240,228,.09)}
:root[data-view="photos"] .field input,:root[data-view="photos"] .field select,
:root[data-view="photos"] .field textarea,:root[data-view="photos"] .input{
  background:rgba(247,240,228,.06);border-color:rgba(247,240,228,.16);color:var(--text)}
:root[data-view="photos"] .field input:focus,:root[data-view="photos"] .field select:focus,
:root[data-view="photos"] .field textarea:focus,:root[data-view="photos"] .input:focus{
  background:rgba(247,240,228,.10);border-color:rgba(226,179,79,.5)}
:root[data-view="photos"] .notice{background:rgba(247,240,228,.06);border-color:rgba(247,240,228,.14);color:var(--text)}
:root[data-view="photos"] .notice.warn{background:rgba(226,162,63,.13);border-color:rgba(226,162,63,.34)}
:root[data-view="photos"] .notice.danger{background:rgba(210,87,79,.13);border-color:rgba(210,87,79,.34)}
:root[data-view="photos"] .notice.success{background:rgba(79,179,122,.13);border-color:rgba(79,179,122,.34)}
:root[data-view="photos"] .toast{background:var(--toast-bg);color:var(--text);border-color:rgba(247,240,228,.14)}
:root[data-view="photos"] .status-pill,:root[data-view="photos"] .badge.slate{background:rgba(247,240,228,.08);border-color:rgba(247,240,228,.16);color:var(--muted)}
:root[data-view="photos"] .seal{background:rgba(247,240,228,.05);border-color:rgba(226,179,79,.22)}
/* The chapter seal is drawn for ink; on paper the light theme lifts it, and in the dark it does
   not need lifting. The archive is dark, whichever theme is kept. */
:root[data-view="photos"] .sidebar .brand img{filter:none;background:none}
:root[data-view="photos"] ::selection{background:rgba(226,179,79,.3);color:#fbf7ef}

/* ================= DUES & TREASURY =================
   The reference for this screen is a fintech dashboard: broad tinted cards carrying one figure
   each, a ring with the total in the middle of it, capsule columns, pill chips. What is borrowed
   is the structure — one idea per card, the number set large, the explanation small underneath —
   and not the palette. Sage, butter and periwinkle belong to somebody else's brand; the chapter's
   colours are old gold on ink, so the same three cards are tinted from the tokens the rest of the
   portal is mixed from and read as one family with it rather than as a page pasted in. */
.money-heads{gap:16px}
.head-card{position:relative;overflow:hidden;border-radius:var(--radius);padding:20px 22px 18px;
  border:1px solid var(--glass-edge);background:var(--pane);box-shadow:var(--depth);
  display:flex;flex-direction:column;gap:2px;min-height:186px}
/* A wash of the card's own colour across the top, fading out before the small print, so the tint
   reads as light falling on the card rather than as a block of paint behind the words. */
.head-card::before{content:"";position:absolute;inset:0 0 auto;height:72%;pointer-events:none;
  background:linear-gradient(170deg,var(--wash) 0%,transparent 78%)}
.head-card > *{position:relative}
.head-card.sage{--wash:rgba(79,179,122,.16);--edge:rgba(79,179,122,.34)}
.head-card.butter{--wash:rgba(226,179,79,.18);--edge:rgba(226,179,79,.38)}
.head-card.iris{--wash:rgba(127,167,217,.16);--edge:rgba(127,167,217,.34)}
.head-card{border-color:var(--edge,var(--glass-edge))}
.head-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.head-card .tag{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.head-card .tag .ic{width:15px;height:15px;color:var(--gold)}
.head-card .label{margin:0;font-size:15px;color:var(--muted-2)}
.head-card .fig{margin:2px 0 0;font-family:var(--serif);font-size:clamp(28px,3.4vw,38px);font-weight:600;
  line-height:1.05;letter-spacing:-.018em;color:var(--ivory)}
.head-card .fig-sub{font-family:var(--sans);font-size:17px;font-weight:600;color:var(--muted-2);letter-spacing:0}
.head-card .note{margin:8px 0 0;font-size:14.5px;color:var(--muted-2);line-height:1.45}
.head-card .spark{margin-top:auto;padding-top:10px}
.fig-mid{font-family:var(--serif);font-size:32px;font-weight:600;line-height:1;color:var(--ivory)}

/* ---- what a brother owes ----
   The only thing on this screen he can act on, so while there is something to act on it is the
   first thing on it, at a size nothing else competes with. */
.owing{display:grid;grid-template-columns:1.25fr .95fr;gap:26px;align-items:center;
  border-radius:var(--radius);padding:26px 28px;margin-bottom:4px;
  border:1px solid rgba(226,179,79,.34);background:var(--pane);box-shadow:var(--depth);position:relative;overflow:hidden}
.owing::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 120% at 0% 0%,rgba(226,179,79,.14),transparent 62%)}
.owing.late{border-color:rgba(226,162,63,.5)}
.owing.late::before{background:radial-gradient(60% 120% at 0% 0%,rgba(226,162,63,.2),transparent 62%)}
.owing > *{position:relative}
.owing h2{font-family:var(--serif);font-size:clamp(28px,3.2vw,36px);font-weight:600;line-height:1.06;
  letter-spacing:-.016em;margin:4px 0 0}
.owing .lede{margin:8px 0 0;font-size:17px;color:var(--muted)}
.owing-do{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.owing-do .small{margin:0;color:var(--muted-2)}
.btn-lg{min-height:52px;font-size:17.5px;padding:0 24px}
.ways-to-pay{display:grid;gap:8px;margin-top:4px}
.ways-to-pay > button{display:flex;justify-content:space-between;gap:4px 12px;align-items:baseline;flex-wrap:wrap;
  width:100%;min-height:44px;text-align:left;cursor:pointer;font:inherit;
  padding:9px 13px;border-radius:12px;background:rgba(var(--tint),.05);border:1px solid var(--glass-edge);
  transition:background .18s var(--ease),border-color .18s var(--ease)}
.ways-to-pay > button:hover{background:rgba(var(--tint),.1);border-color:rgba(226,179,79,.34)}
.ways-to-pay > button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.ways-to-pay > button .ic{width:15px;height:15px;color:var(--muted-2);flex:none;align-self:center}
.ways-to-pay span{font-size:13.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted-2);flex:none}
/* An address, a cash tag or a name to make a cheque out to is one unbroken run of monospace with
   no space in it to wrap at, so on a 360px screen it pushed the whole page three pixels sideways.
   It breaks where it must rather than where it would like to. */
.ways-to-pay strong{font-family:var(--mono);font-size:15.5px;color:var(--ivory);min-width:0;
  overflow-wrap:anywhere;word-break:break-word;text-align:right}
.paid-quiet{border-color:rgba(79,179,122,.3)}
@media (max-width:960px){.owing{grid-template-columns:1fr;gap:18px;padding:22px}}

/* ---- the budget ----
   One row a line: what it is, how far along it is, and what is left. The bar is the glance; the
   two figures either side of it are the answer, because a bar on its own is a shape. */
.lines{display:flex;flex-direction:column;gap:2px}
.line{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(90px,1.6fr) minmax(104px,auto);
  gap:16px;align-items:center;padding:11px 10px;border-radius:12px;transition:background .18s var(--ease)}
.line:hover{background:rgba(var(--tint),.035)}
.line.loose{grid-template-columns:1fr auto}
.line-say{min-width:0;display:flex;flex-direction:column;gap:2px}
.line-say strong{font-size:16px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.line-say .small{color:var(--muted-2)}
.line-bar{position:relative;height:9px;border-radius:999px;background:rgba(var(--tint),.09);overflow:hidden}
.line-bar > span{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--gold-fill);transition:width .5s var(--ease)}
.line.close .line-bar > span{background:linear-gradient(90deg,var(--gold-deep),var(--amber))}
.line.over .line-bar > span{background:linear-gradient(90deg,var(--gold-deep),var(--red))}
.line.met .line-bar > span,.line.behind .line-bar > span{background:linear-gradient(90deg,rgba(79,179,122,.7),var(--green))}
/* A line past its plan is hatched rather than merely red, so it is legible as "over" to a brother
   who cannot tell the reds from the golds. */
.line-bar .spill{position:absolute;inset:0;border-radius:999px;
  background:repeating-linear-gradient(115deg,transparent 0 5px,rgba(var(--shade),.34) 5px 9px)}
.line-fig{text-align:right;font-size:15.5px;font-weight:600;color:var(--text);white-space:nowrap}
.line-fig .small{font-weight:400;color:var(--muted-2)}
.line-fig .over{color:var(--tone-red)}
.line-fig .ahead{color:var(--tone-green)}
@media (max-width:700px){
  .line{grid-template-columns:1fr auto;gap:5px 12px;padding:10px 6px}
  .line-bar{grid-column:1/-1;order:3}
  .line-fig{order:2}
}

/* ---- the ring ---- */
.ring-wrap{display:grid;place-items:center;margin:2px 0 16px}
.ring{width:min(180px,54vw);height:auto;overflow:visible}
.ring .track{stroke:rgba(var(--tint),.07);stroke-width:15}
.ring .arc{stroke-width:15;stroke-linecap:butt;cursor:default;transition:stroke-width .2s var(--ease),opacity .2s var(--ease)}
.ring .arc:hover,.ring .arc:focus-visible{stroke-width:19;outline:none}
.ring .hole-v{font-family:var(--serif);font-size:27px;font-weight:600;fill:var(--ivory);letter-spacing:-.01em}
.ring-say{margin:-6px 0 0;font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
/* Six steps down one ramp of the chapter's own gold, rather than six unrelated hues: a pie of
   arbitrary colours says the categories are unrelated kinds of thing, and they are not — they are
   all the chapter's money. Neighbouring steps are far enough apart to separate in greyscale. */
.a0{--slice:#efca75} .a1{--slice:#c9973a} .a2{--slice:#8a5e12}
.a3{--slice:#d8c39a} .a4{--slice:#a07b3c} .a5{--slice:#6b5427}
/* On paper the same ramp runs the other way: the pale end of it disappears into cream, so the
   light theme takes six steps down from the dark end instead of up from the light one. */
:root[data-theme="light"] .a0{--slice:#8a5e12} :root[data-theme="light"] .a1{--slice:#b07f24}
:root[data-theme="light"] .a2{--slice:#5f4410} :root[data-theme="light"] .a3{--slice:#caa257}
:root[data-theme="light"] .a4{--slice:#7d5a1c} :root[data-theme="light"] .a5{--slice:#3f2d0a}
.ring .arc{stroke:var(--slice)}
.shares{display:flex;flex-direction:column;gap:11px}
.share-name{display:flex;align-items:center;gap:8px;font-size:15.5px;color:var(--text);min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.share-name .dot{width:9px;height:9px;border-radius:3px;background:var(--slice);flex:none}
.share > .row > strong{font-size:16px;color:var(--ivory)}
.share-bar{height:5px;border-radius:999px;background:rgba(var(--tint),.08);margin:6px 0 3px;overflow:hidden}
.share-bar > span{display:block;height:100%;border-radius:999px;background:var(--slice);transition:width .5s var(--ease)}
.share .small{color:var(--muted-2)}

/* ---- the columns ---- */
.cols-wrap{position:relative;margin:4px -4px 0}
.cols{display:block;width:100%;height:auto;overflow:visible}
/* The track has to be quiet enough that an empty month reads as empty. At .07 on ink it was as
   solid-looking as a filled bar, so a month with nothing in it looked like a month with a great
   deal in it. */
.cols .track{fill:rgba(var(--tint),.045)}
.cols .fill.in{fill:var(--gold-light)}
.cols .fill.out{fill:rgba(var(--tint),.66)}
.cols .tick{font-size:13.5px;fill:var(--muted-2);font-family:var(--sans)}
.cols .col{cursor:default;transition:opacity .18s var(--ease)}
.cols .col:focus-visible{outline:none}
.cols .col:focus-visible .track{stroke:var(--gold);stroke-width:1.5}
.cols-wrap.on .col:not(.lit){opacity:.45}
.cols .col.lit .track{fill:rgba(var(--tint),.12)}
.cols-wrap .spark-tip{top:auto}
.cols-wrap.on .spark-tip{opacity:1}
.legend{display:flex;gap:14px;align-items:center}
.legend .key{display:inline-flex;align-items:center;gap:7px;font-size:14.5px;color:var(--muted-2)}
.legend .key::before{content:"";width:10px;height:10px;border-radius:3px}
.legend .key.in::before{background:var(--gold-light)}
.legend .key.out::before{background:rgba(var(--tint),.66)}

/* ---- dues collection ----
   The mark is where the calendar has got to. A bar without it says 60%; a bar with it says 60%
   with four fifths of the season gone, which is the sentence the chapter actually needs. */
.progress.paced{position:relative;overflow:visible}
.progress.paced > span{border-radius:999px}
.progress.paced .mark{position:absolute;top:-5px;bottom:-5px;width:2px;background:var(--ivory);
  border-radius:2px;opacity:.72;pointer-events:none}
.progress.paced .mark::after{content:"";position:absolute;top:-4px;left:50%;translate:-50% 0;
  border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--ivory)}
.list.tight .item{padding:8px 0}

/* The Treasurer's budget rows, on the Officers' Desk. */
.budget-rows{display:flex;flex-direction:column;gap:6px}
.budget-row{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(120px,1.3fr) minmax(104px,.8fr) minmax(90px,.7fr) auto;
  gap:10px;align-items:end}
.budget-row .field{margin:0}
.budget-row > .btn{margin-bottom:2px}
@media (max-width:960px){.budget-row{grid-template-columns:1fr 1fr;gap:8px 10px}.budget-row > .btn{grid-column:2;justify-self:end}}

/* ================= A BROTHER'S OWN FILE ================= */
#file{display:flex;flex-direction:column;gap:20px}
.welcome-strip{border-radius:var(--radius);padding:22px 26px;border:1px solid rgba(226,179,79,.3);background:var(--pane);
  box-shadow:var(--depth);position:relative;overflow:hidden}
.welcome-strip::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 130% at 0% 0%,rgba(226,179,79,.14),transparent 62%)}
.welcome-strip > *{position:relative}
.welcome-strip h2{font-family:var(--serif);font-size:clamp(26px,3vw,32px);font-weight:600;line-height:1.08;letter-spacing:-.014em;margin:4px 0 0}
.welcome-strip .lede{margin:8px 0 0;max-width:62ch}
.file-grid{align-items:start}

/* The steps. A rail of named pips rather than a bar: a brother should be able to see how many
   there are, which he is on, and jump back to one he has already answered. */
.steps-rail{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 20px}
.pip{display:inline-flex;align-items:center;min-height:30px;padding:5px 11px;border-radius:999px;cursor:pointer;
  font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--muted-2);
  background:rgba(var(--tint),.05);border:1px solid var(--glass-edge);
  transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}
.pip:hover{color:var(--text);background:rgba(var(--tint),.1)}
.pip.done{color:var(--gold-2);border-color:var(--gold-line)}
.pip.on{background:var(--gold-fill);border-color:transparent;color:var(--on-gold)}
.pip:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.form-actions.between{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.field .req{color:var(--gold);font-style:normal;margin-left:2px}
.statement{margin:0 0 18px;padding:14px 16px;border-radius:var(--radius-sm);font-size:16px;line-height:1.55;
  color:var(--text);background:rgba(var(--tint),.045);border:1px solid var(--glass-edge);border-left:3px solid var(--gold)}

/* A choice is a target, not a dot: on a phone the whole row is the thing you press.
   Written against `.field .choice` because a choice IS a <label> inside a .field, and the portal
   sets every field label in small caps — which is right for "DATE OF INITIATION" and wrong for
   the word "Yes", which is an answer rather than a heading. The radio needs the same treatment:
   `.field input` gives it a text box's padding and minimum height, and a radio button is neither. */
.choices{display:flex;flex-direction:column;gap:7px}
.field .choice{display:flex;align-items:center;gap:11px;min-height:46px;padding:9px 14px;border-radius:12px;cursor:pointer;
  font-size:16.5px;font-weight:500;letter-spacing:normal;text-transform:none;color:var(--text);
  background:rgba(var(--tint),.04);border:1px solid var(--glass-edge);margin:0;
  transition:background .18s var(--ease),border-color .18s var(--ease)}
.field .choice:hover{background:rgba(var(--tint),.09)}
.field .choice.on{border-color:rgba(226,179,79,.5);background:rgba(226,179,79,.1)}
.field .choice input[type="radio"]{appearance:none;-webkit-appearance:none;width:18px;height:18px;min-height:0;
  padding:0;margin:0;flex:none;border-radius:999px;border:1.8px solid var(--muted-2);background:none;
  display:grid;place-items:center;box-shadow:none}
.field .choice input[type="radio"]:checked{border-color:var(--gold);background:none}
.field .choice input[type="radio"]:checked::after{content:"";width:9px;height:9px;border-radius:999px;background:var(--gold)}
.field .choice input[type="radio"]:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (max-width:700px){.choices{gap:8px}.choice{min-height:52px}}

/* The photograph. */
.portrait{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--mat);
  border:1px solid var(--glass-edge);display:grid;place-items:center}
.portrait img{width:100%;height:100%;object-fit:cover;display:block}
/* The portrait well is --mat, which is dark in both themes on purpose — a face reads best on a
   dark mat. So its lettering takes the non-flipping companion: a theme token would be a dark
   brown on a dark mat every time the portal was set to paper. */
.portrait-empty{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--on-mat-2)}
.portrait-empty .ic{width:44px;height:44px}
.portrait-empty span{font-size:14.5px}
.handoff{margin-top:16px;text-align:center}
.handoff .qr{width:min(220px,100%);height:auto;border-radius:12px;display:block;margin:12px auto 10px;
  background:#fff;padding:8px;box-shadow:var(--depth)}
.handoff .small{color:var(--muted-2)}
.handoff-url{word-break:break-all;font-size:13px;color:var(--muted-3);margin:8px 0 12px}

/* What he has earned, on his own file. */
.honour-row{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;margin:4px 0 14px}
.honour-row figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:9px;color:var(--gold)}
.honour-row .mark{width:78px;display:block;color:var(--gold)}
.honour-row .mark.service{width:64px}
.honour-row figcaption{font-size:14px;color:var(--muted-2);text-align:center}

/* ---- the marks themselves ---- */
.ins{width:100%;height:auto;display:block;overflow:visible}
/* The services' own seals, in the services' own colours. */
.svc{width:100%;height:auto;display:block}
/* The Life Member shield: the Fraternity's own artwork, painted through as a mask so it takes the
   page's gold — which is a different gold on ink and on paper — instead of carrying one of its own. */
.lm{display:block;width:100%;aspect-ratio:260/363;background-color:currentColor;
  -webkit-mask:url("/welcome/img/life-member-mask.webp") center/contain no-repeat;
  mask:url("/welcome/img/life-member-mask.webp") center/contain no-repeat}
.lm-sm{height:100%;width:auto;aspect-ratio:260/363}
/* Where a browser cannot mask, the alternative to a mark is a word rather than a worse mark —
   and never the gold rectangle an unmasked fill would otherwise leave. */
@supports not ((mask-image: url("/welcome/img/life-member-mask.webp")) or (-webkit-mask-image: url("/welcome/img/life-member-mask.webp"))){
  .lm{background:none;aspect-ratio:auto;width:auto;display:inline-flex;align-items:center;
    padding:2px 7px;border:1px solid currentColor;border-radius:999px;
    font-family:var(--serif);font-size:13.5px;font-weight:700;letter-spacing:.04em}
  .lm::after{content:"ΑΦΑ Life"}
  .lm-sm::after{content:"ΑΦΑ"}
}
/* Beside a name a mark is the height of the line it sits on, and no wider than it has to be. */
.honours{display:inline-flex;gap:7px;align-items:center;color:var(--gold);vertical-align:middle}
.honours .honour{display:inline-flex;height:1.25em;min-height:19px}
.honours .ins,.honours .svc,.honours .lm{height:100%;width:auto}

/* ---- the telephone's own page ----
   Reached by scanning a code. No rail, no top bar, nothing to wander into. */
:root[data-view="hand"] body{background:var(--page)}
.hand{min-height:100dvh;display:grid;place-items:center;padding:24px 18px max(24px,env(safe-area-inset-bottom))}
.hand-box{width:min(420px,100%);text-align:center;padding:30px 24px;border-radius:var(--radius);
  background:var(--pane);border:1px solid var(--pane-edge);box-shadow:var(--shadow)}
.hand-box h2{font-family:var(--serif);font-size:clamp(26px,7vw,32px);font-weight:600;line-height:1.1;letter-spacing:-.014em;margin:6px 0 0}
.hand-box .lede{margin:10px 0 0}
.hand-do{display:flex;flex-direction:column;gap:11px;margin:22px 0 16px}
.hand-tick{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 4px;border-radius:999px;
  background:rgba(79,179,122,.16);border:1px solid rgba(79,179,122,.46);color:var(--green)}
.hand-tick .ic{width:30px;height:30px}


/* ================= LOCKED HOUSE ENTRANCE AUTHORITY =================
   Desktop and mobile are implementations of the owner-supplied locked masters.
   No seasonal/nature imagery, split-paper/blazer composition, or generated substitute is allowed.
   The working authentication flow lives inside this visual shell. */

/* -------- House Entrance / Sign In -------- */
.house-entry{
  min-height:max(100svh,75vw);position:relative;overflow:auto;display:block;
  padding:0;
  color:#f8f1e5;
  background-image:var(--locked-entrance-desktop);
  background-size:100% auto;
  background-position:center top;
  background-repeat:no-repeat;
  background-color:#080706;
}
.house-entry::before{display:none}
.house-entry::after{display:none}
.entry-vignette{display:none}
.entry-center{position:absolute;z-index:3;left:50%;top:32.75%;width:min(28vw,404px);padding:8px 10px 10px;text-align:center;transform:translateX(-50%);border-radius:10px;background:rgba(5,5,5,.992);box-shadow:0 16px 36px rgba(0,0,0,.24)}
.entry-center::before{display:none}
.entry-identity{display:flex;flex-direction:column;align-items:center;text-shadow:0 3px 18px rgba(0,0,0,.76)}
.entry-apa{order:1;font-family:Georgia,var(--serif);font-size:clamp(68px,7vw,96px);font-weight:700;line-height:.82;color:#efca75;letter-spacing:-.07em}
.entry-fraternity{order:2;margin-top:12px;font-family:Georgia,var(--serif);font-size:18px;font-weight:700;letter-spacing:.13em;line-height:1.18;color:#fff8ec}
.entry-fraternity span{font-size:13px;letter-spacing:.22em}
.entry-rule{order:3;width:64px;height:2px;margin:14px 0;background:#cf9d3d}
.entry-chapter{order:4;font-family:Georgia,var(--serif);color:#efca75;font-weight:700;letter-spacing:.24em;font-size:15px}
.entry-chapter::before,.entry-chapter::after{content:"";display:none;width:46px;height:1px;background:#cf9d3d;flex:none}
.entry-place{order:5;margin-top:5px;font-size:11px;letter-spacing:.19em;color:#f4ead9}
.entry-identity h1{order:6;margin:18px 0 0;font-family:Georgia,var(--serif);font-size:clamp(38px,3.45vw,48px);font-weight:500;line-height:1;color:#fffaf2;white-space:nowrap}
.entry-sub{order:7;margin:7px 0 0;font-family:Georgia,var(--serif);font-size:18px;color:#f5ecdf}

.entry-inscription{
  position:relative;z-index:2;align-self:center;display:flex;flex-direction:column;justify-content:center;gap:10px;
  width:min(19vw,286px);min-height:640px;padding:44px clamp(24px,2.8vw,42px);
  color:#d9aa53;font-family:Georgia,var(--serif);letter-spacing:.18em;font-size:14px;line-height:1.42;text-shadow:0 3px 18px #000;
  border:1px solid rgba(203,145,47,.54);
  background:
    radial-gradient(100% 36% at 50% 0%,rgba(226,179,79,.08),transparent 68%),
    linear-gradient(180deg,rgba(25,20,15,.96),rgba(10,9,8,.98));
  box-shadow:0 24px 58px rgba(0,0,0,.40),inset 0 0 0 1px rgba(255,255,255,.025);
}
.entry-inscription p{margin:0}
.entry-inscription span{width:44px;height:2px;background:#d4a346;margin:10px 0}
.entry-inscription-left{justify-self:start;text-align:left}
.entry-inscription-left::after{
  content:"";position:absolute;left:-46px;bottom:-30px;width:170px;height:245px;pointer-events:none;opacity:.78;
  background:
    radial-gradient(ellipse at 58% 8%,#342d1e 0 7%,transparent 8%),
    radial-gradient(ellipse at 32% 20%,#2a2818 0 8%,transparent 9%),
    radial-gradient(ellipse at 72% 28%,#352f1c 0 9%,transparent 10%),
    radial-gradient(ellipse at 27% 39%,#222516 0 10%,transparent 11%),
    radial-gradient(ellipse at 66% 48%,#302c19 0 9%,transparent 10%),
    linear-gradient(90deg,transparent 46%,#4f3820 47% 50%,transparent 51%);
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.55));
}
.entry-inscription-right{justify-self:end;text-align:center}
.entry-tacoma-frame{width:min(16vw,214px);aspect-ratio:.78;margin:18px auto 10px;border:1px solid rgba(226,179,79,.72);padding:7px;background:#0d0b09;box-shadow:0 16px 34px rgba(0,0,0,.46),inset 0 0 0 2px rgba(226,179,79,.08)}
.entry-tacoma-frame img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(.13) saturate(.92) brightness(.82) contrast(1.04)}

.entry-card{margin:20px auto 0;padding:22px;border:1px solid rgba(239,202,117,.72);border-radius:14px;background:linear-gradient(155deg,rgba(18,15,12,.86),rgba(10,9,8,.80));box-shadow:0 24px 80px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(18px) saturate(130%);text-align:left}
.entry-card>.eyebrow{text-align:center;font-family:Georgia,var(--serif);font-size:18px;text-transform:none;letter-spacing:0;color:#fff7e8;margin-bottom:4px}
.entry-card>.eyebrow:empty{display:none}
.entry-card .field label{color:#d7c9b6}
.entry-card .field input{background:rgba(4,4,4,.52);border-color:rgba(255,255,255,.24);color:#fffaf2}
.entry-card .btn-go{background:linear-gradient(180deg,#f4ca70,#d99c37);color:#1a1108;box-shadow:0 8px 28px rgba(217,156,55,.20)}
.entry-card .links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:12px}
.entry-card .links a,.entry-card .links button{color:#d8ae58}
.entry-card .assurance{margin:14px 0 0;text-align:center;color:#c9bcab;font-size:12px}
.entry-card .remember-row,.entry-card .remember-row .check span{color:#d8cbb9}
.entry-alpha-form>.remember-row,.entry-alpha-form>#remember-pop{display:none}

.entry-card:has(.entry-login){width:min(100%,490px);padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none}
.entry-card:has(.entry-login)>.assurance{display:none}
.entry-card:has(.entry-login)>.links{margin-top:14px}
.house-entry[data-entry-step="FIRST"] .entry-card:has(.entry-login)>.links{display:none}
.entry-login{display:flex;flex-direction:column;gap:11px}
.entry-login-primary{padding:13px 14px 10px;border:1px solid rgba(239,202,117,.72);border-radius:10px;background:rgba(6,6,5,.985);box-shadow:0 12px 30px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.07)}
.entry-login-heading{display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;align-items:start;text-align:left;margin-bottom:9px}
.entry-login-shield{display:grid;place-items:center;width:30px;height:32px;color:#efca75}
.entry-login-shield .ic{width:27px;height:27px}
.entry-login-heading h2{font-family:Georgia,var(--serif);font-size:16px;font-weight:500;line-height:1.15;color:#fff7e8;margin:0}
.entry-login-heading p{margin:2px 0 0;font-family:Georgia,var(--serif);font-size:10.5px;line-height:1.3;color:#e0d5c4}
.entry-login-primary .field{margin-bottom:9px}
.entry-login-primary .door-field .label-row{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.entry-login-primary .door-field .hint{display:none}
.entry-login-primary .door-field .lead{min-height:40px}
.entry-login-primary .door-field input{min-height:40px}
.entry-login-primary .btn-go{min-height:42px;border-radius:7px;font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:0;text-transform:none}
.entry-login-primary .btn-go .go{width:44px}
.entry-login-primary .passkey-lane,.entry-login-primary .passkey-link{display:none!important}
.entry-passcode-link{display:none;margin:7px auto 0;color:#e9bd60;text-decoration:underline;font-size:12px}
.house-entry[data-entry-step="FIRST"] .entry-passcode-link{display:block}
.entry-forgot{display:none;margin:10px auto 0;color:#e9bd60;text-align:center;text-decoration:underline;text-underline-offset:3px}
.house-entry[data-entry-step="KNOWN"] .entry-forgot,
.house-entry[data-entry-step="SIX"] .entry-forgot{display:block}
.entry-other{display:flex;align-items:center;gap:12px;margin:8px 4px 5px;padding:2px 3px;background:rgba(5,5,5,.90);font-size:10px;letter-spacing:.22em;color:#ddd1c1}
.entry-other::before,.entry-other::after{content:"";height:1px;background:rgba(255,255,255,.32);flex:1}
.entry-provider{width:100%;min-height:40px;margin:0;border-radius:7px;border:1px solid rgba(255,255,255,.24);display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;padding:0 14px;text-align:center;font-family:Georgia,var(--serif);font-size:14px}
.entry-provider strong{font-size:18px;text-align:center}
.entry-provider span{grid-column:2}
.entry-provider .ic{width:20px;height:20px;color:#e5ae47}
.entry-provider.google{background:#fff;color:#17130f;border-color:#fff}
.entry-provider.google strong{
  background:conic-gradient(from -35deg,#4285f4 0 25%,#34a853 25% 45%,#fbbc05 45% 68%,#ea4335 68% 83%,#4285f4 83% 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;font-family:Arial,sans-serif;font-weight:800
}
.entry-provider.apple{background:#030303;color:#fff}
.entry-provider.apple strong{color:#fff;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display",sans-serif}
.entry-provider.apple strong::before{content:"";font-size:22px}
.entry-provider.apple strong{font-size:0}
.entry-provider.email{background:rgba(16,14,12,.88);color:#f7efe2}
.entry-provider:not([disabled]){cursor:pointer}
.entry-provider[disabled]{opacity:1;cursor:not-allowed}
.entry-email-form{margin-top:4px;padding:12px;border:1px solid rgba(239,202,117,.28);border-radius:8px;background:rgba(8,8,8,.88)}
.entry-email-form[hidden]{display:none}
.entry-login-assurance{display:flex;align-items:flex-start;justify-content:center;gap:8px;margin:4px 4px 0;padding:5px 7px;border-radius:7px;background:rgba(5,5,5,.90);color:#d7ccbd;font-family:Georgia,var(--serif);font-size:9.5px;line-height:1.32;text-align:left}
.entry-login-assurance .ic{width:18px;height:18px;color:#e6b552;flex:none}
.entry-login-assurance a{color:#e9bd60;text-decoration:underline;text-underline-offset:2px}

.entry-floor-seal{position:absolute;z-index:2;left:50%;bottom:-72px;transform:translateX(-50%) perspective(980px) rotateX(69deg);width:min(43vw,590px);opacity:.98;filter:drop-shadow(0 22px 24px rgba(0,0,0,.58))}
.entry-floor-seal .seal-mark{width:100%;height:auto;display:block}

@media(max-width:780px){
  .house-entry{
    min-height:max(100svh,218.4874vw);display:block;
    padding:0;
    background-image:var(--locked-entrance-mobile);
    background-size:100% auto;
    background-position:center top;
    background-repeat:no-repeat;
  }
  .house-entry::before{display:none}
  .entry-center{left:50%;top:30.2%;width:min(88.5vw,350px);padding:8px 8px 10px;transform:translateX(-50%);border-radius:18px;background:rgba(5,5,5,.994);box-shadow:0 14px 34px rgba(0,0,0,.24)}
  .entry-center::before{display:none}
  .entry-card:has(.entry-login){width:100%;padding:0;margin:0 auto}
  .entry-login{gap:10px}
  .entry-login-primary{padding:14px 13px 11px;border-radius:17px}
  .entry-login-heading{grid-template-columns:34px 1fr;gap:9px;margin-bottom:10px}
  .entry-login-shield{width:32px;height:35px}
  .entry-login-heading h2{font-size:16px;white-space:nowrap}
  .entry-login-heading p{font-size:10.5px}
  .entry-login-primary .door-field .lead,.entry-login-primary .door-field input{min-height:46px}
  .entry-login-primary .btn-go{min-height:48px;font-size:17px}
  .entry-passcode-link,.entry-forgot{font-size:12.5px;margin-top:8px}
  .entry-other{margin:12px 5px 6px;font-size:9.5px}
  .entry-provider{min-height:42px;border-radius:8px;font-size:13.5px}
  .entry-login-assurance{font-size:9.5px;margin:6px 10px 0;justify-content:flex-start}
}
@media(max-width:440px){
  .house-entry{padding:0}
  .entry-center{width:min(88.5vw,350px);padding-left:7px;padding-right:7px}
  .entry-card:has(.entry-login){width:100%}
  .entry-login-primary{padding:13px 12px 10px}
  .entry-login-heading h2{font-size:15.5px}
  .entry-login-heading p{font-size:10px}
  .entry-provider{font-size:13.5px}
}


/* Exact-master composition owns the architectural copy, masthead and floor medallion. */
.house-entry .entry-identity,
.house-entry .entry-inscription,
.house-entry .entry-floor-seal{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.house-entry .entry-card{margin:0 auto}
.house-entry .entry-card:has(.entry-login){width:min(100%,374px);padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none}
.house-entry .entry-login-primary{background:rgba(6,6,5,.985);border-color:rgba(239,202,117,.70)}
.house-entry .entry-provider.email{background:rgba(18,16,13,.96)}
/* Exact-master mobile final cascade */
@media(max-width:780px){
  .house-entry .entry-card:has(.entry-login){width:100%}
}
@media(max-width:440px){
  .house-entry .entry-card:has(.entry-login){width:100%}
}

/* ---- SINGLE INTERACTIVE AUTH SURFACE ----
   The locked visual masters contain a composed login panel as pixels. The real portal must render
   only one live authentication surface, so this dark architectural mat masks the baked-in center
   panel while preserving the master room around it. The live .entry-center sits above this mat. */
.house-entry::before{
  content:"";display:block;position:absolute;z-index:2;pointer-events:none;
  left:50%;top:28%;bottom:9%;width:min(35vw,500px);transform:translateX(-50%);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(5,5,5,.998) 0%,rgba(6,6,5,.996) 72%,rgba(8,7,6,.97) 100%);
  box-shadow:0 22px 64px rgba(0,0,0,.38),inset 0 1px 0 rgba(239,202,117,.055);
}
.house-entry .entry-center{z-index:4}
@media(min-width:781px) and (max-width:1180px){
  .house-entry::before{top:27%;bottom:9%;width:min(48vw,520px);border-radius:24px}
}
@media(max-width:780px){
  .house-entry::before{
    top:27%;bottom:8%;width:min(94vw,410px);border-radius:26px;
    background:linear-gradient(180deg,rgba(5,5,5,.999) 0%,rgba(6,6,5,.998) 74%,rgba(8,7,6,.975) 100%);
  }
}
@media(max-width:440px){
  .house-entry::before{top:26.5%;bottom:7.5%;width:95vw;border-radius:24px}
}

/* ================= HOUSE ENTRANCE V5 — HOUSE KEY AUTHORITY =================
   One clean threshold image, one live interface, no credential pixels baked into the artwork. */
.house-entry-login{
  min-height:100svh!important;
  background:url("/welcome/img/entrance-v3/base-centered-door.avif") center/cover no-repeat!important;
  overflow:auto;
}
.house-entry-login::before,.house-entry-login::after{display:none!important}
.house-entry-login .entry-center-login{
  position:relative!important;inset:auto!important;left:auto!important;top:auto!important;
  width:100%!important;min-height:100svh;padding:0!important;margin:0!important;
  transform:none!important;background:transparent!important;border:0!important;box-shadow:none!important;
  display:block;text-align:initial;
}
.house-entry-login .entry-center-login::before{display:none!important}
.house-entry-login .entry-card-login{
  width:100%!important;min-height:100svh!important;max-width:none!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;
}
.v5-entry{
  box-sizing:border-box;min-height:100svh;width:100%;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,455px);
  align-items:center;gap:clamp(28px,6vw,96px);
  padding:clamp(38px,6vw,84px) clamp(32px,7vw,108px);
}
.v5-brand{
  align-self:center;justify-self:center;text-align:center;color:#fff6e6;
  text-shadow:0 5px 26px rgba(0,0,0,.86);max-width:680px;
}
.v5-apa{
  font-family:Georgia,var(--serif);font-size:clamp(94px,11vw,174px);font-weight:700;
  line-height:.8;letter-spacing:-.07em;color:#f0c96f;margin:0 0 26px;
}
.v5-chapter{
  font-family:Georgia,var(--serif);font-size:clamp(18px,2vw,26px);font-weight:650;
  letter-spacing:.23em;color:#fff4df;
}
.v5-place{margin-top:9px;font-size:12px;font-weight:650;letter-spacing:.18em;color:#d8cbb5}
.v5-number{
  display:block!important;visibility:visible!important;opacity:1!important;position:relative!important;z-index:3;
  width:max-content;margin:28px auto 0;padding:8px 18px 7px;border:1px solid rgba(238,196,102,.72);
  border-radius:4px;background:linear-gradient(180deg,rgba(19,15,10,.92),rgba(4,4,4,.96));
  box-shadow:0 9px 24px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,230,163,.06);
  font-family:Georgia,var(--serif);font-size:24px;font-weight:650;letter-spacing:.28em;color:#e7bd5c;
  text-indent:.28em;
}
.v5-access{
  align-self:center;width:100%;box-sizing:border-box;padding:28px 28px 24px;border-radius:22px;
  border:1px solid rgba(232,190,94,.54);
  background:
    radial-gradient(120% 70% at 50% 0%,rgba(218,163,60,.10),transparent 58%),
    linear-gradient(160deg,rgba(8,7,6,.965),rgba(3,3,3,.985));
  box-shadow:0 30px 80px rgba(0,0,0,.54),inset 0 1px 0 rgba(255,255,255,.045);
  backdrop-filter:blur(18px) saturate(115%);
  color:#f7efe1;
}
.v5-access>.eyebrow{color:#d9a846;font-size:11px;letter-spacing:.21em;margin-bottom:9px}
.v5-access h1{font-family:Georgia,var(--serif);font-size:clamp(32px,3.1vw,44px);font-weight:500;line-height:1.04;color:#fff8ec;margin:0 0 11px}
.v5-lede{font-family:Georgia,var(--serif);font-size:16.5px;line-height:1.55;color:#d9cebd;margin:0 0 20px}
.v5-key-primary{min-height:58px;border-radius:9px;font-size:16px;letter-spacing:.03em}
.v5-device-note{margin:11px 2px 14px;font-size:12px;line-height:1.45;color:#aaa08f;text-align:center}
.v5-email-key-toggle{display:block;margin:4px auto 0;color:#e3b75b;font-size:13.5px}
.v5-email-key{margin-top:14px;padding:14px;border-radius:12px;border:1px solid rgba(229,180,80,.22);background:rgba(255,255,255,.025)}
.v5-key-said{margin:14px 0 0;padding:12px 14px;border-radius:10px;border:1px solid rgba(92,155,105,.42);background:rgba(68,123,80,.10);color:#dce9dd;font-size:13px;line-height:1.5}
.v5-access-links{display:flex;justify-content:center;gap:9px 18px;flex-wrap:wrap;margin:18px 0 0;padding-top:16px;border-top:1px solid rgba(226,179,79,.18)}
.v5-access-links a{font-size:12.5px;color:#d8ad57;text-decoration:underline;text-underline-offset:3px}
.v5-other{margin-top:16px;border-top:1px solid rgba(255,255,255,.09);padding-top:13px}
.v5-other summary{cursor:pointer;text-align:center;color:#bcae99;font-size:12px;letter-spacing:.10em;text-transform:uppercase}
.v5-other-body{display:flex;flex-direction:column;gap:9px;margin-top:12px}
.v5-legacy-form{padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(0,0,0,.24)}
.v5-legacy-form .small{margin-bottom:10px;color:#baad9b}
.entry-forgot-v5{display:block;margin:10px auto 0;text-align:center;color:#d8ad57;font-size:12.5px;text-decoration:underline}
.v5-assurance{display:flex;align-items:flex-start;gap:8px;margin:16px 0 0;color:#a99e8d;font-size:11.5px;line-height:1.45}
.v5-assurance .ic{width:16px;height:16px;flex:none;color:#d8ad57;margin-top:1px}
.v5-terms{margin:10px 0 0;text-align:center;font-size:10.5px;color:#8f8679}
.v5-terms a{color:#ba9650;text-decoration:underline}
.v5-public-state{width:min(92vw,620px);margin:0 auto;padding:34px;border-radius:22px;border:1px solid rgba(232,190,94,.54);background:rgba(5,5,5,.97);box-shadow:0 26px 70px rgba(0,0,0,.5);color:#f7efe1;text-align:center}
.v5-public-state .v5-apa{font-size:clamp(74px,10vw,126px);margin-bottom:20px}
.v5-public-state h1{color:#fff7e9;margin:18px 0 12px}
.v5-request{max-width:760px;text-align:left}
.v5-request>.v5-apa,.v5-request>.v5-chapter,.v5-request>.v5-place,.v5-request>.v5-number{text-align:center}
.v5-request .v5-number{margin-inline:auto}
.v5-request-form{margin-top:22px}
.v5-request-actions{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:12px}
.v5-request-received{text-align:center;padding:26px 12px}.v5-request-received>.ic{width:38px;height:38px;color:#dcb35c}.v5-request-received h2{margin:12px 0 8px}
.v5-trust{margin:0 0 14px}.v5-back{display:block;text-align:center;margin-top:14px}

/* ---- V5 Door Ceremony ---- */
.door-v5{position:fixed;inset:0;z-index:1000;background:#050403;color:#fff;overflow:hidden}
.door-v5-media,.door-v5-media video,.door-v5-shade{position:absolute;inset:0;width:100%;height:100%}
.door-v5-media video{object-fit:cover;background:#050403}
.door-v5-shade{pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.12),transparent 42%,rgba(0,0,0,.42))}
.door-v5-identity{position:absolute;z-index:2;left:50%;top:6%;transform:translateX(-50%);text-align:center;text-shadow:0 4px 22px #000;pointer-events:none}
.door-v5-apa{font-family:Georgia,var(--serif);font-size:clamp(62px,8vw,124px);font-weight:700;line-height:.82;letter-spacing:-.07em;color:#efca75}
.door-v5-chapter{margin-top:17px;font-family:Georgia,var(--serif);font-size:clamp(13px,1.5vw,20px);font-weight:650;letter-spacing:.24em;color:#fff0d6}
.door-v5-place{margin-top:6px;font-size:10px;font-weight:650;letter-spacing:.18em;color:#d4c4ad}
.door-v5-number{width:max-content;margin:14px auto 0;padding:5px 12px;border:1px solid rgba(235,194,97,.7);background:rgba(7,6,5,.82);font-family:Georgia,var(--serif);font-size:17px;letter-spacing:.25em;text-indent:.25em;color:#e3b85d}
.door-v5-controls{position:absolute;z-index:4;left:50%;bottom:max(6vh,42px);transform:translateX(-50%);width:min(90vw,560px);padding:18px 22px;text-align:center;border-radius:16px;border:1px solid rgba(226,179,79,.28);background:rgba(4,4,4,.68);backdrop-filter:blur(10px);box-shadow:0 20px 50px rgba(0,0,0,.4)}
.door-v5-controls h1{font-family:Georgia,var(--serif);font-size:clamp(26px,3.2vw,38px);font-weight:500;color:#fff7e9;margin:5px 0 8px}
.door-v5-controls p:not(.eyebrow){color:#d5c9b6;font-size:13.5px;margin:0}
.door-v5-open{margin:14px auto 0;min-width:230px}
.door-v5-skip{display:block;margin:11px auto 0;padding:6px 10px;border:0;background:none;color:#d8ad57;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

@media(max-width:780px){
  .house-entry-login{background-position:center top!important}
  .v5-entry{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:start;gap:18px;padding:28px 18px 34px}
  .v5-brand{margin-top:4px}
  .v5-apa{font-size:clamp(76px,25vw,118px);margin-bottom:18px}
  .v5-chapter{font-size:15px;letter-spacing:.18em}
  .v5-place{font-size:9.5px;letter-spacing:.14em}
  .v5-number{margin-top:16px;font-size:18px;padding:6px 14px}
  .v5-access{width:min(94vw,430px);justify-self:center;padding:22px 18px 20px;border-radius:18px}
  .v5-access h1{font-size:32px}
  .v5-key-primary{min-height:54px}
  .v5-public-state{margin-top:18px;padding:26px 20px}
  .door-v5-media video{object-position:center center}
  .door-v5-identity{top:5%;width:94vw}
  .door-v5-apa{font-size:72px}
  .door-v5-chapter{font-size:12px}
  .door-v5-controls{bottom:max(4vh,24px);padding:15px 16px}
}
@media(prefers-reduced-motion:reduce){
  .door-v5-media video{display:none}
  .door-v5-media{background:url("/welcome/img/entrance/house-entrance-dark-v5.jpg") center/cover no-repeat}
}


/* Door Ceremony keeps the same media and controls, but its framing follows device family. */
@media (min-width:601px) and (max-width:1180px){
  .door-v5-identity{top:4.5%;width:min(88vw,760px)}
  .door-v5-controls{width:min(78vw,560px);bottom:max(4.5vh,34px)}
}
@media (max-width:600px){
  .door-v5-identity{top:4%;width:94vw}
  .door-v5-apa{font-size:64px}
  .door-v5-chapter{font-size:11px;letter-spacing:.16em}
  .door-v5-place{font-size:8.5px}
  .door-v5-controls{width:90vw;bottom:max(3vh,20px);padding:14px}
}


/* -------- Official authenticated House shell -------- */
:root{--sidebar:226px}
.sidebar{background:
  radial-gradient(120% 42% at 50% 0%,rgba(226,179,79,.14),transparent 72%),
  linear-gradient(180deg,#090908 0%,#060707 65%,#070706 100%);border-right:1px solid rgba(226,179,79,.22)}
.sidebar .rail-toggle{opacity:.55}
.sidebar .brand{padding:22px 16px 18px;gap:4px;border-bottom:1px solid rgba(226,179,79,.16)}
.sidebar .brand .seal-mark{width:118px;height:118px;filter:drop-shadow(0 10px 24px rgba(0,0,0,.36))}
.sidebar .brand .rail-mark{display:none}
.sidebar .brand .name{margin-top:8px;font-family:Georgia,var(--serif);font-size:18px;line-height:1.02;color:#e9bd60;text-transform:none;letter-spacing:.01em;text-align:center}
.sidebar .brand .house-name{display:none}
.sidebar .brand .place,.sidebar .brand .charter{font-size:12px;color:#e8e0d3;letter-spacing:.02em;text-transform:none}
.sidebar .nav.primary{padding-top:10px}
.sidebar .nav a{min-height:42px;border-radius:7px;margin:2px 10px;padding:0 12px;font-size:14px}
.sidebar .nav a.active{background:linear-gradient(90deg,rgba(183,121,33,.34),rgba(226,179,79,.13));border:1px solid rgba(226,179,79,.40);color:#fff3d8}
.sidebar .nav a .ic{color:#e1b654}
.nav-overflow{margin:7px 10px 0;border-top:1px solid rgba(226,179,79,.15);padding-top:7px}
.nav-overflow>summary{display:flex;align-items:center;gap:10px;min-height:38px;padding:0 10px;color:#a99c8e;cursor:pointer;font-size:13px;list-style:none}
.nav-overflow>summary::-webkit-details-marker{display:none}
.nav-overflow>summary .ic{color:#c79b45}
.nav-overflow .nav.secondary{padding:4px 0 0}
.nav-overflow .nav.secondary a{margin-inline:0}
.sidebar-spacer{flex:1}
.sidebar .nav.utility{margin-top:8px;border-top:1px solid rgba(226,179,79,.15);padding-top:8px}
.sidebar-signout{display:flex;align-items:center;gap:11px;min-height:42px;margin:0 10px 8px;padding:0 12px;background:none;border:0;color:#ece4d8;cursor:pointer;font:inherit;text-align:left}
.sidebar-signout .ic{color:#e1b654}
.sidebar .creed{padding:10px 18px 18px;color:#d7a94f;font-size:10px;letter-spacing:.23em}
.sidebar .scripture{display:none}
.topbar{min-height:68px;background:rgba(8,8,8,.86);border-bottom:1px solid rgba(226,179,79,.14);backdrop-filter:blur(14px)}
.topbar .titles{min-width:0}
.topbar .titles h1{font-size:25px}
.topbar .titles .subtitle{font-size:13px}
.topbar .mobile-menu,.topbar .mobile-brand{display:none}
.topbar .notice-bell:disabled{opacity:.72}
.topbar .who{border-left:1px solid rgba(226,179,79,.15);padding-left:14px}
.colophon .est span:last-child{color:var(--gold-2)}

html[data-theme="light"] .sidebar{background:
  radial-gradient(100% 35% at 50% 0%,rgba(199,145,45,.10),transparent 70%),
  linear-gradient(180deg,#fbf6eb,#f4ecdf 75%,#efe4d4);border-right-color:rgba(80,52,15,.14)}
html[data-theme="light"] .sidebar .brand .name{color:#171512}
html[data-theme="light"] .sidebar .brand .place,
html[data-theme="light"] .sidebar .brand .charter{color:#38332c}
html[data-theme="light"] .sidebar .nav a{color:#171512}
html[data-theme="light"] .sidebar .nav a.active{background:linear-gradient(90deg,rgba(200,151,58,.22),rgba(255,255,255,.48));border-color:rgba(161,108,21,.28)}
html[data-theme="light"] .sidebar-signout{color:#1d1914}
html[data-theme="light"] .topbar{background:rgba(250,245,236,.91);border-bottom-color:rgba(80,52,15,.12)}

/* -------- Official Dashboard -------- */
html[data-view="dashboard"] .topbar .titles,
html[data-view="dashboard"] .topbar .search,
html[data-view="dashboard"] .topbar .datestamp{display:none}
html[data-view="dashboard"] .view{padding-top:0}
.official-house{display:block;max-width:none;margin:0}
.official-dashboard{display:flex;flex-direction:column;gap:12px;max-width:1220px;margin:0 auto;padding:16px 20px 28px}
.official-welcome{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 2px 2px}
.official-welcome h2{font-size:28px;color:var(--gold-light)}
.official-welcome p{margin:2px 0 0;color:var(--muted);font-size:14px}
.official-weather{display:flex;align-items:center;gap:9px;padding:7px 12px;border-left:1px solid var(--gold-line)}
.official-weather>.ic{width:28px;height:28px;color:var(--gold-light)}
.official-weather span{display:grid;grid-template-columns:auto auto;column-gap:7px;align-items:end}
.official-weather small{grid-column:1/-1;color:var(--muted);font-size:11px}
.official-weather strong{font-family:Georgia,var(--serif);font-size:24px;line-height:1}
.official-weather em{font-style:normal;color:var(--muted);font-size:12px}
.official-hero{position:relative;min-height:360px;border:1px solid rgba(226,179,79,.28);border-radius:12px;overflow:hidden;background:#090807;box-shadow:var(--depth-lift)}
.official-room{position:absolute;inset:0;overflow:hidden;background:
  radial-gradient(26% 28% at 18% -6%,rgba(255,194,76,.28),transparent 74%),
  radial-gradient(26% 28% at 52% -6%,rgba(255,194,76,.22),transparent 74%),
  radial-gradient(26% 28% at 85% -6%,rgba(255,194,76,.26),transparent 74%),
  linear-gradient(90deg,#080706 0 7%,#1b1209 7.3% 9%,#0a0807 9.4% 30%,#171009 30.4% 32%,#070707 32.4% 68%,#171009 68.4% 70%,#090807 70.4% 91%,#1b1209 91.4% 93%,#080706 93.4% 100%)}
.official-room::after{content:"";position:absolute;left:-12%;right:-12%;bottom:-54%;height:74%;transform:perspective(900px) rotateX(62deg);transform-origin:50% 0;background:
  repeating-linear-gradient(90deg,rgba(255,255,255,.055) 0 11%,rgba(0,0,0,.28) 11.3% 12.2%),
  linear-gradient(180deg,#2a1a0e,#060606 72%);border-top:1px solid rgba(226,179,79,.30)}
.official-room-column{position:absolute;top:0;bottom:22%;width:18px;background:linear-gradient(90deg,#040404,#3a2410 45%,#e0aa47 52%,#2b1b0d 58%,#050505);box-shadow:0 0 26px rgba(226,179,79,.18)}
.official-room-column.c1{left:7%}.official-room-column.c2{left:29%}.official-room-column.c3{right:29%}.official-room-column.c4{right:7%}
.official-room-window{position:absolute;right:13%;top:9%;width:25%;height:54%;margin:0;padding:6px;border:1px solid rgba(226,179,79,.42);background:#0b0907;box-shadow:0 18px 40px rgba(0,0,0,.44)}
.official-room-window img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(.25) saturate(.8) brightness(.52)}
html[data-theme="light"] .official-room-window img{filter:sepia(.06) saturate(.92) brightness(1)}
html[data-theme="light"] .official-room{
  background:
    radial-gradient(34% 28% at 18% -5%,rgba(255,210,120,.44),transparent 76%),
    radial-gradient(34% 28% at 52% -5%,rgba(255,232,178,.40),transparent 76%),
    radial-gradient(34% 28% at 85% -5%,rgba(255,210,120,.42),transparent 76%),
    linear-gradient(90deg,#d9c6a5 0 7%,#9e6e2d 7.3% 9%,#eadbc2 9.4% 30%,#b8863f 30.4% 32%,#f3e7d3 32.4% 68%,#b8863f 68.4% 70%,#eadbc2 70.4% 91%,#9e6e2d 91.4% 93%,#d9c6a5 93.4% 100%)
}
html[data-theme="light"] .official-room::after{background:
  repeating-linear-gradient(90deg,rgba(255,255,255,.34) 0 11%,rgba(96,66,28,.16) 11.3% 12.2%),
  linear-gradient(180deg,#c7ab7e,#746045 72%)}
html[data-theme="light"] .official-sphinx .base{background:linear-gradient(180deg,#c7ad7b,#8f764f)}
html[data-theme="light"] .official-sphinx .body{background:linear-gradient(145deg,#d8c39c,#9f865e)}
html[data-theme="light"] .official-sphinx .head{background:linear-gradient(145deg,#dec9a2,#a88c62)}
html[data-theme="light"] .official-sphinx .head::before{background:linear-gradient(145deg,#cdb488,#8e754f)}
html[data-theme="light"] .official-hero-shade{background:linear-gradient(90deg,rgba(14,10,7,.52),rgba(14,10,7,.10) 55%,rgba(255,255,255,.05)),linear-gradient(180deg,rgba(255,255,255,.02),rgba(18,12,8,.20))}
html[data-theme="light"] .official-alert{background:rgba(255,252,246,.92);border-color:rgba(143,96,24,.24);color:#17130f;box-shadow:0 10px 24px rgba(82,57,25,.16)}
html[data-theme="light"] .official-alert:hover{background:#fffaf0;color:#17130f}
html[data-theme="light"] .official-alert span span{color:#3d352d}
html[data-theme="light"] .official-alert small{color:#75695b}

.official-sphinx{position:absolute;left:40%;top:11%;width:210px;height:180px;filter:drop-shadow(0 18px 20px rgba(0,0,0,.58))}
.official-sphinx .base{position:absolute;left:5%;right:5%;bottom:0;height:38px;background:linear-gradient(180deg,#8f7244,#4e3b24);clip-path:polygon(5% 0,95% 0,100% 100%,0 100%)}
.official-sphinx .body{position:absolute;left:3%;bottom:34px;width:94%;height:62px;background:linear-gradient(145deg,#9f8354,#6b5636);clip-path:polygon(9% 30%,48% 5%,79% 20%,100% 69%,84% 100%,12% 100%,0 70%)}
.official-sphinx .head{position:absolute;left:39%;top:3px;width:72px;height:82px;background:linear-gradient(145deg,#b09260,#6e5738);clip-path:polygon(50% 0,76% 12%,89% 45%,75% 100%,25% 100%,11% 45%,24% 12%)}
.official-sphinx .head::before{content:"";position:absolute;left:-24px;right:-24px;top:10px;height:56px;background:linear-gradient(145deg,#96794d,#5b472e);clip-path:polygon(50% 0,100% 18%,84% 100%,16% 100%,0 18%);z-index:-1}
.official-roses{position:absolute;left:29%;top:35%;width:72px;height:36px;background:
  radial-gradient(circle at 12% 60%,#d2a832 0 8%,transparent 9%),
  radial-gradient(circle at 30% 35%,#e6c24b 0 9%,transparent 10%),
  radial-gradient(circle at 50% 55%,#d2a832 0 9%,transparent 10%),
  radial-gradient(circle at 72% 30%,#e6c24b 0 9%,transparent 10%),
  radial-gradient(circle at 88% 58%,#d2a832 0 8%,transparent 9%)}

.official-hero-art{position:absolute;inset:0;display:block}
.official-hero-art img{width:100%;height:100%;object-fit:cover;display:block}
.official-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,2,2,.68),rgba(2,2,2,.22) 53%,rgba(2,2,2,.50)),linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.32))}
.official-hero-copy{position:absolute;left:26px;bottom:30px;z-index:2;color:#fff}
.official-hero-copy h1{font-family:Georgia,var(--serif);font-size:clamp(52px,6vw,78px);font-weight:500;line-height:.86;letter-spacing:-.03em;text-shadow:0 4px 24px #000}
.official-hero-copy p{font-family:Georgia,var(--serif);font-size:25px;margin:6px 0 0;text-shadow:0 3px 18px #000}
.official-hero-creed{margin-top:10px;color:#eac267;font-size:11px;letter-spacing:.17em;font-weight:800}
.official-hero-creed span{padding:0 6px}
.official-hero-alerts{position:absolute;z-index:3;right:14px;top:50%;transform:translateY(-50%);width:min(34%,320px);display:flex;flex-direction:column;gap:8px}
.official-alert{display:grid;grid-template-columns:34px 1fr 18px;align-items:center;gap:9px;padding:10px;border-radius:9px;background:rgba(12,15,17,.86);border:1px solid rgba(226,179,79,.30);color:#f7f0e5;box-shadow:0 12px 28px rgba(0,0,0,.26);backdrop-filter:blur(12px)}
.official-alert:hover{background:rgba(23,23,22,.94);color:#fff}
.official-alert-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(226,179,79,.16);color:#efc66f}
.official-alert.red .official-alert-icon{background:rgba(210,87,79,.18);color:#f0a29c}
.official-alert span:nth-child(2){display:flex;flex-direction:column;min-width:0}
.official-alert strong{font-size:12px}
.official-alert span span{font-size:11px;color:#ede2d3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.official-alert small{font-size:10px;color:#a89b8c}
.official-alert>.ic{width:14px;color:#d8ad54}
.official-alert.quiet{opacity:.82}
.official-floor-mark{position:absolute;left:47%;bottom:-100px;transform:translateX(-50%) perspective(900px) rotateX(64deg);width:290px;height:290px;border-radius:50%;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;filter:drop-shadow(0 18px 18px rgba(0,0,0,.52));opacity:.88}
.official-search{margin:0}
.official-search .ask-bar{min-height:58px;border-radius:10px}
.official-search .ask-foot{padding:3px 14px 0;font-size:11px}
.official-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.official-quick>a{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;gap:0 10px;align-items:center;min-height:80px;padding:12px 14px;border:1px solid var(--gold-line);border-radius:10px;background:var(--glass);color:var(--text)}
.official-quick>a:hover{border-color:rgba(226,179,79,.50);background:rgba(226,179,79,.06)}
.official-quick .ic{grid-row:1/3;width:31px;height:31px;color:var(--gold-light)}
.official-quick strong{font-family:Georgia,var(--serif);font-size:17px}
.official-quick span{font-size:11px;color:var(--muted)}
.official-panel{border:1px solid var(--gold-line);border-radius:10px;background:linear-gradient(180deg,var(--glass),var(--glass-2));padding:12px 14px}
.official-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.official-panel-head h3{font-family:Georgia,var(--serif);font-size:21px;color:var(--gold-light)}
.official-panel-head a{font-size:11px;color:var(--gold-2);display:flex;align-items:center;gap:5px}
.official-panel-head a .ic{width:13px}
.official-general-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:12px}
.official-general-lead{display:grid;grid-template-columns:132px 1fr;gap:14px;padding:8px;border-radius:8px;color:var(--text);background:rgba(var(--tint),.025)}
.official-building{display:grid;place-items:center;min-height:100px;border-radius:7px;background:linear-gradient(145deg,rgba(226,179,79,.22),rgba(7,7,7,.22));color:var(--gold-light)}
.official-building .ic{width:46px;height:46px}
.official-general-lead small{display:block;font-size:9px;letter-spacing:.14em;color:var(--gold-2);margin-bottom:3px}
.official-general-lead strong{display:block;font-family:Georgia,var(--serif);font-size:17px;line-height:1.16}
.official-general-lead p{font-size:11px;color:var(--muted);line-height:1.35;margin:5px 0 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.official-general-list{display:flex;flex-direction:column}
.official-general-list>a{display:grid;grid-template-columns:44px 1fr;gap:9px;align-items:center;padding:7px;border-top:1px solid var(--glass-edge);color:var(--text)}
.official-general-list>a:first-child{border-top:0}
.official-mini-thumb{width:42px;height:38px;display:grid;place-items:center;border-radius:6px;background:rgba(226,179,79,.09);color:var(--gold-light)}
.official-general-list strong,.official-list strong{display:block;font-size:12px;line-height:1.25}
.official-general-list small,.official-list small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.official-lower{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.official-lower>.official-panel{min-width:0}
.official-list{display:flex;flex-direction:column}
.official-list>a,.official-next-event{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center;min-height:46px;padding:7px 2px;border-top:1px solid var(--glass-edge);color:var(--text)}
.official-list>a:first-child{border-top:0}
.official-date{width:40px;height:40px;border-radius:7px;border:1px solid var(--gold-line);display:grid;place-items:center;align-content:center;background:rgba(226,179,79,.05)}
.official-date b{font-size:9px;color:var(--gold-2);letter-spacing:.06em}
.official-date strong{font-family:Georgia,var(--serif);font-size:16px;line-height:1}
.official-impact{grid-column:1/3}
.official-impact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.official-impact-grid>div{display:grid;grid-template-columns:26px auto;grid-template-rows:auto auto;gap:0 6px;align-items:center;padding:8px;border-right:1px solid var(--glass-edge)}
.official-impact-grid>div:last-child{border-right:0}
.official-impact-grid .ic{grid-row:1/3;width:22px;height:22px;color:var(--gold-light)}
.official-impact-grid strong{font-size:18px}
.official-impact-grid span{font-size:9px;color:var(--muted)}
.official-calendar-card{grid-column:3}
.official-next-event{border-top:0;padding:2px 0}

html[data-theme="light"] .official-welcome h2,
html[data-theme="light"] .official-panel-head h3{color:#1c2745}
html[data-theme="light"] .official-hero{border-color:rgba(91,59,14,.22)}
html[data-theme="light"] .official-quick>a,
html[data-theme="light"] .official-panel{background:rgba(255,255,255,.48);border-color:rgba(120,85,28,.18)}
html[data-theme="light"] .official-quick .ic,
html[data-theme="light"] .official-building .ic,
html[data-theme="light"] .official-mini-thumb{color:#a46b12}
html[data-theme="light"] .official-panel-head a{color:#9a6410}

@media(max-width:1000px){
  .official-hero{min-height:340px}
  .official-hero-alerts{width:36%}
  .official-quick{grid-template-columns:repeat(2,minmax(0,1fr))}
  .official-lower{grid-template-columns:repeat(2,minmax(0,1fr))}
  .official-impact{grid-column:1/-1}
  .official-calendar-card{grid-column:auto}
}
@media(max-width:760px){
  :root{--sidebar:0px}
  .sidebar{display:none}
  .shell>.main{margin-left:0}
  .topbar{min-height:64px;padding:8px 12px;gap:8px}
  .topbar .mobile-menu,.topbar .mobile-brand{display:inline-grid}
  .topbar .mobile-brand{place-items:center;width:48px;height:48px}
  .topbar .mobile-brand .seal-mark{width:46px;height:46px}
  .topbar .search,.topbar .datestamp,.topbar .wx-chip,.topbar .titles,.topbar .who>div,.topbar #theme,.topbar .desktop-signout{display:none!important}
  .topbar .spacer{display:block}
  .topbar .who{border:0;padding:0}
  .topbar .who .avatar{width:42px;height:42px}
  .tabbar{display:none!important}
  .view{padding:0 10px 20px}
  .official-dashboard{padding:12px 0 24px;gap:10px}
  .official-welcome{display:grid;grid-template-columns:1fr}
  .official-welcome h2{font-size:24px}
  .official-weather{width:100%;border:1px solid var(--gold-line);border-radius:9px;background:rgba(var(--tint),.03);padding:10px 12px}
  .official-weather span{grid-template-columns:auto auto 1fr;width:100%}
  .official-weather small{grid-column:auto;align-self:center}
  .official-weather strong{font-size:25px}
  .official-weather em{align-self:center}
  .official-hero{min-height:420px}
  .official-hero-copy{left:14px;bottom:154px}
  .official-hero-copy h1{font-size:52px}
  .official-hero-copy p{font-size:20px}
  .official-hero-creed{display:none}
  .official-hero-alerts{left:10px;right:10px;bottom:10px;top:auto;transform:none;width:auto;gap:6px}
  .official-alert{grid-template-columns:30px 1fr 16px;padding:8px}
  .official-alert:nth-child(n+3){display:none}
  .official-floor-mark{width:190px;height:190px;bottom:-62px;left:58%;opacity:.58}
  .official-search .ask-foot{display:none}
  .official-quick{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .official-quick>a{min-height:90px;padding:10px;grid-template-columns:1fr;text-align:center;justify-items:center}
  .official-quick .ic{grid-row:auto;width:28px;height:28px}
  .official-general-grid{grid-template-columns:1fr}
  .official-general-lead{grid-template-columns:92px 1fr}
  .official-lower{grid-template-columns:1fr}
  .official-impact,.official-calendar-card{grid-column:auto}
  .official-impact-grid{grid-template-columns:repeat(2,1fr)}
  .official-impact-grid>div:nth-child(2){border-right:0}
  .colophon{display:none}
}

/* DASHBOARD READABILITY PASS — entrance typography is controlled only by the locked authority above. */
.official-weather small,.official-weather em{font-size:12.5px;line-height:1.35}
.official-hero-creed{font-size:12px;line-height:1.45}
.official-alert strong{font-size:13px;line-height:1.3}
.official-alert span span{font-size:12.5px;line-height:1.35;white-space:normal}
.official-alert small{font-size:12px;line-height:1.35}
.official-search .ask-foot{font-size:12.5px;line-height:1.4}
.official-quick span{font-size:12.5px;line-height:1.35}
.official-panel-head a{font-size:12.5px;line-height:1.35}
.official-general-lead small{font-size:12px;line-height:1.35}
.official-general-lead p{font-size:13px;line-height:1.42}
.official-general-list strong,.official-list strong{font-size:13px;line-height:1.35}
.official-general-list small,.official-list small{font-size:12px;line-height:1.35}
.official-date b{font-size:12px;line-height:1}
.official-impact-grid span{font-size:12px;line-height:1.3}
@media(max-width:760px){
  .house-entry:not([data-entry-step="FIRST"]) .entry-card .btn{min-height:44px}
  .entry-card .info,.entry-card .peek{min-width:44px;min-height:44px}
  .official-panel-head a{min-height:44px;display:inline-flex;align-items:center}
  .official-list>a,.official-general-list>a{min-height:54px}
  .official-hero-creed{font-size:12px}
}

/* TABLET PORTRAIT SHELL BRIDGE V1 */
/* The older shell hid the rail before it exposed the compact header, leaving portrait tablets
   with neither navigation surface. The official House treats portrait tablets as the compact
   shell: no dead zone between desktop rail and mobile menu. */
@media(max-width:820px){
  :root{--sidebar:0px}
  .sidebar{display:none!important}
  .shell>.main{margin-left:0!important}
  .topbar{min-height:64px;padding:8px 12px;gap:8px}
  .topbar .mobile-menu,.topbar .mobile-brand{display:inline-grid!important}
  .topbar .mobile-brand{place-items:center;width:48px;height:48px}
  .topbar .mobile-brand .seal-mark{width:46px;height:46px}
  .topbar .search,.topbar .datestamp,.topbar .wx-chip,.topbar .titles,.topbar .who>div,.topbar #theme,.topbar .desktop-signout{display:none!important}
  .topbar .spacer{display:block}
  .topbar .who{border:0;padding:0;min-width:44px;min-height:44px;display:grid;place-items:center}
  .topbar .who .avatar{width:42px;height:42px}
  .topbar .icon-btn,.topbar .notice-bell,.topbar .mobile-menu{min-width:44px;min-height:44px}
  .view{padding-left:12px;padding-right:12px}
}

/* ================= HOUSE ACCOUNT — OFFICIAL HOUSE V2 ================= */
html[data-view="settings"] .view{padding-top:18px}
.house-account-grid{align-items:start;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:16px}
.account-hero{position:relative;display:grid;grid-template-columns:148px minmax(0,1fr) minmax(220px,.42fr);gap:26px;align-items:start;margin-bottom:16px;overflow:hidden;padding:24px;border:1px solid rgba(221,173,78,.38);border-radius:14px;background:
  radial-gradient(circle at 84% 18%,rgba(212,160,59,.18),transparent 27%),
  linear-gradient(125deg,rgba(8,9,9,.98),rgba(24,18,11,.94) 58%,rgba(5,6,6,.98));
  box-shadow:0 18px 46px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.025)}
.account-hero::before{content:"";position:absolute;right:-72px;bottom:-94px;width:310px;height:310px;border-radius:50%;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;opacity:.08;filter:grayscale(1) sepia(1)}
.account-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,#d8a64b 22%,#f0c875 50%,#d8a64b 78%,transparent);opacity:.72}
.account-hero>*{position:relative;z-index:1}
.account-photo{width:148px;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#0a0b0b;border:1px solid rgba(225,178,82,.55);box-shadow:0 14px 28px rgba(0,0,0,.34);display:grid;place-items:center}
.account-photo img{width:100%;height:100%;object-fit:cover;display:block}
.account-photo-empty{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#c9beac;text-align:center;padding:14px}
.account-photo-empty .ic{width:38px;height:38px;color:#ddb15c}
.account-identity{min-width:0}
.account-name{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.account-name h1{font-family:Georgia,var(--serif);font-size:clamp(36px,4vw,54px);line-height:.98;letter-spacing:-.025em;color:#fff8eb;font-weight:500}
.account-life{display:inline-flex;align-items:center;gap:8px;color:#e4b85f;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.account-life .lm{height:30px;width:auto;aspect-ratio:260/363;flex:none}
.account-role{margin:8px 0 0;color:#ddd2bf}
.account-tags{margin-top:14px}
.account-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.11)}
.account-fact{min-width:0;display:flex;flex-direction:column;gap:3px}
.account-fact span{font-size:12.5px;color:#bfb39f;letter-spacing:.07em;text-transform:uppercase;font-weight:700}
.account-fact strong{font-size:16px;color:#f6efe2;font-weight:600;overflow-wrap:anywhere}
.account-actions{margin-top:20px}
.account-earned{display:flex;flex-direction:column;gap:16px;min-width:0;padding-left:22px;border-left:1px solid rgba(255,255,255,.11)}
.account-earned-marks{display:flex;gap:18px;align-items:flex-start;justify-content:center;flex-wrap:wrap}
.account-earned-marks figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:88px;color:#e4b85f}
.account-earned-marks figcaption{font-size:13px;color:#d3c8b6;text-align:center}
.account-life-large{display:block;width:70px}.account-service{display:block;width:64px}
.account-none{display:flex;flex-direction:column;gap:5px;align-items:flex-start}.account-none strong{font-family:Georgia,var(--serif);font-size:19px;color:#f6efe2}
.account-complete{display:flex;flex-direction:column;gap:7px;padding-top:14px;border-top:1px solid rgba(255,255,255,.11)}
.account-complete>strong{font-family:Georgia,var(--serif);font-size:30px;line-height:1;color:#fff7e8}
.house-account-grid>.stack>.card{border-color:rgba(217,169,75,.23);background:linear-gradient(180deg,var(--pane),var(--glass-2));box-shadow:0 10px 28px rgba(0,0,0,.08)}
.account-standing h3{margin:2px 0 8px}
.account-statuses{display:flex;flex-direction:column;margin-top:8px}
.account-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--glass-edge)}
.account-status:first-child{border-top:0}.account-status>span:first-child{color:var(--muted);font-size:15px}.account-status>span:last-child{text-align:right;min-width:0}
.account-links{display:flex;flex-direction:column;margin-top:11px;padding-top:9px;border-top:1px solid var(--glass-edge)}
.account-links a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:8px 0;color:var(--text);font-weight:650}
.account-links a:hover{color:var(--gold-light)}.account-links .ic{width:16px;height:16px;color:var(--muted-2)}
.account-attendance-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.account-stat{display:flex;flex-direction:column;gap:4px;padding:13px 14px;border-radius:10px;background:var(--glass-2);border:1px solid var(--glass-edge)}
.account-stat span{font-size:12.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.account-stat strong{font-family:Georgia,var(--serif);font-size:28px;line-height:1;color:var(--ivory)}
.account-attendance-dates{margin-top:16px}.account-attendance-dates h3{font-size:18px;margin-bottom:8px}
.account-attendance-dates ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.account-attendance-dates li{padding:9px 11px;border-radius:9px;background:var(--glass-2);border:1px solid var(--glass-edge);color:var(--muted)}
.account-file-list{display:flex;flex-direction:column;gap:4px;margin-top:13px;padding-top:11px;border-top:1px solid var(--glass-edge)}
.account-file-list>.row{gap:12px;padding:7px 0}.account-note{margin-top:12px}
.account-email strong{color:var(--gold-light)}
html[data-theme="light"] .account-hero{background:
  radial-gradient(circle at 84% 18%,rgba(185,126,23,.13),transparent 28%),
  linear-gradient(125deg,#fffaf0,#f2e7d3 62%,#e7d8be);border-color:rgba(126,85,21,.26);box-shadow:0 18px 38px rgba(72,50,17,.12)}
html[data-theme="light"] .account-hero::before{opacity:.075}
html[data-theme="light"] .account-name h1{color:#17213a}
html[data-theme="light"] .account-role{color:#4e493f}
html[data-theme="light"] .account-facts{border-top-color:rgba(77,53,18,.15)}
html[data-theme="light"] .account-fact span{color:#726957}
html[data-theme="light"] .account-fact strong{color:#171512}
html[data-theme="light"] .account-earned{border-left-color:rgba(77,53,18,.15)}
html[data-theme="light"] .account-earned-marks figcaption{color:#625a4c}
html[data-theme="light"] .account-none strong,html[data-theme="light"] .account-complete>strong{color:#17213a}
html[data-theme="light"] .account-complete{border-top-color:rgba(77,53,18,.15)}
@media(max-width:1180px){
  .house-account-grid{grid-template-columns:1fr}
  .account-hero{grid-template-columns:126px minmax(0,1fr);gap:22px}
  .account-photo{width:126px}
  .account-earned{grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.11);padding:18px 0 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.45fr)}
  html[data-theme="light"] .account-earned{border-top-color:rgba(77,53,18,.15)}
  .account-earned-marks{justify-content:flex-start}
}
@media(max-width:900px){.account-attendance-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){
  html[data-view="settings"] .view{padding-top:10px}
  .account-hero{grid-template-columns:100px minmax(0,1fr);gap:16px;padding:18px}
  .account-photo{width:100px}.account-name h1{font-size:clamp(30px,9vw,40px)}
  .account-facts{grid-template-columns:1fr}.account-earned{grid-template-columns:1fr;padding-top:15px}.account-earned-marks{justify-content:flex-start}
  .account-attendance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.account-attendance-dates{grid-template-columns:1fr!important}
}
@media(max-width:480px){
  .account-hero{grid-template-columns:82px minmax(0,1fr);gap:13px;padding:15px}
  .account-photo{width:82px}.account-identity{grid-column:2}.account-earned{grid-column:1/-1}
  .account-actions{grid-column:1/-1}.account-actions .btn{width:100%;min-height:44px}
  .account-status{align-items:flex-start;flex-direction:column}.account-status>span:last-child{text-align:left}
}

/* Group labels use the same visual hierarchy as native form labels while each control keeps its own accessible name. */
.field>.field-label{font-size:14.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* HOUSE ACCOUNT MOBILE TOUCH PASS V1 */
@media(max-width:700px){
  html[data-view="settings"] #view .btn,
  html[data-view="settings"] #view .chip,
  html[data-view="settings"] #view .account-none a,
  html[data-view="settings"] #view .account-links a{min-height:44px;display:inline-flex;align-items:center}
  html[data-view="settings"] #view .btn.btn-sm{min-height:44px}
  html[data-view="settings"] #view .check{min-height:44px;padding-block:6px}
  html[data-view="settings"] #view .check>span{min-height:32px;display:flex;flex-direction:column;justify-content:center}
}


/* ================= FIRST TIME ACTIVATION — OFFICIAL HOUSE V1 ================= */
html[data-view="activation"],html[data-view="activation"] body{min-height:100%;background:#050606}
html[data-view="activation"] body{overflow-x:hidden}
.activation-house{
  min-height:100svh;position:relative;display:grid;place-items:center;padding:clamp(24px,4vw,64px) 18px;
  color:#f7f0df;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(circle at 50% 23%,rgba(229,178,78,.18),transparent 29%),
    radial-gradient(24% 18% at 18% 0%,rgba(255,195,78,.24),transparent 74%),
    radial-gradient(24% 18% at 82% 0%,rgba(255,195,78,.22),transparent 74%),
    linear-gradient(90deg,#070605 0 8%,#28190c 8.4% 10%,#080706 10.4% 90%,#28190c 90.4% 92%,#070605 92.4% 100%)
}
.activation-house:before{content:"";position:absolute;inset:0;z-index:-1;background:
  repeating-linear-gradient(90deg,transparent 0 13%,rgba(229,178,78,.08) 13.15% 13.3%,rgba(0,0,0,.38) 13.5% 15%,transparent 15.2% 28%),
  linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.2) 58%,rgba(0,0,0,.76))}
.activation-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 190px rgba(0,0,0,.84)}
.activation-panel{
  position:relative;z-index:1;width:min(100%,720px);padding:clamp(24px,4vw,42px);
  border:1px solid rgba(235,187,91,.62);border-radius:16px;
  background:linear-gradient(180deg,rgba(17,17,15,.92),rgba(7,8,8,.96));
  box-shadow:0 26px 80px rgba(0,0,0,.58),inset 0 0 0 1px rgba(255,255,255,.025);
  backdrop-filter:blur(18px)
}
.activation-panel:after{content:"";position:absolute;left:16%;right:16%;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,#d9a64b 35%,#f1c975 50%,#d9a64b 65%,transparent)}
.activation-mast{text-align:center;margin-bottom:24px}
.activation-seal{display:grid;place-items:center;margin:0 auto 10px;width:82px;height:82px}
.activation-seal .seal-mark{width:82px;height:82px;filter:drop-shadow(0 8px 15px rgba(0,0,0,.4))}
.activation-chapter{margin:0;color:#e0ae55;font:700 14px/1.35 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.activation-place{margin:5px 0 0;color:#cfc4b1;font-size:12.5px;letter-spacing:.1em}
.activation-progress{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);align-items:center;gap:10px;margin:0 0 28px}
.activation-progress>span{display:flex;align-items:center;gap:10px;color:#8f877a}
.activation-progress b{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);font-size:13px}
.activation-progress em{font-style:normal;font-size:13px;line-height:1.3;font-weight:650}
.activation-progress>i{height:1px;background:rgba(255,255,255,.16)}
.activation-progress .on,.activation-progress .done{color:#f1c56e}
.activation-progress .on b,.activation-progress .done b{border-color:rgba(230,179,78,.65);background:rgba(215,157,54,.14);color:#f4ce82}
.activation-progress .done b .ic{width:16px;height:16px}
.activation-copy{text-align:center;max-width:610px;margin:0 auto}
.activation-copy>.eyebrow{color:#d8a64d}
.activation-copy h1{font-family:Georgia,var(--serif);font-weight:500;font-size:clamp(36px,5vw,56px);line-height:1.02;color:#fff8e9;letter-spacing:-.025em;margin:6px 0 12px}
.activation-copy .lede{font-size:18px;line-height:1.55;color:#d9cfbc;max-width:540px;margin-inline:auto}
.activation-rule{width:72px;height:2px;margin:24px auto;background:#c89238}
.activation-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.activation-fields>.field:first-child{grid-column:1/-1}
.activation-panel .field label{color:#d8ccb7}
.activation-panel .field .hint{color:#aca18f}
.activation-panel .field input{background:rgba(5,6,6,.82);border-color:rgba(225,177,82,.26);color:#fff8e9;min-height:50px}
.activation-panel .field input:focus{border-color:#e4b45b;box-shadow:0 0 0 3px rgba(228,180,91,.14)}
.activation-assurance{display:grid;grid-template-columns:28px 1fr;gap:11px;align-items:start;margin:8px 0 18px;padding:14px;border-radius:10px;background:rgba(225,177,82,.06);border:1px solid rgba(225,177,82,.18);color:#cfc4b1;font-size:13px;line-height:1.45}
.activation-assurance .ic{width:23px;height:23px;color:#ddb15b}.activation-assurance strong{display:block;color:#f0e7d6;margin-bottom:2px}
.activation-continue{min-height:52px;display:flex;align-items:center;justify-content:center;gap:12px;font-weight:750}
.activation-continue .ic{width:18px;height:18px}
.activation-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);color:#a99f8f;font-size:12.5px}
.activation-foot .linklike{min-height:44px;color:#d9ae59}

/* The second activation step lives in the real profile room: the key is already private, so the
   House shell returns, but the progress bar preserves continuity from the secure corridor. */
.activation-step-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.65fr);align-items:center;gap:24px;margin:0 0 16px;padding:20px 22px;border-radius:13px;border:1px solid rgba(219,171,77,.35);background:
  radial-gradient(circle at 90% 20%,rgba(214,160,58,.12),transparent 30%),
  linear-gradient(125deg,var(--pane),var(--glass-2));box-shadow:0 12px 30px rgba(0,0,0,.1)}
.activation-step-two h2{font-family:Georgia,var(--serif);font-size:30px;font-weight:500;color:var(--ivory);margin:3px 0 6px}
.activation-step-two .small{max-width:650px}
.activation-progress.compact{margin:0}.activation-progress.compact b{width:31px;height:31px}
html[data-theme="light"] .activation-step-two{border-color:rgba(110,75,19,.2);background:linear-gradient(125deg,#fffaf0,#f1e6d2)}
html[data-theme="light"] .activation-step-two h2{color:#17213a}

@media(max-width:700px){
  .activation-house{padding:18px 12px;background:
    radial-gradient(circle at 50% 18%,rgba(229,178,78,.18),transparent 28%),
    radial-gradient(42% 18% at 18% 0%,rgba(255,195,78,.22),transparent 74%),
    radial-gradient(42% 18% at 82% 0%,rgba(255,195,78,.20),transparent 74%),
    linear-gradient(90deg,#070605 0 9%,#28190c 9.4% 11%,#080706 11.4% 89%,#28190c 89.4% 91%,#070605 91.4% 100%)}
  .activation-panel{padding:22px 17px;border-radius:13px}
  .activation-seal,.activation-seal .seal-mark{width:68px;height:68px}
  .activation-progress{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:6px}
  .activation-progress>span{gap:7px}.activation-progress em{font-size:12.5px}
  .activation-copy h1{font-size:clamp(34px,10vw,44px)}
  .activation-copy .lede{font-size:16px}
  .activation-fields{grid-template-columns:1fr;gap:0}.activation-fields>.field:first-child{grid-column:auto}
  .activation-panel .field input,.activation-panel .btn,.activation-foot .linklike{min-height:44px}
  .activation-step-two{grid-template-columns:1fr;gap:14px;padding:17px}
  .activation-step-two .activation-progress{max-width:430px}
}
@media(max-width:360px){
  .activation-progress em{font-size:12px}.activation-progress b{width:30px;height:30px}
  .activation-chapter{font-size:12.5px}.activation-place{font-size:12px}
}


/* ================= NOTIFICATIONS CENTER — OFFICIAL HOUSE V1 ================= */
.notice-bell{position:relative;text-decoration:none}
.notice-badge{position:absolute;top:-3px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#c92f28;color:#fff;font:800 10px/1 var(--sans);border:2px solid var(--wall);box-shadow:0 3px 8px rgba(0,0,0,.3)}
.notice-badge[hidden]{display:none}
.bell-room{display:flex;flex-direction:column;gap:16px;max-width:900px;margin:0 auto;padding:14px 14px 38px}
.bell-head{position:relative;overflow:hidden;padding:24px;border:1px solid rgba(218,171,77,.34);border-radius:14px;background:
  radial-gradient(circle at 88% 18%,rgba(214,160,58,.15),transparent 26%),
  linear-gradient(125deg,rgba(8,9,9,.98),rgba(25,18,10,.94) 58%,rgba(5,6,6,.98));
  box-shadow:0 16px 40px rgba(0,0,0,.2)}
.bell-head::before{content:"";position:absolute;right:-70px;bottom:-105px;width:310px;height:310px;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;opacity:.06;filter:grayscale(1) sepia(1)}
.bell-head>*{position:relative;z-index:1}
.bell-head h2{font-family:Georgia,var(--serif);font-size:clamp(34px,4.8vw,52px);font-weight:500;line-height:1.03;letter-spacing:-.025em;color:#fff8ea;margin:5px 0 0}
.bell-head .gold-rule{width:70px;height:2px;margin:14px 0 12px;background:#c89238}
.bell-head .lede{max-width:620px;color:#d8cdb9;line-height:1.55}
.bell-group{border-color:rgba(217,169,75,.23);background:linear-gradient(180deg,var(--pane),var(--glass-2));box-shadow:0 10px 28px rgba(0,0,0,.08)}
.bell-group .card-head{align-items:flex-start}.bell-group .card-head .small{display:block;margin-top:3px;color:var(--muted-2)}
.bell-list{display:flex;flex-direction:column;gap:3px}
.bell-item{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) auto 20px;align-items:center;gap:12px;min-height:64px;padding:11px 12px;border-radius:11px;color:var(--text);text-decoration:none;transition:background .16s ease,border-color .16s ease}
.bell-item:hover,.bell-item:focus-visible{background:var(--glass-2);color:var(--text)}
.bell-item:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.bell-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(214,163,65,.1);border:1px solid rgba(214,163,65,.22);color:var(--gold)}
.bell-mark .ic{width:18px;height:18px}
.bell-body{display:flex;flex-direction:column;gap:3px;min-width:0}.bell-body strong{font-size:15px;line-height:1.35}.bell-body .small{font-size:12.5px;line-height:1.45;color:var(--muted-2)}
.bell-when{font-family:var(--mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-2);white-space:nowrap}
.bell-go{color:var(--gold);opacity:.65}.bell-go .ic{width:16px;height:16px}
.bell-item.unread::before{content:"";position:absolute;left:0;top:50%;translate:0 -50%;width:4px;height:28px;border-radius:999px;background:var(--gold)}
.bell-item.unread strong{font-weight:750}
.bell-out{max-width:760px;margin:16px auto}.bell-out .btn{margin-top:14px}
html[data-theme="light"] .bell-head{background:
  radial-gradient(circle at 88% 18%,rgba(185,126,23,.12),transparent 26%),
  linear-gradient(125deg,#fffaf0,#f2e7d3 62%,#e6d7bc);border-color:rgba(116,78,20,.24);box-shadow:0 16px 34px rgba(72,50,17,.1)}
html[data-theme="light"] .bell-head h2{color:#17213a}
html[data-theme="light"] .bell-head .lede{color:#4f493f}
@media(max-width:700px){
  .bell-room{padding:10px 12px 28px}
  .bell-head{padding:19px 16px}.bell-head h2{font-size:clamp(32px,10vw,43px)}
  .bell-item{grid-template-columns:38px minmax(0,1fr) 18px;gap:5px 10px;padding:10px 9px}
  .bell-mark{grid-column:1;grid-row:1/span 2}
  .bell-body{grid-column:2;grid-row:1}
  .bell-when{grid-column:2;grid-row:2;font-size:12px}
  .bell-go{grid-column:3;grid-row:1/span 2}
}
@media(prefers-reduced-motion:reduce){.bell-item{transition:none}}


/* ================= SECURITY CORRIDOR — OFFICIAL HOUSE V1 ================= */
html[data-view="terms"],html[data-view="security-setup"],html[data-view="terms"] body,html[data-view="security-setup"] body{min-height:100%;background:#050606}
.terms-screen{max-width:980px;margin:0 auto;padding:24px 14px 40px}
.terms-screen>.card:first-child{position:relative;overflow:hidden;border-color:rgba(218,171,77,.34);background:
  radial-gradient(circle at 88% 18%,rgba(214,160,58,.14),transparent 28%),
  linear-gradient(125deg,rgba(8,9,9,.98),rgba(25,18,10,.94) 58%,rgba(5,6,6,.98))}
.terms-screen>.card:first-child h2{font-family:Georgia,var(--serif);font-size:clamp(32px,4vw,46px);font-weight:500;color:#fff8ea}
.doc-card{border-color:rgba(217,169,75,.2)}
.doc-scroll{max-height:52vh;overflow:auto;padding:16px;border:1px solid var(--glass-edge);border-radius:10px;background:var(--glass-2);scrollbar-gutter:stable}
.doc-section{max-width:760px;margin:0 auto 26px}
.doc-section h4{font-family:Georgia,var(--serif);font-size:20px;font-weight:500;margin:4px 0 8px;color:var(--ivory)}
.doc-section p{font-size:14.5px;line-height:1.72;color:var(--muted);margin:0 0 11px}
.doc-end{height:1px}
.read-mark{display:flex;align-items:center;gap:7px;margin-top:10px;color:var(--muted-2);font-size:13px}
.read-mark.done{color:var(--green)}
.read-mark .ic{width:15px;height:15px}
.terms-screen .check{min-height:44px}
html[data-theme="light"] .terms-screen>.card:first-child{background:linear-gradient(125deg,#fffaf0,#f2e7d3 62%,#e6d7bc);border-color:rgba(116,78,20,.24)}
html[data-theme="light"] .terms-screen>.card:first-child h2{color:#17213a}

.security-house{min-height:100svh;position:relative;display:grid;place-items:center;padding:clamp(24px,4vw,60px) 18px;color:#f7f0df;overflow:hidden;isolation:isolate;background:
  radial-gradient(circle at 50% 20%,rgba(229,178,78,.16),transparent 28%),
  radial-gradient(24% 18% at 18% 0%,rgba(255,195,78,.22),transparent 74%),
  radial-gradient(24% 18% at 82% 0%,rgba(255,195,78,.20),transparent 74%),
  linear-gradient(90deg,#070605 0 8%,#28190c 8.4% 10%,#080706 10.4% 90%,#28190c 90.4% 92%,#070605 92.4% 100%)}
.security-house::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.3) 58%,rgba(0,0,0,.78))}
.security-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 190px rgba(0,0,0,.84)}
.security-panel{position:relative;z-index:1;width:min(100%,760px);padding:clamp(24px,4vw,42px);border:1px solid rgba(235,187,91,.62);border-radius:16px;background:linear-gradient(180deg,rgba(17,17,15,.94),rgba(7,8,8,.97));box-shadow:0 26px 80px rgba(0,0,0,.58),inset 0 0 0 1px rgba(255,255,255,.025);backdrop-filter:blur(18px)}
.security-panel::after{content:"";position:absolute;left:16%;right:16%;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,#d9a64b 35%,#f1c975 50%,#d9a64b 65%,transparent)}
.security-mast{text-align:center;margin-bottom:22px}
.security-shield{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;border:1px solid rgba(229,178,78,.44);background:rgba(229,178,78,.08);color:#e3b25b}
.security-shield .ic{width:30px;height:30px}
.security-chapter{margin:0;color:#e0ae55;font:700 14px/1.35 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.security-place{margin:5px 0 0;color:#cfc4b1;font-size:12.5px;letter-spacing:.1em}
.security-progress{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr) 32px minmax(0,1fr);align-items:center;gap:7px;margin:0 0 26px}
.security-progress>span{display:flex;align-items:center;gap:8px;color:#8f877a}
.security-progress b{width:31px;height:31px;flex:none;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);font-size:12px}
.security-progress b .ic{width:14px;height:14px}
.security-progress em{font-style:normal;font-size:12.5px;line-height:1.35;font-weight:650}
.security-progress>i{height:1px;background:rgba(255,255,255,.16)}
.security-progress .on,.security-progress .done{color:#f1c56e}
.security-progress .on b,.security-progress .done b{border-color:rgba(230,179,78,.65);background:rgba(215,157,54,.14);color:#f4ce82}
.security-copy{text-align:center;max-width:620px;margin:0 auto 24px}
.security-copy>.eyebrow{color:#d8a64d}
.security-copy h1{font-family:Georgia,var(--serif);font-weight:500;font-size:clamp(36px,5vw,54px);line-height:1.02;color:#fff8e9;letter-spacing:-.025em;margin:6px 0 12px}
.security-copy .lede{font-size:17px;line-height:1.55;color:#d9cfbc}
.security-step{display:flex;flex-direction:column;gap:16px}
.security-step.ready{padding:18px;border-radius:12px;border:1px solid rgba(225,177,82,.18);background:rgba(225,177,82,.05)}
.security-assurance{display:grid;grid-template-columns:28px 1fr;gap:11px;align-items:start;color:#cfc4b1;font-size:13px;line-height:1.5}
.security-assurance .ic{width:23px;height:23px;color:#ddb15b}.security-assurance strong{display:block;color:#f0e7d6;margin-bottom:2px}
.security-instruction{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start}
.security-instruction.confirm{margin-top:8px}
.security-number{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(218,166,71,.12);border:1px solid rgba(218,166,71,.35);color:#f2c96e;font-weight:800}
.security-instruction h2{font-family:Georgia,var(--serif);font-size:23px;font-weight:500;color:#fff5e3;margin:0 0 4px}
.security-instruction p{color:#bfb4a2;line-height:1.5}
.security-qr{align-self:center;padding:16px;border-radius:14px;background:#fff;border:7px solid #efe9dd;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.security-qr svg{display:block;width:min(280px,68vw);height:auto}
.security-secret{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.security-secret p{grid-column:1/-1;margin:0}
.security-secret .input{background:rgba(5,6,6,.82);color:#fff8e9;border-color:rgba(225,177,82,.26);font-size:13px}
.security-codes{white-space:pre-wrap;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:16px;border-radius:11px;background:#050606;border:1px solid rgba(225,177,82,.24);color:#f8e8c3;font-size:14px;line-height:1.8;letter-spacing:.07em;text-align:center}
.security-actions{display:flex;gap:10px;flex-wrap:wrap}.security-actions .btn{min-height:44px}
.security-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:120px;color:#cfc4b1}
.security-failure{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.security-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);color:#a99f8f;font-size:12.5px}
.security-foot .linklike{min-height:44px;color:#d9ae59}
@media(max-width:700px){
  .terms-screen{padding:14px 12px 30px}.doc-scroll{max-height:58vh;padding:13px}
  .security-house{padding:16px 10px;background:
    radial-gradient(circle at 50% 18%,rgba(229,178,78,.16),transparent 28%),
    radial-gradient(42% 18% at 18% 0%,rgba(255,195,78,.20),transparent 74%),
    radial-gradient(42% 18% at 82% 0%,rgba(255,195,78,.18),transparent 74%),
    linear-gradient(90deg,#070605 0 9%,#28190c 9.4% 11%,#080706 11.4% 89%,#28190c 89.4% 91%,#070605 91.4% 100%)}
  .security-panel{padding:21px 16px;border-radius:13px}
  .security-progress{grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr) 12px minmax(0,1fr);gap:4px}
  .security-progress em{font-size:11.5px}.security-progress b{width:28px;height:28px}
  .security-copy h1{font-size:clamp(34px,10vw,44px)}.security-copy .lede{font-size:15.5px}
  .security-secret{grid-template-columns:1fr}.security-secret .btn{width:100%;min-height:44px}
  .security-codes{grid-template-columns:1fr}
  .security-actions{display:grid;grid-template-columns:1fr}.security-actions .btn{width:100%}
}


/* PUBLIC TERMS AT THE HOUSE ENTRANCE V1 */
.entry-card .assurance{display:flex;align-items:flex-start;gap:8px}
.entry-card .assurance a{color:var(--gold-light);text-decoration:underline;text-underline-offset:3px}
.entry-policy-docs{display:flex;flex-direction:column;gap:18px;margin-top:14px;text-align:left}
.entry-policy-doc{padding:16px;border:1px solid rgba(225,177,82,.18);border-radius:11px;background:rgba(5,6,6,.34)}
.entry-policy-doc>h2{font-family:Georgia,var(--serif);font-size:24px;font-weight:500;color:#fff7e8;margin:4px 0 6px}
.entry-policy-doc>section{padding-top:14px;margin-top:14px;border-top:1px solid rgba(255,255,255,.09)}
.entry-policy-doc>section h3{font-family:Georgia,var(--serif);font-size:18px;font-weight:500;color:#f2e6d2;margin:4px 0 8px}
.entry-policy-doc>section>p:not(.eyebrow){font-size:13.5px;line-height:1.65;color:#cfc4b1;margin:0 0 9px}
.policy-version{margin-top:0}
html[data-theme="light"] .entry-policy-doc{background:rgba(255,255,255,.38);border-color:rgba(116,78,20,.18)}
html[data-theme="light"] .entry-policy-doc>h2,html[data-theme="light"] .entry-policy-doc>section h3{color:#17213a}
html[data-theme="light"] .entry-policy-doc>section>p:not(.eyebrow){color:#514b41}
@media(max-width:700px){
  .entry-policy-doc{padding:13px}
  .entry-policy-doc>h2{font-size:21px}
  .entry-policy-doc>section h3{font-size:17px}
}


/* HOUSE ACCOUNT SECURITY CENTER V1 */
.account-security>h3{margin:2px 0 14px}
.account-security-stack{display:flex;flex-direction:column;gap:12px}
.account-security-block{padding:14px;border:1px solid var(--glass-edge);border-radius:11px;background:var(--glass-2)}
.account-security-block>.row{gap:10px}
.account-security-label{text-transform:uppercase;letter-spacing:.06em;font-weight:750;color:var(--muted-2);margin-bottom:3px}
.account-security-block>p.small{margin-top:8px;line-height:1.5}
.account-device-list,.account-identity-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.account-device-row,.account-identity-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:9px 10px;border-radius:9px;background:var(--glass);border:1px solid var(--glass-edge)}
.account-device-row>span,.account-identity-row>span{display:flex;align-items:center;gap:10px;min-width:0}
.account-device-row .ic,.account-identity-row .ic{width:20px;height:20px;flex:none;color:var(--gold)}
.account-device-row span span,.account-identity-row span span{display:flex;flex-direction:column;min-width:0}
.account-device-row small,.account-identity-row small{color:var(--muted-2);font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.account-security-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:12px}
.account-security-form .field{margin:0}
.account-security-form>.btn{min-height:44px}
.account-recovery-list{white-space:pre-wrap;margin:10px 0;padding:12px;border-radius:9px;background:var(--ink);color:#f6e7c3;line-height:1.7;letter-spacing:.05em;text-align:center}
@media(max-width:700px){
  .account-device-row,.account-identity-row{align-items:flex-start;flex-direction:column}
  .account-device-row .btn,.account-identity-row .btn{min-height:44px;width:100%}
  .account-security-form{grid-template-columns:1fr}
  .account-security-form>.btn{width:100%}
}

/* 320PX HOUSE ACCOUNT MIN-CONTENT FIX V1 */
/* A narrow phone exposed the min-content size of one nested security/control row through the
   one-column account grid. Clamp the grid tracks themselves to zero-minimum rather than hiding
   overflow: every card remains measurable, and any genuinely wide control must wrap inside it. */
.house-account-grid>.stack,
.house-account-grid>.stack>.card,
.account-security,
.account-security-block{min-width:0}
@media(max-width:1180px){
  .house-account-grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:360px){
  html[data-view="settings"] .house-account-grid{width:100%;max-width:100%;min-width:0}
  html[data-view="settings"] .row.wrap,
  html[data-view="settings"] .form-actions{max-width:100%}
  html[data-view="settings"] .field input,
  html[data-view="settings"] .field select,
  html[data-view="settings"] .field textarea,
  html[data-view="settings"] .input{min-width:0;max-width:100%}
  html[data-view="settings"] .field>.row{min-width:0;flex-wrap:wrap}
  html[data-view="settings"] .field>.row>select{flex:1 1 120px;min-width:0}
  html[data-view="settings"] .account-security-block>.row.between{align-items:flex-start;flex-direction:column}
  html[data-view="settings"] .account-security-block .badge{max-width:100%;white-space:normal;text-align:left}
  html[data-view="settings"] .btn{max-width:100%;white-space:normal;text-align:center;line-height:1.25}
}

/* ================= BROTHER DETAIL — OFFICIAL HOUSE V1 ================= */
.brother-detail{max-width:1180px;margin:0 auto;padding:12px 14px 36px}
.brother-detail>.back-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin:0 0 10px;color:var(--muted);font-weight:650}
.brother-detail>.back-link:hover{color:var(--gold-light)}
.brother-detail>.back-link .ic{width:17px;height:17px}
.brother-detail-hero{position:relative;display:grid;grid-template-columns:160px minmax(0,1fr) minmax(210px,.42fr);gap:26px;align-items:center;overflow:hidden;padding:26px;border:1px solid rgba(218,171,77,.38);border-radius:14px;background:
  radial-gradient(circle at 84% 18%,rgba(212,160,59,.18),transparent 27%),
  linear-gradient(125deg,rgba(8,9,9,.98),rgba(24,18,11,.94) 58%,rgba(5,6,6,.98));
  box-shadow:0 18px 46px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.025)}
.brother-detail-hero::before{content:"";position:absolute;right:-72px;bottom:-94px;width:310px;height:310px;border-radius:50%;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;opacity:.07;filter:grayscale(1) sepia(1)}
.brother-detail-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,#d8a64b 22%,#f0c875 50%,#d8a64b 78%,transparent);opacity:.7}
.brother-detail-hero>*{position:relative;z-index:1}
.brother-detail-photo{width:160px;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#0a0b0b;border:1px solid rgba(225,178,82,.55);box-shadow:0 14px 28px rgba(0,0,0,.34);display:grid;place-items:center}
.brother-detail-photo>img{width:100%;height:100%;object-fit:cover;display:block}
.brother-detail-photo>.avatar{width:96px;height:96px;font-size:30px}
.brother-detail-identity{min-width:0}
.brother-detail-name{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.brother-detail-name h1{font-family:Georgia,var(--serif);font-size:clamp(38px,4.5vw,58px);line-height:1;letter-spacing:-.025em;color:#fff8eb;font-weight:500;overflow-wrap:anywhere}
.brother-life{display:inline-flex;align-items:center;gap:8px;color:#e4b85f;font-size:13px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.brother-life .lm{height:30px;width:auto;aspect-ratio:260/363}
.brother-detail-identity>.lede{color:#ddd2bf;margin:8px 0 0}
.brother-detail-tags{margin-top:14px}
.brother-detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.brother-detail-honours{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:150px;padding-left:22px;border-left:1px solid rgba(255,255,255,.11)}
.brother-detail-honours figure{margin:0;text-align:center;color:#e4b85f}
.brother-detail-honours .svc{width:74px;height:74px}
.brother-detail-honours figcaption{margin-top:7px;color:#d3c8b6;font-size:12.5px;line-height:1.35}
.brother-detail-honours .life-large{display:block;width:72px;margin:auto}
.brother-detail-no-honours{display:flex;flex-direction:column;gap:5px;align-items:center;text-align:center}
.brother-detail-no-honours strong{font-family:Georgia,var(--serif);font-size:19px;color:#f6efe2}
.brother-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.72fr);gap:16px;margin-top:16px}
.brother-detail-grid .card{border-color:rgba(217,169,75,.23);background:linear-gradient(180deg,var(--pane),var(--glass-2));box-shadow:0 10px 28px rgba(0,0,0,.08)}
.brother-detail-grid h2{font-family:Georgia,var(--serif);font-size:26px;font-weight:500;margin:3px 0 14px}
.brother-detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.brother-detail-fact{display:flex;flex-direction:column;gap:4px;padding:14px;border-radius:10px;background:var(--glass-2);border:1px solid var(--glass-edge)}
.brother-detail-fact span{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2);font-weight:750}
.brother-detail-fact strong{font-size:15.5px;color:var(--text);font-weight:650;line-height:1.45}
.brother-contact-list{display:grid;gap:10px}
.brother-contact-list>a,.brother-contact-empty{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:12px;min-height:58px;padding:10px 12px;border-radius:10px;background:var(--glass-2);border:1px solid var(--glass-edge);color:var(--text)}
.brother-contact-list>a:hover{border-color:var(--gold-line);color:var(--gold-light)}
.brother-contact-list .ic,.brother-contact-empty .ic{width:22px;height:22px;color:var(--gold)}
.brother-contact-list span,.brother-contact-empty span{display:flex;flex-direction:column;min-width:0}
.brother-contact-list small,.brother-contact-empty small{font-size:12px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.05em}
.brother-contact-list strong,.brother-contact-empty strong{overflow-wrap:anywhere}
.brother-standing .account-statuses{margin-bottom:12px}
.brother-name-link{color:inherit;text-decoration:none}.brother-name-link:hover{color:var(--gold-light)}
html[data-theme="light"] .brother-detail-hero{background:
  radial-gradient(circle at 84% 18%,rgba(185,126,23,.13),transparent 28%),
  linear-gradient(125deg,#fffaf0,#f2e7d3 62%,#e7d8be);border-color:rgba(126,85,21,.26);box-shadow:0 18px 38px rgba(72,50,17,.12)}
html[data-theme="light"] .brother-detail-name h1{color:#17213a}
html[data-theme="light"] .brother-detail-identity>.lede{color:#4e493f}
html[data-theme="light"] .brother-detail-honours{border-left-color:rgba(77,53,18,.15)}
html[data-theme="light"] .brother-detail-honours figcaption{color:#625a4c}
html[data-theme="light"] .brother-detail-no-honours strong{color:#17213a}
@media(max-width:1000px){
  .brother-detail-hero{grid-template-columns:132px minmax(0,1fr);gap:20px}
  .brother-detail-photo{width:132px}
  .brother-detail-honours{grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.11);padding:18px 0 0;flex-direction:row;justify-content:flex-start;flex-wrap:wrap}
  html[data-theme="light"] .brother-detail-honours{border-top-color:rgba(77,53,18,.15)}
}
@media(max-width:820px){.brother-detail{padding-left:12px;padding-right:12px}.brother-detail-grid{grid-template-columns:1fr}}
@media(max-width:600px){
  .brother-detail-hero{grid-template-columns:92px minmax(0,1fr);gap:14px;padding:17px}
  .brother-detail-photo{width:92px;border-radius:10px}
  .brother-detail-photo>.avatar{width:68px;height:68px;font-size:22px}
  .brother-detail-name h1{font-size:clamp(30px,9vw,40px)}
  .brother-detail-honours{grid-column:1/-1}
  .brother-detail-actions{grid-column:1/-1}
  .brother-detail-actions .btn{min-height:44px}
  .brother-detail-facts{grid-template-columns:1fr}
}
@media(max-width:390px){
  .brother-detail-hero{grid-template-columns:1fr}
  .brother-detail-photo{width:92px}
  .brother-detail-identity,.brother-detail-honours{grid-column:1}
  .brother-detail-actions{display:grid;grid-template-columns:1fr}
  .brother-detail-actions .btn{width:100%}
}

/* ================= DUES RECEIPT — OFFICIAL HOUSE V1 ================= */
.receipt-room{max-width:980px;margin:0 auto;padding:14px 14px 40px}
.receipt-room>.back-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin-bottom:12px;color:var(--muted);font-weight:650}
.receipt-room>.back-link:hover{color:var(--gold-light)}
.receipt-room>.back-link .ic{width:17px;height:17px}
.dues-receipt{position:relative;overflow:hidden;border:1px solid rgba(218,171,77,.42);border-radius:14px;padding:28px;background:
  radial-gradient(circle at 88% 14%,rgba(214,160,58,.14),transparent 25%),
  linear-gradient(125deg,rgba(8,9,9,.985),rgba(23,17,10,.95) 60%,rgba(5,6,6,.985));
  box-shadow:0 18px 48px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.025)}
.dues-receipt::before{content:"";position:absolute;right:-72px;bottom:-100px;width:330px;height:330px;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;opacity:.055;filter:grayscale(1) sepia(1)}
.dues-receipt>*{position:relative;z-index:1}
.receipt-head{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:start;gap:16px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.12)}
.receipt-seal{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:rgba(218,166,71,.1);border:1px solid rgba(218,166,71,.28);color:#e1b257}
.receipt-seal .ic{width:26px;height:26px}
.receipt-head h1{font-family:Georgia,var(--serif);font-size:clamp(30px,4vw,44px);font-weight:500;line-height:1.05;color:#fff8e9;letter-spacing:-.02em;margin:4px 0 5px}
.receipt-amount{display:flex;flex-direction:column;align-items:flex-start;padding:28px 0 24px}
.receipt-amount>span{font-size:12.5px;text-transform:uppercase;letter-spacing:.09em;color:#bfb3a0;font-weight:750}
.receipt-amount>strong{font-family:Georgia,var(--serif);font-size:clamp(42px,7vw,66px);line-height:1;color:#f2c96e;font-weight:500;margin:5px 0}
.receipt-amount>small{font-size:14px;color:#d5c9b6}
.receipt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.receipt-grid>div{padding:14px;border-radius:10px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.09)}
.receipt-grid dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:#aaa08f;font-weight:800;margin-bottom:5px}
.receipt-grid dd{margin:0;color:#f4ecde;font-size:14.5px;font-weight:650;overflow-wrap:anywhere}
.receipt-note{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;margin-top:18px;padding:13px 14px;border-radius:10px;background:rgba(218,166,71,.07);border:1px solid rgba(218,166,71,.17);color:#c9beac}
.receipt-note .ic{width:20px;height:20px;color:#ddb15b}
.receipt-note p{margin:0;font-size:12.5px;line-height:1.5}
.receipt-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding-top:15px;border-top:1px solid rgba(255,255,255,.1);color:#9e9483;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}
.receipt-tools{margin-top:14px}.receipt-tools .btn{min-height:44px}
.receipt-actions{margin-top:12px}
.receipt-history-row{text-decoration:none;color:inherit}
.receipt-history-row .aside{display:flex;align-items:center;gap:8px}
.receipt-history-row .aside .ic{width:15px;height:15px;color:var(--gold)}
html[data-theme="light"] .dues-receipt{background:
  radial-gradient(circle at 88% 14%,rgba(185,126,23,.12),transparent 25%),
  linear-gradient(125deg,#fffaf0,#f2e7d3 62%,#e7d8bd);border-color:rgba(116,78,20,.26);box-shadow:0 16px 36px rgba(72,50,17,.12)}
html[data-theme="light"] .receipt-head{border-bottom-color:rgba(80,55,18,.13)}
html[data-theme="light"] .receipt-head h1{color:#17213a}
html[data-theme="light"] .receipt-amount>span{color:#6d6454}
html[data-theme="light"] .receipt-amount>strong{color:#8b5b08}
html[data-theme="light"] .receipt-amount>small{color:#554f45}
html[data-theme="light"] .receipt-grid>div{background:rgba(255,255,255,.5);border-color:rgba(80,55,18,.12)}
html[data-theme="light"] .receipt-grid dt{color:#716757}
html[data-theme="light"] .receipt-grid dd{color:#181611}
html[data-theme="light"] .receipt-note{color:#514b41;background:rgba(184,126,25,.08);border-color:rgba(150,98,13,.15)}
html[data-theme="light"] .receipt-foot{border-top-color:rgba(80,55,18,.13);color:#6c6252}
@media(max-width:700px){
  .receipt-room{padding:10px 12px 30px}
  .dues-receipt{padding:20px 16px}
  .receipt-head{grid-template-columns:46px minmax(0,1fr);gap:12px}
  .receipt-head>.badge{grid-column:1/-1;justify-self:start}
  .receipt-seal{width:44px;height:44px}
  .receipt-grid{grid-template-columns:1fr}
  .receipt-foot{flex-direction:column;align-items:flex-start}
  .receipt-tools{display:grid;grid-template-columns:1fr;width:100%}.receipt-tools .btn{width:100%}
}
@media print{
  body{background:#fff!important}
  .sidebar,.topbar,.tabbar,.receipt-room>.back-link,.receipt-tools{display:none!important}
  .shell>.main{margin:0!important}
  .view{padding:0!important}
  .receipt-room{padding:0;max-width:none}
  .dues-receipt{box-shadow:none;border:1px solid #9d7b3d;background:#fff!important;color:#111;break-inside:avoid}
  .dues-receipt::before{opacity:.045}
  .receipt-head h1,.receipt-grid dd{color:#111!important}
  .receipt-amount>strong{color:#805200!important}
  .receipt-amount>span,.receipt-amount>small,.receipt-grid dt,.receipt-note,.receipt-foot{color:#444!important}
  .receipt-grid>div,.receipt-note{background:#fff!important;border-color:#ddd!important}
}

/* ================= EVENT DETAIL — OFFICIAL HOUSE V1 ================= */
.event-detail-room{max-width:1120px;margin:0 auto;padding:14px 14px 40px}
.event-detail-room>.back-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin-bottom:12px;color:var(--muted);font-weight:650}
.event-detail-room>.back-link .ic{width:17px;height:17px}.event-detail-room>.back-link:hover{color:var(--gold-light)}
.event-detail-hero{position:relative;display:grid;grid-template-columns:92px minmax(0,1fr) minmax(180px,.38fr);gap:22px;align-items:center;overflow:hidden;padding:26px;border:1px solid rgba(218,171,77,.38);border-radius:14px;background:
  radial-gradient(circle at 86% 16%,rgba(214,160,58,.17),transparent 27%),
  linear-gradient(125deg,rgba(8,9,9,.98),rgba(24,18,11,.94) 58%,rgba(5,6,6,.98));
  box-shadow:0 18px 46px rgba(0,0,0,.28)}
.event-detail-hero::before{content:"";position:absolute;right:-72px;bottom:-94px;width:300px;height:300px;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;opacity:.06;filter:grayscale(1) sepia(1)}
.event-detail-hero>*{position:relative;z-index:1}
.event-date-block{width:86px;min-height:104px;border-radius:11px;display:grid;justify-items:center;align-content:center;padding:10px;background:rgba(226,179,79,.09);border:1px solid rgba(226,179,79,.3);color:#f0c56c}
.event-date-block span,.event-date-block small{font-size:12px;font-weight:800;letter-spacing:.12em}.event-date-block strong{font-family:Georgia,var(--serif);font-size:42px;line-height:1;color:#fff8ea;margin:2px 0}
.event-detail-copy{min-width:0}.event-detail-copy h1{font-family:Georgia,var(--serif);font-size:clamp(36px,4.8vw,58px);font-weight:500;line-height:1.02;letter-spacing:-.025em;color:#fff8ea;margin:10px 0 8px;overflow-wrap:anywhere}
.event-detail-copy>.lede{color:#d9cebb;font-size:16.5px}.event-location{display:flex;align-items:flex-start;gap:9px;color:#d1c6b4;margin-top:13px}.event-location>.ic{width:18px;height:18px;color:#dfae55;margin-top:2px}.event-location span{display:flex;flex-direction:column}.event-location small{color:#aaa08f}
.event-detail-flyer{display:block;justify-self:end;width:min(220px,100%);border-radius:11px;overflow:hidden;border:1px solid rgba(226,179,79,.35);box-shadow:0 12px 30px rgba(0,0,0,.3)}.event-detail-flyer img{display:block;width:100%;height:auto}
.event-detail-seal{justify-self:end;width:126px;height:126px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(226,179,79,.28);background:rgba(226,179,79,.08);color:#dfae55}.event-detail-seal .ic{width:54px;height:54px}
.event-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.72fr);gap:16px;margin-top:16px}.event-detail-grid .card{border-color:rgba(217,169,75,.22);background:linear-gradient(180deg,var(--pane),var(--glass-2))}
.event-detail-grid h2{font-family:Georgia,var(--serif);font-size:25px;font-weight:500;margin:3px 0 10px}
.event-detail-facts{display:flex;flex-direction:column}.event-fact{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:12px 0;border-top:1px solid var(--glass-edge)}.event-fact:first-of-type{border-top:0}.event-fact>.ic{width:19px;height:19px;color:var(--gold);margin-top:2px}.event-fact>span{display:flex;flex-direction:column;gap:2px}.event-fact small{font-size:11.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em;font-weight:750}.event-fact span span{font-size:13px;color:var(--muted)}
.event-rsvp-options{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}.event-rsvp-options .btn{width:100%;min-height:44px}.event-rsvp-said{min-height:20px;margin:8px 0 0;color:var(--green)}
.event-join>.btn,.event-ticket>.btn{margin-top:10px}.event-attendees{margin-top:10px}
html[data-theme="light"] .event-detail-hero{background:
 radial-gradient(circle at 86% 16%,rgba(185,126,23,.12),transparent 27%),
 linear-gradient(125deg,#fffaf0,#f2e7d3 62%,#e7d8bd);border-color:rgba(116,78,20,.25);box-shadow:0 16px 36px rgba(72,50,17,.12)}
html[data-theme="light"] .event-detail-copy h1,html[data-theme="light"] .event-date-block strong{color:#17213a}
html[data-theme="light"] .event-detail-copy>.lede,html[data-theme="light"] .event-location{color:#50493f}
html[data-theme="light"] .event-location small{color:#716858}
@media(max-width:900px){.event-detail-grid{grid-template-columns:1fr}.event-detail-hero{grid-template-columns:80px minmax(0,1fr)}.event-detail-flyer,.event-detail-seal{grid-column:1/-1;justify-self:start;max-width:220px}.event-date-block{width:76px}}
@media(max-width:600px){
  .event-detail-room{padding:10px 12px 28px}
  .event-detail-hero{grid-template-columns:64px minmax(0,1fr);gap:12px;padding:17px}
  .event-date-block{width:62px;min-height:82px;padding:6px}.event-date-block strong{font-size:31px}.event-date-block span,.event-date-block small{font-size:10px}
  .event-detail-copy h1{font-size:clamp(31px,9vw,41px)}.event-detail-copy>.lede{font-size:14.5px}
  .event-detail-flyer{width:min(190px,100%)}.event-detail-seal{width:92px;height:92px}.event-detail-seal .ic{width:40px;height:40px}
}

/* ================= COMMITTEE DETAIL — OFFICIAL HOUSE V1 ================= */
.committee-directory{margin-bottom:16px;padding:20px;border:1px solid rgba(217,169,75,.22);border-radius:14px;background:linear-gradient(160deg,var(--glass),var(--glass-2));box-shadow:var(--depth)}
.committee-directory-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:14px}.committee-directory-head h2{font-family:Georgia,var(--serif);font-size:28px;font-weight:500;margin:2px 0 5px}
.committee-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.committee-door{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;align-items:center;gap:12px;min-height:72px;padding:12px 14px;border:1px solid var(--glass-edge);border-radius:11px;background:var(--glass-2);color:var(--text);text-decoration:none}
.committee-door:hover,.committee-door:focus-visible{border-color:var(--gold-line);background:var(--glass);color:var(--text)}
.committee-door-mark{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(214,163,65,.1);color:var(--gold)}.committee-door-mark .ic{width:20px;height:20px}
.committee-door>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.committee-door strong{font-size:15px}.committee-door small{font-size:12.5px;color:var(--muted-2);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.committee-door>.ic{color:var(--gold);width:16px;height:16px}
.committee-detail-room{max-width:1120px;margin:0 auto;padding:14px 14px 40px}.committee-detail-room>.back-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin-bottom:12px;color:var(--muted);font-weight:650}.committee-detail-room>.back-link .ic{width:17px;height:17px}
.committee-detail-hero{position:relative;display:grid;grid-template-columns:82px minmax(0,1fr) minmax(190px,.34fr);gap:22px;align-items:center;overflow:hidden;padding:26px;border:1px solid rgba(218,171,77,.38);border-radius:14px;background:
 radial-gradient(circle at 86% 16%,rgba(214,160,58,.16),transparent 27%),
 linear-gradient(125deg,rgba(8,9,9,.98),rgba(24,18,11,.94) 58%,rgba(5,6,6,.98));box-shadow:0 18px 46px rgba(0,0,0,.26)}
.committee-detail-hero::before{content:"";position:absolute;right:-76px;bottom:-106px;width:320px;height:320px;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;opacity:.055;filter:grayscale(1) sepia(1)}
.committee-detail-hero>*{position:relative;z-index:1}
.committee-detail-mark{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:rgba(218,166,71,.1);border:1px solid rgba(218,166,71,.3);color:#e0ae55}.committee-detail-mark .ic{width:35px;height:35px}
.committee-detail-copy{min-width:0}.committee-detail-copy h1{font-family:Georgia,var(--serif);font-size:clamp(36px,4.8vw,56px);font-weight:500;line-height:1.02;color:#fff8ea;letter-spacing:-.025em;margin:5px 0 10px;overflow-wrap:anywhere}.committee-detail-copy>.lede{color:#d7ccba;max-width:700px;line-height:1.55}
.committee-detail-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px}.committee-detail-stats>div{padding:14px 10px;border-radius:10px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.09);text-align:center}.committee-detail-stats strong{display:block;font-family:Georgia,var(--serif);font-size:32px;color:#f1c76f;line-height:1}.committee-detail-stats span{display:block;margin-top:5px;font-size:11.5px;color:#b9ae9d;text-transform:uppercase;letter-spacing:.05em}
.committee-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.72fr);gap:16px;margin-top:16px}.committee-detail-grid h2{font-family:Georgia,var(--serif);font-size:25px;font-weight:500;margin:3px 0 10px}
.committee-brothers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.committee-brother{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:60px;padding:9px 10px;border-radius:10px;background:var(--glass-2);border:1px solid var(--glass-edge);color:var(--text)}.committee-brother:hover{border-color:var(--gold-line);color:var(--text)}
.committee-brother .avatar{width:42px;height:42px}.committee-brother>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.committee-brother small{color:var(--muted-2);font-size:12px}.committee-brother>.ic{width:16px;height:16px;color:var(--gold)}
.committee-purpose p:last-child{line-height:1.6;color:var(--muted)}
html[data-theme="light"] .committee-detail-hero{background:radial-gradient(circle at 86% 16%,rgba(185,126,23,.12),transparent 27%),linear-gradient(125deg,#fffaf0,#f2e7d3 62%,#e7d8bd);border-color:rgba(116,78,20,.25);box-shadow:0 16px 36px rgba(72,50,17,.12)}
html[data-theme="light"] .committee-detail-copy h1{color:#17213a}html[data-theme="light"] .committee-detail-copy>.lede{color:#50493f}
html[data-theme="light"] .committee-detail-stats>div{background:rgba(255,255,255,.45);border-color:rgba(80,55,18,.12)}html[data-theme="light"] .committee-detail-stats strong{color:#8a5a08}html[data-theme="light"] .committee-detail-stats span{color:#625a4d}
@media(max-width:900px){.committee-detail-grid{grid-template-columns:1fr}.committee-detail-hero{grid-template-columns:72px minmax(0,1fr)}.committee-detail-stats{grid-column:1/-1;max-width:360px}.committee-directory-grid{grid-template-columns:1fr}}
@media(max-width:600px){.committee-detail-room{padding:10px 12px 28px}.committee-detail-hero{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:17px}.committee-detail-mark{width:56px;height:56px}.committee-detail-mark .ic{width:25px;height:25px}.committee-detail-copy h1{font-size:clamp(31px,9vw,41px)}.committee-detail-copy>.lede{font-size:14.5px}.committee-detail-stats{grid-template-columns:1fr 1fr}.committee-brothers{grid-template-columns:1fr}.committee-directory{padding:16px 12px}}

/* ================= DOCUMENT PREVIEW — OFFICIAL HOUSE V1 ================= */
.document-room{max-width:1180px;margin:0 auto;padding:14px 14px 40px}
.document-room>.back-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin-bottom:12px;color:var(--muted);font-weight:650}
.document-room>.back-link:hover{color:var(--gold-light)}.document-room>.back-link .ic{width:17px;height:17px}
.document-head{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:20px;align-items:start;overflow:hidden;padding:24px;border:1px solid rgba(218,171,77,.36);border-radius:14px;background:
  radial-gradient(circle at 86% 16%,rgba(214,160,58,.15),transparent 27%),
  linear-gradient(125deg,rgba(8,9,9,.98),rgba(24,18,11,.94) 58%,rgba(5,6,6,.98));box-shadow:0 18px 44px rgba(0,0,0,.25)}
.document-head::before{content:"";position:absolute;right:-70px;bottom:-96px;width:300px;height:300px;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;opacity:.055;filter:grayscale(1) sepia(1)}
.document-head>*{position:relative;z-index:1}
.document-mark{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:rgba(218,166,71,.1);border:1px solid rgba(218,166,71,.3);color:#e0ae55}.document-mark .ic{width:30px;height:30px}
.document-title{min-width:0}.document-title h1{font-family:Georgia,var(--serif);font-size:clamp(34px,4.5vw,52px);font-weight:500;line-height:1.03;color:#fff8ea;letter-spacing:-.025em;margin:4px 0 8px;overflow-wrap:anywhere}.document-title>.lede{color:#d7ccba;max-width:780px;line-height:1.55}
.document-meta{margin-top:12px}
.document-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:280px}.document-actions .btn{min-height:44px}
.document-preview-card{margin-top:16px;min-height:460px;border:1px solid var(--glass-edge);border-radius:14px;overflow:hidden;background:linear-gradient(180deg,var(--pane),var(--glass-2));box-shadow:0 14px 34px rgba(0,0,0,.12)}
.document-frame{display:block;width:100%;height:min(74vh,900px);min-height:620px;border:0;background:#fff}
.document-image-stage{min-height:520px;display:grid;place-items:center;padding:18px;background:#0a0a09}.document-image-stage img{max-width:100%;max-height:78vh;object-fit:contain;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.document-fallback{min-height:520px;display:grid;place-items:center;align-content:center;text-align:center;gap:9px;padding:28px;color:var(--muted)}.document-fallback-mark{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:rgba(214,163,65,.09);color:var(--gold)}.document-fallback-mark .ic{width:27px;height:27px}.document-fallback h2{font-family:Georgia,var(--serif);font-size:25px;font-weight:500;color:var(--ivory)}
.document-foot{display:flex;justify-content:space-between;gap:18px;margin-top:12px;padding:0 4px;color:var(--muted-2);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em}
.document-external{max-width:780px;margin:20px auto}.document-external h1{font-family:Georgia,var(--serif);font-size:clamp(34px,4.5vw,50px);font-weight:500;margin:4px 0 10px}
html[data-theme="light"] .document-head{background:radial-gradient(circle at 86% 16%,rgba(185,126,23,.12),transparent 27%),linear-gradient(125deg,#fffaf0,#f2e7d3 62%,#e7d8bd);border-color:rgba(116,78,20,.25);box-shadow:0 16px 36px rgba(72,50,17,.12)}
html[data-theme="light"] .document-title h1{color:#17213a}html[data-theme="light"] .document-title>.lede{color:#50493f}
html[data-theme="light"] .document-fallback h2{color:#17213a}
@media(max-width:860px){.document-head{grid-template-columns:58px minmax(0,1fr)}.document-mark{width:56px;height:56px}.document-actions{grid-column:1/-1;justify-content:flex-start;max-width:none}.document-frame{min-height:560px}}
@media(max-width:600px){.document-room{padding:10px 12px 28px}.document-head{grid-template-columns:48px minmax(0,1fr);gap:12px;padding:17px}.document-mark{width:46px;height:46px}.document-mark .ic{width:22px;height:22px}.document-title h1{font-size:clamp(30px,9vw,40px)}.document-actions{display:grid;grid-template-columns:1fr;width:100%}.document-actions .btn{width:100%}.document-frame{min-height:64vh;height:64vh}.document-image-stage{min-height:420px;padding:10px}.document-foot{flex-direction:column}}

/* ================= PHOTO DETAIL — OFFICIAL HOUSE V1 ================= */
.photo-detail-room{max-width:1180px;margin:0 auto;padding:14px 14px 40px}
.photo-detail-room>.back-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin-bottom:12px;color:var(--muted);font-weight:650}
.photo-detail-room>.back-link:hover{color:var(--gold-light)}.photo-detail-room>.back-link .ic{width:17px;height:17px}
.photo-detail-stage{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.72fr);gap:16px;align-items:stretch}
.photo-detail-image{position:relative;min-height:560px;border-radius:14px;overflow:hidden;background:#050505;border:1px solid rgba(218,171,77,.28);display:grid;place-items:center;box-shadow:0 18px 46px rgba(0,0,0,.34)}
.photo-detail-image>img{width:100%;height:100%;max-height:78vh;object-fit:contain;display:block;background:#050505}
.photo-detail-mark{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:rgba(7,7,6,.82);border:1px solid rgba(226,179,79,.34);color:#f1c86e;font-size:12px;font-weight:750}.photo-detail-mark .ic{width:15px;height:15px}
.photo-detail-side{position:relative;overflow:hidden;padding:22px;border:1px solid rgba(218,171,77,.34);border-radius:14px;background:
  radial-gradient(circle at 90% 12%,rgba(214,160,58,.14),transparent 26%),
  linear-gradient(160deg,var(--pane),var(--glass-2));box-shadow:0 14px 34px rgba(0,0,0,.12)}
.photo-detail-side::before{content:"";position:absolute;right:-76px;bottom:-96px;width:280px;height:280px;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;opacity:.05;filter:grayscale(1) sepia(1)}
.photo-detail-side>*{position:relative;z-index:1}
.photo-detail-side h1{font-family:Georgia,var(--serif);font-size:clamp(31px,3.8vw,46px);line-height:1.04;font-weight:500;color:var(--ivory);letter-spacing:-.02em;margin:5px 0 10px;overflow-wrap:anywhere}.photo-detail-side>.lede{color:var(--muted);line-height:1.6}
.photo-detail-facts{display:flex;flex-direction:column;margin:18px 0 0}.photo-detail-facts>div{padding:10px 0;border-top:1px solid var(--glass-edge)}.photo-detail-facts>div:first-child{border-top:0}.photo-detail-facts dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-2);font-weight:800}.photo-detail-facts dd{margin:3px 0 0;color:var(--text);font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.photo-detail-tags{margin-top:14px}.photo-detail-tags .chip{cursor:default}
.photo-detail-actions{display:grid;gap:8px;margin-top:18px}.photo-detail-actions .btn{width:100%;min-height:44px}
.photo-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.photo-detail-grid h2{font-family:Georgia,var(--serif);font-size:24px;font-weight:500;margin:3px 0 8px}
.photo-share-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.photo-share-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid var(--glass-edge);border-radius:10px;background:var(--glass-2)}.photo-share-row>span{display:flex;flex-direction:column;min-width:0}.photo-share-row small{font-size:12px;color:var(--muted-2)}.photo-share-row .btn{min-height:44px}
.photo-detail-edit{margin-top:16px}
html[data-theme="light"] .photo-detail-side{background:radial-gradient(circle at 90% 12%,rgba(185,126,23,.1),transparent 26%),linear-gradient(160deg,#fffaf0,#f2e7d3 62%,#e7d8bd);border-color:rgba(116,78,20,.24)}
html[data-theme="light"] .photo-detail-side h1{color:#17213a}
@media(max-width:900px){.photo-detail-stage{grid-template-columns:1fr}.photo-detail-image{min-height:460px}.photo-detail-grid{grid-template-columns:1fr}}
@media(max-width:600px){
  .photo-detail-room{padding:10px 12px 28px}
  .photo-detail-image{min-height:360px}.photo-detail-image>img{max-height:64vh}
  .photo-detail-side{padding:17px}.photo-detail-side h1{font-size:clamp(30px,9vw,40px)}
  .photo-share-row{align-items:flex-start;flex-direction:column}.photo-share-row .btn{width:100%}
}


/* ================= GALLERY MODERATION — OFFICIAL HOUSE V1 ================= */
.moderation-room{max-width:1180px;margin:0 auto;padding:14px 14px 40px}
.moderation-room>.back-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin-bottom:12px;color:var(--muted);font-weight:650}.moderation-room>.back-link:hover{color:var(--gold-light)}.moderation-room>.back-link .ic{width:17px;height:17px}
.moderation-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;overflow:hidden;padding:24px;border:1px solid rgba(218,171,77,.36);border-radius:14px;background:
 radial-gradient(circle at 87% 15%,rgba(214,160,58,.15),transparent 27%),
 linear-gradient(125deg,rgba(8,9,9,.98),rgba(24,18,11,.94) 58%,rgba(5,6,6,.98));box-shadow:0 18px 44px rgba(0,0,0,.24)}
.moderation-head::before{content:"";position:absolute;right:-75px;bottom:-105px;width:310px;height:310px;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;opacity:.055;filter:grayscale(1) sepia(1)}
.moderation-head>*{position:relative;z-index:1}.moderation-head h1{font-family:Georgia,var(--serif);font-size:clamp(36px,4.8vw,54px);font-weight:500;line-height:1.03;color:#fff8ea;letter-spacing:-.025em;margin:4px 0 8px}.moderation-head>.lede,.moderation-head>div>.lede{max-width:780px;color:#d7ccba;line-height:1.55}
.moderation-count{min-width:150px;padding:18px;border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1);text-align:center}.moderation-count strong{display:block;font-family:Georgia,var(--serif);font-size:42px;line-height:1;color:#f1c76f}.moderation-count span{display:block;margin-top:5px;font-size:11.5px;color:#b9ae9d;text-transform:uppercase;letter-spacing:.06em}
.moderation-intake{margin-top:16px}.moderation-intake h2{font-family:Georgia,var(--serif);font-size:24px;font-weight:500}
.moderation-rails{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.moderation-rails>div{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px;padding:10px 12px;border-radius:10px;border:1px solid var(--glass-edge);background:var(--glass-2)}.moderation-rails>div>.ic{width:21px;height:21px;color:var(--gold)}.moderation-rails>div>span{display:flex;flex-direction:column;min-width:0}.moderation-rails small{font-size:12px;color:var(--muted-2);overflow-wrap:anywhere}
.moderation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.moderation-card{overflow:hidden;border:1px solid var(--glass-edge);border-radius:14px;background:linear-gradient(180deg,var(--pane),var(--glass-2));box-shadow:0 12px 30px rgba(0,0,0,.12)}.moderation-image{position:relative;min-height:280px;background:#050505;display:grid;place-items:center}.moderation-image img{width:100%;height:100%;max-height:420px;object-fit:contain}.moderation-image>span{position:absolute;left:12px;top:12px;padding:6px 9px;border-radius:999px;background:rgba(157,95,6,.88);color:#fff8e8;font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.moderation-copy{padding:18px}.moderation-copy h2{font-family:Georgia,var(--serif);font-size:24px;font-weight:500;margin:4px 0 6px;overflow-wrap:anywhere}.moderation-description{font-size:13px;line-height:1.55;color:var(--muted);margin-top:9px}.moderation-copy .field{margin-top:14px}.moderation-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.moderation-actions .btn{min-height:44px}.moderation-actions .btn:first-child{grid-column:1/-1}
.moderation-clear{margin-top:16px;display:grid;justify-items:center;text-align:center}.moderation-clear-mark{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:rgba(78,163,111,.12);color:var(--green)}.moderation-clear-mark .ic{width:26px;height:26px}
html[data-theme="light"] .moderation-head{background:radial-gradient(circle at 87% 15%,rgba(185,126,23,.12),transparent 27%),linear-gradient(125deg,#fffaf0,#f2e7d3 62%,#e7d8bd);border-color:rgba(116,78,20,.25);box-shadow:0 16px 36px rgba(72,50,17,.12)}html[data-theme="light"] .moderation-head h1{color:#17213a}html[data-theme="light"] .moderation-head>.lede,html[data-theme="light"] .moderation-head>div>.lede{color:#50493f}html[data-theme="light"] .moderation-count{background:rgba(255,255,255,.44);border-color:rgba(80,55,18,.12)}html[data-theme="light"] .moderation-count strong{color:#8a5a08}html[data-theme="light"] .moderation-count span{color:#625a4d}
@media(max-width:900px){.moderation-head{grid-template-columns:1fr}.moderation-count{justify-self:start}.moderation-grid{grid-template-columns:1fr}.moderation-rails{grid-template-columns:1fr}}
@media(max-width:600px){.moderation-room{padding:10px 12px 28px}.moderation-head{padding:17px}.moderation-head h1{font-size:clamp(31px,9vw,41px)}.moderation-actions{grid-template-columns:1fr}.moderation-actions .btn:first-child{grid-column:auto}.moderation-image{min-height:230px}}


/* HOUSE TOUR GUIDE V2
   The accepted Tour Guide is a House state, not generic onboarding chrome. The exact chapter seal,
   architectural House imagery, old-gold map and spotlight all reuse the official shell assets. */
.house-welcome{position:fixed;inset:0;z-index:195;display:grid;place-items:center;padding:clamp(14px,3vw,42px);overflow:auto;background:#050504;color:#f7f0e4}
.house-welcome-scene{position:fixed;inset:0;overflow:hidden;pointer-events:none}
.house-welcome-scene picture,.house-welcome-scene img{display:block;width:100%;height:100%}
.house-welcome-scene img{object-fit:cover;object-position:center 54%;filter:brightness(.42) saturate(.72) sepia(.12);transform:scale(1.015)}
.house-welcome-shade{position:absolute;inset:0;background:
  radial-gradient(circle at 25% 36%,rgba(214,164,74,.16),transparent 30%),
  linear-gradient(90deg,rgba(3,3,3,.78),rgba(7,6,4,.48) 52%,rgba(3,3,3,.76)),
  linear-gradient(180deg,rgba(0,0,0,.22),rgba(0,0,0,.68))}
.house-welcome-panel{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,.82fr);width:min(1180px,100%);min-height:min(690px,88vh);overflow:hidden;border:1px solid rgba(226,179,79,.46);border-radius:22px;background:linear-gradient(135deg,rgba(8,8,8,.92),rgba(20,15,9,.88));box-shadow:0 32px 90px rgba(0,0,0,.62);backdrop-filter:blur(18px)}
.house-welcome-primary{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,5vw,68px);border-right:1px solid rgba(226,179,79,.18)}
.house-welcome-seal{display:block;width:104px;height:104px;margin-bottom:24px;filter:drop-shadow(0 12px 22px rgba(0,0,0,.52))}
.house-welcome-seal img{display:block;width:100%;height:100%;object-fit:contain}
.house-welcome .eyebrow{color:#d8ad54}
.house-welcome h2{max-width:12ch;margin:5px 0 16px;font-family:var(--serif);font-size:clamp(42px,5.4vw,74px);font-weight:550;line-height:.95;letter-spacing:-.035em;color:#fff8ec}
.house-welcome-note{max-width:61ch}
.house-welcome-note p{margin:0 0 .8em;font-family:var(--serif);font-size:clamp(17px,1.55vw,20px);line-height:1.58;color:#e8dfd1}
.house-welcome-note p:last-child{margin-bottom:0}
.house-welcome-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:28px}
.house-welcome-actions .btn{min-height:48px;padding-inline:20px}
.house-welcome-actions .btn-primary{box-shadow:0 10px 30px rgba(226,179,79,.16)}
.house-welcome-side{display:flex;flex-direction:column;gap:18px;padding:clamp(24px,3vw,38px);background:linear-gradient(180deg,rgba(9,9,8,.76),rgba(5,5,5,.86))}
.house-welcome-map,.house-wisdom-preview{border:1px solid rgba(226,179,79,.20);border-radius:15px;background:rgba(255,255,255,.025);padding:16px}
.house-welcome-map{flex:1}
.house-wisdom-preview{flex:none}
.house-wisdom-head{display:flex;align-items:center;gap:10px;padding-bottom:11px;border-bottom:1px solid rgba(226,179,79,.14)}
.house-wisdom-head>.ic{width:22px;height:22px;color:#e7bd68}
.house-wisdom-head span{display:flex;flex-direction:column}
.house-wisdom-head strong{font-family:var(--serif);font-size:18px;font-weight:600;color:#fff7e9}
.house-wisdom-head small{font-size:12px;color:#a99c8a}
.house-wisdom-links{display:grid;grid-template-columns:1fr;gap:0;margin-top:7px}
.house-wisdom-links span{padding:8px 2px;border-top:1px solid rgba(255,255,255,.055);font-size:13px;color:#d8cdbd}
.house-wisdom-links span:first-child{border-top:0}

.house-map{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.house-map li{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:9px;min-width:0;color:#8f8679}
.house-map li:not(:last-child)::after{content:"";position:absolute;left:13px;top:27px;width:1px;height:10px;background:rgba(226,179,79,.18)}
.house-map-dot{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(226,179,79,.24);border-radius:50%;background:rgba(255,255,255,.025);font-size:11px;font-weight:800;color:#9f9588}
.house-map-dot .ic{width:13px;height:13px}
.house-map-name{font-size:12px;line-height:1.18}
.house-map li.done .house-map-dot{border-color:rgba(226,179,79,.48);background:rgba(226,179,79,.14);color:#e8bd67}
.house-map li.done .house-map-name{color:#c6b9a7}
.house-map li.active .house-map-dot{border-color:#e2b34f;background:#e2b34f;color:#181208;box-shadow:0 0 22px rgba(226,179,79,.28)}
.house-map li.active .house-map-name{font-weight:800;color:#f7e6c6}

.house-tour-v2{z-index:190}
.house-tour-v2 .tour-light{border-radius:16px;box-shadow:0 0 0 9999px rgba(3,3,3,.70),inset 0 0 0 2px rgba(226,179,79,.94),0 0 44px rgba(226,179,79,.34)}
.house-tour-v2 .tour-card{width:min(92vw,430px);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain;padding:20px 20px 17px;border-radius:18px;border-color:rgba(226,179,79,.44);background:linear-gradient(160deg,rgba(14,14,13,.97),rgba(8,8,8,.97));color:#f6efe4;box-shadow:0 26px 70px rgba(0,0,0,.56)}
.house-tour-v2 .tour-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.house-tour-v2 .tour-card-head .eyebrow{margin:0;color:#d8ad54}
.house-tour-v2 .tour-close{min-width:44px;min-height:44px;color:#cbbfac}
.house-tour-v2 .tour-card h3{margin:5px 0 8px;font-family:var(--serif);font-size:29px;font-weight:580;letter-spacing:-.02em;color:#fff7e9}
.house-tour-v2 .tour-said{font-size:15.5px;line-height:1.55;color:#cfc4b5}
.house-tour-v2 .house-map.compact{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:17px 0 14px;padding-top:14px;border-top:1px solid rgba(226,179,79,.14)}
.house-tour-v2 .house-map.compact li{display:grid;grid-template-columns:1fr;gap:5px;justify-items:center;text-align:center}
.house-tour-v2 .house-map.compact li::after{left:calc(50% + 14px);top:14px;width:calc(100% - 12px);height:1px}
.house-tour-v2 .house-map.compact li:last-child::after{display:none}
.house-tour-v2 .house-map.compact .house-map-dot{width:28px;height:28px;z-index:1}
.house-tour-v2 .house-map.compact .house-map-name{display:none;font-size:9px;line-height:1.15}
.house-tour-v2 .house-map.compact.expanded{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:12px}
.house-tour-v2 .house-map.compact.expanded li::after{display:none}
.house-tour-v2 .house-map.compact.expanded .house-map-name{display:block;color:#b8ad9f}
.house-tour-v2 .house-map.compact.expanded li.active .house-map-name{color:#f3dcae}
.house-tour-v2 .tour-feet{margin-top:3px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06)}
.house-tour-v2 .tour-nav{margin-left:auto}
.house-tour-v2 .tour-nav .btn{min-height:44px}
.house-tour-v2 .tour-skip{display:block;min-height:44px;margin:5px auto 0;padding:10px 12px;border:0;background:none;color:#93897c;font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.house-tour-v2 .tour-skip:hover{color:#d8cdbd}
.house-tour-v2.tour-centre .tour-card{translate:-50% -50%}

.tour-again{border-color:rgba(226,179,79,.34);background:linear-gradient(160deg,rgba(17,17,16,.97),rgba(8,8,8,.97))}
.tour-again-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(226,179,79,.13);color:#e2b34f;flex:none}
.tour-again-words{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}
.tour-again-words strong{font-family:var(--serif);font-size:16px;color:#f8f0e4}
.tour-again-words small{font-size:12px;color:#aea293}

@media(max-width:900px){
  .house-welcome-panel{grid-template-columns:1fr;max-width:720px;min-height:0}
  .house-welcome-primary{border-right:0;border-bottom:1px solid rgba(226,179,79,.18);padding:34px}
  .house-welcome-side{display:grid;grid-template-columns:1fr 1fr;padding:22px}
  .house-welcome-map{min-height:0}
}
@media(max-width:700px){
  .house-welcome{place-items:center;padding:calc(10px + env(safe-area-inset-top)) 10px calc(10px + env(safe-area-inset-bottom));background:#050504}
  .house-welcome-panel{width:100%;max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;border-radius:16px}
  .house-welcome-primary{padding:calc(24px + env(safe-area-inset-top)) 18px 24px}
  .house-welcome-seal{width:76px;height:76px;margin-bottom:16px}
  .house-welcome h2{font-size:43px}
  .house-welcome-note p{font-size:16px;line-height:1.5}
  .house-welcome-actions{display:grid;grid-template-columns:1fr;margin-top:22px}
  .house-welcome-actions .btn{width:100%;min-height:50px}
  .house-welcome-side{display:block;padding:16px 18px calc(22px + env(safe-area-inset-bottom))}
  .house-welcome-map{margin-bottom:12px}
  .house-wisdom-links{grid-template-columns:1fr 1fr;column-gap:12px}
  .house-welcome .house-map{grid-template-columns:repeat(7,1fr);gap:4px}
  .house-welcome .house-map li{display:block;text-align:center}
  .house-welcome .house-map li::after{left:calc(50% + 14px);top:13px;width:calc(100% - 10px);height:1px}
  .house-welcome .house-map-name{display:none}
  .house-welcome .house-map-dot{margin:auto}
  .house-tour-v2 .tour-card{left:10px!important;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;max-height:62dvh;overflow:auto;padding:16px}
  .house-tour-v2.tour-centre .tour-card{left:50%!important;top:50%!important;right:auto;bottom:auto;width:calc(100% - 20px);max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
  .house-tour-v2 .tour-card h3{font-size:25px}
  .house-tour-v2 .tour-said{font-size:14.5px}
  .house-tour-v2 .tour-feet{display:grid;grid-template-columns:1fr}
  .house-tour-v2 .tour-nav{width:100%;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .house-tour-v2 .tour-nav .btn:only-child{grid-column:1/-1}
  .house-tour-v2 .tour-feet>[data-map]{width:100%;min-height:44px}
  .tour-again{align-items:flex-start;flex-wrap:wrap}
  .tour-again [data-resume]{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){
  .house-welcome-scene img{transform:none}
  .house-tour-v2 .tour-light,.house-tour-v2 .tour-card{transition:none}
}


/* HALL OF BROTHERS TOUR READINESS */
@media(max-width:700px){
  .hall-of-brothers .chip{min-height:44px;padding-top:9px;padding-bottom:9px}
  .hall-of-brothers #roster .body>.row a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0}
}


/* ---- The Library · Book Room V2 ---- */
.book-room{display:flex;flex-direction:column;gap:var(--gap)}
.book-room-closed{max-width:760px;margin:clamp(28px,5vw,72px) auto;padding:clamp(28px,5vw,54px);border:1px solid var(--gold-dim);border-radius:var(--radius);background:linear-gradient(165deg,rgba(226,179,79,.08),rgba(var(--tint),.025));box-shadow:var(--depth)}
.book-room-hero{display:grid;grid-template-columns:minmax(230px,320px) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(28px,5vw,60px);border:1px solid var(--gold-dim);border-radius:calc(var(--radius) + 4px);background:
  radial-gradient(70% 95% at 14% 50%,rgba(183,121,33,.19),transparent 68%),
  linear-gradient(135deg,rgba(37,27,18,.93),rgba(14,12,10,.96));box-shadow:var(--depth-lift);overflow:hidden}
.book-object{position:relative;aspect-ratio:.68;max-width:285px;width:100%;justify-self:center;border-radius:8px 16px 16px 8px;background:
  linear-gradient(90deg,rgba(255,255,255,.04),transparent 5%,transparent 93%,rgba(0,0,0,.28)),
  radial-gradient(85% 55% at 30% 15%,rgba(226,179,79,.14),transparent 75%),
  linear-gradient(145deg,#1b150f,#090807 68%);border:1px solid rgba(226,179,79,.45);box-shadow:-12px 18px 38px rgba(0,0,0,.38),inset 5px 0 0 rgba(226,179,79,.10),inset 0 0 0 1px rgba(255,255,255,.03)}
.book-object:before{content:"";position:absolute;inset:10px;border:1px solid rgba(226,179,79,.22);border-radius:3px 10px 10px 3px;pointer-events:none}
.book-object-inner{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:26px;text-align:center}
.book-object-kicker,.book-object-year{font-size:11px;letter-spacing:.19em;text-transform:uppercase;color:var(--gold-2)}
.book-object h2{font-size:clamp(26px,3vw,40px);line-height:1.05;color:var(--ivory);text-transform:uppercase}
.book-object-rule{width:54px;height:1px;background:var(--gold);margin:18px auto}
.book-object-author{font-family:var(--serif);font-size:16px;letter-spacing:.08em;color:var(--gold-light);margin-bottom:7px}
.book-room-intro h1{font-size:clamp(40px,5.5vw,72px);line-height:.98;max-width:12ch}
.book-room-byline{font-family:var(--serif);font-style:italic;font-size:21px;color:var(--gold-2);margin:10px 0 16px}
.book-room-status{margin-bottom:18px}
.book-room-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}
.book-room-curator{display:flex;gap:14px;align-items:flex-start;margin-top:24px;padding:17px 18px;border-radius:16px;border:1px solid var(--glass-edge);background:rgba(var(--tint),.035)}
.book-room-curator.assigned{border-color:rgba(79,179,122,.36);background:rgba(79,179,122,.08)}
.book-room-curator-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(226,179,79,.12);color:var(--gold);flex:none}
.book-room-curator p:last-child{margin:4px 0 0;color:var(--muted);font-size:15px}
.book-room-grid{display:grid;gap:var(--gap)}
.book-room-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.book-room-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.book-room-panel{padding:var(--pad);border:1px solid var(--gold-dim);border-radius:var(--radius);background:linear-gradient(160deg,rgba(var(--tint),.038),rgba(var(--tint),.016));box-shadow:var(--depth)}
.book-room-panel h3{margin-bottom:10px}
.book-room-pending{display:inline-block;margin:4px 0 12px;padding:6px 9px;border-radius:999px;background:rgba(226,179,79,.09);border:1px solid var(--gold-dim);color:var(--gold-2);font-size:13.5px;letter-spacing:.06em}
.book-room-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:13px}
.book-room-list li{display:grid;grid-template-columns:34px 1fr;gap:11px;align-items:start}
.book-room-list li>span{font-family:var(--mono);font-size:12px;color:var(--gold);padding-top:3px}
.book-room-list p{margin:0;color:var(--muted);font-size:15.5px}
.book-room-weeks{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:14px 0}
.book-room-weeks span{padding:8px 4px;text-align:center;border-radius:10px;border:1px solid var(--glass-edge);font-size:12px;color:var(--muted)}
.book-room-facts{display:flex;flex-direction:column;gap:7px;margin:12px 0 14px}
.book-room-facts div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--glass-edge)}
.book-room-facts dt{color:var(--muted-2);font-size:14px}.book-room-facts dd{margin:0;text-align:right;font-size:14px}
.book-room-reader{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,1fr);gap:var(--gap);align-items:center;padding:var(--pad);border-radius:var(--radius);border:1px solid rgba(226,179,79,.30);background:linear-gradient(135deg,rgba(183,121,33,.13),rgba(var(--tint),.02))}
.book-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.book-access{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--glass-edge);font-size:14px}
.book-access small{font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.book-access.gate{color:var(--muted);background:rgba(var(--tint),.025)}
.book-access.ready{color:var(--tone-green);border-color:rgba(79,179,122,.34);background:rgba(79,179,122,.08)}
@media(max-width:980px){
  .book-room-hero{grid-template-columns:220px minmax(0,1fr);gap:28px;padding:28px}
  .book-room-grid.three{grid-template-columns:1fr 1fr}
  .book-room-grid.three .book-room-panel:last-child{grid-column:1/-1}
  .book-room-reader{grid-template-columns:1fr}
}
@media(max-width:720px){
  .book-room-hero{grid-template-columns:1fr;padding:22px}
  .book-object{max-width:210px}
  .book-room-intro h1{font-size:clamp(34px,11vw,52px)}
  .book-room-grid.two,.book-room-grid.three{grid-template-columns:1fr}
  .book-room-grid.three .book-room-panel:last-child{grid-column:auto}
  .book-access-grid{grid-template-columns:1fr}
  .book-room-weeks{grid-template-columns:1fr 1fr}
}

.book-room-copy{font-size:17px;line-height:1.75;white-space:pre-wrap}
.book-room-plan{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}
.book-room-plan li{display:grid;grid-template-columns:70px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--glass-edge)}
.book-room-plan li span{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.book-room-plan li p{margin:0;color:var(--muted);font-size:15px}
.book-room-question{margin:14px 0 0;padding:16px 18px;border-left:2px solid var(--gold);background:rgba(226,179,79,.06);border-radius:0 12px 12px 0;font-family:var(--serif);font-size:19px;line-height:1.55;color:var(--ivory)}


/* ================= UNIVERSAL SEARCH — OFFICIAL HOUSE V1 ================= */
.universal-search{max-width:1180px;margin:0 auto;padding:14px 14px 40px}
.search-room-head{position:relative;overflow:hidden;padding:26px;border:1px solid rgba(218,171,77,.34);border-radius:14px;background:radial-gradient(circle at 88% 16%,rgba(214,160,58,.16),transparent 26%),linear-gradient(125deg,rgba(8,9,9,.98),rgba(25,18,10,.94) 58%,rgba(5,6,6,.98));box-shadow:0 18px 44px rgba(0,0,0,.24)}
.search-room-head::before{content:"";position:absolute;right:-84px;bottom:-105px;width:330px;height:330px;background:url("/welcome/img/chapter-seal.webp") center/contain no-repeat;opacity:.06;filter:grayscale(1) sepia(1)}
.search-room-head>*{position:relative;z-index:1}
.search-room-head h1{font-family:Georgia,var(--serif);font-size:clamp(38px,5vw,58px);line-height:1;letter-spacing:-.025em;color:#fff8ea;font-weight:500;margin:5px 0 10px}
.search-room-head>.lede{max-width:780px;color:#d8cdb9;font-size:16.5px;line-height:1.55}
.universal-search-bar{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:22px;padding:8px 8px 8px 14px;border:1px solid rgba(225,178,82,.32);border-radius:12px;background:rgba(4,5,5,.74);box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}
.universal-search-bar>.ic{width:22px;height:22px;color:#e0ae55}
.universal-search-bar input{min-width:0;min-height:44px;border:0;outline:0;background:transparent;color:#fff7e8;font:600 15.5px/1.4 var(--sans)}
.universal-search-bar input::placeholder{color:#9f9585}
.universal-search-bar .btn{min-height:44px}
.search-room-head #universal-help{margin:9px 2px 0;color:#b8ad9b}
.search-summary{min-height:24px;margin:15px 2px 10px;color:var(--muted);font-size:13.5px;font-weight:650}
.search-groups{display:grid;gap:14px}
.search-group{overflow:hidden;border:1px solid var(--glass-edge);border-radius:13px;background:linear-gradient(180deg,var(--pane),var(--glass-2));box-shadow:0 10px 28px rgba(0,0,0,.08)}
.search-group-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--glass-edge)}
.search-group-head h2{font-family:Georgia,var(--serif);font-size:24px;font-weight:500;margin:2px 0 0;color:var(--ivory)}
.search-count{min-width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(215,164,66,.12);border:1px solid var(--gold-line);color:var(--gold-light);font-weight:800}
.search-group-list{display:grid}
.universal-result{display:grid;grid-template-columns:40px minmax(0,1fr) 22px;align-items:center;gap:12px;min-height:68px;padding:12px 18px;border-top:1px solid var(--glass-edge);color:var(--text);text-decoration:none}
.universal-result:first-child{border-top:0}
.universal-result:hover,.universal-result:focus-visible{background:var(--glass-2);color:var(--text)}
.universal-result:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.universal-result-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(214,163,65,.09);border:1px solid rgba(214,163,65,.2);color:var(--gold)}
.universal-result-mark .ic{width:19px;height:19px}
.universal-result-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.universal-result-copy>strong{font-size:15.5px;line-height:1.35;color:var(--text)}
.universal-result-copy>small{font-size:12.5px;line-height:1.4;color:var(--muted-2)}
.universal-result-snippet{font-size:13.5px;line-height:1.5;color:var(--muted)}
.universal-result-snippet mark{background:rgba(224,174,80,.18);color:var(--gold-light);padding:0 .1em}
.universal-result-go{color:var(--muted-2)}.universal-result-go .ic{width:17px;height:17px}
.search-start{display:grid;justify-items:center;text-align:center;gap:8px;padding:54px 22px;border:1px solid var(--glass-edge);border-radius:13px;background:var(--glass)}
.search-start-mark{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:rgba(214,163,65,.1);color:var(--gold)}
.search-start-mark .ic{width:24px;height:24px}
.search-start h2{font-family:Georgia,var(--serif);font-weight:500;font-size:26px;margin:4px 0 0}
.search-start p{max-width:580px;color:var(--muted);line-height:1.55}
.search-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:50px;color:var(--muted)}
.search-error{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.search-error .btn{margin-left:auto}
html[data-theme="light"] .search-room-head{background:radial-gradient(circle at 88% 16%,rgba(185,126,23,.12),transparent 26%),linear-gradient(125deg,#fffaf0,#f2e7d3 62%,#e6d7bc);border-color:rgba(116,78,20,.24);box-shadow:0 16px 34px rgba(72,50,17,.11)}
html[data-theme="light"] .search-room-head h1{color:#17213a}
html[data-theme="light"] .search-room-head>.lede{color:#4f493f}
html[data-theme="light"] .universal-search-bar{background:rgba(255,255,255,.66);border-color:rgba(116,78,20,.22)}
html[data-theme="light"] .universal-search-bar input{color:#171512}
html[data-theme="light"] .universal-search-bar input::placeholder{color:#71685a}
html[data-theme="light"] .search-room-head #universal-help{color:#625a4c}
html[data-theme="light"] .search-group-head h2{color:#17213a}
@media(max-width:700px){.universal-search{padding:10px 12px 28px}.search-room-head{padding:19px 16px}.search-room-head h1{font-size:clamp(34px,10vw,44px)}.search-room-head>.lede{font-size:15px}.universal-search-bar{grid-template-columns:24px minmax(0,1fr);padding:8px 10px}.universal-search-bar .btn{grid-column:1/-1;width:100%}.search-group-head{padding:15px 16px}.search-group-head h2{font-size:21px}.universal-result{grid-template-columns:36px minmax(0,1fr) 18px;padding:11px 13px;gap:10px;min-height:64px}.universal-result-mark{width:34px;height:34px}}
@media(max-width:360px){.universal-result{grid-template-columns:32px minmax(0,1fr);align-items:start}.universal-result-go{display:none}}

/* The Scribe product mark: ceremonial script for the name only; all working copy stays in the
   House's readable interface faces. System fallbacks keep the mark available offline and under CSP. */
.scribe-wordmark{
  font-family:"Snell Roundhand","Apple Chancery","Segoe Script","Brush Script MT",cursive;
  font-size:clamp(27px,3.1vw,42px);
  line-height:1;
  font-weight:600;
  letter-spacing:.01em;
  text-transform:none;
  color:var(--gold-light);
}


/* The Scribe working page: a calm paper surface inside the House shell. This is intentionally
   independent from the portal light/dark chrome so a Secretary can read and write for hours. */
.scribe-sheet{overflow:hidden}
.scribe-paper{
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  color:#211d16;
  font-family:Georgia,"Times New Roman",serif;
  font-size:17px;
  line-height:1.78;
  padding:30px clamp(22px,4vw,54px) 34px;
  border:1px solid rgba(111,84,36,.18);
  border-radius:12px;
  background-color:#fffdf7;
  background-image:
    linear-gradient(90deg,transparent 0 46px,rgba(157,63,52,.16) 46px 47px,transparent 47px),
    repeating-linear-gradient(180deg,transparent 0 31px,rgba(83,113,150,.12) 31px 32px);
  box-shadow:inset 0 1px rgba(255,255,255,.8);
}
@media(max-width:640px){
  .scribe-paper{font-size:16px;line-height:1.72;padding:22px 18px 26px;background-image:repeating-linear-gradient(180deg,transparent 0 29px,rgba(83,113,150,.11) 29px 30px)}
}


/* ================================================================= The Scribe V3.1 workspace
   The editor owns the middle of the screen. Context is kept in collapsible trays so the Secretary
   can give the page back to the writing surface on a laptop, tablet, or phone. */
.scribe-live-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,340px);gap:16px;align-items:start}
.scribe-live-shell.context-collapsed{grid-template-columns:minmax(0,1fr) 0;gap:0}
.scribe-live-shell.context-collapsed .scribe-context{display:none}
.scribe-editor-card{min-width:0}
.scribe-context{position:sticky;top:92px;display:grid;gap:10px;min-width:0}
.scribe-tray{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden}
.scribe-tray summary{display:flex;align-items:center;gap:8px;padding:12px 14px;cursor:pointer;font-weight:750;color:var(--text);list-style:none}
.scribe-tray summary::-webkit-details-marker{display:none}
.scribe-tray summary svg{width:17px;height:17px;color:var(--gold)}
.scribe-tray[open] summary{border-bottom:1px solid var(--line)}
.scribe-tray-body{padding:12px;display:grid;gap:9px}
.scribe-ref-row{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}
.scribe-toolbar{display:grid;gap:9px;margin:0 0 12px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:rgba(var(--tint),.025)}
.scribe-toolgroup{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.scribe-toolgroup>span:first-child{min-width:46px;color:var(--muted-2);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.scribe-paper-btn,.scribe-ink-btn{min-height:34px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--muted-2);padding:6px 9px;cursor:pointer}
.scribe-paper-btn.active,.scribe-ink-btn.active{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold-dim);color:var(--text)}
.scribe-ink-btn{display:flex;align-items:center;gap:6px}
.scribe-ink-btn span{width:12px;height:12px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px rgba(0,0,0,.18)}
.scribe-ink-btn b{font-size:12px;font-weight:650}
.scribe-editor{width:100%;min-height:440px;resize:vertical;border:1px solid rgba(92,74,44,.22);border-radius:10px;padding:26px 28px 30px 54px;
  color:var(--scribe-ink,#173f73);font-family:Georgia,'Times New Roman',serif;font-size:18px;line-height:1.72;caret-color:var(--scribe-ink,#173f73);
  background-color:#f7f0df;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 8px 30px rgba(26,20,10,.06)}
.scribe-editor[data-paper="notebook"],.scribe-paper[data-paper="notebook"]{background-color:#f7f0df;background-image:linear-gradient(90deg,transparent 0 39px,rgba(186,74,58,.2) 39px 40px,transparent 40px),repeating-linear-gradient(180deg,transparent 0 31px,rgba(70,106,155,.13) 31px 32px)}
.scribe-editor[data-paper="white"],.scribe-paper[data-paper="white"]{background:#fff}
.scribe-editor[data-paper="ivory"],.scribe-paper[data-paper="ivory"]{background:#f7f0df}
.scribe-editor[data-paper="grid"],.scribe-paper[data-paper="grid"]{background-color:#fbfaf6;background-image:linear-gradient(rgba(70,106,155,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(70,106,155,.1) 1px,transparent 1px);background-size:24px 24px}
.scribe-editor[data-paper="dark"],.scribe-paper[data-paper="dark"]{background:#181818;color:#f2ebdd;--scribe-ink:#f2ebdd;border-color:#3b352c}
.scribe-paper{padding:28px 34px 34px 54px;border:1px solid rgba(92,74,44,.16);border-radius:10px;color:var(--scribe-ink,#173f73);font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1.7}
.scribe-paragraph{white-space:pre-wrap;margin:0 0 1em}
.scribe-reference-line{display:flex;gap:7px;align-items:center;margin:9px 0;font-family:var(--sans);font-size:13px}
.scribe-reference-line svg{width:15px;height:15px;color:var(--gold)}
.scribe-inline-table{margin:12px 0 18px;font-family:var(--sans);font-size:13px}
.scribe-inline-table .table{background:rgba(255,255,255,.45)}
.scribe-live-shell.scribe-focus .scribe-toolbar{opacity:.72}
.scribe-live-shell.scribe-focus .scribe-context{display:none}
.scribe-live-shell.scribe-focus{grid-template-columns:minmax(0,1fr)}
@media(max-width:1040px){
  .scribe-live-shell{grid-template-columns:minmax(0,1fr)}
  .scribe-context{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}
  .scribe-live-shell.context-collapsed .scribe-context{display:none}
}
@media(max-width:760px){
  .scribe-context{grid-template-columns:1fr}
  .scribe-editor{min-height:58vh;padding:22px 18px 26px 38px;font-size:17px}
  .scribe-paper{padding:22px 18px 26px 38px}
  .scribe-toolbar{margin-left:-4px;margin-right:-4px}
  .scribe-toolgroup{gap:5px}
  .scribe-ink-btn b{display:none}
  .scribe-ref-row{grid-template-columns:1fr}
}


/* ================================================================= The Scribe V3 intelligence rails */
.roll-intel{display:block;margin-top:3px;font-size:11px;line-height:1.3;color:var(--muted-2);font-weight:600}
.roll-man.unmarked .roll-intel{color:var(--muted)}
.procedure-status{display:grid;gap:6px}
.procedure-flow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px}
.procedure-flow span{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:rgba(var(--tint),.035);font-size:11px;font-weight:750}
.procedure-flow span+span:before{content:"→";margin-right:7px;color:var(--gold)}
.procedure-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.scribe-source-card{padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:rgba(var(--tint),.025)}
.scribe-source-card .btn{margin-top:7px}
.scribe-live-shell.executive-active .scribe-editor-card{border-color:rgba(135,37,37,.55)}
.scribe-live-shell.executive-active .scribe-toolbar{border-color:rgba(135,37,37,.38)}
.scribe-live-shell.executive-active:before{content:"EXECUTIVE SESSION · RESTRICTED";grid-column:1/-1;padding:8px 12px;border-radius:10px;background:rgba(115,25,25,.12);border:1px solid rgba(135,37,37,.42);color:#b44747;font-size:12px;font-weight:850;letter-spacing:.08em;text-align:center}
@media(max-width:760px){
  .procedure-actions{grid-template-columns:1fr 1fr}
  .procedure-flow{gap:4px}
  .scribe-source-card{padding:9px}
}


/* The Dashboard hero is architecture, not a generated CSS statue. The exact V5 House masters
   supply the room; live type and live notices remain the accessible interaction layer. */
.official-room{
  background:url("https://d8j0ntlcm91z4.cloudfront.net/user_3Exqsmm21WSuUKpKA5nv1VeLRIR/hf_20260923_225603_09a85da7-dabb-4c6d-933d-14e3330452fb.png") center 48%/cover no-repeat,
    url("/welcome/img/entrance/house-entrance-dark-v5.jpg") center 48%/cover no-repeat!important;
}
html[data-theme="light"] .official-room{
  background:url("https://d2ol7oe51mr4n9.cloudfront.net/user_3Exqsmm21WSuUKpKA5nv1VeLRIR/bd950ed6-fbd4-4c22-a973-7faa7c62f2f5.png") center 48%/cover no-repeat,
    url("/welcome/img/entrance/house-entrance-light-v5.jpg") center 48%/cover no-repeat!important;
}
.official-room::after,
.official-room-column,
.official-room-window,
.official-sphinx,
.official-roses{display:none!important}
.official-floor-mark{display:none!important}
.official-hero-shade{
  background:
    linear-gradient(90deg,rgba(3,3,3,.64),rgba(3,3,3,.18) 52%,rgba(3,3,3,.44)),
    linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.30))!important;
}
html[data-theme="light"] .official-hero-shade{
  background:
    linear-gradient(90deg,rgba(19,13,8,.48),rgba(19,13,8,.08) 54%,rgba(22,15,8,.28)),
    linear-gradient(180deg,rgba(255,255,255,.01),rgba(30,20,9,.16))!important;
}
html[data-theme="light"] .official-hero-copy{color:#fffdf8}
html[data-theme="light"] .official-hero-copy h1,
html[data-theme="light"] .official-hero-copy p{color:#fffdf8;text-shadow:0 4px 22px rgba(0,0,0,.72)}

/* Resume is an invitation, not a modal. Keep it above the mobile House rail and compact enough
   that it never masks Home / Brothers / Calendar / Messages / More. */
@media(max-width:700px){
  #toasts{
    bottom:calc(82px + env(safe-area-inset-bottom))!important;
    width:calc(100vw - 20px)!important;
    max-width:none!important;
  }
  .tour-again{
    display:grid!important;
    grid-template-columns:36px minmax(0,1fr) auto 42px!important;
    align-items:center!important;
    gap:8px!important;
    padding:9px 10px!important;
    border-radius:16px!important;
    flex-wrap:nowrap!important;
  }
  .tour-again-mark{width:34px!important;height:34px!important}
  .tour-again-words{min-width:0!important;gap:1px!important}
  .tour-again-words strong{font-size:14.5px!important;line-height:1.15!important}
  .tour-again-words small{
    display:block!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:11px!important;
    line-height:1.25!important;
  }
  .tour-again [data-resume]{
    margin:0!important;
    min-height:40px!important;
    padding:0 13px!important;
    font-size:13px!important;
  }
  .tour-again [data-dismiss]{
    width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;
  }

  .official-room{background-position:center 46%!important}
}
@media(max-width:390px){
  .tour-again{grid-template-columns:32px minmax(0,1fr) auto 38px!important;padding:8px!important}
  .tour-again-mark{width:32px!important;height:32px!important}
  .tour-again [data-resume]{padding:0 10px!important}
  .tour-again [data-dismiss]{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
}



/* ================= HOUSE HOME ELITE V33 — FINAL POLISH =================
   The mobile Home should feel like the room beyond the V5 doors, not a screenshot of the doors
   with interface blocks stacked on top. Live information remains live; architecture carries mood. */

html[data-view="dashboard"] .view{
  background:
    radial-gradient(90% 34% at 50% -4%,rgba(206,153,54,.11),transparent 72%),
    linear-gradient(180deg,rgba(23,16,9,.24),transparent 38%);
}
html[data-theme="light"][data-view="dashboard"] .view{
  background:
    radial-gradient(90% 34% at 50% -4%,rgba(177,120,35,.10),transparent 72%),
    linear-gradient(180deg,rgba(221,192,142,.13),transparent 38%);
}

.official-dashboard{gap:14px}
.official-welcome{padding:4px 3px 8px}
.official-welcome-kicker{
  margin:0 0 4px!important;
  color:var(--gold-2)!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:850!important;
  letter-spacing:.22em!important;
  text-transform:uppercase;
}
.official-welcome h2{
  font-family:Georgia,var(--serif);
  font-size:clamp(29px,3.5vw,38px);
  font-weight:540;
  letter-spacing:-.018em;
  line-height:1.06;
}
.official-weather{
  border:1px solid rgba(226,179,79,.26);
  border-radius:14px;
  background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(226,179,79,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}

/* One clean architectural hero. */
.official-hero-stack{display:flex;flex-direction:column;gap:9px}
.official-hero{
  min-height:410px;
  border-radius:20px;
  border-color:rgba(226,179,79,.34);
  box-shadow:0 22px 54px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.045);
}
.official-room{
  background:
    url("/welcome/img/entrance/house-entrance-dark-v5-hi.jpg") center 48%/cover no-repeat,
    url("/welcome/img/entrance/house-entrance-dark-v5.jpg") center 48%/cover no-repeat!important;
}
html[data-theme="light"] .official-room{
  background:
    url("/welcome/img/entrance/house-entrance-light-v5-hi.jpg") center 48%/cover no-repeat,
    url("/welcome/img/entrance/house-entrance-light-v5.jpg") center 48%/cover no-repeat!important;
}
.official-hero-shade{
  background:
    linear-gradient(90deg,rgba(1,1,1,.72),rgba(3,3,3,.20) 54%,rgba(3,3,3,.34)),
    linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.38))!important;
}
html[data-theme="light"] .official-hero-shade{
  background:
    linear-gradient(90deg,rgba(21,14,7,.56),rgba(21,14,7,.08) 55%,rgba(21,14,7,.24)),
    linear-gradient(180deg,rgba(255,255,255,.01),rgba(24,16,8,.23))!important;
}
.official-hero-copy{left:28px;bottom:28px;max-width:62%}
.official-hero-kicker{
  display:block;
  margin-bottom:10px;
  color:#efc86f;
  font-size:10px;
  line-height:1.2;
  font-weight:850;
  letter-spacing:.22em;
  text-transform:uppercase;
  text-shadow:0 3px 14px rgba(0,0,0,.8);
}
.official-hero-copy h1{
  font-size:clamp(58px,6vw,82px);
  line-height:.88;
  letter-spacing:-.04em;
}
.official-hero-copy p{font-size:24px;margin-top:9px}
.official-hero-creed{margin-top:13px;opacity:.94}

/* Alerts become the House Briefing below the hero instead of fighting the photograph. */
.official-briefing{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.official-briefing .official-alert{
  position:relative;
  width:auto;
  min-height:88px;
  padding:12px 13px;
  border-radius:14px;
  transform:none!important;
  background:
    linear-gradient(155deg,rgba(18,17,15,.96),rgba(8,8,8,.96));
  border-color:rgba(226,179,79,.25);
  box-shadow:0 12px 28px rgba(0,0,0,.19),inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(16px);
}
html[data-theme="light"] .official-briefing .official-alert{
  background:linear-gradient(155deg,rgba(255,253,248,.94),rgba(246,238,224,.94));
  border-color:rgba(137,91,22,.20);
  color:#1c1712;
  box-shadow:0 10px 24px rgba(83,57,22,.12),inset 0 1px 0 rgba(255,255,255,.70);
}
html[data-theme="light"] .official-briefing .official-alert span span{color:#4b4136}
html[data-theme="light"] .official-briefing .official-alert small{color:#74685b}

/* Premium mobile bottom rail: lighter visual weight, clear active location. */
@media(max-width:700px){
  .official-dashboard{gap:11px;padding-top:14px!important}
  .official-welcome{gap:12px}
  .official-welcome h2{font-size:30px}
  .official-welcome>div:first-child>p:last-child{font-size:15px}
  .official-weather{padding:11px 14px!important;border-radius:14px!important}

  .official-hero{min-height:345px!important;border-radius:18px}
  .official-room{
    background-position:center 45%!important;
  }
  .official-hero-copy{
    left:20px!important;
    right:20px!important;
    bottom:24px!important;
    max-width:none!important;
  }
  .official-hero-kicker{font-size:9px;letter-spacing:.18em;margin-bottom:8px}
  .official-hero-copy h1{font-size:50px!important;line-height:.90}
  .official-hero-copy p{font-size:20px!important;margin-top:7px}
  .official-hero-creed{display:block!important;font-size:9px!important;letter-spacing:.115em!important;margin-top:9px}
  .official-hero-creed span{padding:0 3px}

  .official-briefing{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:0 1px 4px;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
  }
  .official-briefing::-webkit-scrollbar{display:none}
  .official-briefing .official-alert{
    flex:0 0 min(84vw,360px);
    min-height:82px;
    scroll-snap-align:start;
    grid-template-columns:32px minmax(0,1fr) 16px;
    padding:10px 11px;
  }
  .official-briefing .official-alert strong{font-size:12px}
  .official-briefing .official-alert span span{font-size:12px}
  .official-briefing .official-alert small{font-size:11px}

  /* Orientation becomes a discreet floating key, not a second footer. */
  #toasts{
    bottom:calc(76px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:calc(100vw - 28px)!important;
  }
  .tour-again{
    width:min(352px,calc(100vw - 28px))!important;
    grid-template-columns:30px minmax(0,1fr) auto 34px!important;
    gap:7px!important;
    padding:7px 8px!important;
    border-radius:999px!important;
    border-color:rgba(226,179,79,.38)!important;
    background:linear-gradient(155deg,rgba(14,13,11,.94),rgba(5,5,5,.96))!important;
    box-shadow:0 16px 38px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.045)!important;
    backdrop-filter:blur(18px)!important;
  }
  .tour-again-mark{width:30px!important;height:30px!important;background:rgba(226,179,79,.12)!important}
  .tour-again-words strong{font-size:13px!important}
  .tour-again-words small{font-size:10.5px!important;color:#a89d8d!important}
  .tour-again [data-resume]{
    min-height:34px!important;
    padding:0 12px!important;
    border-radius:999px!important;
    font-size:12px!important;
    box-shadow:none!important;
  }
  .tour-again [data-dismiss]{
    width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
    border-radius:50%!important;
  }

  .tabbar{
    min-height:66px;
    padding:6px 8px calc(6px + env(safe-area-inset-bottom))!important;
    background:rgba(11,11,10,.92)!important;
    border-top-color:rgba(226,179,79,.15)!important;
    box-shadow:0 -10px 30px rgba(0,0,0,.20);
  }
  html[data-theme="light"] .tabbar{
    background:rgba(250,246,238,.94)!important;
    box-shadow:0 -10px 30px rgba(87,60,26,.10);
  }
  .tabbar a,.tabbar button{
    min-height:52px!important;
    border-radius:12px!important;
    font-size:11.5px!important;
    letter-spacing:.01em!important;
    position:relative;
  }
  .tabbar a.active{
    background:transparent!important;
    color:#e9bc61!important;
  }
  .tabbar a.active::before{
    content:"";
    position:absolute;
    top:1px;
    left:50%;
    width:24px;
    height:2px;
    border-radius:2px;
    transform:translateX(-50%);
    background:#e2b34f;
    box-shadow:0 0 14px rgba(226,179,79,.38);
  }
  html[data-theme="light"] .tabbar a.active{color:#9a6410!important}
}

/* Keep tablet elegant: alerts are two columns and the hero remains cinematic. */
@media(min-width:701px) and (max-width:1000px){
  .official-briefing{grid-template-columns:repeat(2,minmax(0,1fr))}
  .official-briefing .official-alert:last-child:nth-child(odd){grid-column:1/-1}
  .official-hero-copy{max-width:70%}
}



/* ================= CHAPTER SIGN-IN RESPONSIVE AUTHORITY V1 — SUPERSEDED BY ENTRANCE V2 2026-09-28 =================
   The six owner-approved backdrop files are production assets, not visual references.
   The live House Key surface remains one compact, immovable panel at the viewport center. */
.house-entry-login{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100svh!important;
  min-height:100svh!important;
  overflow:hidden!important;
  background-image:url("/welcome/img/entrance-v3/base-centered-door.avif")!important;
  background-position:center center!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
  background-color:#080705!important;
}
html[data-theme="light"] .house-entry-login{
  background-image:url("/welcome/img/entrance-v3/base-centered-door.avif")!important;
  background-color:#f1e8d8!important;
}
.house-entry-login .chapter-signin-backdrop{
  position:absolute!important;
  z-index:1!important;
  inset:0!important;
  display:block!important;
  width:100vw!important;
  height:100svh!important;
  overflow:hidden!important;
  pointer-events:none!important;
}
.house-entry-login .chapter-signin-backdrop>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center center!important;
}
.house-entry-login .chapter-signin-backdrop-light{display:none!important}
html[data-theme="light"] .house-entry-login .chapter-signin-backdrop-dark{display:none!important}
html[data-theme="light"] .house-entry-login .chapter-signin-backdrop-light{display:block!important}
.house-entry-login .entry-center-login,
.house-entry-login .entry-card-login{
  position:absolute!important;
  z-index:2!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  overflow:visible!important;
}
.house-entry-login .v5-entry{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  padding:0!important;
  overflow:visible!important;
}
.house-entry-login .v5-entry>.v5-brand{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  border:0!important;
}
.house-entry-login .v5-access{
  position:fixed!important;
  z-index:5!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:clamp(328px,27vw,410px)!important;
  min-width:0!important;
  max-width:calc(100vw - 40px)!important;
  max-height:min(76dvh,680px)!important;
  margin:0!important;
  padding:clamp(18px,2.1vw,24px)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
  border:1px solid rgba(226,179,79,.58)!important;
  border-radius:20px!important;
  background:linear-gradient(160deg,rgba(12,10,8,.91),rgba(3,3,3,.95))!important;
  box-shadow:0 26px 68px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.06)!important;
  -webkit-backdrop-filter:blur(20px) saturate(118%)!important;
  backdrop-filter:blur(20px) saturate(118%)!important;
}
.house-entry-login .v5-access h1{
  font-size:clamp(29px,2.55vw,38px)!important;
  line-height:1.04!important;
  margin-bottom:9px!important;
}
.house-entry-login .v5-access .v5-welcome-title{
  white-space:nowrap!important;
  font-size:clamp(27px,2vw,30px)!important;
}
.house-entry-login .v5-lede{font-size:15px!important;line-height:1.45!important;margin-bottom:16px!important}
.house-entry-login .v5-key-primary{min-height:52px!important}
.house-entry-login .v5-device-note{margin:9px 2px 11px!important}
.house-entry-login .v5-access-links{margin-top:14px!important;padding-top:13px!important}
.house-entry-login .v5-other{margin-top:13px!important;padding-top:11px!important}
.house-entry-login .v5-assurance{margin-top:13px!important}
.house-entry-login .v5-terms{margin-top:8px!important}

html[data-theme="light"] .house-entry-login .v5-access{
  color:#211a12!important;
  border-color:rgba(124,83,16,.55)!important;
  background:linear-gradient(155deg,rgba(255,252,245,.94),rgba(239,230,214,.91))!important;
  box-shadow:0 26px 68px rgba(64,42,13,.30),inset 0 1px 0 rgba(255,255,255,.82)!important;
}
html[data-theme="light"] .house-entry-login .v5-access>.eyebrow{color:#70490f!important}
html[data-theme="light"] .house-entry-login .v5-access h1{color:#17120d!important}
html[data-theme="light"] .house-entry-login .v5-lede{color:#44382c!important}
html[data-theme="light"] .house-entry-login .v5-device-note{color:#625447!important}
html[data-theme="light"] .house-entry-login .v5-email-key-toggle,
html[data-theme="light"] .house-entry-login .v5-access-links a{color:#68440d!important}
html[data-theme="light"] .house-entry-login .v5-access-links,
html[data-theme="light"] .house-entry-login .v5-other{border-color:rgba(91,61,15,.20)!important}
html[data-theme="light"] .house-entry-login .v5-other summary{color:#55483a!important}
html[data-theme="light"] .house-entry-login .v5-email-key{background:rgba(82,58,22,.055)!important;border-color:rgba(91,61,15,.18)!important}
html[data-theme="light"] .house-entry-login .v5-assurance{color:#51463a!important}
html[data-theme="light"] .house-entry-login .v5-terms{color:#66594b!important}
html[data-theme="light"] .house-entry-login .v5-terms a{color:#68440d!important}

@media (min-width:601px) and (max-width:1180px){
  .house-entry-login{
    background-image:url("/welcome/img/entrance-v3/base-centered-door.avif")!important;
  }
  html[data-theme="light"] .house-entry-login{
    background-image:url("/welcome/img/entrance-v3/base-centered-door.avif")!important;
  }
  .house-entry-login .v5-access{
    width:clamp(350px,43vw,402px)!important;
    max-height:min(76dvh,650px)!important;
  }
}

@media (max-width:600px){
  .house-entry-login{
    background-image:url("/welcome/img/entrance-v3/base-centered-door.avif")!important;
    background-position:center center!important;
  }
  html[data-theme="light"] .house-entry-login{
    background-image:url("/welcome/img/entrance-v3/base-centered-door.avif")!important;
  }
  .house-entry-login .v5-access{
    width:min(calc(100vw - 24px),360px)!important;
    max-width:360px!important;
    max-height:min(78dvh,650px)!important;
    padding:18px 16px!important;
    border-radius:17px!important;
  }
  .house-entry-login .v5-access h1{font-size:clamp(27px,7.4vw,32px)!important}
  .house-entry-login .v5-lede{font-size:14.5px!important}
  .house-entry-login .v5-access-links{display:grid!important;grid-template-columns:1fr!important;text-align:center!important}
}

@media (max-height:640px){
  .house-entry-login .v5-access{max-height:calc(100dvh - 24px)!important}
}

@media (prefers-reduced-transparency:reduce){
  .house-entry-login .v5-access{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    background:#080706!important;
  }
  html[data-theme="light"] .house-entry-login .v5-access{background:#f7f0e4!important}
}

/* ================= HOUSE ACCESS REQUEST AUTHORITY V1 — LOCKED 2026-09-25 =================
   The approved Request House Access composition is immutable. Dark and light reuse this exact
   live structure; only the theme surface and the already-locked backdrop family may change. */
.house-entry-login .v5-request[data-visual-authority="house-access-request-v1"]{
  position:fixed!important;
  z-index:5!important;
  left:50%!important;
  top:calc(50% - clamp(18px,3dvh,28px))!important;
  transform:translate(-50%,-50%)!important;
  display:grid!important;
  grid-template-columns:240px minmax(0,1fr)!important;
  width:min(880px,calc(100vw - 72px))!important;
  max-width:880px!important;
  max-height:min(72dvh,610px)!important;
  margin:0!important;
  padding:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
  text-align:left!important;
  color:#f8efe1!important;
  border:1px solid rgba(228,181,73,.72)!important;
  border-radius:17px!important;
  background:rgba(5,5,4,.965)!important;
  box-shadow:0 28px 72px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.045)!important;
  -webkit-backdrop-filter:blur(18px) saturate(112%)!important;
  backdrop-filter:blur(18px) saturate(112%)!important;
}
.house-entry-login .v5-request-brand{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:100%!important;
  padding:34px 24px!important;
  text-align:center!important;
  border-right:1px solid rgba(228,181,73,.20)!important;
  background:rgba(10,9,7,.72)!important;
}
.house-entry-login .v5-request-brand .v5-apa{
  margin:0 0 16px!important;
  color:#e8b94e!important;
  font-size:66px!important;
  line-height:.82!important;
  letter-spacing:-.055em!important;
  text-shadow:none!important;
}
.house-entry-login .v5-request-brand .v5-chapter{
  margin:0!important;
  color:#f8efe1!important;
  font-family:var(--serif)!important;
  font-size:14px!important;
  line-height:1.65!important;
  letter-spacing:.20em!important;
}
.house-entry-login .v5-request-brand .v5-place{
  margin:13px 0 0!important;
  color:#d8cdbb!important;
  font-size:9.5px!important;
  line-height:1.65!important;
  letter-spacing:.16em!important;
}
.house-entry-login .v5-request-rule,
.house-entry-login .v5-request-accent{
  display:block!important;
  width:38px!important;
  height:2px!important;
  flex:none!important;
  background:#d8a936!important;
}
.house-entry-login .v5-request-rule{margin:22px auto!important}
.house-entry-login .v5-request-review{
  max-width:176px!important;
  margin:0!important;
  color:#e1d6c6!important;
  font-family:var(--serif)!important;
  font-size:15px!important;
  line-height:1.45!important;
}
.house-entry-login .v5-request-body{padding:38px 34px 26px!important}
.house-entry-login .v5-request-body h1{
  margin:0 0 5px!important;
  color:#fff8ec!important;
  font-family:var(--serif)!important;
  font-size:clamp(35px,3.2vw,45px)!important;
  font-weight:550!important;
  line-height:1.06!important;
  white-space:nowrap!important;
}
.house-entry-login .v5-request-body>.v5-lede{
  margin:0!important;
  color:#e2d7c6!important;
  font-family:var(--serif)!important;
  font-size:15px!important;
  line-height:1.4!important;
}
.house-entry-login .v5-request-accent{margin:17px 0 21px!important}
.house-entry-login .v5-request-form{margin:0!important}
.house-entry-login .v5-request-form .form-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:13px 14px!important;
}
.house-entry-login .v5-request-form .field{margin:0!important}
.house-entry-login .v5-request-form .field:nth-child(3){grid-column:1/-1!important}
.house-entry-login .v5-request-form label{
  color:#efe5d7!important;
  font-size:10.5px!important;
  font-weight:650!important;
  letter-spacing:.10em!important;
  text-transform:uppercase!important;
}
.house-entry-login .v5-request-form label span{color:#d7a52d!important}
.house-entry-login .v5-request-form .input{
  min-height:45px!important;
  color:#f8efe1!important;
  border-color:rgba(226,215,194,.33)!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.025)!important;
}
.house-entry-login .v5-request-form select.input{color-scheme:dark!important}
.house-entry-login .v5-request-form select.input option{
  color:#f8efe1!important;
  background-color:#12100d!important;
}
.house-entry-login .v5-request-form select.input option:checked{
  color:#17120d!important;
  background-color:#e8b94e!important;
}
.house-entry-login .v5-request-submit{
  min-height:54px!important;
  margin-top:19px!important;
  border-radius:9px!important;
  font-size:13px!important;
  font-weight:750!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
}
.house-entry-login .v5-request-footer{
  display:grid!important;
  grid-template-columns:auto minmax(0,230px)!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  margin-top:15px!important;
}
.house-entry-login .v5-request-footer>a{
  color:#dfb64f!important;
  font-size:12px!important;
  text-decoration:none!important;
}
.house-entry-login .v5-request-footer>a span{color:#ddd2c1!important}
.house-entry-login .v5-request-footer>p{
  display:flex!important;
  align-items:flex-start!important;
  gap:7px!important;
  margin:0!important;
  color:#aa9f90!important;
  font-size:9.5px!important;
  line-height:1.35!important;
}
.house-entry-login .v5-request-footer .ic{width:14px!important;height:14px!important;flex:none!important;color:#dfb64f!important}

html[data-theme="light"] .house-entry-login .v5-request[data-visual-authority="house-access-request-v1"]{
  color:#241c14!important;
  border-color:rgba(126,84,17,.58)!important;
  background:rgba(252,248,239,.965)!important;
  box-shadow:0 28px 72px rgba(69,45,13,.28),inset 0 1px 0 rgba(255,255,255,.90)!important;
}
html[data-theme="light"] .house-entry-login .v5-request-brand{
  border-right-color:rgba(115,76,16,.19)!important;
  background:rgba(238,228,209,.78)!important;
}
html[data-theme="light"] .house-entry-login .v5-request-brand .v5-apa{color:#8f6119!important}
html[data-theme="light"] .house-entry-login .v5-request-brand .v5-chapter,
html[data-theme="light"] .house-entry-login .v5-request-body h1{color:#17120d!important}
html[data-theme="light"] .house-entry-login .v5-request-brand .v5-place,
html[data-theme="light"] .house-entry-login .v5-request-review,
html[data-theme="light"] .house-entry-login .v5-request-body>.v5-lede{color:#514538!important}
html[data-theme="light"] .house-entry-login .v5-request-form label{color:#3c3025!important}
html[data-theme="light"] .house-entry-login .v5-request-form .input{
  color:#211a12!important;
  border-color:rgba(92,61,15,.30)!important;
  background:rgba(255,255,255,.60)!important;
}
html[data-theme="light"] .house-entry-login .v5-request-form select.input{color-scheme:light!important}
html[data-theme="light"] .house-entry-login .v5-request-form select.input option{
  color:#211a12!important;
  background-color:#fffaf0!important;
}
html[data-theme="light"] .house-entry-login .v5-request-form select.input option:checked{
  color:#fffaf0!important;
  background-color:#8f6119!important;
}
html[data-theme="light"] .house-entry-login .v5-request-footer>a span{color:#44382c!important}
html[data-theme="light"] .house-entry-login .v5-request-footer>p{color:#625447!important}

@media (min-width:601px) and (max-width:1180px){
  .house-entry-login .v5-request[data-visual-authority="house-access-request-v1"]{
    grid-template-columns:210px minmax(0,1fr)!important;
    width:min(840px,calc(100vw - 40px))!important;
    max-height:min(72dvh,590px)!important;
  }
  .house-entry-login .v5-request-brand{padding:28px 18px!important}
  .house-entry-login .v5-request-body{padding:30px 26px 22px!important}
  .house-entry-login .v5-request-body h1{font-size:clamp(32px,4.1vw,40px)!important}
}

@media (max-width:600px){
  .house-entry-login .v5-access .v5-welcome-title{font-size:clamp(25px,7vw,29px)!important}
  .house-entry-login .v5-request[data-visual-authority="house-access-request-v1"]{
    top:50%!important;
    display:block!important;
    width:min(calc(100vw - 24px),360px)!important;
    max-width:360px!important;
    max-height:calc(100dvh - 24px)!important;
    border-radius:17px!important;
  }
  .house-entry-login .v5-request-brand{
    min-height:0!important;
    padding:21px 18px 18px!important;
    border-right:0!important;
    border-bottom:1px solid rgba(228,181,73,.20)!important;
  }
  .house-entry-login .v5-request-brand .v5-apa{margin-bottom:10px!important;font-size:50px!important}
  .house-entry-login .v5-request-brand .v5-chapter{font-size:11px!important;line-height:1.45!important}
  .house-entry-login .v5-request-brand .v5-place{margin-top:8px!important;font-size:8px!important}
  .house-entry-login .v5-request-rule{margin:12px auto!important}
  .house-entry-login .v5-request-review{max-width:260px!important;font-size:12.5px!important}
  .house-entry-login .v5-request-body{padding:22px 17px 18px!important}
  .house-entry-login .v5-request-body h1{font-size:clamp(28px,8.5vw,32px)!important}
  .house-entry-login .v5-request-form .form-grid{grid-template-columns:1fr!important;gap:11px!important}
  .house-entry-login .v5-request-form .field:nth-child(3){grid-column:auto!important}
  .house-entry-login .v5-request-footer{grid-template-columns:1fr!important;text-align:center!important}
  .house-entry-login .v5-request-footer>p{justify-content:center!important}
}

@media (prefers-reduced-transparency:reduce){
  .house-entry-login .v5-request[data-visual-authority="house-access-request-v1"]{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    background:#080706!important;
  }
  html[data-theme="light"] .house-entry-login .v5-request[data-visual-authority="house-access-request-v1"]{background:#f7f0e4!important}
}


/* CURRENT CONVERGENCE ACCESSIBILITY CONTRAST V1 */
/* These labels were the only dark-theme small text below WCAG AA in the current convergence.
   Raise them one existing muted token; hierarchy and palette stay unchanged. */
html[data-theme="dark"] .mark-of{color:var(--muted-2)}
html[data-theme="dark"] .month-grid .dow{color:var(--muted-2)}
