/* Palace — nuit étoilée, or (compact mobile) */
.tpl-palace { --gold: var(--accent); --radius: 6px; --radius-sm: 6px; background: var(--bg); }
.pl-stars { position: fixed; inset: 0; z-index: 0; pointer-events: none; background-image: radial-gradient(1.4px 1.4px at 12% 18%, #fff, transparent), radial-gradient(1px 1px at 72% 12%, #fff, transparent), radial-gradient(1.6px 1.6px at 86% 34%, #fff, transparent), radial-gradient(1px 1px at 38% 8%, #fff, transparent), radial-gradient(1.2px 1.2px at 58% 28%, #fff, transparent), radial-gradient(1px 1px at 22% 42%, #fff, transparent), radial-gradient(1.3px 1.3px at 92% 6%, #fff, transparent), radial-gradient(1px 1px at 6% 30%, #fff, transparent); opacity: .5; animation: plTw 5s ease-in-out infinite; }
@keyframes plTw { 50% { opacity: .22; } }
.pl-head { position: relative; padding: calc(1.9rem + env(safe-area-inset-top)) 1.2rem 1.5rem; text-align: center; isolation: isolate; overflow: hidden; }
.pl-head::before { content: ''; position: absolute; inset: 0; z-index: -2; background: var(--img) center / cover; filter: saturate(.8); transform: scale(1.05); }
.pl-head::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8,20,42,.78) 0%, rgba(8,20,42,.66) 45%, var(--bg) 100%); }
.pl-crest { position: relative; width: 104px; height: 104px; margin: 0 auto .6rem; display: grid; place-items: center; }
.pl-laurel { position: absolute; inset: 0; color: var(--gold); animation: fadeIn 1.6s ease both; }
.pl-logo { width: 60px; height: 60px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; border: 1.5px solid var(--gold); background: radial-gradient(circle at 30% 30%, #1d335a, var(--bg)); color: var(--gold); font-family: var(--display); font-weight: 600; font-size: 1.3rem; box-shadow: 0 0 26px -6px color-mix(in srgb, var(--gold) 55%, transparent); animation: logoIn 1s var(--spring) both .2s; }
@keyframes logoIn { from { opacity: 0; transform: scale(.6); } }
.pl-logo img { width: 100%; height: 100%; object-fit: cover; }
.pl-kicker { font-family: var(--display); font-style: italic; font-size: .95rem; color: color-mix(in srgb, var(--text) 80%, transparent); }
.pl-name { margin-top: .3rem; font-family: var(--display); font-weight: 600; font-size: clamp(1.65rem, 8vw, 2.1rem); letter-spacing: .12em; text-transform: uppercase; line-height: 1.12; background: linear-gradient(180deg, #fff3d6, var(--gold) 70%, #a8864a); -webkit-background-clip: text; background-clip: text; color: transparent; text-wrap: balance; }
.pl-rule { display: flex; align-items: center; justify-content: center; gap: .55rem; margin: .8rem 0; }
.pl-rule span { width: 48px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold)); }
.pl-rule span:last-child { transform: scaleX(-1); }
.pl-rule i { width: 7px; height: 7px; background: var(--gold); transform: rotate(45deg); }
.pl-tag { font-size: .68rem; letter-spacing: .24em; text-transform: uppercase; color: color-mix(in srgb, var(--text) 68%, transparent); }
.pl-plaque { display: inline-block; margin-top: 1rem; padding: .42rem 1.1rem; border: 1px solid var(--gold); outline: 1px solid color-mix(in srgb, var(--gold) 40%, transparent); outline-offset: 3px; font-family: var(--display); font-size: .95rem; letter-spacing: .1em; color: var(--gold); background: rgba(8,20,42,.45); }
.pl-welcome { padding: .2rem 1.6rem .2rem; text-align: center; font-family: var(--display); font-style: italic; font-size: .98rem; line-height: 1.45; color: color-mix(in srgb, var(--text) 75%, transparent); }
.pl-grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; padding: 1rem 1rem 0; }
.pl-card { position: relative; display: grid; justify-items: center; align-content: center; gap: .3rem; min-height: 112px; padding: .9rem .6rem; text-align: center; background: linear-gradient(160deg, var(--surface), color-mix(in srgb, var(--surface) 55%, var(--bg))); border: 1px solid color-mix(in srgb, var(--gold) 42%, transparent); transition: border-color .3s, transform .2s var(--ease); }
.pl-card::before { content: ''; position: absolute; inset: 4px; border: 1px solid color-mix(in srgb, var(--gold) 16%, transparent); pointer-events: none; }
.pl-card:active { transform: scale(.97); border-color: var(--gold); }
.pl-card.is-wide { grid-column: 1 / -1; grid-template-columns: auto 1fr; justify-items: start; text-align: left; column-gap: .9rem; min-height: 84px; padding: .9rem 1.1rem; background: linear-gradient(135deg, color-mix(in srgb, var(--gold) 28%, var(--surface)), var(--surface)); }
.pl-card.is-wide .pl-ico { grid-row: span 2; width: 30px; height: 30px; }
.pl-ico { width: 24px; height: 24px; color: var(--gold); stroke-width: 1.4; }
.pl-card b { font-family: var(--display); font-weight: 600; font-size: .98rem; line-height: 1.2; }
.pl-card small { font-size: .6rem; letter-spacing: .13em; text-transform: uppercase; color: color-mix(in srgb, var(--text) 55%, transparent); line-height: 1.35; }
.pl-card.is-wide b { font-size: 1.15rem; }
.tpl-palace .cs-app { position: relative; z-index: 1; }
.tpl-palace .sheet { border-top: 1px solid var(--gold); }
.tpl-palace .cs-btn:not(.cs-btn-ghost):not(.cs-btn-google) { color: #0a1628; letter-spacing: .1em; text-transform: uppercase; font-size: .85rem; }
.tpl-palace .menu-cat.is-active { color: #0a1628; }
.tpl-palace .sheet-title, .tpl-palace .menu-sec-title { font-weight: 600; }
.tpl-palace .cs-dock { border-radius: 6px; background: rgba(12,26,50,.9); border-color: color-mix(in srgb, var(--gold) 45%, transparent); }
.tpl-palace .cs-dock a { border-radius: 4px; }
.tpl-palace .cs-dock a.is-main { color: #0a1628; }
