/* ---- Grand Library additions used by the Hall and the Crossover ---- */
.step.night{background:radial-gradient(ellipse at 30% 0%,rgba(255,255,255,.07),transparent 60%),radial-gradient(ellipse at 80% 100%,rgba(0,0,0,.3),transparent 60%),linear-gradient(180deg,#22385f,#14213a)}
.xcard::after{background:radial-gradient(circle at 40% 35%,#3a5f9c,#24477e 55%,#152c52)}
.xcard .label{color:#24477e}
.card ul.openers{list-style:none;margin:0 0 6px;padding:0}
.card ul.openers li{font-style:italic;padding:6px 0 6px 14px;border-left:3px solid #c9a45c;margin:6px 0;color:#2b2218}
.sparks.shape dt{color:#24477e}
.doors{display:grid;gap:16px;margin:26px 0 8px}
@media (min-width:720px){.doors{grid-template-columns:repeat(3,1fr)}}
.door{position:relative;display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--gl-cream);padding:22px 16px 16px;border-radius:8px;min-height:44px;
  box-shadow:inset 0 0 0 5px rgba(0,0,0,.18),inset 0 0 0 6px rgba(201,164,92,.4),0 0 0 1px #0d0806,0 12px 26px rgba(0,0,0,.55)}
.door.memoir{background:radial-gradient(ellipse at 30% 0%,rgba(255,255,255,.07),transparent 60%),linear-gradient(180deg,#7a2a24,#4a1714)}
.door.essay{background:radial-gradient(ellipse at 30% 0%,rgba(255,255,255,.07),transparent 60%),linear-gradient(180deg,#22385f,#111c31)}
.door.crossover{background:radial-gradient(ellipse at 30% 0%,rgba(255,255,255,.07),transparent 60%),linear-gradient(180deg,#264233,#152519)}
.door-num{position:absolute;top:-14px;left:14px;min-width:46px;height:28px;display:grid;place-items:center;border-radius:4px;background:linear-gradient(180deg,#f1d99c,#c79e52 55%,#a47b35);color:#24170a;font:700 13px var(--gl-caps);letter-spacing:.16em}
.door-name{font-family:var(--gl-disp);font-weight:700;font-size:24px;color:var(--gl-brass-hi);line-height:1.2}
.door-desc{font-size:17px;line-height:1.5;color:var(--gl-cream-2)}
.door-count{font-family:var(--gl-disp);font-style:italic;font-size:17px;color:var(--gl-brass-hi)}
.door-go{font-family:var(--gl-caps);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gl-brass);margin-top:auto;padding-top:6px}
.pourlink{color:var(--gl-brass-hi);text-underline-offset:4px;display:inline-block;min-height:44px;line-height:44px}
.hall .hint{font-size:18px}
/* Passing Thoughts */
#musePicks .pick .plist{margin:4px 0 0 18px;padding:0}
.muse-pk .pick-btn{height:auto;min-height:48px;padding:9px 12px;line-height:1.35}
.muse-pk .pick-btn span{white-space:normal;overflow:visible}
.muse-pk .muse-empty{font-style:italic;opacity:.75}
#museSheet .mchips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;-webkit-overflow-scrolling:touch}
#museSheet .fam{flex:0 0 auto;border:1px solid #9c8450;border-radius:4px;background:rgba(255,255,255,.35);color:var(--ink);padding:6px 12px;font-size:15px;font-weight:600;cursor:pointer;min-height:40px;font-family:var(--serif)}
#museSheet .fam.on{background:linear-gradient(180deg,#f1d99c,#c9a45c 55%,#a47b35);color:#24170a}
#museSheet .grp{font-family:var(--caps);font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--seal);padding:14px 8px 4px}
#museSheet .muse-sub{margin-top:0}
#museSheet .mchips{flex:0 0 auto}
#museSheet .fam{white-space:nowrap}
#museSearch{flex:0 0 auto;box-sizing:border-box;width:100%;height:50px;font-family:var(--serif);font-size:18px;padding:0 14px;border:1px solid #9c8450;border-radius:6px;background:#fffbef;color:var(--ink)}
#museSearch:focus{outline:2px solid var(--brass);outline-offset:1px}
#museSheet p.muse-sub{font-family:var(--serif);font-size:17px;line-height:1.4;color:var(--ink-soft);margin:2px 2px 10px}

/* Long audited integers remain readable without widening a phone page. */
#gMath, #gMath li, #gMath code, .gl-entry, .keyword-workshop {overflow-wrap:anywhere;word-break:normal;min-width:0;max-width:100%;box-sizing:border-box}
#gMath code {white-space:normal}
.keyword-workshop {margin:24px auto;padding:20px;border:1px solid #846333;border-radius:8px;background:#20150e;color:#eee1c7}
.keyword-workshop input,.keyword-workshop select {display:block;box-sizing:border-box;width:100%;max-width:100%;padding:12px;margin:8px 0 16px;font:inherit;background:#17100c;color:#eee1c7;border:1px solid #96723e;border-radius:4px}
.keyword-workshop button {margin:6px 8px 6px 0;white-space:normal}
.keyword-workshop label {display:block}
.keyword-workshop .gl-entry {padding:16px;margin-top:14px;border-top:1px solid #846333}
/* v16c: long count/comparison lines (e.g. the googols figure) wrap inside the count card at high zoom / narrow screens */
.counter{box-sizing:border-box;min-width:0;white-space:normal}
.counter .big,.counter .digits,.counter .cmp,.counter .small{overflow-wrap:anywhere;min-width:0;max-width:100%}
/* v18: on very narrow phones (320px) filled detail rows and period tags stay inside the page */
.extras{grid-template-columns:minmax(0,1fr)}
.extra .pick{min-width:0;overflow-wrap:anywhere}
.ptag{white-space:normal;max-width:100%;overflow-wrap:anywhere}
.sparks dd{min-width:0;overflow-wrap:anywhere}
@media (max-width:380px){.sparks{grid-template-columns:minmax(0,1fr);gap:2px 0}.sparks dt{white-space:normal;padding-top:6px}}
/* v19: very long exact numbers in the opened accounting wrap inside the panel (phones, 200% zoom) */
.math,.math b,.math li{overflow-wrap:anywhere}
/* v21: Reading Room finer details & craft (native selects, filled on first touch) */
.v21e{margin:14px 0 6px}
.v21e .note{margin:8px 0 10px}
.v21e-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px 14px;margin-bottom:12px}
.v21e-row{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:14px}
.v21e-row span{font-variant:small-caps;letter-spacing:.04em;opacity:.85}
.v21e-row select{width:100%;max-width:100%;min-width:0;font:inherit;font-size:15px;padding:7px 8px;border-radius:8px;border:1px solid rgba(216,180,120,.45);background:rgba(20,14,10,.55);color:inherit}
@media (max-width:380px){.v21e-grid{grid-template-columns:1fr}}
/* v21: on phones, card detail rows stack (label above its value) so long labels never squeeze or split words */
@media (max-width:480px){
 dl.sparks,dl.details{grid-template-columns:1fr !important;row-gap:0}
 dl.sparks dt,dl.details dt{margin-top:10px}
 dl.sparks dd,dl.details dd{margin:2px 0 0 0;overflow-wrap:normal;word-break:normal;hyphens:manual}
}

/* v22: simple-card actions in the Reading Room */
.v22-act{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}
.v22-act .btn{min-height:44px}
@media (max-width:420px){.stamp{white-space:normal!important;max-width:calc(100% - 10px);overflow-wrap:anywhere;letter-spacing:.06em;box-sizing:border-box}}
/* ---- v25: Search every menu, My keywords, Reading Room group headings ---- */
.v21e-h{grid-column:1/-1;margin:10px 0 0;font-variant:small-caps;letter-spacing:.06em;color:#d8b478;border-bottom:1px solid rgba(216,180,120,.3);padding-bottom:3px}
.v25-tools{display:grid;gap:12px;margin:0 0 14px;min-width:0}
.v25-tools details.panel{min-width:0;overflow-wrap:anywhere}
.v25-tools summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-height:44px;padding:6px 0;list-style-position:inside}
.v25-sum{font-size:1.15em;font-weight:700;color:#e9cf98}
.v25-hint{font-size:.85em;opacity:.8}
.v25-tools form{display:grid;gap:6px;margin:8px 0}
.v25-tools label{font-size:14px;font-variant:small-caps;letter-spacing:.04em;opacity:.9}
.v25-tools input[type=search],.v25-tools input:not([type]),.v25-tools select{width:100%;max-width:100%;min-width:0;box-sizing:border-box;font:inherit;font-size:16px;padding:9px 10px;border-radius:8px;border:1px solid rgba(216,180,120,.5);background:rgba(20,14,10,.55);color:inherit}
.v25-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.v25-row input{flex:1 1 180px}
.v25-res{list-style:none;margin:6px 0;padding:0;display:grid;gap:6px}
.v25-hit{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;min-height:44px;padding:8px 10px;border-radius:8px;border:1px solid rgba(216,180,120,.35);background:rgba(20,14,10,.35);color:inherit;font:inherit;cursor:pointer;overflow-wrap:anywhere}
.v25-hit[aria-pressed=true]{border-color:#c9a45c;background:rgba(201,164,92,.22)}
.v25-hit[aria-pressed=true] .v25-m::after{content:" \2713 chosen"}
.v25-m{font-size:12px;font-variant:small-caps;letter-spacing:.05em;opacity:.8}
.v25-t{font-size:15px}
.v25-chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.v25-chip{display:inline-flex;align-items:stretch;border-radius:999px;border:1px solid rgba(216,180,120,.45);overflow:hidden;max-width:100%}
.v25-chip.on{background:rgba(201,164,92,.25);border-color:#c9a45c}
.v25-chip button{font:inherit;font-size:15px;color:inherit;background:none;border:0;min-height:44px;cursor:pointer}
.v25-chip-t{padding:6px 6px 6px 14px;overflow-wrap:anywhere;text-align:left}
.v25-chip:not(.on) .v25-chip-t{opacity:.6;text-decoration:line-through}
.v25-chip-x{padding:6px 12px;min-width:44px}
.v25-check{display:flex;gap:8px;align-items:center;min-height:44px}
.v25-check input{width:20px;height:20px}
.v25-tools .btn{min-height:44px}
