:root{
  --rail-surface:#090f0ef5;
  --rail-edge:#b3a18155;
  --rail-text:#f1e5cc;
  --rail-muted:#c0b9a7;
  --rail-font-size:15px;
  --rail-leading:1.42;
  --rail-padding:12px 15px;
  --rail-gap:10px;
}
#candle-loading:not([hidden]) span{transform-origin:50% 100%;animation:loading-candle-sway 2.7s ease-in-out infinite}
#candle-loading:not([hidden]) span:before{content:"";position:absolute;left:50%;top:15%;width:230px;height:250px;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#c5893b21,transparent 65%);animation:loading-pool-breathe 2.1s ease-in-out infinite;pointer-events:none}
#candle-loading:not([hidden]) i{transform-origin:50% 100%;animation:loading-flame-flicker .62s ease-in-out infinite alternate,loading-flame-sway 2.7s ease-in-out infinite;will-change:transform,opacity}
@keyframes loading-candle-sway{0%,100%{transform:rotate(-.7deg)}50%{transform:rotate(.8deg)}}
@keyframes loading-flame-flicker{0%{opacity:.76;filter:brightness(.9)}35%{opacity:1;filter:brightness(1.25)}70%{opacity:.84;filter:brightness(1)}100%{opacity:.97;filter:brightness(1.15)}}
@keyframes loading-flame-sway{0%,100%{transform:rotate(-7deg) scale(.9,1.06)}43%{transform:rotate(8deg) scale(1.12,.91)}70%{transform:rotate(-2deg) scale(.97,1.03)}}
@keyframes loading-pool-breathe{0%,100%{opacity:.55;scale:.89}50%{opacity:1;scale:1.12}}
.room-heading{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;pointer-events:none!important}
.room-heading>*{pointer-events:auto}
#room-name{font:19px/1.2 var(--font-display);font-weight:var(--weight-display);color:#eee1c6;text-shadow:0 2px 8px #000;letter-spacing:var(--tracking-display);pointer-events:none}
#resident{padding:2px 0;min-height:30px;font-size:12px;opacity:.88}
#hud{align-items:flex-start}
#lantern,#sound{margin-top:2px}
#room-title{display:none}
#action-rail{gap:var(--rail-gap);padding:var(--rail-padding);background:var(--rail-surface);border-color:var(--rail-edge);box-shadow:0 8px 30px #0007}
#chain-note{font-size:var(--rail-font-size);line-height:var(--rail-leading);color:var(--rail-text)}
#next-reason{color:var(--rail-muted);margin-top:4px}
#next-reason:empty{display:none}
#action-rail button{letter-spacing:.01em;background:#141e18;border-color:#b7a06d70}
#action-rail #help-me{color:#d8ceb8}
#recovery{position:static;inset:auto;transform:none;grid-column:1/-1;min-width:0;padding:0;border:0;background:none;box-shadow:none;text-align:left}
#recovery strong{display:block;color:var(--rail-text);font:23px/1.2 var(--font-display);margin-bottom:5px}
#recovery span{font:var(--rail-font-size)/var(--rail-leading) var(--font-body);color:var(--rail-text);margin:0 0 12px}
#recovery button{width:auto;min-width:150px}
body.rail-recovery-active #action-rail>.rail-copy,body.rail-recovery-active #next-room,body.rail-recovery-active #help-me{display:none}
body.rail-recovery-active #action-rail{display:block;z-index:95}
body.rail-recovery-active #caught{display:none!important}
#source-popover{position:static;inset:auto;transform:none;grid-column:1/-1;width:auto;padding:10px 0 0;border:0;border-top:1px solid var(--rail-edge);box-shadow:none;background:none;font:12px/1.5 var(--font-body)}
#source-popover p{margin:0 0 3px}
.hotspot.exit:not(.unlocked){z-index:3}
.hotspot.exit{pointer-events:auto}
body.forced-exit #room-exit>span{display:none}
body.passage-active #foreground{visibility:hidden}
body.passage-confront #set-dressing,body.passage-confront #hotspots,
body.passage-confront #inventory,body.passage-confront #films-link,body.passage-confront #world-caption,
body.passage-confront #particles,body.passage-confront #pan-cue{visibility:hidden!important;pointer-events:none!important}
body.passage-confront #lantern-light{clip-path:none!important}
body.passage-confront #world{z-index:4}
body.passage-confront #help-me,body.passage-confront #next-room{display:none}
body.passage-confront #action-rail{z-index:95}
.room-detail-target{background:transparent;border:0;position:absolute;transform:translate(-50%,-50%);min-width:44px;min-height:44px}
.room-detail-target:focus-visible{outline:1px solid #dcc598;outline-offset:3px}
/* The user-selected A skin is the default; validated B/C overrides remain.
   These skins preserve the same controls, focus order and recovery state. */
body[data-rail-style="a"]{
  --rail-surface:#d8c39b;
  --rail-edge:#85653c;
  --rail-text:#2b1c10;
  --rail-muted:#49311b;
  --rail-font-size:17px;
  --rail-leading:1.5;
  --rail-padding:20px 22px 18px 28px;
  --rail-gap:12px;
}
body[data-rail-style="a"] #action-rail{
  color-scheme:light;border-radius:3px;
  height:auto;min-height:0;max-height:none;overflow:visible;
  background-image:linear-gradient(110deg,#edddbd55,#b7935830),var(--paper-url,none);
  background-size:100% 100%;
  outline:1px solid #8a693c66;outline-offset:-5px;
  box-shadow:inset 0 0 22px #75522638,0 5px 0 -2px #a78a5f,0 8px 22px #0009;
}
html:not(.ending-active) body[data-rail-style="a"]:not(.rail-recovery-active) #action-rail{
  display:grid;grid-template-columns:minmax(0,1fr) auto auto;
  grid-template-areas:"copy next help";grid-auto-rows:auto;align-items:center;
}
body[data-rail-style="a"]:not(.rail-recovery-active) #action-rail>.rail-copy{
  grid-area:copy;display:block;position:static;min-width:0;width:auto;padding:0;
}
body[data-rail-style="a"] #action-rail #chain-note,
body[data-rail-style="a"] #action-rail #next-reason{
  position:static;float:none;transform:none;margin:0;max-width:100%;
  white-space:normal;overflow-wrap:anywhere;word-break:normal;
  color:var(--rail-text);text-shadow:none;opacity:1;
}
body[data-rail-style="a"] #action-rail #chain-note{
  display:block;font:var(--rail-font-size)/var(--rail-leading) var(--font-body);
}
body[data-rail-style="a"] #action-rail #next-reason{
  font:14px/1.5 var(--font-body);color:var(--rail-muted);margin-top:8px;
}
body[data-rail-style="a"] #action-rail #next-reason:empty{display:none}
body[data-rail-style="a"] #action-rail>#next-room{grid-area:next}
body[data-rail-style="a"] #action-rail>#help-me{grid-area:help}
body[data-rail-style="a"] #action-rail>#next-room,
body[data-rail-style="a"] #action-rail>#help-me{
  position:static;align-self:center;justify-self:end;max-width:100%;width:auto;
}
body[data-rail-style="a"] #find-tally,
body[data-rail-style="a"] #source-popover{color:var(--rail-muted);text-shadow:none}
body[data-rail-style="a"] #source-popover a{color:var(--rail-text)}
body[data-rail-style="a"] #recovery span{display:block}
body[data-rail-style="a"] #action-rail:before{
  content:"";position:absolute;left:-10px;top:-13px;width:32px;height:32px;pointer-events:none;
  border:3px solid #4e0c0d;border-radius:47% 53% 46% 51%;
  background:radial-gradient(circle at 40% 33%,#852323,#5c1011 68%,#370709);
  box-shadow:inset 0 0 0 1px #af4544,inset 0 0 0 4px #5b1011,0 2px 3px #0007;
}
body[data-rail-style="a"] #action-rail button{
  color:#392815;background:#d6bd8e55;border:1px solid #76592e;
  box-shadow:inset 0 0 0 2px #f2dfb83d;border-radius:3px;
}
body[data-rail-style="a"] #action-rail #help-me,
body[data-rail-style="a"] #recovery button{
  color:#f9e8c6;background:linear-gradient(#60421f,#3e2913);
  border-color:#87612a;box-shadow:inset 0 0 0 2px #c69c5240;
}
body[data-rail-style="b"]{
  --rail-surface:#050c0ce8;
  --rail-edge:#89713b80;
  --rail-text:#eddbac;
  --rail-muted:#c4b995;
  --rail-font-size:17px;
  --rail-leading:1.4;
  --rail-padding:15px 18px;
  --rail-gap:12px;
}
body[data-rail-style="b"] #action-rail{
  border-radius:0;outline:1px solid #88703e55;outline-offset:-4px;
  background-image:linear-gradient(120deg,#13201e50,#03090840);
  backdrop-filter:blur(8px);box-shadow:0 8px 25px #0008;
}
body[data-rail-style="b"] #action-rail button{
  background:#0c141366;border-color:#8e773e88;border-radius:0;color:#eddbac;
}
body[data-rail-style="c"]{
  --rail-surface:transparent;
  --rail-edge:transparent;
  --rail-text:#edd5a0;
  --rail-muted:#d1bd92;
  --rail-font-size:20px;
  --rail-leading:1.3;
  --rail-padding:12px 20px 14px;
  --rail-gap:12px;
}
body[data-rail-style="c"] #action-rail{
  grid-template-columns:1fr 1fr;border:0;border-radius:0;
  background:linear-gradient(transparent,#030706cc 18%,#030706ed);
  box-shadow:none;text-align:center;text-shadow:0 2px 4px #000;
}
body[data-rail-style="c"] #action-rail .rail-copy{
  grid-column:1/-1;padding-bottom:10px;border-bottom:1px solid #a68b455e;
}
body[data-rail-style="c"] #action-rail button{
  width:100%;min-height:44px;border:1px solid #9d824785;border-radius:4px;
  background:#14201b9c;color:#eddfba;text-shadow:0 1px 2px #000;
}
body[data-rail-style="c"] #recovery{text-align:center}
@media(max-width:700px){
  :root{--rail-font-size:13px;--rail-leading:1.4;--rail-padding:10px 12px;--rail-gap:8px}
  #room-name{font-size:16px;max-width:190px}
  #resident{font-size:11px;min-height:27px}
  #hud{gap:10px}
  #inventory{top:89px}
  #recovery strong{font-size:22px}
  body[data-rail-style="a"],body[data-rail-style="b"]{
    --rail-font-size:16px;--rail-leading:1.4;--rail-padding:12px 14px;--rail-gap:10px;
  }
  body[data-rail-style="a"]{
    --rail-font-size:16px;--rail-leading:1.5;--rail-padding:22px 16px 16px;--rail-gap:12px;
  }
  html:not(.ending-active) body[data-rail-style="a"]:not(.rail-recovery-active) #action-rail{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"copy copy" "next help";
  }
  body[data-rail-style="a"] #action-rail>#next-room,
  body[data-rail-style="a"] #action-rail>#help-me{width:100%;justify-self:stretch}
  body[data-rail-style="c"]{--rail-font-size:18px;--rail-padding:11px 13px 12px;--rail-gap:10px}
  body[data-rail-style="a"] #action-rail:before{width:28px;height:28px;top:-12px;left:-8px}
}
@media(prefers-reduced-motion:reduce){
  #candle-loading:not([hidden]) span{animation:none}
  #candle-loading:not([hidden]) i{animation:loading-flame-flicker 1.8s ease-in-out infinite alternate}
}
