/* PIXEL CITADEL reference finish: dark violet world, warm parchment panels, amber play accents. */
:root{--ink:#292536;--paper:#eadfc5;--paper-2:#e4d5b7;--night:#1c1a27;--sun:#f2a65a;--sun-deep:#d94838;--border:#756b65}
body,.screen-intro,.screen-hall,.screen-board{background:#2d283e;color:#f4f4f6}
.site-nav{background:linear-gradient(180deg,#1c1a27ed,#1c1a2770);border-bottom:1px solid #e8dcc42a}
.site-nav.on-light{background:#1c1a27ed;color:#f4f4f6;border-color:#ffffff28}
.nav-cta{color:#f4f4f6;border:2px solid #e8dcc4;background:#1c1a276e;border-radius:2px}
.nav-cta:hover,.nav-link.is-current{color:#fff;background:#d94838;border-color:#f2a65a}
.nav-link.is-current{padding-inline:9px}

/* Desktop hero: keep the title in clean dark space and the castle in a distinct framed panel. */
.hero{min-height:670px;background:#1c1a27;color:#f4f4f6}
.hero-sky{background:radial-gradient(ellipse at 78% 32%,#f2a65a2a,transparent 35%),linear-gradient(145deg,#2d283e,#1c1a27 70%)}
.sun-pixel,.cloud,.hero-pixel-keep,.hero-vines{display:none!important}
.hero-art{inset:112px clamp(26px,5vw,84px) 84px auto;width:min(47vw,700px);height:auto;z-index:0;overflow:hidden;border:4px solid #e8dcc4;border-radius:3px;outline:1px solid #17131f;box-shadow:8px 8px 0 #111019,0 24px 70px #0009;background-color:#1c1a27!important;background-image:linear-gradient(0deg,#1c1a2761,transparent 48%),linear-gradient(90deg,#1c1a2728,transparent 40%),url('/assets/reference-castle.jpg')!important;background-position:center,center,center 48%!important;background-size:cover,cover,cover!important;background-repeat:no-repeat!important;transform:scale(1);animation:art-breathe 34s ease-in-out infinite alternate}
.hero-copy{z-index:2;width:min(51%,720px);max-width:720px;padding:clamp(165px,20vh,210px) 0 115px clamp(28px,8vw,122px)}
.hero .eyebrow,.hero-facts,.gate-hint,.scroll-cue{color:#e8dcc4}
.hero h1{font-size:clamp(54px,7.2vw,98px);line-height:1.12;letter-spacing:-.06em;text-shadow:3px 4px 0 #111019,0 12px 25px #0009}
.hero-title-kicker,.hero-title-party{display:block;color:#f2a65a!important}
.hero-subtitle{color:#f4f4f6}.hero-subtitle em{color:#f2a65a}
.hero #enterCastle{color:#1c1a27;background:#f2a65a;border:3px solid #1c1a27;border-radius:2px;box-shadow:5px 5px 0 #111019}
.hero #enterCastle:hover{background:#ffc26a}.hero #enterCastle:before{color:#d94838}
.text-button{color:#e8dcc4}.text-button:hover{color:#f2a65a}
.hero-art,.hall-art,#dungeonArt{image-rendering:auto}
.hall-scene{background:#1c1a27;color:#f4f4f6}
.hall-art{inset:62px clamp(25px,5vw,80px) 36px auto;width:min(46vw,690px);height:auto;z-index:0;overflow:hidden;border:4px solid #e8dcc4;border-radius:3px;box-shadow:8px 8px 0 #111019,0 22px 60px #0009;background-color:#1c1a27!important;background-image:linear-gradient(0deg,#1c1a2752,transparent 54%),url('/assets/reference-hall.jpg')!important;background-position:center,center 52%!important;background-size:cover,cover!important;background-repeat:no-repeat!important;animation:art-breathe 34s ease-in-out infinite alternate}
.hall-veil{z-index:1;background:linear-gradient(90deg,#1c1a27 0%,#1c1a27 38%,#1c1a275e 56%,transparent 74%),linear-gradient(0deg,#1c1a2770,transparent 48%)}
.hall-header{position:relative;z-index:2;width:min(50%,620px);margin-left:clamp(28px,7vw,105px)}

/* Deep violet ground and parchment cards echo the deck's menu and rules slides. */
.world-preview,.hall-guide,.screen-board{background:#2d283e!important;color:#f4f4f6}
.world-preview .section-heading h2,.guide-aside h2,.board-page-head h1{color:#f4f4f6}
.world-preview .section-heading h2 span,.board-page-head h1 span{color:#f2a65a}
.world-preview .section-heading>p:last-child,.preview-foot{color:#e8dcc4}
.world-preview .eyebrow-dark{color:#f2a65a}
.preview-ribbon{border-color:#756b65}
.preview-portal{background:#e8dcc4;border:4px solid #1c1a27;box-shadow:5px 5px 0 #17131f;color:#292536}
.preview-portal+.preview-portal{margin-left:8px}.preview-portal:hover{background:#f2a65a;transform:translateY(-2px)}
.preview-portal small{color:#625e61}.preview-portal b{color:#292536}.portal-magma .portal-icon{color:#d94838;background:#f3c7a6;border:2px solid #1c1a27}.portal-ice .portal-icon{color:#236a8b;background:#bfe4eb;border:2px solid #1c1a27}.portal-electric .portal-icon{color:#624d16;background:#fde74c;border:2px solid #1c1a27}
.site-footer{background:#1c1a27;border-top:5px solid #111019;color:#f4f4f6}.footer-mark{color:#f2a65a}
.guide-aside .eyebrow-dark{color:#f2a65a}.guide-aside>p:not(.eyebrow){color:#e8dcc4}.guide-index{border-color:#756b65}.guide-index a{border-color:#756b65;color:#f2a65a}.guide-index a span{color:#f4f4f6}.aside-seal{border-color:#f2a65a;color:#f2a65a;box-shadow:4px 4px 0 #17131f}
.guide-card,.hall-ready,.game-panel,.yut-box,.branch-choice,.status-card,.piece-picker,.move-choice,.boss-card,.dungeon-lore{color:#292536!important;border:3px solid #201b2b!important;border-radius:2px!important;background:#efe2c8!important;box-shadow:5px 5px 0 #17131f!important}
.guide-card h3,.guide-card>p,.hall-ready,.hall-ready p,.panel-topline,.player-row,.piece-picker-label,.piece-picker-label b,.yut-box-title,.roll-result,.roll-hint,.move-choice-label,.status-card,.status-card p,.panel-dungeons button,.boss-info>b,.boss-status,.dungeon-lore,.dungeon-note-row span{color:#292536!important}
.guide-number,.boss-kicker{color:#b45142!important}.result-table,.result-table>div{border-color:#a89980!important;color:#383044!important}.result-table>div:first-child{color:#8d4d42!important}.result-table>div span:first-child{color:#292536!important}
.mini-rule,.element-list>div{background:#e4d5b7}.mini-rule small,.element-list small,.guide-aside>p:not(.eyebrow){color:#625e61}.rule-emblem{background:#d7c6a5;color:#a94b3e}.hall-ready{padding:18px!important}

/* Castle-backed board: retain the game's route SVG and interactive stops above the deck art. */
.board-page-head .eyebrow{color:#f2a65a}.board-page-head p:not(.eyebrow){color:#e8dcc4}
.board-head-actions .turn-chip{color:#292536;border:2px solid #201b2b;background:#efe2c8;border-radius:2px}
.board-world{align-self:start;width:100%;max-width:100%;min-width:0;min-height:0;height:auto;aspect-ratio:1.2;border:5px solid #e8dcc4!important;outline:2px solid #1c1a27!important;background:#2d283e!important;box-shadow:7px 7px 0 #17131f!important}
.board-world:before{background-image:linear-gradient(180deg,#17131f35,#17131f12 48%,#17131f49),url('/assets/reference-board.jpg')!important;background-position:center!important;background-size:cover!important;opacity:.78!important;filter:saturate(.95)!important}
.board-wash{background:linear-gradient(180deg,#17131f52,#3329471c 50%,#17131f65)!important;mix-blend-mode:normal!important}
.map-top-label{color:#fff7e9}.map-node{border:2px solid #ead8ae;background:#272233e8;color:#fff2cf;box-shadow:0 2px 0 #17131f,0 0 0 3px #392e3c59}.map-node:hover,.map-node.visited{background:#f2a65a;color:#292536;border-color:#fff0cd}.map-node.player-here{background:#d94838;color:white;border-color:#ffe2a1}.map-node.secret-node{background:#8b7042;color:#fff5dd}.map-node.blocked-node{background:#a6463d;color:#fff4e9}.node-caption{background:#1c1a27ed;color:#fff7e9;border-color:#f2a65a}
.game-panel{padding:18px!important}.panel-topline{color:#9d4e42!important}.player-avatar{border:2px solid #201b2b;background:#d7c6a5;color:#292536}.yut-box,.branch-choice,.status-card,.piece-picker,.move-choice{background:#f6ecd8!important;border-color:#5c5261!important;border-radius:2px!important}.piece-picker-label,.move-choice-label{color:#514658!important}.piece-picker-label b,.move-choice-label b{color:#a84e42!important}.piece-choice{color:#292536;border:2px solid #6d5d62;border-radius:2px;background:#fff6e4}.piece-choice[aria-pressed=true]{background:#f2d5a5;border-color:var(--piece-color)}.step-choice{color:#292536;border:2px solid #6d5d62;border-radius:2px;background:#fff6e4}.step-choice[aria-pressed=true]{color:#fff7e9;border-color:#8e322f;background:#bc5348}.button-gold,.confirm-move,.boss-attack{color:#201b2b!important;border:3px solid #201b2b!important;border-radius:2px!important;background:linear-gradient(110deg,#ffc15f,#e88f4d)!important;box-shadow:4px 4px 0 #17131f!important}.button-outline{color:#292536!important;border:2px solid #41374c!important;border-radius:2px!important;background:#efe2c8!important}.button-outline:hover{background:#fff1d7!important;border-color:#c06b4e!important}.panel-dungeons button{color:#292536!important;border-bottom:1px solid #b9a98f!important;border-radius:2px!important}.panel-dungeons button:hover{background:#e4d5b7!important}

/* Elemental scenes: actual separate illustrations from the attached deck. */
.screen-dungeon,.dungeon-scene{background:#1c1a27!important;color:#f4f4f6}.dungeon-scene{border-radius:0 0 3px 3px}.dungeon-content h1{color:#f4f4f6}.dungeon-lede,.dungeon-content .eyebrow{color:#e8dcc4}.dungeon-art{border:4px solid #e8dcc4!important;border-radius:3px!important;box-shadow:7px 7px 0 #111019,0 20px 56px #0009!important;background:#17131f!important;animation:art-breathe 34s ease-in-out infinite alternate}
#dungeonArt{background-image:url('/assets/reference-magma.jpg')!important;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important}
.theme-magma #dungeonArt,.theme-magma .dungeon-art::before{background-image:url('/assets/reference-magma.jpg')!important;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;opacity:1!important;mix-blend-mode:normal!important}
.theme-ice #dungeonArt,.theme-ice .dungeon-art::before{background-image:url('/assets/reference-ice.jpg')!important;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;opacity:1!important;mix-blend-mode:normal!important}
.theme-electric #dungeonArt,.theme-electric .dungeon-art::before{background-image:url('/assets/reference-electric.jpg')!important;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;opacity:1!important;mix-blend-mode:normal!important}
.dungeon-overlay{background:linear-gradient(0deg,#1110199c,transparent 46%),linear-gradient(90deg,#11101918,transparent 45%)!important}
.dungeon-tags span,.dungeon-note-row span{color:#292536!important;border:2px solid #5c5261!important;border-radius:2px!important;background:#efe2c8!important}.dungeon-lore{padding:18px!important}.boss-card{border-color:#c85c49!important}.boss-status{color:#292536!important;border-color:#b3a48c!important}.boss-attack:disabled{color:#67606d!important;border-color:#5f5964!important;background:#d4c6ad!important}

@media(max-width:760px){
 .site-nav{background:#1c1a27ed}.site-nav .nav-links,.site-nav.on-light .nav-links{background:#1c1a27f7;border-top:1px solid #756b65}.site-nav .nav-link,.site-nav.on-light .nav-link{color:#e8dcc4}.site-nav .nav-link:hover,.site-nav .nav-link.is-current{color:#fff;background:#d94838;border-color:#f2a65a}
 .hero{height:auto;min-height:1090px}.hero-copy{width:auto;max-width:none;margin:0;padding:132px 22px 18px}.hero h1{font-size:clamp(48px,12vw,78px)}.hero-art{inset:610px 18px 80px 18px;width:auto;height:auto;min-height:350px}.hero-facts{flex-wrap:wrap;gap:10px 18px}.gate-hint{right:29px;bottom:91px}
 .world-preview{padding:68px 21px 54px}.preview-ribbon{grid-template-columns:1fr}.preview-portal+.preview-portal{margin-left:0}.preview-portal{min-height:72px}.preview-foot{align-items:flex-start;flex-wrap:wrap;line-height:1.7}.preview-foot .text-button{width:100%;margin-left:28px;text-align:left}
 .hall-scene{min-height:925px}.hall-header{width:auto;margin:0 22px;padding:135px 0 20px}.hall-header h1{font-size:41px}.hall-header>p:not(.eyebrow){color:#e8dcc4;font-size:12px}.hall-art,.hall-veil{inset:515px 18px 42px;right:18px;left:18px;width:auto;height:auto;border:4px solid #e8dcc4;border-radius:3px}.hall-veil{display:none}.hall-guide{display:block;padding:42px 21px 48px}.guide-aside{position:static}.guide-index{grid-template-columns:1fr 1fr;column-gap:13px;margin-top:14px}.guide-content{gap:10px;margin-top:25px}.guide-card{padding:18px}.element-list{grid-template-columns:1fr}.hall-ready{align-items:flex-start;flex-direction:column}
 .screen-board{padding-top:120px}.board-page-head{display:block}.board-head-actions{margin-top:12px;justify-content:space-between}.board-layout{grid-template-columns:1fr;gap:13px;margin-top:19px}.board-world{min-height:auto;aspect-ratio:.98}.map-routes{inset:9% 2% 6%;height:86%}.map-nodes{inset:9% 2% 6%}.map-node{width:30px;height:30px;font-size:10px}.map-node.player-here{width:39px;height:39px}.map-top-label{top:10px;left:10px;right:10px;font-size:7px}.node-caption{font-size:7px}.game-panel{padding:13px!important}.piece-options{gap:4px}.boss-card{grid-template-columns:36px minmax(0,1fr) auto;gap:7px}.boss-avatar{width:36px;height:36px}
 .dungeon-scene{min-height:1020px}.dungeon-content.stage-shell{width:auto;max-width:none;margin:0 22px;padding:126px 0 20px}.dungeon-content h1{font-size:clamp(40px,11vw,64px)}.dungeon-art,.dungeon-overlay{inset:565px 18px 59px;border-radius:3px}.dungeon-actions{align-items:stretch;flex-direction:column;width:min(100%,320px)}.dungeon-actions .button{width:100%}.dungeon-coordinates{left:28px;right:28px;bottom:74px}.dungeon-lore{padding-block:30px!important}.dungeon-note-row span{width:100%}
}
@media(max-width:390px){.hero{min-height:1110px}.hero-art{inset:640px 15px 80px 15px;width:auto}.hero-copy{padding-inline:20px}.map-node{width:26px;height:26px}.map-node.player-here{width:35px;height:35px}.board-page-head h1{font-size:30px}.dungeon-content.stage-shell{margin-inline:19px}.dungeon-art,.dungeon-overlay{inset-inline:15px}}
@media(prefers-reduced-motion:reduce){.hero-art,.hall-art,#dungeonArt,.dungeon-art::before,.board-world::after,.map-node.secret-node{animation:none!important;transform:none!important}}


/* Final user art direction: anime title lettering, larger diagonal scenery, black non-photo surfaces, and a stronger game HUD. */
:root {
  --ink: #f4f0e9;
  --paper: #09090b;
  --paper-2: #121216;
  --night: #050506;
  --sun: #ffc45d;
  --sun-deep: #f04d42;
  --border: #3d3941;
  --font-display: "Black Han Sans", "Noto Sans KR", sans-serif;
}
html, body { background: #050506; color: #f4f0e9; }
body, .screen-intro, .screen-hall, .screen-board, .world-preview, .hall-guide,
.site-footer, .screen-dungeon, .dungeon-scene { background-color: #050506 !important; color: #f4f0e9; }
.site-nav, .site-nav.on-light { background: #050506f2; color: #f4f0e9; border-color: #343139; }
.nav-link, .nav-cta, .brand, .button, .text-button, .guide-index a { color: #f4f0e9; }
.site-nav .brand span:last-child, .hero h1, .hall-header h1, .section-heading h2,
.guide-aside h2, .guide-card h3, .board-page-head h1, .dungeon-content h1,
.preview-portal b, .boss-info>b, .button, .nav-cta { font-family: var(--font-display); letter-spacing: .01em; }
.nav-link.is-current { color: #fff; background: #f04d42; border-color: #ffc45d; }
.nav-cta { background: #111114; border-color: #ffc45d; }
.nav-cta:hover, .nav-link:hover { background: #f04d42; border-color: #ffc45d; }

/* Larger right-side castle panel; a clipped edge makes the page split diagonally. */
.hero, .hero-sky { background: #050506 !important; }
.hero { overflow: hidden; }
.sun-pixel, .cloud, .hero-pixel-keep, .hero-vines { display: none !important; }
.hero-art {
  inset: 82px 0 22px auto;
  width: min(66vw, 900px);
  height: auto;
  min-height: 0;
  border: 3px solid #ffc45d;
  border-radius: 0;
  outline: none;
  box-shadow: 0 0 0 2px #151318, 0 18px 48px #000;
  clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
  background-color: #050506 !important;
  background-image: linear-gradient(100deg, #050506 0%, #050506df 17%, #05050676 39%, transparent 66%), linear-gradient(0deg, #05050670, transparent 48%), url('/assets/reference-castle.jpg') !important;
  background-position: center, center, center 48% !important;
  background-size: cover, cover, cover !important;
  background-repeat: no-repeat !important;
  filter: saturate(1.08) contrast(1.04);
  transform: scale(1.01);
  animation: art-breathe 30s ease-in-out infinite alternate;
}
.hero-copy { width: min(48%, 650px); max-width: 650px; }
.hero h1 { letter-spacing: -.025em; text-shadow: 3px 4px 0 #111, 0 10px 30px #000; }
.hero-title-kicker, .hero-title-party { color: #ffbb55 !important; }
.hero-subtitle, .hero .eyebrow, .hero-facts, .gate-hint, .scroll-cue { color: #f4f0e9; }
.hero-subtitle em { color: #ffc45d; }
.hero #enterCastle, .button-gold, .confirm-move, .boss-attack {
  color: #09090b !important;
  border: 2px solid #ffe19a !important;
  border-radius: 2px !important;
  background: linear-gradient(130deg, #ffd36e, #ff9c49 58%, #ff6a48) !important;
  box-shadow: 0 0 0 2px #151318, 0 5px 0 #000, 0 0 22px #ffad4b40 !important;
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.hero #enterCastle:hover, .button-gold:hover, .confirm-move:hover, .boss-attack:hover { transform: translateY(-2px); filter: brightness(1.08); }
.text-button, .text-button.dark { color: #f4f0e9; }
.text-button:hover { color: #ffc45d; }

/* Great hall artwork keeps the same cinematic diagonal split. */
.hall-scene { background: #050506 !important; color: #f4f0e9; }
.hall-art {
  inset: 42px 0 26px auto;
  width: min(65vw, 900px);
  height: auto;
  border: 3px solid #ffc45d;
  border-radius: 0;
  box-shadow: 0 0 0 2px #151318, 0 18px 48px #000;
  clip-path: polygon(17% 0, 100% 0, 100% 100%, 0 100%);
  background-color: #050506 !important;
  background-image: linear-gradient(100deg, #050506 0%, #050506cb 16%, #05050652 40%, transparent 68%), linear-gradient(0deg, #05050682, transparent 54%), url('/assets/reference-hall.jpg') !important;
  background-position: center, center, center 52% !important;
  background-size: cover, cover, cover !important;
  background-repeat: no-repeat !important;
  filter: saturate(1.08) contrast(1.04);
}
.hall-veil { background: linear-gradient(90deg, #050506 0%, #050506 27%, #050506d9 43%, #05050647 67%, transparent 90%), linear-gradient(0deg, #05050690, transparent 56%) !important; }
.hall-header { width: min(49%, 640px); }
.hall-header h1 span, .section-heading h2 span, .board-page-head h1 span { color: #ffc45d; }

/* Every non-photo surface becomes black; cream cards are replaced by dark quest panels. */
.world-preview, .hall-guide, .screen-board, .site-footer { background: #050506 !important; color: #f4f0e9 !important; }
.world-preview .section-heading h2, .guide-aside h2, .board-page-head h1 { color: #f4f0e9; }
.world-preview .section-heading>p:last-child, .preview-foot, .board-page-head p:not(.eyebrow),
.guide-aside>p:not(.eyebrow), .guide-card>p, .guide-card h3, .hall-ready,
.hall-ready p, .panel-topline, .player-row, .piece-picker-label, .piece-picker-label b,
.yut-box-title, .roll-result, .roll-hint, .move-choice-label, .status-card,
.status-card p, .panel-dungeons button, .boss-info>b, .boss-status, .dungeon-lore,
.dungeon-note-row span { color: #f4f0e9 !important; }
.world-preview .eyebrow-dark, .guide-aside .eyebrow-dark, .guide-number, .boss-kicker,
.panel-topline, .map-top-label, .section-heading .eyebrow-dark { color: #ffc45d !important; }
.preview-ribbon, .preview-portal, .guide-index, .guide-index a { border-color: #38343c; }
.preview-portal {
  min-height: 115px;
  color: #f4f0e9;
  background: #09090b !important;
  border: 2px solid #66502b !important;
  box-shadow: 0 0 0 2px #151318, 0 8px 0 #000 !important;
}
.preview-portal:hover { background: #151318 !important; border-color: #ffc45d !important; }
.preview-portal small { color: #bcb4a7; }
.preview-portal b { color: #fff6e7; }
.portal-magma .portal-icon, .portal-ice .portal-icon, .portal-electric .portal-icon {
  background: #101014; border: 1px solid #5a4d36;
}
.portal-magma .portal-icon { color: #ff7953; }
.portal-ice .portal-icon { color: #7cdeff; }
.portal-electric .portal-icon { color: #ffe16a; }
.site-footer { border-top: 1px solid #39343c; }
.guide-index a { color: #ffc45d; }
.guide-index a:hover { background: #121216; border-color: #ffc45d; }
.guide-index a span { color: #f4f0e9; }
.aside-seal { border-color: #ffc45d; color: #ffc45d; }
.guide-card, .hall-ready, .game-panel, .yut-box, .branch-choice, .status-card,
.piece-picker, .move-choice, .boss-card, .dungeon-lore {
  color: #f4f0e9 !important;
  border: 1px solid #55462e !important;
  border-radius: 3px !important;
  background: #09090b !important;
  box-shadow: 0 0 0 2px #151318, 0 8px 0 #000, 0 14px 30px #0008 !important;
}
.guide-card h3 { color: #fff6e7 !important; }
.guide-card>p, .hall-ready p { color: #c7c0b6 !important; }
.result-table, .result-table>div { border-color: #38343c !important; color: #d8d1c7 !important; }
.result-table>div:first-child { color: #ffc45d !important; }
.result-table>div span:first-child { color: #fff6e7 !important; }
.mini-rule, .element-list>div { background: #111115 !important; border: 1px solid #35323a; }
.mini-rule small, .element-list small { color: #c7c0b6 !important; }
.rule-emblem { background: #151318; color: #ffc45d; border: 1px solid #6e562c; }

/* The map remains photographic and readable; the adjacent panels now read as a game HUD. */
.board-page-head .eyebrow { color: #ffc45d; }
.board-head-actions .turn-chip { color: #ffc45d; border: 1px solid #745a2b; background: #0b0b0e; }
.board-world {
  border: 3px solid #ffc45d !important;
  outline: 2px solid #17151a !important;
  background: #050506 !important;
  box-shadow: 0 0 0 3px #17151a, 0 10px 0 #000, 0 18px 42px #0009 !important;
}
.board-world:before { opacity: .92 !important; filter: saturate(1.12) contrast(1.04) !important; }
.board-wash { background: linear-gradient(180deg, #05050640, #05050608 47%, #0505066b) !important; }
.map-node { border: 2px solid #f5d88e; background: #08090be8; color: #fff4da; box-shadow: 0 0 0 2px #07070a, 0 0 14px #000; }
.map-node:hover, .map-node.visited { background: #ffc45d; color: #09090b; border-color: #fff2c9; }
.map-node.player-here { background: #f04d42; color: #fff; border-color: #ffe6a9; box-shadow: 0 0 0 3px #09090b, 0 0 22px #f04d42aa; }
.map-node.secret-node { background: #805d20; color: #fff1c9; border-color: #ffd76a; }
.map-node.blocked-node { background: #922f30; color: #fff4e9; border-color: #ff7961; }
.node-caption { background: #050506f2; color: #fff6e7; border-color: #ffc45d; }
.game-panel { padding: 18px !important; }
.panel-topline { border-color: #35323a; }
.save-dot { color: #8bf0b3; background: #102116; border: 1px solid #245238; }
.player-avatar { border: 1px solid #ffc45d; background: #111115; color: #ffc45d; }
.piece-picker, .yut-box, .branch-choice, .status-card, .move-choice { background: #0b0b0e !important; border-color: #3f3940 !important; }
.piece-choice, .step-choice { color: #f4f0e9; border: 1px solid #4a454d; border-radius: 3px; background: #141418; }
.piece-choice:hover, .step-choice:hover { border-color: #ffc45d; background: #1b1917; }
.piece-choice[aria-pressed=true], .step-choice[aria-pressed=true] { color: #09090b; border-color: #ffe4a1; background: #ffc45d; box-shadow: 0 0 14px #ffc45d66; }
.button-outline { color: #f4f0e9 !important; border: 1px solid #5d4b2c !important; background: #111115 !important; }
.button-outline:hover { color: #ffc45d !important; border-color: #ffc45d !important; background: #19171a !important; }
.panel-dungeons button { color: #f4f0e9 !important; border-bottom: 1px solid #35323a !important; }
.panel-dungeons button:hover { background: #141418 !important; color: #ffc45d !important; }

/* Elemental scenes: photo on a larger diagonal panel, dark content zone on the left. */
.screen-dungeon, .dungeon-scene { background: #050506 !important; color: #f4f0e9; }
.dungeon-art {
  inset: 0 0 0 37%;
  width: auto;
  height: auto;
  border: 3px solid #ffc45d !important;
  border-radius: 0 !important;
  clip-path: polygon(17% 0, 100% 0, 100% 100%, 0 100%);
  box-shadow: 0 0 0 2px #151318, 0 16px 48px #000 !important;
  filter: saturate(1.08) contrast(1.04);
}
.dungeon-overlay { inset: 0; background: linear-gradient(90deg, #050506 0%, #050506f5 27%, #050506bd 45%, #05050624 76%, transparent 100%), linear-gradient(0deg, #050506aa, transparent 55%) !important; }
.dungeon-content.stage-shell { width: min(54%, 690px); max-width: 690px; margin-left: clamp(24px, 5vw, 78px); margin-right: auto; padding-top: 112px; position: relative; z-index: 2; }
.dungeon-content h1 { color: #fff6e7; }
.dungeon-lede, .dungeon-content .eyebrow { color: #d8d1c7; }
.dungeon-tags span, .dungeon-note-row span { color: #f4f0e9 !important; border: 1px solid #4d4438 !important; border-radius: 3px !important; background: #0a0a0d !important; }
.dungeon-find { color: #f4f0e9; border: 1px solid #51452e; background: #0a0a0d; }
.dungeon-lore { color: #f4f0e9 !important; background: #09090b !important; }
.boss-card { border-color: #8e4b37 !important; }
.boss-status { color: #ded7cd !important; border-color: #3e3940 !important; }
.boss-attack:disabled { color: #aba49a !important; border-color: #514c49 !important; background: #242326 !important; box-shadow: none !important; }

/* A responsive diagonal remains, while the artwork stacks below copy on phones. */
@media (min-width: 761px) and (max-width: 1020px) {
  .hero-art { width: 56vw; inset: 86px 0 24px auto; }
  .hero-copy { width: 52%; padding-left: 5vw; }
  .hall-art { width: 58vw; inset: 46px 0 28px auto; }
  .hall-header { width: 53%; margin-left: 4vw; }
  .dungeon-art { left: 42%; }
  .dungeon-content.stage-shell { width: 56%; margin-left: 4vw; }
}
@media (max-width: 760px) {
  .hero { height: auto; min-height: 1110px; background: #050506 !important; }
  .hero-copy { width: auto; max-width: none; margin: 0; padding: 132px 22px 18px; }
  .hero h1 { font-size: clamp(48px, 12vw, 78px); }
  .hero-art { inset: 610px 14px 78px 14px; width: auto; height: auto; min-height: 350px; clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%); }
  .hero-facts { flex-wrap: wrap; gap: 10px 18px; }
  .gate-hint { right: 25px; bottom: 85px; }
  .world-preview { padding: 64px 20px 48px; }
  .preview-ribbon { grid-template-columns: 1fr; gap: 12px; border: 0; }
  .preview-portal { min-height: 76px; }
  .hall-scene { min-height: 930px; background: #050506 !important; }
  .hall-header { width: auto; margin: 0 22px; padding: 130px 0 20px; }
  .hall-header h1 { font-size: 42px; }
  .hall-art { inset: 510px 14px 36px 14px; width: auto; height: auto; clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%); }
  .hall-veil { display: none; }
  .hall-guide { display: block; padding: 42px 20px 48px; }
  .guide-aside { position: static; }
  .guide-index { grid-template-columns: 1fr 1fr; column-gap: 12px; margin-top: 14px; }
  .guide-content { gap: 12px; margin-top: 24px; }
  .guide-card { padding: 18px; }
  .element-list { grid-template-columns: 1fr; }
  .hall-ready { align-items: flex-start; flex-direction: column; }
  .screen-board { padding-top: 112px; }
  .board-page-head { display: block; }
  .board-head-actions { margin-top: 12px; justify-content: space-between; }
  .board-layout { grid-template-columns: 1fr; gap: 13px; margin-top: 19px; }
  .board-world { min-height: auto; aspect-ratio: .98; }
  .map-routes { inset: 9% 2% 6%; height: 86%; }
  .map-nodes { inset: 9% 2% 6%; }
  .game-panel { padding: 13px !important; }
  .dungeon-scene { min-height: 1320px; background: #050506 !important; }
  .dungeon-content.stage-shell { width: auto; max-width: none; margin: 0 20px; padding: 126px 0 22px; }
  .dungeon-content h1 { font-size: clamp(40px, 11vw, 64px); }
  .dungeon-art { inset: 690px 14px 55px 14px; width: auto; height: auto; clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%); }
  .dungeon-overlay { background: linear-gradient(180deg, #050506 0%, #050506 46%, #05050650 64%, #050506ae 100%) !important; }
  .dungeon-pixels { display: none; }
  .dungeon-actions { align-items: stretch; flex-direction: column; width: min(100%, 320px); }
  .dungeon-actions .button { width: 100%; }
  .dungeon-coordinates { left: 26px; right: 26px; bottom: 70px; }
  .dungeon-note-row span { width: 100%; }
}
@media (max-width: 390px) {
  .hero { min-height: 1110px; }
  .hero-art { inset: 622px 12px 76px 12px; }
  .hero-copy { padding-inline: 20px; }
  .map-node { width: 26px; height: 26px; }
  .map-node.player-here { width: 35px; height: 35px; }
  .board-page-head h1 { font-size: 30px; }
  .dungeon-content.stage-shell { margin-inline: 19px; }
  .dungeon-scene { min-height: 1380px; }
  .dungeon-art { inset: 720px 12px 50px 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-art, .hall-art, #dungeonArt, .dungeon-art::before, .board-world::after, .map-node.secret-node { animation: none !important; transform: none !important; }
}


/* Boss encounters: telegraphed patterns, stage rule and player-selected counters. */
.boss-card { grid-template-columns: 52px minmax(0, 1fr); align-items: start; gap: 10px; }
.boss-avatar { grid-column: 1; grid-row: 1; }
.boss-info { grid-column: 2; min-width: 0; }
.boss-mechanics { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 9px; }
.boss-rule-panel, .boss-pattern-panel { min-width: 0; padding: 12px; border: 1px solid #48424b; border-radius: 3px; background: #111115; }
.boss-rule-panel { border-left: 3px solid #ffc45d; }
.boss-pattern-panel { border-left: 3px solid #ff714f; }
.boss-card-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; color: #ffc45d; font: 500 10px/1.3 "DM Mono", monospace; letter-spacing: .09em; }
.boss-card-label small { color: #b7aea2; font: inherit; letter-spacing: 0; }
.boss-rule-panel>b, .boss-pattern-panel>b { display: block; margin-bottom: 5px; color: #fff5e4; font: 600 15px/1.4 "Noto Sans KR", sans-serif; }
.boss-rule-panel>p, .boss-pattern-panel>p { margin: 0; color: #c8c0b5; font-size: 12px; line-height: 1.65; }
.boss-choices { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.boss-choice { min-height: 44px; padding: 8px; color: #f4f0e9; border: 1px solid #514a53; border-radius: 3px; background: #17161a; font: 600 11px/1.4 "Noto Sans KR", sans-serif; cursor: pointer; transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.boss-choice:hover { color: #fff6e7; border-color: #ffc45d; background: #29221a; transform: translateY(-1px); }
.boss-choice:focus-visible { outline: 2px solid #ffc45d; outline-offset: 2px; }
.boss-status { grid-column: 1 / -1; margin: 0; padding-top: 9px; border-top: 1px solid #39343d !important; color: #c8c0b5 !important; line-height: 1.55; }
.boss-status.is-warning { color: #ffc477 !important; }
.boss-status.is-success { color: #a9efbe !important; }
.boss-card.is-miss { animation: boss-miss .2s ease-in-out 1; }
.boss-card.is-hit { animation: boss-hit .25s ease-out 1; }
.boss-card.is-defeated { border-color: #66b781 !important; }
.boss-card.is-defeated .boss-pattern-panel { border-left-color: #66b781; }
.theme-magma .boss-pattern-panel { border-left-color: #ff714f; }
.theme-ice .boss-pattern-panel { border-left-color: #72d6fa; }
.theme-electric .boss-pattern-panel { border-left-color: #edd665; }
@keyframes boss-miss { 25% { transform: translateX(-3px); } 75% { transform: translateX(3px); } }
@keyframes boss-hit { 50% { filter: brightness(1.35); } }
@media (max-width: 760px) {
  .boss-card { grid-template-columns: 42px minmax(0, 1fr); gap: 8px; }
  .boss-mechanics { grid-template-columns: 1fr; }
  .boss-rule-panel, .boss-pattern-panel { padding: 10px; }
  .boss-choices { grid-template-columns: 1fr; gap: 6px; }
  .boss-choice { min-height: 40px; text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .boss-card.is-miss, .boss-card.is-hit { animation: none !important; } }


/* Final encounter polish: separate the name from its kicker and reserve the mobile art panel below the rule/choice card. */
.boss-info .boss-kicker { display: block; margin-bottom: 3px; }
.boss-info>b { display: block; margin: 0 0 5px; color: #fff5e4 !important; font: 700 15px/1.35 "Noto Sans KR", sans-serif; }
.boss-health { margin-top: 3px; }
@media (max-width: 760px) {
  .dungeon-scene { min-height: 1620px; }
  .dungeon-art { inset: 1010px 14px 55px 14px; }
}
@media (max-width: 390px) {
  .dungeon-scene { min-height: 1680px; }
  .dungeon-art { inset: 1040px 12px 50px 12px; }
}


/* Cinematic castle scenes and iguana-shaped Yut tokens. */
.hero-art {
  background-image: linear-gradient(100deg, #050506 0%, #050506cb 16%, #05050652 40%, transparent 68%), linear-gradient(0deg, #05050682, transparent 54%), url('/assets/castle-gate.webp') !important;
  background-position: center, center, 48% center !important;
  background-size: cover, cover, cover !important;
  background-repeat: no-repeat !important;
}
.hall-art {
  background-image: linear-gradient(0deg, #05050652, transparent 54%), url('/assets/castle-courtyard.webp') !important;
  background-position: center, 52% center !important;
  background-size: cover, cover !important;
  background-repeat: no-repeat !important;
}
.board-world:before {
  background-image: linear-gradient(180deg, #05050650, #05050612 48%, #05050670), url('/assets/castle-gate.webp') !important;
  background-position: center !important;
  background-size: cover !important;
  opacity: .92 !important;
  filter: saturate(1.08) contrast(1.04) !important;
}

:root {
  --iguana-sun: #ffc45d;
  --iguana-coral: #ff6c62;
  --iguana-jade: #72dda2;
  --iguana-violet: #c2a0ff;
}
.iguana-icon,
.piece-dot,
.iguana-rule::before {
  display: block;
  background-color: var(--iguana-color, #ffc45d);
  -webkit-mask-image: url('/assets/iguana-token.svg');
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url('/assets/iguana-token.svg');
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}
.piece-choice-sun, .piece-avatar-sun, .piece-dot-sun { --iguana-color: var(--iguana-sun); }
.piece-choice-coral, .piece-avatar-coral, .piece-dot-coral { --iguana-color: var(--iguana-coral); }
.piece-choice-jade, .piece-avatar-jade, .piece-dot-jade { --iguana-color: var(--iguana-jade); }
.piece-choice-violet, .piece-avatar-violet, .piece-dot-violet { --iguana-color: var(--iguana-violet); }
.piece-choice .iguana-icon { width: 30px; height: 22px; margin: 0 auto 4px; }
.player-avatar .iguana-icon { width: 29px; height: 22px; }
.iguana-rule { font-size: 0; }
.iguana-rule::before { content: ''; width: 25px; height: 19px; }
.piece-stack {
  position: absolute;
  inset: 2px;
  z-index: 4;
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  align-items: center;
  justify-content: center;
  gap: 0 1px;
  pointer-events: none;
}
.piece-stack[hidden] { display: none !important; }
.piece-stack .piece-dot { width: 17px; height: 13px; flex: 0 0 17px; filter: drop-shadow(0 1px 1px #000c); }
.map-node.player-here .piece-stack .piece-dot { width: 20px; height: 15px; flex-basis: 20px; }


/* User-editable site name: persisted only in the current browser. */
#siteBrandName {
  display: inline-block;
  max-width: clamp(110px, 18vw, 220px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-footer .site-name-edit {
  margin-left: auto;
  padding: 8px 11px;
  border: 1px solid #554b50;
  border-radius: 2px;
  color: #ffc45d;
  background: #111115;
  font-size: 10px;
  cursor: pointer;
  transition: color .18s, background .18s, border-color .18s;
}
.site-footer .site-name-edit:hover {
  color: #050506;
  background: #ffc45d;
  border-color: #ffe5a3;
}
.site-footer button[data-go="intro"] { margin-left: 0; }
.site-name-dialog {
  width: min(460px, calc(100vw - 28px));
  max-width: none;
  max-height: calc(100vh - 28px);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 2px solid #ffc45d;
  border-radius: 2px;
  color: #f4f0e9;
  background: #0b0b0e;
  box-shadow: 0 0 0 3px #171318, 0 24px 80px #000c;
}
.site-name-dialog::backdrop { background: #050506cf; backdrop-filter: blur(4px); }
.site-name-dialog form { display: grid; gap: 13px; margin: 0; padding: clamp(20px, 5vw, 30px); }
.site-name-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 5px; }
.site-name-dialog-head .eyebrow { margin: 0 0 8px; color: #ffc45d; font: 9px 'DM Mono', monospace; letter-spacing: .14em; }
.site-name-dialog h2 { margin: 0; color: #fff6e7; font: 24px/1.35 var(--font-display, 'Noto Sans KR', sans-serif); }
.site-name-dialog-close {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border: 1px solid #504952;
  color: #e8dcc4;
  background: #141418;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.site-name-dialog label { color: #e8dcc4; font-size: 12px; font-weight: 700; }
.site-name-dialog input {
  width: 100%;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid #675b62;
  border-radius: 2px;
  color: #fff6e7;
  background: #141418;
  font: 16px 'Noto Sans KR', sans-serif;
}
.site-name-dialog input:focus-visible { outline: 2px solid #ffc45d; outline-offset: 2px; }
.site-name-note { margin: 0; color: #bbb2a7; font-size: 11px; line-height: 1.7; }
.site-name-dialog-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 8px; }
.site-name-dialog-actions button { min-height: 44px; padding: 0 14px; border-radius: 2px; cursor: pointer; }
.site-name-dialog .dialog-secondary { border: 1px solid #5a5055; color: #e8dcc4; background: #111115; font-size: 11px; }
.site-name-dialog .button-gold { min-height: 44px; border: 2px solid #201b2b; color: #201b2b; background: linear-gradient(110deg, #ffc15f, #e88f4d); box-shadow: 3px 3px 0 #17131f; font-size: 13px; }
@media (max-width: 760px) {
  .site-footer { flex-wrap: wrap; gap: 10px 14px; }
  .site-footer .site-name-edit { margin-left: 0; }
  .site-footer button[data-go="intro"] { margin-left: auto; }
  .site-footer .footer-sun { width: 100%; margin-left: 0; }
}


/* 2026-10-03: one-viewport team game flow — no page scrolling. */
html, body { width: 100%; height: 100%; min-height: 100%; overflow: hidden !important; overscroll-behavior: none; }
body { margin: 0; background: #050506 !important; color: #f4f0e9; }
[hidden] { display: none !important; }
.site-nav { position: fixed; z-index: 40; inset: 0 0 auto; height: 58px; box-sizing: border-box; display: flex; align-items: center; gap: 25px; padding: 0 clamp(14px, 3vw, 42px); background: #050506ed !important; border-bottom: 1px solid #433b3b; }
.site-nav .brand { display: inline-flex; align-items: center; gap: 9px; flex: 0 0 auto; border: 0; padding: 0; color: #fff3dd; background: transparent; font-size: 15px; cursor: pointer; }
.brand-mark { position: relative; color: #ffc45d; font-size: 24px; line-height: 1; }
.brand-mark i { position: absolute; width: 5px; height: 5px; top: 1px; right: -2px; border-radius: 50%; background: #f04d42; }
.nav-links { display: flex; align-items: center; gap: 7px; margin-left: auto; }
.nav-link { min-height: 34px; padding: 0 12px; border: 1px solid transparent; color: #dfd5c8; background: transparent; font: 700 11px 'Noto Sans KR', sans-serif; cursor: pointer; }
.nav-link:hover, .nav-link.is-current { border-color: #ffc45d; color: #fff7e9; background: #261f1c; }
.nav-quest-label { color: #b8aa98; font: 9px 'DM Mono', monospace; letter-spacing: .11em; }
.game-root { position: relative; width: 100%; height: 100svh; min-height: 0; overflow: hidden; }
.screen { position: absolute; inset: 0; display: none; width: 100%; height: 100%; min-height: 0 !important; overflow: hidden; box-sizing: border-box; }
.screen[hidden] { display: none !important; }
.screen-intro.is-active { display: block; }
.screen-board.is-active, .screen-dungeon.is-active { display: grid; }

/* Entrance scene */
.screen-intro, .hero, .hero-sky { height: 100%; min-height: 0 !important; background: #050506 !important; }
.hero { position: absolute; inset: 0; overflow: hidden; }
.hero-sky { position: absolute; inset: 0; }
.hero-art { top: 72px; right: 0; bottom: 36px; width: min(68vw, 930px); border: 2px solid #ffc45d; border-right: 0; clip-path: polygon(18% 0,100% 0,100% 100%,0 100%); }
.hero-copy { position: relative; z-index: 3; width: min(56%, 720px); max-width: 720px; padding: clamp(105px, 17vh, 175px) 0 60px clamp(20px, 8vw, 120px); }
.hero h1 { font-size: clamp(48px, 7vw, 90px); }
.hero-subtitle { max-width: 460px; font-size: clamp(13px, 1.5vw, 17px); line-height: 1.9; }
.hero-actions { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; margin-top: 22px; }
.hero #enterCastle { min-height: 50px; padding-inline: 20px; }
.hero-facts { display: flex; gap: 20px; margin-top: 22px; font-size: 10px; }
.gate-hint { position: absolute; z-index: 4; right: 32px; bottom: 54px; font: 9px 'DM Mono', monospace; letter-spacing: .15em; }
.world-preview, .hall-scene, .hall-guide, .dungeon-lore { display: none !important; }

/* Fixed top and bottom rails keep every game state within one viewport. */
.site-footer { position: fixed; z-index: 40; inset: auto 0 0; height: 38px; min-height: 0; box-sizing: border-box; display: flex; align-items: center; gap: 10px; padding: 4px clamp(12px, 3vw, 38px); border-top: 1px solid #433b3b !important; background: #050506f2 !important; }
.site-footer .footer-mark { color: #ffc45d; font-size: 18px; line-height: 1; }
.footer-brand { display: flex; align-items: center; gap: 10px; color: #f4f0e9; font-size: 10px; }
.footer-brand small { color: #978d82; font: 8px 'DM Mono', monospace; letter-spacing: .06em; }
.site-footer .site-name-edit, .site-footer button[data-action="reset-game"] { min-height: 26px; margin: 0; padding: 3px 8px; border: 1px solid #554b50; color: #ffc45d; background: #111115; font-size: 9px; cursor: pointer; }
.site-footer .site-name-edit { margin-left: auto; }
.site-footer #resetGameFooter { min-height: 26px; padding: 3px 8px; border: 1px solid #554b50; color: #ddd2c2; background: #111115; font-size: 9px; cursor: pointer; }

/* Main Yut board and control HUD */
.screen-board { grid-template-rows: 50px minmax(0, 1fr) 28px; gap: 7px; padding: 67px 0 45px; background: #050506 !important; }
.board-page-head.stage-shell, .board-layout.stage-shell, .board-bottomline.stage-shell, .dungeon-page-head.stage-shell, .duo-dungeons.stage-shell { width: min(1440px, calc(100% - 34px)); max-width: none; margin-inline: auto; }
.board-page-head { min-height: 0; display: grid; grid-template-columns: minmax(170px, 1fr) auto auto; align-items: center; gap: 14px; padding: 0 2px; }
.board-page-head .eyebrow { margin: 0 0 2px; color: #ffc45d; font: 8px 'DM Mono', monospace; letter-spacing: .13em; }
.board-page-head h1 { margin: 0; color: #fff5e4; font: 25px/1.15 'Black Han Sans', 'Noto Sans KR', sans-serif; }
.board-page-head h1 span { color: #ffc45d; }
.board-stage-status { display: grid; gap: 2px; min-width: 150px; padding: 6px 12px; border-left: 1px solid #554a45; border-right: 1px solid #554a45; text-align: center; }
.board-stage-status b { color: #ffc45d; font-size: 12px; }
.board-stage-status span { color: #c7bcae; font-size: 9px; }
.board-head-actions { display: flex; gap: 6px; }
.board-head-actions .button { min-height: 32px; padding: 4px 9px; font-size: 9px; }
.board-layout { min-height: 0; display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr); gap: 12px; align-items: stretch; }
.board-world { position: relative; width: 100%; height: 100%; min-width: 0; min-height: 0; align-self: stretch; aspect-ratio: auto; overflow: hidden; border: 3px solid #e7c78d !important; box-shadow: 5px 5px 0 #17131f, 0 0 0 1px #100e12 !important; }
.board-world:before { background-image: linear-gradient(180deg,#09080a55,#09080a14 42%,#09080a70),url('/assets/reference-board.jpg') !important; background-position: center; background-size: cover; opacity: .85 !important; }
.board-wash { background: linear-gradient(180deg,#05050655,#05050608 44%,#05050675) !important; }
.map-top-label { top: 10px; left: 12px; right: 12px; font: 8px 'DM Mono', monospace; }
.map-routes { position: absolute; inset: 7% 3% 5%; width: 94%; height: 88%; }
.map-nodes { position: absolute; inset: 7% 3% 5%; }
.map-node { width: clamp(25px, 3.15vw, 42px); height: clamp(25px, 3.15vw, 42px); padding: 0; font-size: clamp(9px, 1vw, 13px); }
.map-node.goal-node { background: #382617eF; color: #ffe2a0; }
.map-node.gate-node { border-color: #ffd774; }
.map-node.party-goal-node { width: clamp(30px, 3.8vw, 50px); height: clamp(30px, 3.8vw, 50px); border-color: #ffe8ad; color: #1b1008; background: #ffc45d; box-shadow: 0 0 0 4px #ffc45d45, 0 4px 0 #17131f; }
.map-node.player-here { z-index: 3; }
.map-node.team-red-here { box-shadow: 0 0 0 3px #f04d4270, 0 3px 0 #17131f; }
.map-node.team-blue-here { box-shadow: 0 0 0 3px #60c9e580, 0 3px 0 #17131f; }
.piece-stack { position: absolute; z-index: 4; inset: auto auto -8px 50%; display: flex; gap: 1px; width: max-content; transform: translateX(-50%); }
.piece-dot { display: inline-block; width: 18px; height: 13px; background: var(--piece-color); -webkit-mask: url('/assets/iguana-token.svg') center / contain no-repeat; mask: url('/assets/iguana-token.svg') center / contain no-repeat; filter: drop-shadow(0 1px 1px #000); }
.piece-dot-red { --piece-color: #ff6254; }
.piece-dot-blue { --piece-color: #76dcf1; }
.piece-dot.is-selected { filter: drop-shadow(0 0 3px #fff5d1) drop-shadow(0 1px 1px #000); }
.map-node.start-node, .map-node.secret-node, .map-node.blocked-node { z-index: 2; }
.map-compass, .map-scale { color: #fff2d9; }
.game-panel { min-height: 0; overflow: hidden; display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; gap: 7px; padding: 10px !important; border-color: #756050 !important; color: #f4f0e9 !important; background: linear-gradient(160deg,#171317f5,#08080bf7) !important; box-shadow: 5px 5px 0 #17131f, 0 0 28px #000b !important; }
.team-scoreboard { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.team-score { min-width: 0; display: grid; grid-template-columns: 7px minmax(0,1fr) auto; align-items: center; gap: 7px; padding: 6px 7px; border: 1px solid #423b3d; background: #111014; }
.team-score .team-swatch { width: 6px; height: 25px; background: #f04d42; box-shadow: 0 0 8px #f04d4260; }
.team-score-blue .team-swatch { background: #60c9e5; box-shadow: 0 0 8px #60c9e560; }
.team-score b { display: block; color: #fff3df; font-size: 10px; }
.team-score small { display: block; overflow: hidden; color: #a99e92; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.team-score strong { color: #d8c9b7; font: 8px 'DM Mono', monospace; white-space: nowrap; }
.team-score.is-turn { border-color: #ffc45d; background: #241b18; }
.team-score-blue.is-turn { border-color: #60c9e5; background: #102026; }
.active-team-label { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #ffc45d; font: 17px 'Black Han Sans', 'Noto Sans KR', sans-serif; }
.active-team-label small { overflow: hidden; color: #c8bbaa; font: 8px 'Noto Sans KR', sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.piece-picker { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; padding: 5px !important; border-color: #393236 !important; background: #0a090b !important; }
.piece-choice { min-width: 0; min-height: 38px; display: flex; align-items: center; justify-content: center; gap: 4px; border: 1px solid #655852; border-radius: 2px; color: #f6ead7; background: #171317; }
.piece-choice .iguana-icon { width: 26px; height: 16px; background: var(--piece-color); -webkit-mask: url('/assets/iguana-token.svg') center / contain no-repeat; mask: url('/assets/iguana-token.svg') center / contain no-repeat; }
.piece-team-red { --piece-color: #ff6254; }
.piece-team-blue { --piece-color: #76dcf1; }
.piece-choice small { font: 8px 'DM Mono', monospace; }
.piece-choice[aria-pressed="true"] { outline: 1px solid #ffc45d; border-color: #ffc45d; background: #28201c; }
.piece-choice:disabled { opacity: .32; cursor: not-allowed; }
.piece-choice.is-arrived { opacity: .46; }
.yut-controls { min-height: 0; overflow: hidden; display: flex; flex-direction: column; align-items: stretch; gap: 4px; padding: 7px; border: 1px solid #4e4240; background: #0c0b0e; }
.roll-result { margin: 0; color: #ffc45d !important; font: 18px/1.2 'Black Han Sans', 'Noto Sans KR', sans-serif; text-align: center; }
.roll-result.result-empty { color: #d2c6b8 !important; font-size: 13px; }
.roll-count { margin: 0; color: #998e83; font: 8px 'DM Mono', monospace; text-align: center; }
.sticks { display: flex; align-items: center; justify-content: center; gap: 10px; height: 24px; overflow: hidden; color: #ecd4a9; }
.stick { font-size: 25px; line-height: 1; text-shadow: 0 0 8px #ffc45d4a; }
.sticks.is-tossing .stick { animation: stick-toss .44s ease-in-out; }
@keyframes stick-toss { 0%,100% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-9px) rotate(35deg); } 70% { transform: translateY(3px) rotate(-22deg); } }
.roll-button, .confirm-move { min-height: 36px; padding: 5px 10px; font-size: 12px; }
.roll-button:disabled, .confirm-move:disabled, .collect-button:disabled { opacity: .48; cursor: not-allowed; }
.move-choice { display: grid; grid-template-columns: 1fr auto; gap: 5px; margin: 0; padding: 6px !important; border-color: #42383a !important; background: #151216 !important; }
.move-choice-label { grid-column: 1 / -1; display: flex; justify-content: space-between; color: #cfc3b5 !important; font-size: 9px; }
.move-choice-label b { color: #ffc45d !important; }
.step-options { display: flex; gap: 3px; }
.step-choice { width: 27px; min-width: 24px; height: 27px; padding: 0; color: #eadfce; border: 1px solid #665856; background: #211b1e; font: 10px 'DM Mono', monospace; }
.step-choice[aria-pressed="true"] { color: #161012; border-color: #ffc45d; background: #ffc45d; }
.confirm-move { min-height: 28px; font-size: 9px; }
.branch-choice { display: grid; gap: 5px; padding: 6px !important; color: #f2e5d1 !important; background: #171317 !important; }
.branch-choice b { font-size: 9px; }
.branch-choice>div { display: flex; gap: 5px; }
.branch-choice .button { min-height: 27px; flex: 1; padding: 3px; font-size: 8px; }
.game-message { min-height: 25px; margin: 0; padding: 5px 7px; border-left: 2px solid #ffc45d; color: #c9bdaf; background: #0d0c0e; font-size: 9px; line-height: 1.5; }
.board-bottomline { min-height: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; overflow: hidden; }
.stage-track { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.stage-track span { color: #81766e; font: 8px 'DM Mono', monospace; }
.stage-track span.is-current { color: #ffc45d; }
.stage-track i { color: #584d47; font-style: normal; font-size: 10px; }
.board-bottomline>p { margin: 0; overflow: hidden; color: #a59a8e; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }

/* Two independent team dungeon windows */
.screen-dungeon { grid-template-rows: 55px minmax(0, 1fr); gap: 8px; padding: 68px 0 44px; background: #050506 !important; }
.dungeon-page-head { min-height: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dungeon-page-head .eyebrow { margin: 0 0 2px; color: #ffc45d; font: 8px 'DM Mono', monospace; letter-spacing: .12em; }
.dungeon-page-head h1 { margin: 0; color: #fff2dc; font: 24px/1.1 'Black Han Sans', 'Noto Sans KR', sans-serif; }
.dungeon-stage-note { color: #d4c7b5; font-size: 10px; }
.dungeon-page-head>.button { min-height: 31px; padding: 3px 10px; font-size: 9px; }
.duo-dungeons { min-height: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.team-dungeon-window { position: relative; min-width: 0; min-height: 0; overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 8px; padding: 12px; border: 1px solid #695548; background: #171114; box-shadow: 5px 5px 0 #17131f; isolation: isolate; }
.team-dungeon-window::before { position: absolute; z-index: -2; inset: 0; content: ''; background-image: linear-gradient(180deg,#050506de 0%,#09080bbd 48%,#050506ed 100%),url('/assets/reference-board.jpg'); background-position: center; background-size: cover; opacity: .8; }
.team-dungeon-window[data-dungeon="magma"]::before { background-image: linear-gradient(180deg,#080606d9,#100907bf 48%,#080606ed),url('/assets/reference-magma.jpg'); }
.team-dungeon-window[data-dungeon="ice"]::before { background-image: linear-gradient(180deg,#05090bdc,#071116c2 48%,#05090bed),url('/assets/reference-ice.jpg'); }
.team-dungeon-window[data-dungeon="electric"]::before { background-image: linear-gradient(180deg,#09090bdc,#111014c4 48%,#08080aed),url('/assets/reference-electric.jpg'); }
.team-dungeon-window::after { position: absolute; z-index: -1; inset: 0; content: ''; background: linear-gradient(135deg,#ffc45d0b,transparent 55%); pointer-events: none; }
.team-dungeon-window.is-waiting { border-color: #383337; }
.team-dungeon-window.is-current { border-color: #ffc45d; box-shadow: 0 0 0 1px #ffc45d3c, 5px 5px 0 #17131f; }
.team-window-blue.is-current { border-color: #60c9e5; box-shadow: 0 0 0 1px #60c9e535, 5px 5px 0 #17131f; }
.team-dungeon-head { min-width: 0; display: flex; align-items: center; gap: 9px; padding-bottom: 7px; border-bottom: 1px solid #ffffff25; }
.team-dungeon-seal { width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center; border: 1px solid #f04d42; color: #ff8377; background: #300f13a3; font: 18px 'Noto Sans KR', sans-serif; }
.team-window-blue .team-dungeon-seal { border-color: #60c9e5; color: #a3f1ff; background: #0b2730a3; }
.team-dungeon-head small { color: #c7b7a5; font: 8px 'DM Mono', monospace; letter-spacing: .1em; }
.team-dungeon-head h2 { margin: 1px 0 0; color: #fff1dc; font: 18px 'Black Han Sans', 'Noto Sans KR', sans-serif; }
.team-dungeon-status { max-width: 40%; margin-left: auto; overflow: hidden; color: #ffc45d; font-size: 9px; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.team-window-blue .team-dungeon-status { color: #8fe5f5; }
.team-dungeon-locked, .dungeon-choice-area { min-height: 0; align-self: center; justify-self: center; width: min(100%, 500px); text-align: center; }
.team-dungeon-locked { padding: 20px 12px; border: 1px dashed #665c53; color: #bbb0a3; background: #09090bbd; font-size: 12px; }
.dungeon-choice-area>p { margin: 0 0 11px; color: #e6d5bd; font-size: 11px; }
.dungeon-choice-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.dungeon-choice-list button { min-width: 0; min-height: 82px; display: grid; place-content: center; gap: 5px; border: 1px solid #67564c; color: #f2e6d3; background: #0b090bd9; cursor: pointer; transition: transform .16s, border-color .16s, background .16s; }
.dungeon-choice-list button:hover:not(:disabled) { transform: translateY(-3px); border-color: #ffc45d; background: #221816; }
.dungeon-choice-list button:disabled { opacity: .42; cursor: not-allowed; }
.dungeon-choice-list button i { color: #ffc45d; font-size: 24px; font-style: normal; }
.dungeon-choice-list button span { font-size: 10px; font-weight: 800; }
.dungeon-choice-list button[data-dungeon-choice="ice"] i { color: #8ce5f7; }
.dungeon-choice-list button[data-dungeon-choice="electric"] i { color: #f2d65d; }
.team-dungeon-play { min-height: 0; overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto; gap: 6px; }
.team-boss-stage { min-height: 62px; display: flex; align-items: center; gap: 11px; padding: 6px 9px; border: 1px solid #ffffff2b; background: #08070aa6; transition: opacity .2s, filter .2s; }
.team-boss-stage.is-defeated { opacity: .5; filter: grayscale(1); }
.team-boss-face { width: 48px; height: 48px; flex: 0 0 48px; display: grid; place-items: center; border: 1px solid #ffc45d85; border-radius: 50%; background: radial-gradient(circle,#57402c,#171014 68%); font-size: 29px; box-shadow: 0 0 16px #ffc45d28; }
.team-window-blue .team-boss-face { border-color: #60c9e580; background: radial-gradient(circle,#285361,#101319 68%); box-shadow: 0 0 16px #60c9e528; }
.team-boss-info { min-width: 0; display: grid; gap: 1px; }
.team-boss-info small { color: #c8b49c; font: 8px 'DM Mono', monospace; letter-spacing: .08em; }
.team-boss-info>b { color: #fff3e2; font: 17px 'Black Han Sans', 'Noto Sans KR', sans-serif; }
.team-boss-hearts { display: flex; gap: 4px; color: #f05a4e; font-size: 9px; }
.team-boss-hearts i { font-style: normal; }
.team-boss-hearts i.is-lost { opacity: .2; }
.collect-card { min-height: 0; overflow: hidden; display: flex; flex-direction: column; gap: 4px; padding: 7px 8px; border: 1px solid #ffffff27; background: #08070ab5; }
.collect-count { display: flex; justify-content: space-between; color: #c9bba9; font-size: 9px; }
.collect-count b { color: #ffc45d; font: 10px 'DM Mono', monospace; }
.team-window-blue .collect-count b { color: #8fe5f5; }
.collect-meter { height: 4px; overflow: hidden; background: #30282a; }
.collect-meter i { display: block; width: 0; height: 100%; background: linear-gradient(90deg,#f04d42,#ffc45d); transition: width .25s; }
.team-window-blue .collect-meter i { background: linear-gradient(90deg,#3584ac,#8fe5f5); }
.collect-card p { margin: 0; color: #d5cabc; font-size: 9px; line-height: 1.4; }
.collect-card #collectMessageRed.is-success, .collect-card #collectMessageBlue.is-success { color: #ffe09c; }
.collect-card #collectMessageRed.is-warning, .collect-card #collectMessageBlue.is-warning { color: #ff9387; }
.dungeon-rule { color: #c6a876 !important; font-size: 8px !important; }
.collect-pattern { color: #ead7bc !important; }
.collect-options { min-height: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 4px; margin-top: auto; }
.collect-option { min-width: 0; min-height: 34px; padding: 4px; border: 1px solid #5b4e47; color: #eadfce; background: #171316; font: 8px/1.25 'Noto Sans KR', sans-serif; cursor: pointer; }
.collect-option:hover:not(:disabled) { border-color: #ffc45d; background: #30221a; }
.team-window-blue .collect-option:hover:not(:disabled) { border-color: #60c9e5; background: #122932; }
.collect-option:disabled { opacity: .47; cursor: not-allowed; }
.collect-button, .return-yut-button { min-height: 34px; padding: 4px 8px; font-size: 10px; }
.dungeon-clear-message { margin: 0; padding: 4px; border: 1px solid #ffc45d; color: #ffe2a0; background: #33210e; font: 12px 'Black Han Sans', 'Noto Sans KR', sans-serif; text-align: center; }
.team-window-blue .dungeon-clear-message { border-color: #60c9e5; color: #b4f4ff; background: #10232a; }
.team-dungeon-play:has(.dungeon-clear-message:not([hidden])) { grid-template-rows: auto minmax(0,1fr) auto auto; }

/* Instructions, final clear and local-name dialogs */
.game-guide-dialog, .winner-dialog { width: min(560px, calc(100vw - 28px)); max-width: none; max-height: calc(100svh - 60px); padding: 0; overflow: hidden; border: 1px solid #ffc45d; color: #f5edde; background: #0b0a0d; box-shadow: 0 0 0 4px #1d1718, 0 24px 80px #000d; }
.game-guide-dialog::backdrop, .winner-dialog::backdrop { background: #020203d9; backdrop-filter: blur(5px); }
.guide-dialog-card, .winner-dialog>div { display: grid; gap: 12px; padding: clamp(18px, 4vw, 30px); }
.guide-dialog-card .eyebrow, .winner-dialog .eyebrow { margin: 0; color: #ffc45d; font: 9px 'DM Mono', monospace; letter-spacing: .14em; }
.guide-dialog-card h2, .winner-dialog h2 { margin: 0; color: #fff3df; font: 29px 'Black Han Sans', 'Noto Sans KR', sans-serif; }
.guide-dialog-card ol { display: grid; gap: 9px; margin: 0; padding-left: 20px; }
.guide-dialog-card li { padding-left: 3px; color: #ffc45d; font-size: 11px; }
.guide-dialog-card li b, .guide-dialog-card li span { display: block; }
.guide-dialog-card li b { color: #fff0d7; font-size: 12px; }
.guide-dialog-card li span { margin-top: 2px; color: #bdb2a5; font-size: 10px; line-height: 1.55; }
.guide-dialog-card>.button, .winner-dialog .button { min-height: 38px; justify-self: start; padding: 5px 16px; font-size: 12px; }
.winner-dialog { width: min(420px, calc(100vw - 28px)); text-align: center; }
.winner-dialog>div { justify-items: center; padding: 32px 24px; }
.winner-dialog h2 { color: #ffc45d; font-size: 34px; }
.winner-dialog p:not(.eyebrow) { margin: 0; color: #ddd2c2; font-size: 13px; }
.site-name-dialog { max-height: calc(100svh - 48px); overflow: hidden; }
.toast { z-index: 80; bottom: 50px; }

@media (max-width: 760px) {
  .site-nav { height: 52px; gap: 8px; padding-inline: 12px; }
  .site-nav .brand { font-size: 12px; }
  .brand-mark { font-size: 20px; }
  .site-nav .nav-links, .site-nav .nav-quest-label { display: none; }
  .screen-intro, .hero { height: 100svh; }
  .hero-copy { width: auto; max-width: 100%; padding: 82px 18px 48px; }
  .hero h1 { max-width: 75%; font-size: clamp(38px, 10.5vw, 59px); line-height: 1.05; }
  .hero-subtitle { max-width: 70%; font-size: 12px; line-height: 1.7; }
  .hero-art { top: 37%; right: 0; bottom: 42px; width: 91%; opacity: .72; clip-path: polygon(24% 0,100% 0,100% 100%,0 100%); }
  .hero #enterCastle { min-height: 42px; padding-inline: 13px; font-size: 12px; }
  .hero-actions { gap: 10px; margin-top: 14px; }
  .hero-facts { gap: 10px; margin-top: 14px; font-size: 8px; }
  .gate-hint { right: 14px; bottom: 50px; font-size: 7px; }
  .site-footer { height: 34px; gap: 6px; padding-inline: 9px; }
  .site-footer .footer-mark { font-size: 14px; }
  .footer-brand { gap: 5px; font-size: 9px; }
  .footer-brand small { display: none; }
  .site-footer .site-name-edit, .site-footer #resetGameFooter { min-height: 23px; padding: 2px 5px; font-size: 8px; }
  .screen-board { grid-template-rows: 42px minmax(0,1fr) 22px; gap: 4px; padding: 58px 0 39px; }
  .board-page-head.stage-shell, .board-layout.stage-shell, .board-bottomline.stage-shell, .dungeon-page-head.stage-shell, .duo-dungeons.stage-shell { width: calc(100% - 16px); }
  .board-page-head { grid-template-columns: minmax(0,1fr) auto auto; gap: 5px; }
  .board-page-head>div:first-child .eyebrow { display: none; }
  .board-page-head h1 { font-size: 18px; }
  .board-stage-status { min-width: 0; padding: 2px 5px; border: 0; text-align: right; }
  .board-stage-status b { font-size: 9px; }
  .board-stage-status span { font-size: 7px; }
  .board-head-actions { display: flex; gap: 3px; }
  .board-head-actions .button { min-height: 24px; padding: 2px 5px; font-size: 7px; }
  .board-head-actions .button:last-child { display: none; }
  .board-layout { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1.08fr) minmax(0, .92fr); gap: 5px; }
  .board-world { border-width: 2px !important; }
  .map-top-label { top: 5px; left: 6px; right: 6px; font-size: 6px; }
  .map-routes { inset: 9% 2% 5%; height: 86%; }
  .map-nodes { inset: 9% 2% 5%; }
  .map-node { width: 25px; height: 25px; font-size: 8px; }
  .map-node.party-goal-node { width: 30px; height: 30px; }
  .piece-dot { width: 14px; height: 10px; }
  .piece-stack { bottom: -6px; }
  .game-panel { grid-template-rows: auto auto auto minmax(0,1fr) auto; gap: 3px; padding: 5px !important; }
  .team-scoreboard { gap: 3px; }
  .team-score { grid-template-columns: 4px minmax(0,1fr) auto; gap: 4px; padding: 3px 4px; }
  .team-score .team-swatch { width: 4px; height: 18px; }
  .team-score b { font-size: 8px; }
  .team-score small { font-size: 6px; }
  .team-score strong { font-size: 6px; }
  .active-team-label { font-size: 12px; }
  .active-team-label small { font-size: 7px; }
  .piece-picker { gap: 3px; padding: 3px !important; }
  .piece-choice { min-height: 27px; gap: 3px; padding: 1px; }
  .piece-choice .iguana-icon { width: 19px; height: 12px; }
  .piece-choice small { font-size: 7px; }
  .yut-controls { gap: 2px; padding: 4px; }
  .roll-result { font-size: 13px; }
  .roll-result.result-empty { font-size: 10px; }
  .roll-count { display: none; }
  .sticks { display: none; }
  .roll-button { min-height: 28px; padding: 2px 6px; font-size: 10px; }
  .move-choice { gap: 3px; padding: 3px !important; }
  .move-choice-label { font-size: 7px; }
  .step-options { gap: 2px; }
  .step-choice { width: 23px; min-width: 20px; height: 21px; font-size: 8px; }
  .confirm-move { min-height: 22px; padding: 2px 4px; font-size: 7px; }
  .branch-choice { gap: 3px; padding: 3px !important; }
  .branch-choice b { font-size: 7px; }
  .branch-choice .button { min-height: 21px; font-size: 7px; }
  .game-message { min-height: 18px; padding: 2px 5px; font-size: 7px; line-height: 1.3; }
  .board-bottomline { justify-content: center; }
  .stage-track { gap: 5px; }
  .stage-track span { font-size: 6px; }
  .board-bottomline>p { display: none; }
  .screen-dungeon { grid-template-rows: 42px 22px minmax(0,1fr); gap: 4px; padding: 58px 0 39px; }
  .dungeon-page-head { gap: 5px; }
  .dungeon-page-head .eyebrow { display: none; }
  .dungeon-page-head h1 { font-size: 19px; }
  .dungeon-stage-note { max-width: 43%; color: #c2b7a9; font-size: 7px; text-align: right; }
  .dungeon-page-head>.button { min-height: 26px; padding: 2px 6px; font-size: 7px; }
  .duo-dungeons { grid-template-columns: 1fr 1fr; gap: 5px; }
  .team-dungeon-window { grid-template-rows: auto minmax(0,1fr); gap: 4px; padding: 5px; }
  .team-dungeon-head { gap: 4px; padding-bottom: 4px; }
  .team-dungeon-seal { width: 24px; height: 24px; flex-basis: 24px; font-size: 13px; }
  .team-dungeon-head small { font-size: 6px; }
  .team-dungeon-head h2 { font-size: 12px; }
  .team-dungeon-status { max-width: 42%; font-size: 6px; }
  .team-dungeon-locked { padding: 10px 5px; font-size: 8px; }
  .dungeon-choice-area>p { margin-bottom: 5px; font-size: 7px; }
  .dungeon-choice-list { gap: 3px; }
  .dungeon-choice-list button { min-height: 55px; gap: 3px; }
  .dungeon-choice-list button i { font-size: 17px; }
  .dungeon-choice-list button span { font-size: 7px; }
  .team-dungeon-play { grid-template-rows: auto minmax(0,1fr) auto auto; gap: 3px; }
  .team-boss-stage { min-height: 40px; gap: 5px; padding: 3px 4px; }
  .team-boss-face { width: 31px; height: 31px; flex-basis: 31px; font-size: 20px; }
  .team-boss-info small { font-size: 6px; }
  .team-boss-info>b { font-size: 12px; }
  .team-boss-hearts { font-size: 7px; gap: 2px; }
  .collect-card { gap: 2px; padding: 4px; }
  .collect-count { font-size: 7px; }
  .collect-count b { font-size: 7px; }
  .collect-card p { font-size: 7px; line-height: 1.25; }
  .dungeon-rule { font-size: 6px !important; }
  .collect-pattern { font-size: 7px !important; }
  .collect-options { grid-template-columns: 1fr; gap: 2px; }
  .collect-option { min-height: 22px; padding: 2px; font-size: 6px; line-height: 1.15; }
  .collect-button, .return-yut-button { min-height: 25px; padding: 2px 4px; font-size: 7px; }
  .dungeon-clear-message { padding: 3px; font-size: 9px; }
  .team-dungeon-play:has(.dungeon-clear-message:not([hidden])) { grid-template-rows: auto minmax(0,1fr) auto auto; }
  .game-guide-dialog, .winner-dialog { max-height: calc(100svh - 40px); }
  .guide-dialog-card, .winner-dialog>div { gap: 8px; padding: 17px; }
  .guide-dialog-card h2, .winner-dialog h2 { font-size: 23px; }
  .guide-dialog-card ol { gap: 6px; }
  .guide-dialog-card li b { font-size: 10px; }
  .guide-dialog-card li span { font-size: 9px; }
}
@media (max-height: 700px) and (min-width: 761px) {
  .site-nav { height: 50px; }
  .screen-board { grid-template-rows: 42px minmax(0,1fr) 23px; padding-top: 55px; padding-bottom: 41px; gap: 5px; }
  .board-page-head h1 { font-size: 21px; }
  .board-layout { gap: 8px; }
  .game-panel { gap: 4px; padding: 7px !important; }
  .piece-choice { min-height: 31px; }
  .yut-controls { gap: 2px; padding: 4px; }
  .sticks { height: 18px; }
  .stick { font-size: 20px; }
  .screen-dungeon { grid-template-rows: 44px minmax(0,1fr); padding-top: 55px; padding-bottom: 41px; gap: 5px; }
  .team-dungeon-window { gap: 5px; padding: 8px; }
  .team-dungeon-play { gap: 4px; }
  .collect-option { min-height: 27px; }
}
@media (max-width: 390px) {
  .hero-copy { padding-inline: 14px; }
  .hero h1 { font-size: 39px; }
  .hero-subtitle { max-width: 78%; font-size: 11px; }
  .site-footer { gap: 4px; }
  .footer-brand { font-size: 8px; }
  .site-footer .site-name-edit, .site-footer #resetGameFooter { font-size: 7px; }
  .board-page-head.stage-shell, .board-layout.stage-shell, .board-bottomline.stage-shell, .dungeon-page-head.stage-shell, .duo-dungeons.stage-shell { width: calc(100% - 12px); }
  .team-dungeon-window { padding: 4px; }
  .collect-option { font-size: 5.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .sticks.is-tossing .stick { animation: none !important; }
  .hero-art { animation: none !important; }
}

@media (min-width: 761px) {
  .yut-controls { justify-content: center; gap: 12px; padding: 18px 12px; }
}
@media (max-width: 760px) {
  .yut-controls { justify-content: flex-start; }
}


/* Western medieval fantasy, shared-room lobby and battle-phase HUD */
:root { color-scheme: dark; --castle-gold: #ffc45d; --castle-stone: #17171d; --castle-ink: #07080b; --team-ruby: #f05b51; --team-sapphire: #69d6ec; }
.nav-quest-label, .admin-room-heading span, .admin-panel-heading small, .battle-phase-banner { font-family: 'Cinzel', 'DM Mono', serif; letter-spacing: .12em; }
.hero-art { background-image: linear-gradient(90deg,#050506f5 0%,#050506b8 25%,#05050628 62%,#05050612 100%),linear-gradient(0deg,#050506a6 0%,transparent 43%),url('/assets/castle-gate.webp') !important; background-position:center right; background-size:cover; }
.hero-sky { background: radial-gradient(ellipse at 73% 18%,#ffc45d22,transparent 40%),linear-gradient(135deg,#08090e,#11121b 60%,#08090e); }
.hero-copy { max-width: 760px; }
.hero-room-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:11px; }
.hero-room-actions .button { min-height:32px; padding:4px 10px; border:1px solid #9e8158; color:#ecd9bd; background:#0b0b0ed9; font-size:10px; }
.hero-room-actions .button:hover { border-color:var(--castle-gold); color:#fff4df; background:#231b12; }
.hero-admin-link { margin-top:8px; padding:0; border:0; color:#b6a58e; background:transparent; font:9px 'DM Mono','Noto Sans KR',sans-serif; letter-spacing:.04em; cursor:pointer; }
.hero-admin-link:hover { color:var(--castle-gold); }
.nav-quest-label { color:#c6a876; font-size:8px; }
.admin-nav-link { padding-inline:9px; border:1px solid #58472e; color:#f0d7a6; background:#151116; font-size:9px; }
.room-connection-badge { max-width:190px; overflow:hidden; padding:5px 8px; border:1px solid #6b573c; color:#f4d59a; background:#131014; font:8px 'DM Mono','Noto Sans KR',sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.room-connection-badge.is-online { border-color:#488267; color:#9fe7bc; }
.room-connection-badge.is-offline { border-color:#8e403d; color:#ffaaa1; }
.site-footer #openAdminFooter { min-height:26px; padding:3px 7px; border:1px solid #62503b; color:#ddc59d; background:#0b0b0e; font-size:8px; cursor:pointer; }
.site-footer #openAdminFooter:hover { border-color:var(--castle-gold); color:#fff0cf; }
.map-compass small { font:6px 'Cinzel',serif; letter-spacing:.14em; }
.team-dungeon-seal { font-family:'Cinzel',serif !important; }

/* Dungeon choice cards now preview each boss, element and tactical rule */
.dungeon-page-head h1, .admin-page-head h1 { font-family:'Black Han Sans','Noto Sans KR',sans-serif; }
.team-dungeon-window { border-color:#655440; background:#131218; }
.team-dungeon-window::before { filter:saturate(.78); }
.team-dungeon-window.is-current { box-shadow:0 0 0 1px #ffc45d45,0 0 30px #ffc45d12,5px 5px 0 #17131f; }
.team-window-blue.is-current { box-shadow:0 0 0 1px #60c9e545,0 0 30px #60c9e512,5px 5px 0 #17131f; }
.team-dungeon-head { border-bottom-color:#c5a46a45; }
.team-dungeon-seal { border-radius:50% 50% 44% 44%; box-shadow:inset 0 0 0 2px #ffffff12,0 0 12px #f04d4222; font-size:17px !important; }
.team-window-blue .team-dungeon-seal { box-shadow:inset 0 0 0 2px #ffffff12,0 0 12px #60c9e522; }
.dungeon-choice-area>p { color:#f0dfc5; }
.dungeon-choice-list { gap:7px; }
.dungeon-choice-list button { min-height:clamp(100px,17vh,142px); padding:7px 4px; align-content:center; gap:3px; border-color:#66563e; background:linear-gradient(155deg,#1d1b20ed,#09090bdc 72%); box-shadow:inset 0 1px #ffffff10; }
.dungeon-choice-list button:hover:not(:disabled) { transform:translateY(-3px); border-color:#f3c66f; box-shadow:0 7px 20px #0008,inset 0 0 20px #ffc45d12; }
.dungeon-choice-list button i { font-size:25px; text-shadow:0 0 14px currentColor; }
.dungeon-choice-list button[data-dungeon-choice="magma"] i { color:#ff795c; }
.dungeon-choice-list button[data-dungeon-choice="ice"] i { color:#8ce5f7; }
.dungeon-choice-list button[data-dungeon-choice="electric"] i { color:#f2d65d; }
.dungeon-choice-list .dungeon-choice-name { color:#fff0d6; font:15px 'Black Han Sans','Noto Sans KR',sans-serif; }
.dungeon-choice-list button small { color:#d9c6aa; font-size:8px; }
.dungeon-choice-list button em { color:#a89b88; font-size:7px; font-style:normal; }
.dungeon-choice-list button b { margin-top:2px; color:#f1c875; font:7px 'DM Mono','Noto Sans KR',sans-serif; }
.team-window-blue .dungeon-choice-list button:hover:not(:disabled) { border-color:#7bdbed; }

/* Boss encounter: telegraphed attack, response and collectible rune slots */
.team-dungeon-play { grid-template-rows:auto minmax(0,1fr) auto auto; }
.team-boss-stage { border-color:#b3956648; background:linear-gradient(110deg,#08070bd9,#171319d9); }
.team-boss-stage.is-defeated { border-color:#85817a; background:#08080abf; }
.team-boss-stage.is-countered { animation:boss-counter .42s ease-out; }
.team-boss-face { transition:transform .25s,filter .25s; }
.team-boss-stage.is-defeated .team-boss-face { filter:grayscale(1) brightness(.65); transform:scale(.86); }
.team-boss-info { grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:8px; }
.team-boss-info small,.team-boss-info>b { grid-column:1; }
.team-boss-hearts { grid-column:2; grid-row:1 / span 3; align-self:center; padding:5px 7px; border:1px solid #b5403a66; background:#230d12a8; font-size:10px; }
.team-window-blue .team-boss-hearts { border-color:#4697ae66; background:#0b1e26a8; }
.battle-phase-label { grid-column:1; color:#ffcc74; font:7px 'DM Mono','Noto Sans KR',sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.team-window-blue .battle-phase-label { color:#8de6f5; }
.collect-card { gap:5px; padding:7px 8px; border-color:#8a6d4660; background:linear-gradient(145deg,#0a090ccf,#151117d9); }
.battle-phase-banner { padding:4px 6px; border-left:2px solid #ffc45d; color:#f5d594; background:linear-gradient(90deg,#60401642,transparent); font-size:7px; }
.team-window-blue .battle-phase-banner { border-color:#60c9e5; color:#abeef9; background:linear-gradient(90deg,#17445758,transparent); }
.collect-gems { display:flex; align-items:center; gap:5px; min-height:14px; }
.collect-gems i { display:grid; width:14px; height:14px; place-items:center; border:1px solid #61513e; color:#847866; background:#0b0a0b; font:10px 'Cinzel',serif; font-style:normal; transition:color .25s,background .25s,transform .25s,box-shadow .25s; }
.collect-gems i.is-collected { transform:rotate(45deg); border-color:#f4c868; color:#fff0b8; background:#a16918; box-shadow:0 0 12px #ffc45d86; }
.team-window-blue .collect-gems i.is-collected { border-color:#7bdced; color:#dcfbff; background:#21667a; box-shadow:0 0 12px #60c9e580; }
.attack-telegraph { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:5px 8px; padding:5px 7px; border-left:2px solid #f57c54; background:#2b171437; }
.team-window-blue .attack-telegraph { border-color:#7bdaed; background:#12303b42; }
.attack-telegraph>small { color:#e8a27a; font:7px 'DM Mono','Noto Sans KR',sans-serif; }
.team-window-blue .attack-telegraph>small { color:#96e0ef; }
.attack-telegraph .collect-pattern { color:#fff0de !important; font-size:9px !important; }
.collect-message { margin:0; color:#e5d8c5; font-size:8px; line-height:1.4; }
.collect-message.is-success { color:#ffe09c; }
.collect-message.is-warning { color:#ff9c8d; }
.collect-option { min-height:34px; border-color:#786044; background:linear-gradient(155deg,#19171b,#0c0b0e); font-size:8px; }
.collect-option:hover:not(:disabled) { box-shadow:0 0 13px #ffc45d18; }
.collect-button:disabled { filter:saturate(.5); opacity:.52; }
.dungeon-clear-message:not([hidden]) { animation:clear-insignia .5s cubic-bezier(.2,.8,.2,1) both; border-width:2px; letter-spacing:.08em; box-shadow:0 0 22px #ffc45d26; }

/* Shared dialogs and room setup */
.room-dialog, .room-invite-dialog, .admin-login-dialog { width:min(500px,calc(100vw - 28px)); max-width:none; max-height:calc(100svh - 34px); padding:0; overflow:auto; border:1px solid #a8844d; color:#f4ecdf; background:linear-gradient(150deg,#17151a,#09090c 70%); box-shadow:0 0 0 4px #1b1715,0 28px 90px #000e; }
.room-dialog::backdrop, .room-invite-dialog::backdrop, .admin-login-dialog::backdrop { background:#020203df; backdrop-filter:blur(6px); }
.room-dialog-card { display:grid; gap:10px; padding:clamp(18px,4vw,28px); }
.room-dialog-card .eyebrow { margin:0 0 3px; color:#dcb568; font:8px 'Cinzel','DM Mono',serif; letter-spacing:.15em; }
.room-dialog-card h2 { margin:0; color:#fff0d7; font:25px 'Black Han Sans','Noto Sans KR',sans-serif; }
.room-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.dialog-close { width:30px; height:30px; border:1px solid #524638; color:#e5d4b9; background:#0a0a0c; font-size:19px; cursor:pointer; }
.room-tabs { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; border:1px solid #4d4135; background:#08080a; }
.room-tabs button { min-height:32px; border:1px solid transparent; color:#bfb3a1; background:transparent; font-size:10px; cursor:pointer; }
.room-tabs button.is-selected { border-color:#8e7146; color:#ffe4ad; background:#302313; }
.room-form { display:grid; gap:7px; }
.room-form label, .room-dialog-card>label { margin-top:2px; color:#d9c6aa; font-size:10px; }
.room-form input,.room-form select,.room-dialog-card>input { width:100%; min-height:37px; padding:7px 10px; border:1px solid #52483e; border-radius:0; color:#fff4e4; background:#09090c; font:12px 'Noto Sans KR',sans-serif; }
.room-form input:focus,.room-form select:focus,.room-dialog-card>input:focus { outline:1px solid #ffc45d; border-color:#ffc45d; }
.room-form-note { margin:0; color:#a99d8d; font-size:9px; line-height:1.55; }
.room-form .button,.room-dialog-card>.button { min-height:39px; font-size:11px; }
.invite-secret-row { display:grid; grid-template-columns:1fr auto; align-items:center; gap:5px 10px; padding:10px; border:1px solid #75603e; background:#0a090b; }
.invite-secret-row>span { grid-column:1 / -1; color:#c9b99f; font-size:9px; }
.invite-secret-row code { overflow-wrap:anywhere; color:#ffe09c; font:16px 'DM Mono',monospace; letter-spacing:.09em; }
.invite-secret-row button { min-height:28px; padding:4px 8px; border:1px solid #66533a; color:#e9d2a8; background:#17130e; font-size:8px; cursor:pointer; }
.admin-secret-row code { color:#b8e9f2; font-size:11px; }
.invite-enter-button { width:100%; margin-top:4px; }

/* Protected read-only master screen; the document itself never scrolls */
.screen-admin { grid-template-rows:54px minmax(0,1fr); gap:10px; padding:68px 0 44px; background:radial-gradient(ellipse at 60% 0%,#30241655,transparent 45%),#08080b !important; }
.screen-admin.is-active { display:grid; }
.admin-page-head,.admin-layout { width:min(1440px,calc(100% - 40px)); margin-inline:auto; }
.admin-page-head { min-height:0; display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:20px; }
.admin-page-head .eyebrow { margin:0 0 2px; color:#c5a261; font:7px 'Cinzel',serif; letter-spacing:.18em; }
.admin-page-head h1 { margin:0; color:#fff1dc; font-size:23px; }
.admin-room-heading { display:grid; gap:2px; text-align:center; }
.admin-room-heading b { color:#f1ddb9; font-size:11px; }
.admin-room-heading span { color:#b7985b; font-size:7px; }
.admin-head-actions { display:flex; align-items:center; gap:5px; }
.admin-head-actions .button { min-height:29px; padding:3px 8px; font-size:8px; }
.admin-live-state { color:#91ddb0; font:8px 'DM Mono',monospace; }
.admin-live-state.is-offline { color:#ff9b92; }
.admin-layout { min-height:0; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr); gap:10px; }
.admin-panel { min-height:0; overflow:hidden; padding:12px; border:1px solid #645139; background:linear-gradient(145deg,#17161a,#0b0b0e); box-shadow:4px 4px 0 #17131f; }
.admin-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:8px; border-bottom:1px solid #ffffff20; }
.admin-panel-heading small { color:#b6955d; font-size:7px; }
.admin-panel-heading h2 { margin:2px 0 0; color:#fff0d5; font:17px 'Black Han Sans','Noto Sans KR',sans-serif; }
.admin-panel-heading>span { color:#c3b39d; font-size:8px; }
.admin-team-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.admin-team-card { min-width:0; padding:9px; border:1px solid #743e3b; background:#140c0f; }
.admin-team-blue { border-color:#346575; background:#091116; }
.admin-team-card header { display:grid; grid-template-columns:7px auto 1fr; align-items:center; gap:6px; }
.admin-team-card header i { width:7px; height:22px; background:var(--team-ruby); }
.admin-team-blue header i { background:var(--team-sapphire); }
.admin-team-card header b { color:#ffe4dc; font-size:11px; }
.admin-team-blue header b { color:#dbf8ff; }
.admin-team-card header span { overflow:hidden; color:#cbb8a6; font-size:8px; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.admin-team-card ul { display:grid; gap:4px; margin:9px 0; padding:0; list-style:none; }
.admin-team-card li { display:flex; justify-content:space-between; gap:8px; padding:4px 5px; border:1px solid #ffffff14; color:#dacbbb; background:#08080ab3; font-size:8px; }
.admin-team-card li b { color:#ffe0a0; font-weight:600; }
.admin-team-blue li b { color:#9fe9f5; }
.admin-dungeon-progress { display:flex; justify-content:space-between; gap:6px; padding-top:6px; border-top:1px solid #ffffff18; color:#bfb09c; font-size:8px; }
.admin-dungeon-progress b { color:#f0d390; }
.admin-team-blue .admin-dungeon-progress b { color:#91e0f2; }
.admin-players-heading { display:flex; align-items:center; justify-content:space-between; margin:12px 0 5px; }
.admin-players-heading h3 { margin:0; color:#ead9bf; font-size:10px; }
.admin-players-heading span { color:#b49b74; font:8px 'DM Mono',monospace; }
.admin-player-list { max-height:clamp(62px,14vh,150px); overflow:auto; display:flex; flex-wrap:wrap; align-content:flex-start; gap:5px; }
.admin-player-chip { display:flex; align-items:center; gap:5px; padding:4px 7px; border:1px solid #594c3b; color:#d9c8ad; background:#0a090b; font-size:8px; }
.admin-player-chip i { width:6px; height:6px; border-radius:50%; background:#7a7166; }
.admin-player-chip.is-online i { background:#66d48f; box-shadow:0 0 7px #66d48f8a; }
.admin-player-chip[data-team="blue"] { border-color:#315b67; }
.admin-event-panel { display:grid; grid-template-rows:auto minmax(0,1fr); }
.admin-event-list { min-height:0; overflow:auto; display:grid; align-content:start; gap:5px; margin:8px 0 0; padding:0 4px 0 22px; }
.admin-event-list li { padding:5px 7px; border-left:1px solid #7b6240; color:#ded0bc; background:linear-gradient(90deg,#1b1714,#0d0c0f); font-size:8px; line-height:1.4; }
.admin-event-list li::marker { color:#d7b06d; font:8px 'DM Mono',monospace; }
.admin-event-list time { display:block; margin-bottom:2px; color:#a38a61; font:7px 'DM Mono',monospace; }
.admin-event-list b { color:#f3d89e; font-weight:600; }
.admin-event-empty { padding:12px; color:#a99a86; font-size:9px; text-align:center; }

@keyframes boss-counter { 0%,100% { transform:translateX(0); } 22% { transform:translateX(-7px) rotate(-1deg); } 46% { transform:translateX(6px) rotate(1deg); } 68% { transform:translateX(-3px); } }
@keyframes clear-insignia { 0% { transform:scale(.85); opacity:0; } 70% { transform:scale(1.03); opacity:1; } 100% { transform:scale(1); } }
@media (max-width:760px) {
  .hero-room-actions { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-top:8px; }
  .hero-room-actions .button { min-height:28px; padding:3px 4px; font-size:8px; }
  .hero-admin-link { margin-top:5px; font-size:8px; }
  .hero-facts { margin-top:8px !important; }
  .room-connection-badge { max-width:104px; padding:3px 5px; font-size:6px; }
  .admin-nav-link { display:none; }
  .site-footer { gap:4px; }
  .site-footer #openAdminFooter { min-height:22px; padding:2px 4px; font-size:7px; }
  .dungeon-choice-list { gap:3px; }
  .dungeon-choice-list button { min-height:clamp(72px,12vh,94px); padding:4px 2px; gap:2px; }
  .dungeon-choice-list button i { font-size:17px; }
  .dungeon-choice-list .dungeon-choice-name { font-size:10px; }
  .dungeon-choice-list button small { font-size:6px; }
  .dungeon-choice-list button em { display:none; }
  .dungeon-choice-list button b { font-size:6px; }
  .battle-phase-banner { padding:3px; font-size:6px; }
  .collect-gems { min-height:11px; gap:3px; }
  .collect-gems i { width:11px; height:11px; font-size:7px; }
  .attack-telegraph { gap:3px 5px; padding:3px 4px; }
  .attack-telegraph>small { font-size:6px; }
  .attack-telegraph .collect-pattern { font-size:7px !important; }
  .collect-message { font-size:6px; }
  .screen-admin { grid-template-rows:39px minmax(0,1fr); gap:5px; padding:58px 0 39px; }
  .admin-page-head,.admin-layout { width:calc(100% - 14px); }
  .admin-page-head { grid-template-columns:minmax(0,1fr) auto; gap:4px; }
  .admin-page-head .eyebrow { display:none; }
  .admin-page-head h1 { font-size:16px; }
  .admin-room-heading { display:none; }
  .admin-head-actions { gap:3px; }
  .admin-head-actions .button { min-height:22px; padding:2px 4px; font-size:6px; }
  .admin-live-state { font-size:6px; }
  .admin-layout { grid-template-columns:1fr; grid-template-rows:minmax(0,1.08fr) minmax(0,.92fr); gap:5px; }
  .admin-panel { padding:6px; }
  .admin-panel-heading { padding-bottom:4px; }
  .admin-panel-heading h2 { font-size:12px; }
  .admin-panel-heading small,.admin-panel-heading>span { font-size:6px; }
  .admin-team-grid { gap:4px; margin-top:5px; }
  .admin-team-card { padding:5px; }
  .admin-team-card header { grid-template-columns:4px auto 1fr; gap:3px; }
  .admin-team-card header i { width:4px; height:15px; }
  .admin-team-card header b,.admin-team-card header span { font-size:6px; }
  .admin-team-card ul { gap:2px; margin:4px 0; }
  .admin-team-card li { padding:2px 3px; font-size:6px; }
  .admin-dungeon-progress { padding-top:3px; font-size:6px; }
  .admin-players-heading { margin:5px 0 3px; }
  .admin-players-heading h3,.admin-players-heading span { font-size:7px; }
  .admin-player-list { max-height:clamp(38px,8vh,60px); gap:3px; }
  .admin-player-chip { gap:3px; padding:2px 4px; font-size:6px; }
  .admin-event-list { gap:2px; margin-top:4px; padding-left:16px; }
  .admin-event-list li { padding:3px 4px; font-size:6px; }
  .admin-event-list time,.admin-event-list li::marker { font-size:5px; }
  .admin-event-empty { padding:5px; font-size:7px; }
}
@media (prefers-reduced-motion:reduce) {
  .dungeon-choice-list button,.team-boss-face,.collect-gems i { transition:none; }
  .team-boss-stage.is-countered,.dungeon-clear-message:not([hidden]) { animation:none; }
}


/* Western medieval courtyard artwork for the hall transition and Yut board. */
.hall-art {
  background-image: linear-gradient(0deg, #05050652, transparent 54%), url('/assets/castle-courtyard.webp') !important;
  background-position: center, 52% center !important;
  background-size: cover, cover !important;
  background-repeat: no-repeat !important;
}
.board-world::before {
  background-image: linear-gradient(180deg, #05050650, #05050612 48%, #05050670), url('/assets/castle-courtyard.webp') !important;
  background-position: center !important;
  background-size: cover !important;
  opacity: .92 !important;
  filter: saturate(1.08) contrast(1.04) !important;
}
