/* Moonlit Gensokyo palette; table dimensions and tile geometry stay intact. */
:root{--ink:#10162c;--panel:#20233b;--gold:#d5b88b;--gold-bright:#ffe4bc;--muted:#b7b7cc;--white:#f5f0ef;--pink:#e4adc7;--line:rgba(203,180,161,.34)}
body{background:#080c1c}.stage{background-color:#111a30}.stage:before{background:linear-gradient(90deg,#080d22ee,#10142b40 74%),linear-gradient(0deg,#0b112bcc,transparent 60%)}
.stage.game-stage:before{background:linear-gradient(180deg,#0b102b99,#0b14302a 38%,#0a102c88)}
.home-person{border-color:#d3b1c15c;background:linear-gradient(165deg,#76668777,#16264455)}
.home-person:after{background:linear-gradient(transparent 58%,#111a38f0)}
.home-person:nth-child(3) .home-person-name{letter-spacing:5px}
.home-copy h1{font-size:88px!important;letter-spacing:5px!important}.home-roman{letter-spacing:6px}
.home-seal{color:#f5b9b3}.home-description{color:#ded9e9}
.petal{background:#d1c1ef66}.gallery-info h1{font-size:48px;letter-spacing:3px;overflow-wrap:anywhere}
.gallery-selectors{flex-wrap:wrap;flex:0 0 230px;gap:10px;margin-top:18px;align-content:flex-start}
.gallery-avatar{display:flex;flex-direction:column;flex:0 0 95px;height:110px;background:#1b233e}
.gallery-avatar .avatar-art{display:block;flex:1;min-height:0;width:100%;height:0}
.gallery-avatar .avatar-name{position:relative;flex:none;display:block;width:100%;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#171c39eb}
.selection-layout{top:305px}.character-roster{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.roster-card{height:176px;background:linear-gradient(140deg,#4a426377,#112035eb)}.roster-art{height:290px;object-position:center 12%}
.roster-info{padding:24px 9px 9px;background:linear-gradient(transparent,#111a36f5 36%)}.roster-info strong{font-size:18px;letter-spacing:0;white-space:nowrap}.roster-info small{font-size:13px}
.selection-seat strong{font-size:16px;white-space:normal;overflow-wrap:anywhere}.selection-seat small{font-size:11px}
.brand-small{letter-spacing:3px}.game-mode-label small{color:#cfc7e4}
html.mobile-layout .character-roster{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
html.mobile-layout .roster-card{height:205px}html.mobile-layout .roster-info strong{font-size:19px;white-space:normal}
html.mobile-layout .gallery-selectors{flex-wrap:nowrap;flex-basis:128px}html.mobile-layout .gallery-avatar{height:116px;flex-basis:110px}
html.mobile-layout .gallery-info h1{font-size:38px}html.mobile-layout .selection-seat strong{font-size:19px}
html.mobile-layout .home-copy h1{font-size:63px!important}html.mobile-layout .home-roman{letter-spacing:3px}
html .stage.game-stage.square-table .portrait-crop{position:absolute;left:0;top:0;width:var(--table-avatar-size);height:var(--table-avatar-size);overflow:hidden;border:1px solid #c6ac7888;border-radius:6px 6px 0 0;background:linear-gradient(140deg,#484563,#14293e)}
html .stage.game-stage.square-table .portrait-crop .character-art,html .stage.game-stage.square-table .portrait-crop .player-avatar{display:block;width:100%;height:100%;border:0;border-radius:0;box-shadow:none;background:none;transform:none}
html .stage.game-stage.square-table .current .portrait-crop{border-color:#ffe0a4;box-shadow:0 0 14px #e2c07988}
.win-ceremony-winners .ceremony-avatar{display:block;width:50px;height:50px;border-radius:50%;border:1px solid #e0bd72}
.modal-character-info h2{overflow-wrap:anywhere}.result-victory-caption strong{font-size:23px;letter-spacing:1px}.ranking-name{overflow-wrap:anywhere}
html.mobile-layout .character-roster{max-height:290px;overflow-y:auto;overscroll-behavior-y:contain;padding-right:5px;scrollbar-width:thin;scrollbar-color:#c2a588 #20253b}
html.mobile-layout .roster-card{height:136px}
