.hymnal-hall-room .ui{display:none!important}

.hall-chrome{position:fixed;z-index:5;color:#fff5ed;text-shadow:0 2px 12px #24385e80}
#hallHeader{inset:24px 30px auto;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;pointer-events:none}
#hallHeader[hidden],#hallInvitation[hidden],#hallHint[hidden]{display:none}
#hallHeader>div>span{font:9px/1.5 system-ui;letter-spacing:.23em}
#hallHeader h1{margin:5px 0;font:italic 400 clamp(29px,3vw,42px)/1.15 Georgia,serif;letter-spacing:.02em}
#hallReturn,#hallMusicReturn{pointer-events:auto;border:1px solid #fff9;border-radius:30px;padding:10px 15px;background:#ffedf436;backdrop-filter:blur(12px);color:inherit;text-decoration:none;font:11px/1.3 system-ui;white-space:nowrap}
#hallReturn span{margin-left:8px}
#hallInvitation{bottom:84px;left:50%;transform:translateX(-50%);text-align:center;max-width:calc(100vw - 40px)}
#hallInvitation p{margin:0 0 19px;font:italic clamp(22px,2.3vw,31px)/1.35 Georgia,serif}
#openHallMusic{border:1px solid #fff9;border-radius:28px;padding:13px 23px;background:linear-gradient(125deg,#ffe6f4d9,#e9e6f4b8);color:#693a58;font:18px/1.3 Georgia,serif;box-shadow:inset 0 1px #fff,0 8px 30px #29385430;backdrop-filter:blur(16px);cursor:pointer;white-space:nowrap}
#openHallMusic span{margin-left:16px;color:#a66385}
#hallHint{bottom:19px;left:30px;font:10px/1.5 system-ui;letter-spacing:.04em;margin:0}
#hallMusic{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(1420px,calc(100vw - 28px));height:calc(100dvh - 24px);max-width:none;max-height:none;padding:0;overflow:visible;border:0;outline:0;background:transparent;color:#67374f;box-shadow:none}
#hallMusic[open]{display:flex;flex-direction:column}
#hallMusic::backdrop{background:#162d4110}
#hallMusicBar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:37px;padding:0 13px 5px;flex:none;color:#fff5ed;text-shadow:0 1px 8px #22334e;font:12px/1.3 Georgia,serif;letter-spacing:.12em}
#hallMusicBar small{font:11px Georgia,serif;letter-spacing:0;opacity:.8}
#hallMusicBar>div{display:flex;align-items:center;gap:13px}
#hallMusicReturn{font-size:10px;padding:7px 11px;letter-spacing:0;text-shadow:0 1px 5px #17394b;background:#f4e2e725}
#closeHallMusic{flex:none;border:1px solid #fff9;border-radius:50%;background:#ffeff0b8;color:#76435d;width:30px;height:30px;font:23px/1 Georgia,serif;cursor:pointer;box-shadow:inset 0 1px #fff9}
#hallMusicFrame{flex:1;min-height:0;width:100%;display:block;border:0;background:transparent;opacity:1;transform:translateY(0);transition:opacity .6s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
#hallMusic[data-phase=framing] #hallMusicFrame{opacity:0;transform:translateY(18px)}
#hallMusic[data-phase=returning]{pointer-events:none}
#hallMusic[data-phase=returning] #hallMusicFrame{opacity:0;transform:translateY(12px)}
#hallMusicLoading{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);font:17px/1.4 Georgia,serif;color:#6c425b;padding:20px 28px;border:1px solid #fff9;border-radius:24px;background:#ffeaf4d9;backdrop-filter:blur(20px);box-shadow:0 9px 40px #43374c25;pointer-events:none;text-align:center}
#hallMusicLoading[hidden]{display:none}
body:has(#hallMusic[open]) :is(#hallHeader,#hallInvitation,#hallHint){visibility:hidden}
html[data-hymnal-child-clean=true] #hallMusicBar{opacity:0;pointer-events:none}
html[data-hymnal-child-clean=true] #hallMusicFrame{position:absolute;inset:0;height:100%}
button:focus-visible,a:focus-visible{outline:2px solid #c271a7;outline-offset:4px}
@media(max-width:700px){#hallHeader{inset:18px 18px auto}#hallHeader>div>span{font-size:7px;letter-spacing:.17em}#hallHeader h1{font-size:30px}#hallReturn{font-size:9px;padding:10px 11px}#hallReturn span{display:none}#hallHint{left:18px;right:18px;font-size:9px}#hallInvitation{bottom:75px;width:90%}#hallMusic{width:calc(100vw - 12px);height:calc(100dvh - 12px)}#hallMusicBar{padding:0 8px 4px;height:33px;font-size:10px}#hallMusicBar small{display:none}#hallMusicReturn{font-size:9px;padding:6px 9px}#hallMusicBar>div{gap:8px}#closeHallMusic{width:27px;height:27px}}
@media(prefers-reduced-motion:reduce){#hallMusicFrame{transition:none}}

/* Site provenance: Queen's Conservatory controls, site/index.html5818–5823
 * (4px/160% glass,100px cut,1.3px jewel edge), and its literary .pullquote
 * at683 (EB Garamond italic). The hall wears pearl/rose/plum instead of blue.
 * Only presentation: the original entry, loading and dialog lifecycle remain. */
.hymnal-hall-room {
  --hall-literary: "EB Garamond", Baskerville, Palatino, "Palatino Linotype", Georgia, serif;
  --hall-caption: "VT323", "Courier New", monospace;
  --hall-plum: #53283f;
  --hall-rose: #a3587a;
  --hall-pearl: #fff4f6;
}
.hymnal-hall-room .hall-chrome { color: var(--hall-pearl); text-shadow: 0 1px 9px rgba(64,26,50,.48); }
.hymnal-hall-room #hallHeader>div {
  padding: 12px 19px 11px;
  border-radius: 24px;
  color: var(--hall-plum);
  background: linear-gradient(145deg,rgba(255,244,248,.64),rgba(246,209,227,.36));
  -webkit-backdrop-filter: blur(4px) saturate(160%);
  backdrop-filter: blur(4px) saturate(160%);
  box-shadow: 0 0 0 1px rgba(255,255,255,.52),0 8px 24px rgba(63,24,49,.12),inset 0 1px 2px rgba(255,255,255,.8);
  text-shadow: 0 1px 0 rgba(255,247,250,.58);
}
.hymnal-hall-room #hallHeader>div>span { font: 8px/1.6 "Silkscreen",monospace; letter-spacing: .15em; color: #8c4c6d; }
.hymnal-hall-room #hallHeader h1 {
  margin: 4px 0 0;
  font: italic 400 clamp(34px,3.6vw,48px)/1.05 var(--hall-literary);
  letter-spacing: -.035em;
  font-synthesis: none;
}
.hymnal-hall-room #hallInvitation { bottom: 76px; width: min(560px,calc(100vw - 36px)); }
.hymnal-hall-room #hallInvitation p {
  margin-bottom: 23px;
  font: italic 400 clamp(27px,2.8vw,38px)/1.2 var(--hall-literary);
  letter-spacing: -.02em;
  font-synthesis: none;
  color: #fff1f5;
  text-shadow: 0 2px 14px rgba(57,21,47,.72),0 1px 2px rgba(57,21,47,.65);
  text-wrap: balance;
}
.hymnal-hall-room :is(#openHallMusic,#hallReturn,#hallMusicReturn,#closeHallMusic) {
  position: relative;
  isolation: isolate;
  z-index: 0;
  cursor: pointer;
  border: none;
  border-radius: 100px;
  background: transparent;
  color: var(--hall-plum);
  text-shadow: none;
  text-decoration: none;
  font-family: var(--hall-caption);
  font-weight: 400;
  font-style: normal;
  line-height: 1.3;
  letter-spacing: .045em;
  box-shadow: 0 6px 18px rgba(74,36,54,.28);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.hymnal-hall-room :is(#openHallMusic,#hallReturn,#hallMusicReturn,#closeHallMusic)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  border-radius: inherit;
  overflow: hidden;
  clip-path: inset(0 round 100px);
  -webkit-backdrop-filter: blur(4px) saturate(160%);
  backdrop-filter: blur(4px) saturate(160%);
  background: linear-gradient(130deg,rgba(255,239,247,.64),rgba(234,172,208,.45));
  pointer-events: none;
}
.hymnal-hall-room :is(#openHallMusic,#hallReturn,#hallMusicReturn,#closeHallMusic)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  padding: 1.3px;
  -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  mask-composite: exclude;
  background: linear-gradient(135deg,rgba(152,77,118,.56) 0%,rgba(255,255,255,.98) 30%,rgba(169,83,130,.4) 65%,rgba(255,255,255,.78) 100%);
  pointer-events: none;
}
.hymnal-hall-room :is(#openHallMusic,#hallReturn,#hallMusicReturn,#closeHallMusic):hover {
  color: #97375e;
  box-shadow: 0 6px 18px rgba(74,36,54,.28),0 0 15px rgba(239,149,193,.3);
}
.hymnal-hall-room :is(#openHallMusic,#hallReturn,#hallMusicReturn,#closeHallMusic):active { transform: translateY(1px); }
.hymnal-hall-room #openHallMusic { padding: 12px 29px 11px; min-width: 218px; font-size: 22px; letter-spacing: .035em; }
.hymnal-hall-room #openHallMusic span { margin-left: 20px; color: #a45e80; }
.hymnal-hall-room #hallReturn { padding: 10px 18px 9px; font-size: 16px; }
.hymnal-hall-room #hallMusicReturn { padding: 6px 13px; font-size: 13px; }
.hymnal-hall-room #closeHallMusic { width: 30px; height: 30px; padding: 0; font-size: 24px; }
.hymnal-hall-room #hallHint {
  max-width: calc(100vw - 40px);
  padding: 6px 13px;
  border-radius: 100px;
  background: rgba(58,29,49,.32);
  color: #ffeff6;
  font: 13px/1.3 var(--hall-caption);
  letter-spacing: .03em;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}
.hymnal-hall-room #hallMusicBar { color: #fff2f7; font: 16px/1.3 var(--hall-caption); letter-spacing: .12em; text-shadow: 0 1px 8px #42233c; }
.hymnal-hall-room #hallMusicBar small { font: italic 15px/1.2 var(--hall-literary); color: #fff0f6; opacity: .9; }
.hymnal-hall-room #hallMusicLoading { font: italic 23px/1.25 var(--hall-literary); color: #693a55; background: linear-gradient(145deg,rgba(255,247,249,.88),rgba(245,214,230,.76)); }

@media(max-width:700px) {
  .hymnal-hall-room #hallHeader { gap: 10px; }
  .hymnal-hall-room #hallHeader>div { padding: 10px 13px; }
  .hymnal-hall-room #hallHeader>div>span { font-size: 6px; letter-spacing: .08em; }
  .hymnal-hall-room #hallHeader h1 { font-size: 34px; }
  .hymnal-hall-room #hallReturn { font-size: 13px; padding: 9px 13px; }
  .hymnal-hall-room #hallInvitation p { font-size: 29px; margin-bottom: 18px; }
  .hymnal-hall-room #openHallMusic { font-size: 20px; padding: 11px 24px 10px; min-width: 204px; }
  .hymnal-hall-room #hallHint { left: 12px; right: 12px; max-width: none; padding: 6px 10px; font-size: 11px; text-align: center; }
  .hymnal-hall-room #hallMusicBar { font-size: 13px; }
  .hymnal-hall-room #hallMusicReturn { font-size: 12px; padding: 6px 10px; }
  .hymnal-hall-room #closeHallMusic { width: 27px; height: 27px; font-size: 23px; }
}
@media(max-height:450px) {
  .hymnal-hall-room #hallHeader { top: 12px; }
  .hymnal-hall-room #hallHeader>div { padding: 7px 12px; }
  .hymnal-hall-room #hallHeader h1 { font-size: 29px; }
  .hymnal-hall-room #hallInvitation { bottom: 54px; }
  .hymnal-hall-room #hallInvitation p { font-size: 24px; margin-bottom: 11px; }
  .hymnal-hall-room #openHallMusic { font-size: 18px; padding: 8px 22px; }
  .hymnal-hall-room #hallHint { bottom: 10px; font-size: 11px; }

}
@media(max-width:420px) {
  .hymnal-hall-room #hallHeader>div { min-width: 0; }
  .hymnal-hall-room #hallHeader>div>span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .hymnal-hall-room #hallReturn { flex-shrink: 0; font-size: 12px; padding: 9px 11px; }
}


/* The exact vintage-site Convocation threshold: site/index.html785–797,
 * markup864–995, reused by NMAssemblyThreshold/openAssembly4320–4386.
 * Keep the native loader IDs for real progress/errors; no new loading timer. */
.hymnal-hall-room #loading.loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #f3e9d8;
  transition: opacity .6s ease,visibility .6s;
}
.hymnal-hall-room #loading .loading-card {
  width: auto;
  max-width: calc(100vw - 42px);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  text-align: center;
}
.hymnal-hall-room #loading .loader-text {
  font-family: "Silkscreen",monospace;
  font-size: 16px;
  letter-spacing: 3px;
  color: #c87a92;
  text-shadow: 0 0 14px rgba(216,90,134,.6);
  animation: hallBootBlink 1s steps(2) infinite;
}
.hymnal-hall-room #loading #loadTitle.loader-sub {
  margin: 10px 0 0;
  font: 400 14px/normal "VT323",monospace;
  letter-spacing: 2px;
  color: #a8907a;
}
.hymnal-hall-room #loading .boot-lines {
  margin-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font: 15px/normal "VT323",monospace;
  letter-spacing: 1px;
  color: #755a44;
  text-align: left;
}
.hymnal-hall-room #loading .boot-lines>div { opacity: 0; animation: hallBootLine .2s steps(2) forwards; }
.hymnal-hall-room #loading .boot-lines>div:nth-child(1) { animation-delay: .15s; }
.hymnal-hall-room #loading .boot-lines>div:nth-child(2) { animation-delay: .55s; }
.hymnal-hall-room #loading #loadStatus { min-height: 0; margin: 0; font: inherit; color: inherit; animation-delay: .95s; overflow-wrap: anywhere; }
.hymnal-hall-room #loading .loader-bar-outer {
  width: min(260px,100%);
  height: 16px;
  background: #f0e4cc;
  box-shadow: inset 1px 1px 0 #c8b49a,inset -1px -1px 0 #fffdf8;
  margin: 18px auto 0;
  overflow: hidden;
  padding: 3px;
  border: 0;
  border-radius: 0;
}
.hymnal-hall-room #loading #loadBar.loader-bar-inner {
  height: 100%;
  width: 0%;
  border-radius: 0;
  background: repeating-linear-gradient(90deg,#d85a86 0px,#d85a86 9px,rgba(216,90,134,.2) 9px,rgba(216,90,134,.2) 12px);
  box-shadow: none;
  transition: width .18s linear;
}
.hymnal-hall-room #loading #loadPercent { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.hymnal-hall-room #loading.night { background: #1c0f26; }
.hymnal-hall-room #loading.night .loader-text { color: #f0a8c0; text-shadow: 0 0 14px rgba(240,168,192,.5); }
.hymnal-hall-room #loading.night #loadTitle.loader-sub { color: #c6b8a2; }
.hymnal-hall-room #loading.night .boot-lines { color: #d8ccb8; }
.hymnal-hall-room #loading.night .loader-bar-outer { background: #2a1636; box-shadow: inset 1px 1px 0 #0d0518,inset -1px -1px 0 #55396a; }
.hymnal-hall-room #loading.night #loadBar.loader-bar-inner { background: repeating-linear-gradient(90deg,#e87aa0 0px,#e87aa0 9px,rgba(232,122,160,.25) 9px,rgba(232,122,160,.25) 12px); }
@keyframes hallBootLine { to { opacity: 1; } }
@keyframes hallBootBlink { 0%,100% { opacity: 1; } 50% { opacity: .2; } }
@media(prefers-reduced-motion:reduce) {
  .hymnal-hall-room #loading .loader-text,.hymnal-hall-room #loading .boot-lines>div { animation: none; opacity: 1; }
}

/* Original site's Tengwar Annatar Italic, copied byte-for-byte. The ornamental
 * strings are its own Hymnal inscriptions, not newly claimed translations. */
@font-face {
  font-family: "Hymnal Tengwar";
  src: url("./assets/fonts/tngani.ttf") format("truetype");
  font-weight: 400;
  font-style: italic;
  font-display: block;
}
.hymnal-hall-room #hallHeader>div {
  position: relative;
  isolation: isolate;
  padding: 8px 21px 9px;
  box-shadow: 0 0 0 1px rgba(255,242,220,.74),0 8px 24px rgba(63,24,49,.12),inset 0 1px 2px rgba(255,255,255,.8);
}
.hymnal-hall-room #hallHeader>div::after {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px solid rgba(188,143,91,.4);
  border-radius: 20px;
  pointer-events: none;
}
.hymnal-hall-room #hallHeader>div>span:first-child { display: block; font-size: 7px; line-height: 1.2; letter-spacing: .105em; }
.hymnal-hall-room #hallHeader h1 {
  margin: 2px 0 0;
  font: 400 clamp(47px,4.35vw,58px)/.94 "UnifrakturMaguntia",Baskerville,Georgia,serif;
  letter-spacing: -.015em;
  color: #663047;
  text-shadow: 0 1px 0 rgba(255,249,236,.85),0 0 18px rgba(247,204,211,.22);
}
.hymnal-hall-room #hallHeader>div>span.hall-header-tengwar {
  display: block;
  width: fit-content;
  max-width: none;
  margin: 0 auto;
  padding: .3em .25em 0;
  overflow: visible;
  white-space: nowrap;
  font: italic 400 17px/1 "Hymnal Tengwar",serif;
  letter-spacing: 0;
  text-transform: none;
  color: #a16562;
  text-shadow: none;
}
.hymnal-hall-room .hall-inscription {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  width: min(326px,85%);
  margin: 0 auto 11px;
  pointer-events: none;
}
.hymnal-hall-room .hall-inscription::before,.hymnal-hall-room .hall-inscription::after {
  content: "";
  flex: 1;
  height: 5px;
  border-top: 1px solid rgba(255,223,178,.76);
  border-bottom: 1px solid rgba(214,151,174,.48);
  border-radius: 50%;
  filter: drop-shadow(0 1px 3px rgba(50,22,48,.35));
}
.hymnal-hall-room .hall-inscription>span {
  display: block;
  padding: .28em .08em 0;
  flex-shrink: 0;
  font: italic 400 24px/1.12 "Hymnal Tengwar",serif;
  letter-spacing: 0;
  text-transform: none;
  color: #ffe0b3;
  background: linear-gradient(180deg,#fff3e1,#f4c3d7 48%,#f2ce8b);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
  filter: drop-shadow(0 1px 3px rgba(45,16,41,.75));
}
.hymnal-hall-room #hallInvitation p { margin-bottom: 3px; font-weight: 400; }
.hymnal-hall-room #openHallMusic {
  min-width: 240px;
  padding: 11px 27px 12px;
  font: italic 600 27px/1.08 "EB Garamond",Baskerville,Palatino,Georgia,serif;
  letter-spacing: -.015em;
  color: #602c46;
  text-shadow: 0 1px 0 rgba(255,248,243,.64);
  box-shadow: 0 6px 18px rgba(74,36,54,.28),inset 0 0 0 3px rgba(255,240,217,.13);
}
.hymnal-hall-room #openHallMusic::after {
  padding: 1.5px;
  background: linear-gradient(135deg,rgba(185,129,79,.7),rgba(255,248,226,.98) 28%,rgba(172,97,132,.62) 53%,rgba(236,204,139,.85) 77%,rgba(255,246,231,.94));
}
.hymnal-hall-room #openHallMusic span { margin-left: 16px; color: #ac754c; font-size: 20px; font-weight: 400; font-style: normal; }
@media(max-width:700px) {
  .hymnal-hall-room #hallHeader>div { padding: 8px 15px; }
  .hymnal-hall-room #hallHeader h1 { font-size: 46px; }
  .hymnal-hall-room #hallHeader>div>span:first-child { font-size: 6px; }
  .hymnal-hall-room #hallHeader>div>span.hall-header-tengwar { font-size: 15px; }
  .hymnal-hall-room #openHallMusic { font-size: 25px; min-width: 227px; padding: 10px 24px; }
  .hymnal-hall-room .hall-inscription { width: min(290px,82%); gap: 10px; }
  .hymnal-hall-room .hall-inscription>span { font-size: 22px; }
}
@media(max-height:450px) {
  .hymnal-hall-room #hallHeader>div { padding: 7px 13px; }
  .hymnal-hall-room #hallHeader h1 { font-size: 39px; }
  .hymnal-hall-room #hallHeader>div>span.hall-header-tengwar { font-size: 13px; }
  .hymnal-hall-room #hallInvitation p { font-size: 23px; margin-bottom: 1px; }
  .hymnal-hall-room .hall-inscription { margin-bottom: 7px; }
  .hymnal-hall-room .hall-inscription>span { font-size: 19px; }
  .hymnal-hall-room #openHallMusic { min-width: 215px; padding: 8px 23px; font-size: 23px; }
}

.hymnal-hall-room #hallMusicBar .hall-bar-title { font: 400 29px/1 "UnifrakturMaguntia",Baskerville,Georgia,serif; letter-spacing: 0; color: #fff0e2; }
.hymnal-hall-room #hallMusicBar .hall-bar-title small { margin-left: 9px; }
@media(max-width:700px) { .hymnal-hall-room #hallMusicBar .hall-bar-title { font-size: 26px; } }

/* Reveal the instrument only after its first complete, compiled frame. */
#hallMusic[data-ready=false] #hallMusicFrame { opacity: 0; transform: translateY(12px); pointer-events: none; }

/* Available before any geometry or WebGL work: the same music and living score
   can open directly, even when the hall cannot finish loading. */
