@font-face{font-family:Pirata;src:url('assets/PirataOne-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:Uncial;src:url('assets/UncialAntiqua-Regular.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--ink:#fff0d4;--muted:#dec39d;--gold:#c89751;--bright:#efc679;--brown:#684329;--dark:#302017;--green:#334d35;--paper:#efdbb6;--line:rgba(207,158,88,.65)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);font-family:Georgia,'Times New Roman',serif;background:#20170f url('assets/apothecary-ku-crisp.png') center/cover fixed;line-height:1.5}.ambience{position:fixed;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(15,10,7,.55),rgba(15,10,7,.14)),linear-gradient(0deg,rgba(15,10,7,.65),transparent 75%);pointer-events:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #ffe2a1;outline-offset:5px}button:disabled{opacity:.6}h1,h2,h3,h4,.display,.wordmark,.game-button,.nav-button,.shield-name{font-family:Pirata,Uncial,Georgia,serif;font-weight:400;line-height:1.25}h1{font-size:clamp(3.3rem,6.8vw,6.2rem);margin:.3em 0}h2{font-size:clamp(1.8rem,3vw,2.5rem);margin:.25em 0 .6em}h3{font-size:1.45rem;margin:.2em 0 .65em}p{margin:.5em 0 1em}img{display:block;max-width:100%}.site-header{max-width:1392px;margin:auto;padding:26px 38px;display:flex;align-items:center;justify-content:space-between;gap:20px}.wordmark{background:none;border:0;text-align:left;font-size:1.45rem;text-shadow:0 2px 3px #000;padding:0}.wordmark span{display:block;font:11px/1.8 Georgia,serif;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin-top:4px}nav{display:flex;gap:8px}.nav-button{border:1px solid var(--line);border-radius:7px;background:#302017e8;padding:11px 17px;font-size:.9rem;box-shadow:0 3px 0 #140e0a}.nav-button:hover{background:#654027;border-color:var(--bright)}main{max-width:1320px;margin:0 auto;padding:20px 38px 50px;min-height:calc(100vh - 170px)}.site-footer{text-align:center;font-size:13px;color:var(--muted);padding:10px 20px 24px;text-shadow:0 2px 2px #000}.eyebrow{font-size:.75rem;font-weight:bold;letter-spacing:.17em;text-transform:uppercase;color:var(--bright);margin:0 0 14px}.muted{color:var(--muted)}.loading{text-align:center;margin:25vh auto;font:2rem Uncial,serif}.game-button{position:relative;border:2px solid var(--gold);background:linear-gradient(#795132,#5b3a23);border-radius:9px;padding:13px 22px;font-size:.97rem;box-shadow:inset 0 0 0 3px #604125,inset 0 0 0 4px #9d7545,0 5px 0 #21150f,0 7px 13px #0005;transition:transform .12s,filter .12s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px}.game-button:hover{filter:brightness(1.18);transform:translateY(-1px)}.game-button:active{transform:translateY(3px);box-shadow:inset 0 0 0 3px #604125,inset 0 0 0 4px #9d7545,0 2px 0 #21150f}.game-button.primary{background:linear-gradient(#506843,#32482c);border-color:#bca15c}.game-button.subtle{background:#302018;padding:9px 15px;font-size:.8rem;min-height:40px}.action-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.wood-panel{border:2px solid var(--gold);border-radius:18px;background:linear-gradient(#28170dc9,#28170de5),url('assets/wood.png') center/cover;box-shadow:0 12px 55px #0009,inset 0 0 0 6px #3c281b,inset 0 0 0 7px #9d7545;padding:35px}.hero{max-width:800px;margin:6vh 0 45px;padding:42px 46px;background:#302017ed}.hero p.lead{font-size:1.2rem;max-width:590px;color:#eddbbd}.hero .action-row{margin-top:28px}.hero .footnote{font-size:.9rem;margin:27px 0 0;color:var(--muted)}.hero-shields{display:flex;align-items:center;gap:17px;margin:27px 0 5px}.hero-shields img{width:48px;height:64px;object-fit:contain;filter:drop-shadow(0 3px 3px #0007)}.ledger-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:25px}.ledger-heading h2{margin-bottom:8px}.ledger-heading p{margin:0;color:var(--muted)}.progress{text-align:right;min-width:155px}.progress small{font-size:13px;color:var(--muted)}.progress-track{height:6px;width:160px;border-radius:5px;background:#21160e;margin-top:9px;border:1px solid #73502b}.progress-fill{height:100%;background:var(--bright);border-radius:4px;transition:width .3s}.traveler-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.traveler-tile{border:1px solid var(--gold);border-radius:12px;min-height:210px;padding:15px 10px 13px;display:flex;align-items:center;flex-direction:column;background:linear-gradient(#6c482f,#342218);box-shadow:inset 0 0 0 4px #452b1b,inset 0 0 0 5px #9b7443,0 5px 0 #21170f;transition:transform .15s,filter .15s;position:relative}.traveler-tile:hover{transform:translateY(-4px);filter:brightness(1.12)}.traveler-tile .number{align-self:flex-start;color:var(--muted);font-size:12px;margin-left:4px}.traveler-tile img{width:85px;height:85px;object-fit:cover;border-radius:50%;border:2px solid #c3a573;margin:2px 0 12px}.traveler-tile .display{font-size:1.1rem}.traveler-tile .role{font-size:12px;color:var(--muted);margin-top:5px}.visited-mark{position:absolute;top:14px;right:13px;color:#d1e4b4;font-size:12px}.ledger-footer{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:28px;color:var(--muted);font-size:14px}.round-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:5px 0 25px}.round-heading h1{font-size:clamp(1.8rem,3vw,2.6rem);margin:8px 0}.round-heading .eyebrow{margin:0}.round-layout{display:grid;grid-template-columns:340px 1fr;gap:30px;align-items:start}.patient-card{background:linear-gradient(#765136,#5a3c29);border:2px solid var(--gold);border-radius:14px;padding:23px;box-shadow:0 6px 15px #0006}.patient-card h2{font-size:1.8rem;margin:0 0 3px}.patient-card .role{font-size:.9rem;color:var(--muted)}.portrait{width:135px;height:135px;object-fit:cover;border-radius:50%;border:3px solid #c6a577;margin:23px auto}.facts{list-style:none;padding:0;margin:0;font-size:1.05rem}.facts li{border-top:1px solid #d3ab6d35;padding:10px 0;line-height:1.4}.facts li:first-child{border:0}.verified{font-size:12px;color:var(--muted);margin:16px 0 0}.equipment-panel{padding-top:9px}.equipment-panel>p{color:var(--muted)}.shield-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:26px 0}.shield-button{display:flex;align-items:center;gap:18px;text-align:left;padding:13px 18px;min-height:112px;border:2px solid #8d6c42;border-radius:11px;background:linear-gradient(#5b402c,#3f2c20);box-shadow:inset 0 0 0 3px #493322,inset 0 0 0 4px #826441,0 5px 0 #21170f;transition:transform .15s,background .15s,border-color .15s}.shield-button:hover{border-color:var(--bright);transform:translateY(-2px)}.shield-button[aria-pressed=true]{border-color:var(--bright);background:linear-gradient(#48603c,#2e402a);box-shadow:inset 0 0 0 3px #34472d,inset 0 0 0 4px #9aab72,0 5px 0 #21170f,0 0 20px #eacb7020}.shield-icon{height:80px;width:63px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 2px #0007)}.empty-shield{height:80px;width:63px;flex-shrink:0}.shield-name{display:block;font-size:1.4rem}.slot-state{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#c4b49f;margin-top:8px}.shield-button[aria-pressed=true] .slot-state{color:#dbeac0}.selection-summary{min-height:28px;color:var(--ink)!important;margin:14px 0 27px!important}.round-actions{border-top:1px solid var(--line);padding-top:26px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}.no-dose-hint{font-size:13px;margin-top:21px;color:var(--muted)}.feedback{border-left:3px solid #dfbd76;padding:12px 17px;background:#1c150e66;margin:5px 0 20px;border-radius:0 8px 8px 0}.feedback.match{border-color:#bbd29d}.feedback strong{font-size:1.08rem}.feedback p{font-size:.9rem;color:var(--muted);margin:6px 0 0}.answer-list{display:grid;gap:12px}.answer-row{display:grid;grid-template-columns:58px 1fr;gap:15px;border:1px solid #ae834c;border-radius:10px;padding:13px 16px;background:#473326}.answer-row.equipped{background:#30472f}.answer-row.later{background:#6e4a2b}.answer-row .shield-icon,.answer-row .empty-shield{width:53px;height:68px;align-self:center}.answer-top{display:flex;justify-content:space-between;gap:15px;align-items:center}.answer-top h3{font-size:1.23rem;margin:0}.status{font:700 11px/1.3 Georgia,serif;color:#d5d3c6;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.equipped .status{color:#d9e9bd}.answer-row p{font-size:1rem;margin:6px 0 2px;line-height:1.4}.answer-row small{display:block;font-size:11px;color:#d2bfaa;margin-top:5px}.quip{font:1.15rem/1.5 Uncial,serif;color:var(--bright)!important;margin:22px 0!important}.clinical-notes{border:1px solid #977044;border-radius:9px;margin:25px 0;background:#22180fd9}.clinical-notes summary{cursor:pointer;padding:13px 16px;font-size:.95rem;color:var(--muted)}.note-content{padding:0 17px 14px;font-size:.94rem;color:#efdfc9}.source-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:15px}.source-links a{color:#eacc92;font-size:12px}.end-panel{max-width:850px;margin:10vh auto;text-align:center;padding:50px}.end-panel h1{font-size:3rem}.end-panel .action-row{justify-content:center;margin-top:30px}.end-panel img{width:54px;height:75px;object-fit:contain}.end-shields{display:flex;justify-content:center;gap:25px;margin:25px 0}dialog{color:var(--ink);max-height:90vh;overflow:auto;border:0}dialog::backdrop{background:#140e0cdb;backdrop-filter:blur(5px)}.wood-dialog{width:min(740px,92vw);background:linear-gradient(#2c1d13ed,#2c1d13f5),url('assets/wood.png') center/cover;border:2px solid var(--gold);border-radius:16px;padding:40px;box-shadow:inset 0 0 0 6px #4b321e,inset 0 0 0 7px #9d7545,0 20px 70px #000}.wood-dialog>p{font-size:1.05rem}.dialog-close{position:absolute;right:18px;top:12px;border:0;background:#281d16bb;color:#ffe4af;border-radius:50%;width:35px;height:35px;font-size:28px;line-height:1;z-index:2}.rule-list{padding-left:23px}.rule-list li{padding:9px 0 9px 7px}.rule-list strong{color:var(--bright)}.gentle-note{color:var(--muted);font-style:italic}.small-dialog{width:min(550px,92vw)}.tome-dialog{width:min(1150px,96vw);background:transparent;padding:30px 15px 15px;overflow:auto}.tome-dialog>h2{text-align:center;text-shadow:0 2px 4px #000;margin:0 0 20px}.tome-dialog .dialog-close{top:0;right:12px}.book-pages{background:url('assets/tome.png') center/100% 100% no-repeat;display:grid;grid-template-columns:1fr 1fr;gap:13%;padding:60px 8.5% 58px;min-height:510px;color:#3e2b1d}.book-pages h3{font-size:1.6rem;white-space:nowrap}.book-pages a{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#4e341e;font-size:1.1rem;font-weight:bold;text-decoration:none;border-bottom:1px solid #997447;padding:13px 0;line-height:1.4}.book-pages a:hover{color:#855114;text-decoration:underline}.book-pages a span{font-size:14px}.book-pages p{font-size:.9rem;margin-top:25px;font-style:italic}.reference-note{font-size:12px;color:var(--muted);background:#24190fe8;padding:15px 20px;border-radius:8px;margin:15px 25px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.hero{margin-top:10vh}.site-header{padding-top:35px}.hero{padding:50px}}@media(max-width:1100px){.traveler-grid{grid-template-columns:repeat(5,1fr);gap:12px}.traveler-tile{min-height:190px}.traveler-tile .role{display:block}.round-layout{grid-template-columns:285px 1fr;gap:24px}.patient-card{padding:20px}.shield-button{gap:10px;padding:12px;min-height:110px}.shield-name{font-size:1.2rem}.shield-icon,.empty-shield{width:50px;height:70px}.wood-panel{padding:28px}.book-pages{padding:55px 8.5% 45px;gap:11%}.book-pages a{font-size:1rem}.book-pages h3{font-size:1.4rem}}
@media(max-width:820px){.site-header{padding:20px;align-items:flex-start}.wordmark{font-size:1.1rem}.wordmark span{font-size:9px}nav{gap:5px;flex-wrap:wrap;justify-content:end}.nav-button{font-size:.72rem;padding:9px 10px}.site-header nav>.nav-button:first-child{display:none}main{padding:12px 20px 35px}.hero{margin:7vh 0 35px;max-width:650px;padding:30px}.traveler-grid{grid-template-columns:repeat(3,1fr)}.ledger-heading{align-items:start}.ledger-heading h2{font-size:1.6rem}.progress-track{width:120px}.progress{min-width:120px}.round-layout{grid-template-columns:1fr}.patient-card{display:grid;grid-template-columns:100px 1fr;column-gap:20px}.patient-card h2,.patient-card>.role{grid-column:2}.patient-card h2{font-size:1.5rem}.portrait{grid-column:1;grid-row:1/4;width:90px;height:90px;margin:0}.facts{grid-column:1/-1;margin-top:10px;display:grid;grid-template-columns:1fr 1fr;column-gap:22px;font-size:1rem}.facts li{padding:8px 0}.facts li:first-child{border-top:1px solid #d3ab6d35}.verified{grid-column:1/-1;margin-top:8px}.shield-button{min-height:103px}.equipment-panel{padding-top:0}.round-heading{align-items:flex-start}.round-heading .game-button{font-size:.75rem;padding:8px 12px;min-height:40px}.round-heading h1{font-size:1.8rem}.book-pages{padding:55px 8% 45px;gap:12%;min-height:480px}.book-pages h3{font-size:1.1rem}.book-pages a{font-size:.9rem;padding:13px 0}.book-pages p{font-size:.8rem}.tome-dialog>h2{font-size:1.5rem}.wood-dialog{padding:32px}}
@media(max-width:520px){.site-header{display:block}.site-header nav{justify-content:flex-start;margin-top:17px}.wordmark{font-size:1.3rem}.hero{margin-top:25px;padding:27px 24px}.hero p.lead{font-size:1.05rem}.hero .action-row{gap:14px}.hero .game-button{width:100%}.hero-shields{justify-content:center}.wood-panel{padding:25px 19px}.traveler-grid{grid-template-columns:repeat(2,1fr);gap:15px}.traveler-tile{min-height:183px}.traveler-tile img{width:75px;height:75px}.traveler-tile .display{font-size:1rem}.ledger-heading{display:block}.progress{text-align:left;margin-top:18px}.progress-track{width:100%}.ledger-footer{align-items:start}.ledger-footer .game-button{font-size:.7rem}.round-heading{display:block}.round-heading .game-button{margin-top:8px}.patient-card{padding:17px}.facts{grid-template-columns:1fr;font-size:1rem}.shield-grid{gap:13px;margin:22px 0}.shield-button{flex-direction:column;text-align:center;gap:5px;padding:14px 8px;min-height:150px}.shield-name{font-size:1.15rem}.slot-state{font-size:10px;margin-top:4px}.shield-icon,.empty-shield{height:70px;width:55px}.round-actions .game-button{width:100%}.answer-row{padding:12px;gap:10px;grid-template-columns:43px 1fr}.answer-row .shield-icon,.answer-row .empty-shield{width:43px;height:62px}.answer-top{display:block}.answer-top h3{font-size:1.2rem}.status{display:block;margin:5px 0}.answer-row p{font-size:.96rem}.book-pages{display:block;background:#ead2a6 url('assets/tome.png') center/cover;padding:30px 28px;border:9px solid #674327;border-radius:12px}.book-pages section+section{margin-top:30px;padding-top:15px;border-top:2px solid #9f7a43}.book-pages h3{font-size:1.5rem}.book-pages a{font-size:1rem}.book-pages p{font-size:.9rem}.reference-note{margin:15px 0 0}.tome-dialog{padding:35px 0 0}.wood-dialog{padding:30px 24px}.end-panel{margin:5vh 0;padding:32px 23px}.end-panel h1{font-size:2rem}.end-panel .action-row .game-button{width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.text-button{background:none;border:0;border-bottom:1px solid var(--gold);color:var(--bright);padding:0;font:inherit}.draw-actions{margin-bottom:28px}.draw-actions>span{font-size:14px}.shield-flavor{display:block;color:var(--muted);font-size:12px;line-height:1.35;margin-top:5px}.shield-name{font-size:1.65rem}.game-button{font-size:1.15rem}.wordmark{font-size:1.7rem}.slot-state{font-size:10px}.shield-button .slot-state{margin-top:7px}@media(max-width:520px){.shield-flavor{font-size:11px}.game-button{font-size:1.08rem}.wordmark{font-size:1.6rem}}

.patient-quote{grid-column:1/-1;border-left:2px solid var(--gold);margin:0 0 14px;padding:6px 0 6px 12px;font-size:.94rem;font-style:italic;color:#f1d5a7;line-height:1.5}.patient-quote::before{content:open-quote}.patient-quote::after{content:close-quote}

.creator-credit{font-size:12px;letter-spacing:.06em;padding:8px 20px 20px}

/* Anchor scenery beneath the navigation; keep content close to the header. */
body{background-position:right 110px;background-size:auto max(100svh,56.4vw);background-repeat:no-repeat}
main{padding-top:32px}
.hero{max-width:720px;margin:0 0 32px;padding:34px 40px}
.hero h1{font-size:clamp(3.3rem,6vw,5rem);line-height:1.12;margin:18px 0 25px}
.hero .action-row{margin-top:24px}
@media(min-width:1500px){main{padding-top:40px}.hero{margin-top:0;padding:40px}}
@media(max-width:820px){body{background-size:auto 620px;background-position:right 110px}main{padding-top:20px}.hero{margin-top:0;padding:30px}}
@media(max-width:520px){body{background-size:auto 560px;background-position:right 150px}main{padding-top:16px}.hero{padding:27px 24px}.hero h1{font-size:3.3rem}}

/* Persistent navigation with visible, softly shaded wood grain. */
body::before{display:none}
.site-header{position:sticky;top:0;z-index:20;max-width:none;width:100%;background:linear-gradient(#21140db3,#1a100bc4),url('assets/wood.png') center/cover;border-bottom:1px solid #a47b43;box-shadow:inset 0 -4px 0 #120d09,inset 0 -5px 0 #6b4e2b,0 5px 18px #0008}
@media(min-width:1500px){.site-header{padding-left:max(38px,calc((100vw - 1316px)/2));padding-right:max(38px,calc((100vw - 1316px)/2))}}
html{scroll-padding-top:125px}
@media(max-width:520px){html{scroll-padding-top:165px}}

/* A compact, optional bard; wraps neatly with mobile navigation. */
.sound-toggle{white-space:nowrap;min-width:102px}
.sound-toggle[aria-pressed=true]{background:#3b4d31;border-color:#bca15c}
@media(max-width:820px){.sound-toggle{min-width:88px}}
@media(max-width:520px){.site-header nav{column-gap:7px;row-gap:8px}}

/* Independent music controls; the quiet track stays outside the changing game view. */
.site-header nav{flex-wrap:wrap;justify-content:flex-end}
.music-controls{display:inline-flex;align-items:center;gap:9px}
#music-volume{width:65px;accent-color:var(--gold);cursor:pointer;margin:0}
#music-toggle[aria-pressed=true]{background:#3b4d31;border-color:#bca15c}
.music-credit{text-align:center;font-size:12px;color:var(--muted);margin:15px 25px}.music-credit a{color:var(--bright)}
@media(max-width:520px){.site-header nav{justify-content:flex-start}#music-volume{width:60px}.music-credit{margin:15px 0}}

/* A small wax seal marks travelers whose counsel has been revealed. */
.visited-mark{position:static;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;color:#f0d7a0;font:1rem/1.2 Pirata,Georgia,serif}
.visited-mark::before{content:"✓";display:grid;place-items:center;width:23px;height:23px;flex:0 0 23px;border:1px solid #c08a54;border-radius:46% 54% 48% 52%;background:radial-gradient(circle at 35% 25%,#a3513c,#692c22 75%);box-shadow:inset 0 0 0 2px #54271c,0 2px 3px #0006;color:#efcf8e;font:bold 13px Georgia,serif}
/* Match the fixed background artwork so light stays on its candle flames. */
.candle-glow{position:fixed;right:0;top:110px;width:max(177.6833svh,100.2134vw);height:max(100svh,56.4vw);z-index:-1;pointer-events:none;overflow:hidden}
.candle-glow i{position:absolute;left:var(--x);top:var(--y);width:8%;height:13%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,#ffe1a140 0%,#ffc16025 18%,#f88b3014 40%,transparent 70%);opacity:.5;animation:candle-breathe 5.5s ease-in-out infinite alternate}
.candle-glow i:nth-child(2){animation-delay:-2.8s;animation-duration:6.8s}.candle-glow i:nth-child(3){animation-delay:-1.2s}.candle-glow i:nth-child(4){animation-delay:-4s;animation-duration:7.2s}
@keyframes candle-breathe{0%,100%{opacity:.35;transform:translate(-50%,-50%) scale(.94)}45%{opacity:.75;transform:translate(-50%,-50%) scale(1.05)}70%{opacity:.55;transform:translate(-50%,-50%) scale(1)}}
@media(max-width:820px){.candle-glow{width:1101.64px;height:620px;top:110px}}
@media(max-width:520px){.candle-glow{width:995.03px;height:560px;top:150px}.visited-mark{font-size:.95rem}}
@media(prefers-reduced-motion:reduce){.candle-glow i{animation:none;opacity:.45}}

/* Completed travelers wear a corner ribbon, visible across the whole ledger. */
.traveler-tile{overflow:hidden}
.traveler-tile:has(.visited-mark){background:linear-gradient(#526043,#303e2b);border-color:#cbb77c;box-shadow:inset 0 0 0 4px #35412b,inset 0 0 0 5px #a99c69,0 5px 0 #21170f}
.visited-mark{position:absolute;z-index:1;top:20px;right:-30px;width:176px;height:32px;margin:0;gap:6px;transform:rotate(35deg);background:linear-gradient(#6d3127,#4f241c);border-top:1px solid #dbb56d;border-bottom:1px solid #dbb56d;box-shadow:0 3px 6px #0007;color:#ffe4ad;font-size:14px;white-space:nowrap;pointer-events:none}
.visited-mark::before{width:20px;height:20px;flex-basis:20px;font-size:11px}
@media(max-width:1100px){.visited-mark{top:auto;bottom:12px;left:-5px;right:auto;width:calc(100% + 10px);height:29px;transform:rotate(-5deg);font-size:14px}.traveler-tile:has(.visited-mark){padding-bottom:48px;min-height:210px}}

/* Occupations are part of every traveler card, including compact layouts. */
.traveler-tile .role{display:block;text-align:center;line-height:1.4;overflow-wrap:break-word;max-width:100%}
@media(max-width:1100px){.traveler-tile,.traveler-tile:has(.visited-mark){min-height:245px;padding-bottom:52px}.traveler-tile .role{font-size:12px;margin-top:7px}}
@media(max-width:520px){.traveler-tile,.traveler-tile:has(.visited-mark){min-height:235px}.traveler-tile .role{font-size:12px}}

.version-label{white-space:nowrap}

/* Tiny movements are aligned to the original room image, behind all game UI. */
.candle-glow .lantern-halo{width:9%;height:19%;background:radial-gradient(ellipse,#ffe5a535,#ffb13e1c 30%,transparent 68%);animation-duration:8s;animation-delay:-3s}
.candle-glow .lantern-halo:nth-of-type(even){animation-duration:10s;animation-delay:-6s}
.night-stars b,.castle-windows b{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;animation-delay:var(--delay)}
.night-stars b{width:.22%;height:.39%;background:#e5f1ff;box-shadow:0 0 5px 2px #a7cfff65;opacity:.1;animation:star-twinkle 9s ease-in-out infinite;animation-delay:var(--delay)}
.night-stars b::before,.night-stars b::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#d9e9ff80;border-radius:50%}
.night-stars b::before{width:1px;height:260%}.night-stars b::after{height:1px;width:260%}
.castle-windows b{width:.36%;height:.65%;background:#ffd18c40;box-shadow:0 0 8px 4px #ffbd6330;opacity:.25;animation:distant-window 13s ease-in-out infinite;animation-delay:var(--delay)}
.hearth-glow{position:absolute;left:93%;top:60%;width:25%;height:34%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,#ffb53b20,#f77f2310 40%,transparent 70%);animation:hearth-warmth 6s ease-in-out infinite alternate}
@keyframes star-twinkle{0%,65%,100%{opacity:.08}30%{opacity:.62}46%{opacity:.18}}
@keyframes distant-window{0%,100%{opacity:.2}45%{opacity:.6}75%{opacity:.35}}
@keyframes hearth-warmth{0%,100%{opacity:.4}40%{opacity:.8}70%{opacity:.55}}
.room-motion-option{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.95rem;margin:20px 0}.room-motion-option input{accent-color:var(--gold);width:18px;height:18px}
.room-still .candle-glow *{animation:none!important}.room-still .night-stars,.room-still .castle-windows,.room-still .hearth-glow,.room-still .lantern-halo{display:none}
.room-paused .candle-glow *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.candle-glow *{animation:none!important}.night-stars,.castle-windows,.hearth-glow,.lantern-halo{display:none}}

/* More visible warm light and motion, still confined to the room's light sources. */
.candle-glow i{background:radial-gradient(ellipse,#fff1b680 0%,#ffc1604a 18%,#f88b3028 40%,transparent 72%);animation-duration:4.5s}
.candle-glow .lantern-halo{width:11%;height:21%;background:radial-gradient(ellipse,#fff1b870,#ffc76640 26%,#ff992918 48%,transparent 72%);animation-duration:5.5s}
.night-stars b{width:.27%;height:.48%;box-shadow:0 0 7px 3px #b6d8ff99;animation-duration:6.5s}
.castle-windows b{background:#ffe1a699;box-shadow:0 0 9px 5px #ffbf6860;animation-duration:8s}
.hearth-glow{background:radial-gradient(ellipse,#ffc24d50,#ff91282a 38%,transparent 72%);animation-duration:3.5s}
@keyframes candle-breathe{0%,100%{opacity:.3;transform:translate(-50%,-50%) scale(.9)}45%{opacity:.95;transform:translate(-50%,-50%) scale(1.1)}70%{opacity:.55;transform:translate(-50%,-50%) scale(1)}}
@keyframes star-twinkle{0%,65%,100%{opacity:.08}30%{opacity:1}46%{opacity:.25}}
@keyframes distant-window{0%,100%{opacity:.22}45%{opacity:.9}75%{opacity:.45}}
@keyframes hearth-warmth{0%,100%{opacity:.35}40%{opacity:.95}70%{opacity:.55}}

/* Original painted flames remain intact; only their reflected warmth shifts. */
.hearth-glow{background:radial-gradient(ellipse,#ff9f3020,#e4771d0c 45%,transparent 72%);animation-duration:5s}
.potion-bubbles{position:absolute;left:var(--x);top:var(--y);width:1.35%;height:2.8%;transform:translate(-50%,-50%);clip-path:ellipse(43% 49% at 50% 50%);overflow:hidden;--bubble:#d9f3a5}
.purple-potion{--bubble:#e5b9ff}.amber-potion{--bubble:#ffe4ad}
.potion-bubbles b{position:absolute;bottom:-18%;left:35%;width:17%;aspect-ratio:1;border:1px solid var(--bubble);border-radius:50%;opacity:0;animation:potion-rise 5.8s ease-in infinite}
.potion-bubbles b:nth-child(2){left:58%;width:12%;animation-delay:-2s;animation-duration:7s}.potion-bubbles b:nth-child(3){left:28%;width:11%;animation-delay:-4s;animation-duration:6.5s}
.cauldron-bubbles{position:absolute;left:86.6%;top:57.5%;width:4.5%;height:1.6%;transform:translate(-50%,-50%);overflow:visible}
.cauldron-bubbles b{position:absolute;left:32%;bottom:0;width:7%;aspect-ratio:1;border:1px solid #f5d5a288;border-radius:50%;opacity:0;animation:cauldron-pop 6.5s ease-out infinite}
.cauldron-bubbles b:nth-child(2){left:58%;animation-delay:-2.5s}.cauldron-bubbles b:nth-child(3){left:45%;width:5%;animation-delay:-4s;animation-duration:8s}
.cauldron-steam{position:absolute;left:83.8%;top:45.2%;width:5.5%;height:12.8%;overflow:hidden;pointer-events:none}
.cauldron-steam path{fill:none;stroke:#e3ceb0;stroke-width:2;stroke-linecap:round;filter:blur(1.5px);opacity:0;transform-box:fill-box;transform-origin:50% 100%;animation:steam-drift 9s ease-in-out infinite}.cauldron-steam path:nth-child(2){animation-delay:-3s}.cauldron-steam path:nth-child(3){animation-delay:-6s;stroke-width:1.5}
@keyframes potion-rise{0%,15%{transform:translateY(0) scale(.55);opacity:0}28%{opacity:.6}78%{opacity:.35}95%,100%{transform:translateY(-30px) scale(1);opacity:0}}
@keyframes cauldron-pop{0%,55%{transform:translateY(0) scale(.45);opacity:0}65%{opacity:.5}82%{transform:translateY(-7px) scale(1.1);opacity:.2}90%,100%{transform:translateY(-9px) scale(1.25);opacity:0}}
@keyframes steam-drift{0%,100%{opacity:0;transform:translateY(5px) scaleX(.8)}40%{opacity:.18}75%{opacity:.08;transform:translateY(-12px) scaleX(1.08)}}
.room-still .potion-bubbles,.room-still .cauldron-bubbles,.room-still .cauldron-steam{display:none}
@media(prefers-reduced-motion:reduce){.potion-bubbles,.cauldron-bubbles,.cauldron-steam{display:none}}


/* A breathing pool of hearth light and a few fading embers; painted flames stay still. */
.hearth-glow{left:94%;top:60%;width:24%;height:32%;background:radial-gradient(ellipse,#ffb5453b 0%,#ed8a2422 32%,#dc74140d 53%,transparent 73%);transform-origin:50% 60%;animation:hearth-breathe 5.5s ease-in-out infinite alternate}
@keyframes hearth-breathe{0%{transform:translate(-50%,-50%) scale(.82);opacity:.35}45%{transform:translate(-50%,-50%) scale(1.06);opacity:.7}100%{transform:translate(-50%,-50%) scale(1.2);opacity:.95}}
.hearth-embers{position:absolute;left:89%;top:48%;width:11%;height:20%;overflow:hidden;pointer-events:none}
.hearth-embers b{position:absolute;left:var(--left);bottom:8%;width:2px;height:3px;border-radius:50%;background:#ffc16c;box-shadow:0 0 4px 1px #ff7b2450;opacity:0;animation:ember-rise var(--duration) linear infinite;animation-delay:var(--delay)}
@keyframes ember-rise{0%,40%{opacity:0;transform:translate(0,0) scale(.6)}47%{opacity:.7}62%{opacity:.4}78%,100%{opacity:0;transform:translate(var(--drift),-90px) scale(.2)}}
.room-still .hearth-embers{display:none}
@media(prefers-reduced-motion:reduce){.hearth-embers{display:none}}

.play-count-note{display:block;font-size:11px;letter-spacing:0;max-width:540px;margin:9px auto 5px;color:#bca98b}.keeper-link{font-size:12px;letter-spacing:0;color:#c3ad8a;text-underline-offset:3px}

.site-header .apothecary-home{background:linear-gradient(#506843,#32482c);border-color:#bca15c;color:#f9e8c6}.site-header .apothecary-home:hover{background:linear-gradient(#607b50,#405b36);border-color:#efc679}
