:root {
  --tc-navy: #0d2946;
  --tc-blue: #1f5f8f;
  --tc-blue-2: #2a7398;
  --tc-gold: #d8a638;
  --tc-gold-soft: #f2c85a;
  --tc-ink: #17212b;
  --tc-muted: #637181;
  --tc-bg: #eef4f8;
  --tc-card: #ffffff;
  --tc-line: #d6e1ea;
  --tc-green: #2e9b56;
  --tc-red: #dc4b40;
}

body.trivia-castle-play-page { background:#eaf1f6 !important; }
body.trivia-castle-play-page #masthead,
body.trivia-castle-play-page .site-header,
body.trivia-castle-play-page #colophon,
body.trivia-castle-play-page .site-footer,
body.trivia-castle-play-page .entry-header { display:none !important; }
body.trivia-castle-play-page .site-container,
body.trivia-castle-play-page .content-container,
body.trivia-castle-play-page .content-area,
body.trivia-castle-play-page .site-main,
body.trivia-castle-play-page .entry-content-wrap,
body.trivia-castle-play-page .entry-content { max-width:none !important; width:100% !important; margin:0 !important; padding:0 !important; }
body.trivia-castle-play-page .content-bg { background:transparent !important; }

.tc-game,
.tc-portal { color:var(--tc-ink); font-family:inherit; }

.tc-game { max-width:820px; margin:2rem auto; }
.tc-game__topline { display:flex; align-items:flex-start; justify-content:space-between; gap:1.25rem; margin:0 0 .8rem; color:var(--tc-navy); }
.tc-room-label { display:block; font-weight:900; letter-spacing:.055em; text-transform:uppercase; font-size:.84rem; }
.tc-mode-hint { display:block; margin-top:.18rem; color:#6b7986; font-size:.82rem; }
.tc-player-stats { display:flex; gap:.55rem; flex-wrap:wrap; justify-content:flex-end; }
.tc-player-stats span { display:inline-flex; gap:.3rem; align-items:center; padding:.36rem .58rem; border:1px solid var(--tc-line); border-radius:999px; background:#fff; color:#50606e; font-size:.78rem; white-space:nowrap; }
.tc-player-stats strong { color:var(--tc-navy); }
.tc-game__controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin:0 0 .55rem; font-size:.9rem; }
.tc-back-link { color:var(--tc-blue); text-decoration:none; font-weight:800; }
.tc-difficulty-links { display:flex; gap:.35rem; flex-wrap:wrap; }
.tc-filter { display:inline-flex; padding:.32rem .65rem; border:1px solid var(--tc-line); border-radius:999px; color:#465766; text-decoration:none; background:#fff; font-size:.8rem; font-weight:700; }
.tc-filter.is-active { background:var(--tc-navy); color:#fff; border-color:var(--tc-navy); }
.tc-how-to-play { margin:.15rem 0 .8rem; color:#5b6873; font-size:.84rem; }
.tc-how-to-play summary { cursor:pointer; color:var(--tc-blue); font-weight:800; }
.tc-how-to-play p { margin:.45rem 0 0; }
.tc-card { background:var(--tc-card); border:1px solid var(--tc-line); border-radius:20px; padding:1.8rem; box-shadow:0 18px 42px rgba(16,47,80,.09); }
.tc-meta { color:var(--tc-muted); font-size:.82rem; margin-bottom:.55rem; }
.tc-question-progress { color:#9a7215; font-weight:900; font-size:.73rem; letter-spacing:.09em; text-transform:uppercase; margin-bottom:.45rem; }
.tc-question { margin:.15rem 0 1.3rem; font-size:clamp(1.5rem,2.7vw,2.1rem); line-height:1.2; color:#111b26; }
.tc-choices { display:grid; gap:.72rem; }
.tc-game button.tc-choice { width:100%; text-align:left; border:1px solid #cfdce7; background:#f7faff; color:#0f1821 !important; -webkit-text-fill-color:#0f1821; padding:.95rem 1rem; border-radius:12px; font-weight:750; cursor:pointer; transition:.14s ease; }
.tc-game button.tc-choice:hover:not(:disabled), .tc-game button.tc-choice:focus-visible:not(:disabled) { border-color:#8cb1ce; transform:translateY(-1px); background:#edf5fb; color:#0f1821 !important; -webkit-text-fill-color:#0f1821; }
.tc-game button.tc-choice.is-correct { background:#e9f7ed; border-color:var(--tc-green); box-shadow:inset 0 0 0 1px var(--tc-green); color:#0f1821 !important; -webkit-text-fill-color:#0f1821; }
.tc-game button.tc-choice.is-wrong { background:#fff0ef; border-color:var(--tc-red); box-shadow:inset 0 0 0 1px var(--tc-red); color:#0f1821 !important; -webkit-text-fill-color:#0f1821; }
.tc-game button.tc-choice:disabled { cursor:default; opacity:1; color:#0f1821 !important; -webkit-text-fill-color:#0f1821; }
.tc-reveal { margin-top:1rem; padding:1rem; border-left:4px solid var(--tc-gold); background:#fff7e4; border-radius:9px; }
.tc-reveal p { margin:.45rem 0 0; }
.tc-next { margin-top:1rem; background:var(--tc-navy); color:#fff !important; border:0; border-radius:10px; padding:.82rem 1.05rem; font-weight:850; cursor:pointer; }
.tc-next:hover:not(:disabled) { background:#17496f; color:#fff !important; }
.tc-status { margin-top:.75rem; min-height:1.2em; color:#a43a32; }
.tc-game.is-loading { opacity:.78; }
.tc-game__utilities { display:flex; gap:.45rem; justify-content:flex-end; align-items:center; margin:.65rem .25rem 0; color:#9aa6af; font-size:.76rem; }
.tc-text-button { border:0 !important; background:transparent !important; padding:0 !important; color:#657583 !important; font:inherit !important; text-decoration:underline; cursor:pointer; box-shadow:none !important; }
.tc-text-button:hover { color:var(--tc-navy) !important; }

.tc-portal { max-width:1320px; margin:0 auto; padding:clamp(1rem,2.3vw,2rem); }
.tc-portal__hero { position:relative; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); align-items:center; overflow:hidden; min-height:520px; padding:clamp(2.2rem,5vw,4.8rem); border-radius:30px; color:#fff; background:radial-gradient(circle at 78% 22%,rgba(245,198,84,.12),transparent 22%),linear-gradient(135deg,#081f36 0%,#103d64 58%,#1e678b 100%); box-shadow:0 28px 70px rgba(13,43,73,.22); }
.tc-portal__hero::before { content:''; position:absolute; inset:auto 0 0; height:90px; background:linear-gradient(180deg,transparent,rgba(4,19,32,.38)); pointer-events:none; }
.tc-hero-copy { position:relative; z-index:2; }
.tc-eyebrow { margin:0 0 .55rem; font-size:.76rem; letter-spacing:.18em; font-weight:950; color:#efc65d; }
.tc-portal__hero h1 { max-width:760px; margin:.15rem 0 .9rem; color:#fff; font-size:clamp(2.4rem,5.1vw,4.8rem); line-height:.98; letter-spacing:-.04em; }
.tc-portal__lede { max-width:720px; margin:0; color:#dfeaf2; font-size:clamp(1rem,1.7vw,1.2rem); line-height:1.65; }
.tc-portal__actions { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.7rem; }
.tc-primary-action,.tc-secondary-action { display:inline-flex; align-items:center; justify-content:center; padding:.86rem 1.12rem; border-radius:11px; font-weight:900; text-decoration:none !important; }
.tc-primary-action { background:#edbd48; color:#17212b !important; box-shadow:0 8px 24px rgba(0,0,0,.14); }
.tc-primary-action:hover { background:#f4ca61; color:#17212b !important; }
.tc-secondary-action { border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.08); color:#fff !important; }
.tc-secondary-action:hover { background:rgba(255,255,255,.14); color:#fff !important; }
.tc-portal__stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.7rem; max-width:720px; margin-top:2rem; }
.tc-portal__stats div { padding:.85rem 1rem; border:1px solid rgba(255,255,255,.17); border-radius:12px; background:rgba(255,255,255,.06); }
.tc-portal__stats strong,.tc-portal__stats span { display:block; }
.tc-portal__stats strong { font-size:1.4rem; color:#fff; }
.tc-portal__stats span { color:#cbdce8; font-size:.78rem; margin-top:.15rem; }
.tc-hero-castle { position:relative; z-index:1; align-self:end; margin:0 -1.5rem -3.9rem 0; filter:drop-shadow(0 26px 28px rgba(0,0,0,.22)); }
.tc-castle-svg { width:100%; height:auto; display:block; }

.tc-castle-section { padding:3.2rem 0 1rem; }
.tc-portal__rooms-heading { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; margin:0 0 1.25rem; }
.tc-portal__rooms-heading h2 { margin:0; font-size:clamp(1.8rem,3vw,2.6rem); color:var(--tc-navy); }
.tc-portal__rooms-heading > p { max-width:540px; margin:0; color:var(--tc-muted); line-height:1.55; }
.tc-portal__rooms-heading--compact { margin-bottom:.9rem; }

.tc-castle-map { position:relative; min-height:590px; overflow:hidden; border-radius:28px; border:1px solid #b8cad8; background:radial-gradient(circle at 74% 17%,rgba(241,198,87,.28) 0 5%,transparent 12%),linear-gradient(180deg,#163e61 0%,#235d78 50%,#7392a1 51%,#9faf9d 74%,#637b5f 100%); box-shadow:0 24px 60px rgba(24,59,84,.14); }
.tc-castle-map::before { content:''; position:absolute; inset:auto -5% 0; height:34%; background:linear-gradient(180deg,#5e7a5b,#435f45); clip-path:polygon(0 39%,11% 24%,20% 33%,32% 18%,45% 38%,56% 20%,69% 34%,83% 18%,100% 32%,100% 100%,0 100%); }
.tc-castle-map__moon { position:absolute; width:88px; height:88px; right:10%; top:9%; border-radius:50%; background:#f3d37a; box-shadow:0 0 42px rgba(244,211,122,.3); }
.tc-castle-map__walls { position:absolute; left:10%; right:10%; bottom:10%; height:58%; }
.tc-wall { position:absolute; bottom:0; background:linear-gradient(180deg,#315f77,#15374e); border:1px solid rgba(255,255,255,.12); box-shadow:0 15px 25px rgba(0,0,0,.16); }
.tc-wall::before { content:''; position:absolute; left:-2px; right:-2px; top:-18px; height:22px; background:repeating-linear-gradient(90deg,#d5aa46 0 22px,transparent 22px 32px); }
.tc-wall--left { left:0; width:31%; height:62%; }
.tc-wall--center { left:28%; width:44%; height:76%; z-index:2; }
.tc-wall--right { right:0; width:31%; height:62%; }

.tc-castle-room { position:absolute; z-index:5; min-width:128px; padding:.58rem .7rem; border:1px solid rgba(255,255,255,.24); border-radius:12px; background:rgba(6,28,45,.82); color:#fff !important; text-align:center; text-decoration:none !important; box-shadow:0 8px 22px rgba(0,0,0,.2); backdrop-filter:blur(4px); transition:.18s ease; }
.tc-castle-room strong,.tc-castle-room span { display:block; }
.tc-castle-room strong { font-size:.9rem; }
.tc-castle-room span { margin-top:.14rem; color:#d1dce4; font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; font-weight:850; }
.tc-castle-room.is-open { border-color:#efc65d; background:rgba(10,43,65,.94); }
.tc-castle-room.is-open span { color:#f0c95f; }
.tc-castle-room.is-open:hover { transform:translateY(-3px); background:#123f60; color:#fff !important; }
.tc-castle-room.is-locked { opacity:.72; cursor:default; }
.tc-castle-room--tower-left { left:7%; top:23%; }
.tc-castle-room--wing-left { left:14%; top:55%; }
.tc-castle-room--hall-left { left:30%; top:32%; }
.tc-castle-room--great-hall { left:50%; transform:translateX(-50%); top:57%; min-width:160px; }
.tc-castle-room--great-hall.is-open:hover { transform:translateX(-50%) translateY(-3px); }
.tc-castle-room--hall-right { right:30%; top:32%; }
.tc-castle-room--wing-right { right:14%; top:55%; }
.tc-castle-room--tower-right { right:7%; top:23%; }

.tc-mode-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1.2rem 0 3rem; }
.tc-mode-cards article { display:flex; gap:1rem; align-items:flex-start; padding:1.2rem; border:1px solid var(--tc-line); border-radius:18px; background:#fff; box-shadow:0 10px 28px rgba(16,47,80,.05); }
.tc-mode-number { flex:0 0 46px; height:46px; display:grid; place-items:center; border-radius:13px; background:var(--tc-navy); color:#f1c75b; font-size:1.1rem; font-weight:950; }
.tc-mode-cards h3 { margin:.05rem 0 .28rem; color:var(--tc-navy); }
.tc-mode-cards p { margin:0; color:var(--tc-muted); line-height:1.55; }

.tc-room-directory { margin-top:1rem; }
.tc-rooms { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.tc-room { position:relative; display:flex; flex-direction:column; min-height:230px; padding:1.35rem; border:1px solid var(--tc-line); border-radius:17px; background:#fff; box-shadow:0 9px 26px rgba(16,47,80,.05); }
.tc-room.is-locked { background:linear-gradient(180deg,#f9fbfc,#f3f6f8); }
.tc-room__status { align-self:flex-start; font-size:.67rem; letter-spacing:.12em; font-weight:950; color:#6b7680; background:#e9eef2; border-radius:999px; padding:.3rem .5rem; }
.tc-room.is-open .tc-room__status { color:#236a3c; background:#e9f7ed; }
.tc-room h3 { margin:.75rem 0 .4rem; font-size:1.3rem; color:var(--tc-navy); }
.tc-room p { color:var(--tc-muted); line-height:1.5; }
.tc-room__locked-copy { margin-top:auto; font-size:.82rem; }
.tc-room__button { display:inline-flex; align-items:center; justify-content:center; align-self:flex-start; margin-top:auto; padding:.64rem .88rem; border-radius:9px; background:var(--tc-navy); color:#fff !important; font-size:.84rem; font-weight:850; text-decoration:none !important; }
.tc-room__button--locked { background:#dfe6eb; color:#73808a !important; cursor:default; }
.tc-portal__play-area { margin:3rem 0 1rem; padding:clamp(.8rem,2vw,1.4rem); border-radius:24px; border:1px solid #d2e0ea; background:#edf4f8; box-shadow:inset 0 1px 0 rgba(255,255,255,.7); }
.tc-rooms--empty { padding:1rem; border:1px solid var(--tc-line); border-radius:12px; background:#fff; }

@media (max-width:1040px) {
  .tc-portal__hero { grid-template-columns:1fr; min-height:0; }
  .tc-hero-castle { max-width:560px; margin:1.5rem auto -3.5rem; }
  .tc-castle-map { min-height:540px; }
  .tc-castle-room--hall-left { left:24%; }
  .tc-castle-room--hall-right { right:24%; }
}
@media (max-width:900px) {
  .tc-rooms { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tc-portal__rooms-heading { align-items:start; flex-direction:column; }
  .tc-castle-map { min-height:620px; }
  .tc-castle-room { min-width:116px; }
  .tc-castle-room--tower-left { left:4%; }
  .tc-castle-room--tower-right { right:4%; }
  .tc-castle-room--wing-left { left:7%; top:58%; }
  .tc-castle-room--wing-right { right:7%; top:58%; }
  .tc-castle-room--hall-left { left:24%; top:35%; }
  .tc-castle-room--hall-right { right:24%; top:35%; }
}
@media (max-width:700px) {
  .tc-portal { padding:.65rem; }
  .tc-portal__hero { padding:1.55rem; border-radius:20px; }
  .tc-portal__stats { grid-template-columns:1fr; }
  .tc-hero-castle { margin:1rem -1rem -2.4rem; }
  .tc-castle-map { min-height:auto; padding:1rem; background:linear-gradient(180deg,#163e61,#315f77); display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
  .tc-castle-map::before,.tc-castle-map__moon,.tc-castle-map__walls { display:none; }
  .tc-castle-room { position:relative !important; inset:auto !important; transform:none !important; min-width:0; min-height:88px; display:flex; justify-content:center; }
  .tc-castle-room--great-hall { grid-column:1 / -1; order:-1; }
  .tc-castle-room--great-hall.is-open:hover { transform:translateY(-2px) !important; }
  .tc-mode-cards { grid-template-columns:1fr; }
  .tc-rooms { grid-template-columns:1fr; }
  .tc-card { padding:1rem; border-radius:14px; }
  .tc-game__topline { align-items:flex-start; flex-direction:column; gap:.65rem; }
  .tc-player-stats { justify-content:flex-start; }
  .tc-game__controls { align-items:flex-start; flex-direction:column; }
  .tc-game__utilities { justify-content:flex-start; flex-wrap:wrap; }
}

/* v0.4.0 — stronger game-world presentation and clearer interaction hierarchy */
.tc-visually-hidden {
  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;
}

body.trivia-castle-play-page {
  background:
    radial-gradient(circle at 12% 5%, rgba(31,95,143,.14), transparent 26rem),
    radial-gradient(circle at 88% 9%, rgba(216,166,56,.10), transparent 22rem),
    #eaf1f6 !important;
}

.tc-portal { max-width:1440px; }

.tc-portal__hero.tc-portal__hero--art {
  display:block;
  min-height:0;
  padding:0;
  border-radius:30px;
  overflow:hidden;
  background:#071a31;
  box-shadow:0 30px 76px rgba(5,27,50,.28);
}
.tc-portal__hero--art::before { display:none; }
.tc-hero-art {
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  object-fit:cover;
  object-position:center;
}

.tc-launch-deck {
  position:relative;
  z-index:3;
  margin:-2.2rem clamp(1rem,4vw,3.4rem) 0;
  padding:clamp(1.35rem,2.7vw,2.15rem);
  border:1px solid #d7e2eb;
  border-radius:22px;
  background:rgba(255,255,255,.97);
  box-shadow:0 22px 54px rgba(11,42,70,.16);
}
.tc-launch-copy { max-width:820px; }
.tc-launch-copy h2 { margin:.1rem 0 .45rem; color:var(--tc-navy); font-size:clamp(1.75rem,3vw,2.65rem); }
.tc-launch-copy > p:last-child { margin:0; color:#5e6e7c; font-size:1rem; line-height:1.6; }
.tc-launch-actions { display:flex; gap:.7rem; flex-wrap:wrap; margin-top:1.1rem; }
.tc-secondary-action--light {
  border:1px solid #b8cad9;
  background:#f4f8fb;
  color:var(--tc-navy) !important;
}
.tc-secondary-action--light:hover { background:#e9f2f8; color:var(--tc-navy) !important; }

.tc-castle-pulse {
  display:flex;
  align-items:center;
  gap:.65rem;
  flex-wrap:wrap;
  margin-top:1.15rem;
  padding-top:1rem;
  border-top:1px solid #e2eaf0;
  color:#6c7984;
  font-size:.84rem;
}
.tc-castle-pulse strong { color:var(--tc-navy); font-size:.95rem; }

.tc-portal__play-area--featured {
  max-width:1040px;
  margin:2rem auto 1.2rem;
  padding:clamp(1rem,2.5vw,1.6rem);
  border:1px solid #c8d8e4;
  border-radius:26px;
  background:linear-gradient(180deg,#f7fbfe,#e7f0f6);
  box-shadow:0 20px 55px rgba(20,57,84,.12);
}
.tc-portal__play-area--featured .tc-game { margin:.15rem auto; }
#tc-game { scroll-margin-top:3.5rem; }

.tc-mode-guide {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  margin:2.2rem 0 .3rem;
  border-top:1px solid #cbd9e3;
  border-bottom:1px solid #cbd9e3;
  background:transparent;
}
.tc-mode-explainer {
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  padding:1.15rem 1.3rem;
}
.tc-mode-explainer + .tc-mode-explainer { border-left:1px solid #cbd9e3; }
.tc-mode-explainer .tc-mode-number {
  flex:0 0 auto;
  width:2.25rem;
  height:2.25rem;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--tc-navy);
  color:#f2c85a;
  font-size:.9rem;
  font-weight:950;
}
.tc-mode-explainer h3 { margin:.05rem 0 .22rem; color:var(--tc-navy); font-size:1rem; }
.tc-mode-explainer p { margin:0; color:#667582; font-size:.88rem; line-height:1.5; }

.tc-castle-section { padding-top:2.6rem; }
.tc-castle-map { box-shadow:0 28px 70px rgba(9,40,65,.18), inset 0 0 0 1px rgba(255,255,255,.18); }
.tc-castle-map::after {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 14%,rgba(255,255,255,.75) 0 1px,transparent 2px),
    radial-gradient(circle at 31% 9%,rgba(255,255,255,.6) 0 1px,transparent 2px),
    radial-gradient(circle at 61% 12%,rgba(255,255,255,.55) 0 1px,transparent 2px),
    radial-gradient(circle at 86% 19%,rgba(255,255,255,.7) 0 1px,transparent 2px);
  background-size:220px 180px,260px 210px,310px 190px,230px 240px;
  opacity:.75;
}
.tc-castle-room.is-open { box-shadow:0 0 0 1px rgba(242,200,90,.8),0 0 28px rgba(242,200,90,.18); }

.tc-room__sealed {
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  margin-top:.7rem;
  padding:.18rem 0;
  color:#75838e;
  font-size:.76rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.055em;
}

@media (max-width: 760px) {
  .tc-launch-deck { margin:-1rem .55rem 0; }
  .tc-mode-guide { grid-template-columns:1fr; }
  .tc-mode-explainer + .tc-mode-explainer { border-left:0; border-top:1px solid #cbd9e3; }
  .tc-hero-art { aspect-ratio:4 / 3; object-fit:cover; }
}

/* === Trivia Castle v0.5.0 immersive shell === */
body.trivia-castle-play-page {
  background:
    radial-gradient(circle at 12% 0%, rgba(17,91,148,.24), transparent 30rem),
    radial-gradient(circle at 88% 8%, rgba(229,171,48,.12), transparent 28rem),
    linear-gradient(180deg,#061629 0%,#0a2138 58%,#07192c 100%) !important;
  color:#eef6fb;
}
body.trivia-castle-play-page .site,
body.trivia-castle-play-page #page { background:transparent !important; }
.tc-portal {
  max-width:1680px;
  margin:0 auto;
  padding:clamp(.6rem,1.4vw,1.25rem) clamp(.7rem,2vw,1.75rem) 4rem;
  color:#eff7fb;
}

.tc-entry-stage {
  position:relative;
  min-height:clamp(590px,82vh,880px);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:clamp(22px,2.3vw,36px);
  background:#061a31;
  box-shadow:0 35px 90px rgba(0,0,0,.38);
  isolation:isolate;
}
.tc-entry-stage__art {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  z-index:0;
}
.tc-entry-stage__shade {
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg,rgba(3,13,26,.02) 0%,rgba(3,13,26,.04) 52%,rgba(3,13,26,.84) 100%),
    linear-gradient(90deg,rgba(3,13,26,.16),transparent 26%,transparent 74%,rgba(3,13,26,.16));
  pointer-events:none;
}
.tc-entry-stage__dock {
  position:absolute;
  left:clamp(1rem,3.6vw,4rem);
  right:clamp(1rem,3.6vw,4rem);
  bottom:clamp(1rem,2.6vw,2.6rem);
  z-index:2;
  padding:clamp(1rem,2vw,1.65rem);
  border:1px solid rgba(255,255,255,.18);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(5,28,50,.76),rgba(5,22,40,.92));
  box-shadow:0 18px 48px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(12px);
}
.tc-entry-stage__prompt { display:flex; align-items:baseline; gap:.8rem 1rem; flex-wrap:wrap; margin-bottom:.85rem; }
.tc-entry-stage__prompt span { color:#f4c853; font-size:.72rem; font-weight:950; letter-spacing:.16em; }
.tc-entry-stage__prompt strong { color:#fff; font-size:clamp(1.05rem,1.7vw,1.45rem); }
.tc-game-choices { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.tc-game-choice {
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.85rem;
  min-height:90px;
  padding:1rem 1.05rem;
  border:1px solid rgba(255,255,255,.2);
  border-radius:16px;
  text-decoration:none !important;
  color:#fff !important;
  overflow:hidden;
  box-shadow:0 12px 28px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.08);
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,filter .16s ease;
}
.tc-game-choice::before { content:''; position:absolute; inset:0; opacity:.98; z-index:-1; }
.tc-game-choice--quick::before { background:linear-gradient(135deg,#bf7b10 0%,#efb72d 55%,#f6d46a 100%); }
.tc-game-choice--challenge::before { background:linear-gradient(135deg,#0c3153,#155b86 62%,#1a7096); }
.tc-game-choice:hover,.tc-game-choice:focus-visible { transform:translateY(-3px); box-shadow:0 18px 34px rgba(0,0,0,.26),0 0 0 2px rgba(246,204,89,.24); border-color:rgba(255,228,147,.74); filter:saturate(1.08); color:#fff !important; }
.tc-game-choice--quick { color:#08223a !important; }
.tc-game-choice--quick:hover,.tc-game-choice--quick:focus-visible { color:#08223a !important; }
.tc-game-choice__emblem { width:3.25rem; height:3.25rem; display:grid; place-items:center; border-radius:50%; border:1px solid currentColor; font-weight:950; font-size:1.15rem; background:rgba(255,255,255,.13); }
.tc-game-choice__copy { display:block; min-width:0; }
.tc-game-choice__copy strong,.tc-game-choice__copy small { display:block; }
.tc-game-choice__copy strong { font-size:clamp(1.05rem,1.5vw,1.3rem); line-height:1.1; }
.tc-game-choice__copy small { margin-top:.28rem; font-size:.8rem; line-height:1.35; opacity:.86; }
.tc-game-choice__go { font-weight:950; font-size:.78rem; letter-spacing:.08em; white-space:nowrap; }
.tc-entry-stage__facts { display:flex; gap:.55rem; align-items:center; flex-wrap:wrap; margin-top:.75rem; color:#d4e1ea; font-size:.78rem; }
.tc-entry-stage__facts strong { color:#fff; }

.tc-portal__play-area--featured {
  max-width:1180px;
  margin:2rem auto 3rem;
  padding:clamp(1rem,2.5vw,1.8rem);
  border:1px solid rgba(255,255,255,.12);
  border-radius:28px;
  background:linear-gradient(180deg,#eaf3f8,#dfeaf1);
  box-shadow:0 28px 70px rgba(0,0,0,.28);
}
.tc-portal__play-area--featured .tc-game { color:#0d2942; }
#tc-game { scroll-margin-top:1.2rem; }

.tc-castle-section,.tc-wing-section {
  margin-top:clamp(2.4rem,5vw,5rem);
  padding:clamp(1.3rem,2.8vw,2.35rem);
  border:1px solid rgba(255,255,255,.09);
  border-radius:28px;
  background:linear-gradient(180deg,rgba(12,42,67,.88),rgba(6,26,44,.94));
  box-shadow:0 25px 70px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.04);
}
.tc-wing-section { margin-top:1.35rem; }
.tc-section-heading { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; margin-bottom:1.2rem; }
.tc-section-heading h2 { margin:.05rem 0 0; color:#fff; font-size:clamp(1.8rem,3vw,2.7rem); letter-spacing:-.025em; }
.tc-section-heading > p { max-width:590px; margin:0; color:#b7c9d6; line-height:1.55; }
.tc-section-heading--compact { margin-bottom:1rem; }
.tc-eyebrow { color:#f0ba3f !important; }

.tc-illustrated-map {
  position:relative;
  min-height:clamp(390px,43vw,620px);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  border-radius:24px;
  background:#071a2e;
  box-shadow:0 24px 58px rgba(0,0,0,.32);
}
.tc-illustrated-map > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.tc-illustrated-map__veil { position:absolute; inset:0; background:linear-gradient(180deg,rgba(2,15,29,.07),rgba(2,15,29,.05) 46%,rgba(2,15,29,.35)); pointer-events:none; }
.tc-map-hotspot {
  position:absolute;
  left:var(--tc-x);
  top:var(--tc-y);
  transform:translate(-50%,-50%);
  z-index:3;
  display:flex;
  align-items:center;
  gap:.45rem;
  text-decoration:none !important;
  color:#fff !important;
  outline:none;
}
.tc-map-hotspot__dot { width:1.05rem; height:1.05rem; flex:0 0 auto; border-radius:50%; background:#6f8492; border:3px solid rgba(255,255,255,.92); box-shadow:0 0 0 5px rgba(7,27,48,.45); }
.tc-map-hotspot__label { display:block; min-width:120px; padding:.42rem .6rem; border:1px solid rgba(255,255,255,.18); border-radius:9px; background:rgba(4,24,42,.88); box-shadow:0 7px 16px rgba(0,0,0,.28); backdrop-filter:blur(5px); }
.tc-map-hotspot__label strong,.tc-map-hotspot__label small { display:block; }
.tc-map-hotspot__label strong { color:#fff; font-size:.78rem; line-height:1.15; }
.tc-map-hotspot__label small { margin-top:.15rem; color:#b7c9d6; font-size:.62rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.tc-map-hotspot.is-open .tc-map-hotspot__dot { background:#f4bf3b; border-color:#fff1b6; box-shadow:0 0 0 5px rgba(244,191,59,.18),0 0 22px rgba(244,191,59,.9); }
.tc-map-hotspot.is-open .tc-map-hotspot__label { border-color:rgba(244,191,59,.7); background:rgba(4,24,42,.94); }
.tc-map-hotspot.is-open .tc-map-hotspot__label small { color:#f6cf68; }
.tc-map-hotspot.is-great-hall { transform:translate(-50%,-50%) scale(1.08); }
.tc-map-hotspot__popover {
  position:absolute;
  left:50%;
  bottom:calc(100% + .7rem);
  transform:translateX(-50%) translateY(5px);
  width:min(260px,70vw);
  padding:.75rem .8rem;
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  background:#071d33;
  box-shadow:0 14px 34px rgba(0,0,0,.36);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.15s ease;
}
.tc-map-hotspot__popover::after { content:''; position:absolute; left:50%; top:100%; margin-left:-7px; border:7px solid transparent; border-top-color:#071d33; }
.tc-map-hotspot__popover strong,.tc-map-hotspot__popover span,.tc-map-hotspot__popover em { display:block; }
.tc-map-hotspot__popover strong { color:#fff; font-size:.9rem; }
.tc-map-hotspot__popover span { margin-top:.3rem; color:#c0d0db; font-size:.75rem; line-height:1.4; }
.tc-map-hotspot__popover em { margin-top:.45rem; color:#f1c45d; font-size:.7rem; font-style:normal; font-weight:850; }
.tc-map-hotspot:hover .tc-map-hotspot__popover,.tc-map-hotspot:focus-visible .tc-map-hotspot__popover,.tc-map-hotspot:focus-within .tc-map-hotspot__popover { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }

.tc-room-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.tc-room-art {
  position:relative;
  min-height:290px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  background:#0a2742;
  box-shadow:0 18px 40px rgba(0,0,0,.23);
}
.tc-room-art__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s ease,filter .35s ease; }
.tc-room-art__scrim { position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,20,35,.05) 10%,rgba(5,20,35,.28) 43%,rgba(5,20,35,.94) 100%); }
.tc-room-art__content { position:absolute; inset:auto 0 0; z-index:2; padding:1.15rem; }
.tc-room-art__status { display:inline-flex; padding:.28rem .48rem; border-radius:999px; background:rgba(5,25,43,.83); color:#c5d4de; font-size:.62rem; font-weight:950; letter-spacing:.09em; }
.tc-room-art h3 { margin:.55rem 0 .25rem; color:#fff; font-size:1.35rem; }
.tc-room-art p { margin:0; color:#d2dfe7; font-size:.82rem; line-height:1.45; }
.tc-room-art__lock,.tc-room-art__enter { display:inline-flex; margin-top:.75rem; font-size:.73rem; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.tc-room-art__lock { color:#f2c556; }
.tc-room-art__enter { color:#ffe9a0 !important; text-decoration:none !important; }
.tc-room-art.is-open { border-color:rgba(244,191,59,.55); box-shadow:0 18px 42px rgba(0,0,0,.25),0 0 30px rgba(244,191,59,.1); }
.tc-room-art:hover .tc-room-art__image { transform:scale(1.035); filter:saturate(1.08); }

@media (max-width: 1100px) {
  .tc-entry-stage { min-height:700px; }
  .tc-room-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tc-section-heading { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 760px) {
  .tc-portal { padding:.4rem .4rem 2rem; }
  .tc-entry-stage { min-height:0; overflow:visible; border-radius:18px; background:#06182a; }
  .tc-entry-stage__art { position:relative; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:18px 18px 0 0; }
  .tc-entry-stage__shade { display:none; }
  .tc-entry-stage__dock { position:relative; left:auto; right:auto; bottom:auto; margin:0; border-radius:0 0 18px 18px; border-width:0 1px 1px; background:#071d33; backdrop-filter:none; }
  .tc-entry-stage__prompt { display:block; }
  .tc-entry-stage__prompt strong { display:block; margin-top:.2rem; }
  .tc-game-choices { grid-template-columns:1fr; }
  .tc-game-choice { grid-template-columns:auto minmax(0,1fr); }
  .tc-game-choice__go { display:none; }
  .tc-entry-stage__facts { gap:.4rem; }
  .tc-castle-section,.tc-wing-section { margin-top:1rem; padding:.85rem; border-radius:18px; }
  .tc-illustrated-map { min-height:520px; }
  .tc-map-hotspot__label { min-width:95px; padding:.34rem .45rem; }
  .tc-map-hotspot__label strong { font-size:.68rem; }
  .tc-map-hotspot__label small { font-size:.54rem; }
  .tc-map-hotspot__popover { display:none; }
  .tc-room-gallery { grid-template-columns:1fr; }
  .tc-room-art { min-height:250px; }
}
