/*
 * LA KABANE — Design System 2
 * Contrastes, espacements, thèmes par univers et ergonomie tactile.
 * Une feuille additive pour préserver les gabarits et interactions historiques.
 * La customisation du Studio reste prioritaire via les variables définies en ligne.
 */
:root{
  color-scheme:dark;
  --kabane-bg:#151522;
  --kabane-text:#f6edf4;
  --kabane-radius:20px;
  --kabane-line:1.6;
  --green:#c5a2df;
  --muted:#b9aabe;
  --line:#493e55;
  --paper:#252238;
  --ink:#f6edf4;
  --kb-surface:#242235;
  --kb-raised:#302840;
  --kb-border:#51445f;
  --kb-text:#faf2f8;
  --kb-muted:#c5b5cc;
  --kb-accent:#e7b9f5;
  --kb-lilac:#b89af0;
  --kb-gold:#efc981;
  --kb-shadow:0 16px 44px rgba(10,7,18,.24);
}
body{background:var(--kabane-bg);color:var(--kabane-text);accent-color:var(--kb-lilac)}
body,button,input,textarea,select{font-family:var(--kabane-font,Inter,system-ui,sans-serif)}
body:before{isolation:isolate}
body::selection,::selection{background:#b292d9;color:#151522}
h1,h2,h3{overflow-wrap:break-word;text-wrap:balance}
p,li,.muted,small{overflow-wrap:anywhere}
p,.muted{color:var(--kb-muted)}
a{transition:color .18s ease}
.sidebar{
  background:linear-gradient(165deg,#231b34 0%,#1a192b 65%,#272035 100%);
  border-right:1px solid var(--kb-border);
  box-shadow:14px 0 35px rgba(10,8,18,.12);
}
.brand{color:#f7e9ff;font-size:29px;letter-spacing:-.055em}
.brand-icon{background:linear-gradient(145deg,#d9b4fa,#aa82d6);color:#30233f;box-shadow:0 5px 18px #b888ed44}
.brand-sub{color:#efceaa}
.sidebar-caption{color:#c6add3}
.sidebar nav a{color:#d6c6e2;border-radius:13px;font-size:14px;font-weight:600;letter-spacing:.005em}
.sidebar nav a:hover{background:#ffffff12;color:white}
.sidebar nav a.current,.sidebar nav a.current:hover{
  background:linear-gradient(115deg,#9e75ca,#bc85c0);
  color:#fff;box-shadow:0 8px 20px #05020a33
}
.sidebar nav a:last-child{border-color:#64536e}
.sidebar-footer{color:#baa9c8}
.topbar{background:#211c2deF;border-bottom:1px solid var(--kb-border);backdrop-filter:blur(16px)}
.breadcrumb,.level,.profile{color:#d1bfd9}
.breadcrumb span{color:#9e88af}
.avatar{background:#d3afd9;color:#32203a;border:2px solid #f2d4d8;box-shadow:0 3px 14px #0004}
main{max-width:1500px;padding:34px clamp(22px,3.7vw,62px) 85px}
.page-heading{margin:22px 0 30px;max-width:880px}
.page-heading .eyebrow,.eyebrow,.hero-kicker{color:var(--kb-gold);font-size:11px;letter-spacing:.15em;font-weight:800;text-transform:uppercase}
.page-heading h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(32px,4.1vw,58px);line-height:1.13;color:#f8e5fb;letter-spacing:-.045em}
.page-heading p{font-size:clamp(14px,1.2vw,16px);line-height:1.7;color:#cdc0d1}
.card{
  background:linear-gradient(145deg,rgba(49,41,67,.97),rgba(35,33,53,.98));
  border:1px solid var(--kb-border);
  border-radius:var(--kabane-radius);
  box-shadow:var(--kb-shadow);
  color:var(--kb-text)
}
.card p,.card small{color:var(--kb-muted)}
.card h2,.card h3{color:#fff0fb}
.card .eyebrow{color:var(--kb-gold)}
.section-top{align-items:flex-start}
.pill,.status-label{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid #9f84b055;border-radius:999px;
  background:#a887bc24;color:#ebcaff;
  font-size:12px;line-height:1.35;padding:6px 12px;
}
.button,button.button,a.button{
  border-radius:13px;
  background:linear-gradient(130deg,#c79de6,#e9b4d1);
  color:#291934;font-size:14px;font-weight:800;
  padding:12px 20px;min-height:46px;justify-content:center;
  box-shadow:0 4px 16px rgba(159,94,184,.25);
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease
}
.button:hover:not(:disabled),button.button:hover:not(:disabled){filter:brightness(1.075);transform:translateY(-2px);box-shadow:0 9px 22px #8c60b63e}
.button:active:not(:disabled){transform:translateY(0)}
.button.secondary,a.button.secondary,.button.light{
  background:#382e4b;color:#f1dafa;border:1px solid #836a9a;box-shadow:none
}
.button:disabled{opacity:.55;filter:saturate(.55);box-shadow:none;cursor:not-allowed}
.text-link,.text-button{color:#ecc3ff;font-size:13px;font-weight:700;white-space:normal}
.text-link:hover,.text-button:hover{color:#ffdfc6}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid #f4d88f;outline-offset:3px
}
input:not([type=checkbox]):not([type=radio]),textarea,select{
  border:1px solid #786988;background:#251f35;color:#fff1fc;
  border-radius:12px;padding:12px 14px;
  max-width:100%;min-width:0;min-height:45px
}
input::placeholder,textarea::placeholder{color:#b4a5c1;opacity:1}
label{color:#eaddeb}
select option{background:#251f35;color:#fff1fc}
fieldset{border:1px solid var(--kb-border);border-radius:14px}
.notice{background:#312942;border:1px solid #6b587e;color:#e6d1e8;border-radius:15px;padding:15px 18px;font-size:13px}
.notice.warning,.warning{background:#49332f;border-color:#ac7b54;color:#ffe1b7}
.tabs button,.studio-tabs button{
  border:1px solid #665675;border-radius:12px;
  background:#30283e;color:#eadceb;padding:11px 17px;
  font-size:13px;font-weight:700
}
.tabs button.selected,.studio-tabs button.selected{
  background:#d9afea;color:#24172c;border-color:#edcfff;box-shadow:0 5px 20px #bc89d438
}
.tabs,.studio-tabs{scrollbar-color:#8c6e99 transparent}
.hero{
  background:linear-gradient(135deg,#392744,#765679 68%,#c19794);
  border:1px solid #8e7199;border-radius:27px;min-height:365px;
  box-shadow:0 20px 52px rgba(12,8,24,.27)
}
.hero:after{background:linear-gradient(100deg,#2e233cec 4%,#34253bd9 40%,#412b4b27 80%)}
.hero-content{padding:clamp(28px,4vw,55px);max-width:700px}
.hero h1{font-size:clamp(38px,4.5vw,62px);color:#fff1ff}
.hero h1 span{color:#f0c786}
.hero p{color:#f3deef;font-size:15px;line-height:1.7;max-width:50ch}
.welcome-line{color:#d6bed8;font-size:13px}
.home-grid{gap:18px}
.daily{background:linear-gradient(165deg,#3d2d53,#302846)}
.daily h2{font-size:clamp(25px,2.2vw,32px);color:#fff3fc}
.daily p{font-size:14px;max-width:none}
.dots i{background:#7e6589;border-radius:20px;height:8px;width:18px}
.dots .filled{background:#f2cd87}
.dots small{color:#f1ddeb;font-size:12px}
.crew{background:linear-gradient(160deg,#392d46,#242b3b)}
.crew h2{color:#ffecf8}
.note{background:#e4cfa9;color:#493648}
.feature-film{border-radius:19px}
.sport-teaser{border-radius:19px;background:linear-gradient(135deg,#2d4252,#372e50);color:#e1f0ff}
.entry-hub-grid{gap:15px}
.entry-hub-card{
  border:1px solid #746084;border-left:4px solid #d6abe8;
  border-radius:18px;background:linear-gradient(130deg,#392b4c,#2b2d45);
  box-shadow:0 10px 24px #08070d22;
  min-height:112px
}
.entry-hub-card:hover{transform:translateY(-3px);border-color:#e0b5f7}
.entry-hub-card b{color:#ffeffc;font-size:17px}
.entry-hub-card small{color:#dbc5e5;font-size:13px}
.entry-hub-icon{color:#e6bfff}
.quiz-card{background:linear-gradient(135deg,#3e3150,#24283b);border-color:#75618d;padding:clamp(20px,3vw,38px)}
.quiz-card h2{font:clamp(24px,2.6vw,36px)/1.35 Georgia,serif;color:#fff4fa}
.quiz-progress button{background:#28263b;color:#ebd3f7;border:1px solid #927da5;width:42px;height:42px}
.quiz-progress button.current{box-shadow:0 0 0 3px #e5beef;background:#573b70;color:#fff}
.quiz-progress button.answered{background:#415f56;color:#effff5;border-color:#89c6a2}
.answers button{
  background:#302a43;border:1px solid #74668e;border-radius:15px;
  padding:16px 17px;min-height:57px;color:#f5eafa;font-size:15px;font-weight:600
}
.answers button span{background:#4b3d62;border:1px solid #9a83ab;color:#f6e1ff;border-radius:9px}
.answers button:not(:disabled):hover{background:#47375e;border-color:#e2bcf1}
.answers button.correct{background:#264c45;border-color:#8ac8aa;color:#e8fff3}
.answers button.wrong{background:#653b4b;border-color:#f3a0b2;color:#fff1ef}
.explanation{border-radius:16px;background:#2f4250;color:#e9f5ff;border-color:#7292a4;padding:18px}
.shop-wallet{
  padding:19px 24px;border:1px solid #a585ad;border-radius:20px;
  background:linear-gradient(120deg,#483153,#2c304b);box-shadow:var(--kb-shadow)
}
.shop-wallet h2{color:#f4d7f1}
.shop-wallet strong{color:#f0ce91}
.shop-grid{gap:19px}
.shop-product{border:1px solid #79638c;gap:19px}
.shop-product>img,.shop-art-placeholder{
  border:1px solid #807196;border-radius:17px;
  background:radial-gradient(circle at 50% 20%,#645076,#392e48);color:#f4d4a3
}
.shop-product h2{color:#fce8ff;font-size:clamp(20px,1.7vw,25px)}
.shop-product .shop-requirement{font-size:14px;color:#f2cf97;font-weight:700}
.shop-available{color:#b7f4c8!important}
.shop-provisional-reference,.shop-draft-item{
  background:#2e293e;border:1px solid #766485;border-radius:16px;color:#f6e9fb
}
.shop-draft-item>summary{padding:8px}
.shop-draft-item>summary small{color:#cab4d8}
.shop-provisional-levels section{
  background:#332a43;border:1px solid #5c4d6c;border-radius:13px;padding:14px
}
.bank-question-row{
  border:1px solid #665473;border-radius:14px;
  background:#30283f;padding:10px;margin:8px 0
}
.bank-question-row .title-button{color:#f8e5fa}
.bank-pagination{flex-wrap:wrap}
.studio-list,.studio-editor{border-color:#78658a}
.studio-entry{color:#eedff3;border-bottom:1px solid #59475f;border-radius:12px}
.studio-entry:hover{background:#40314f}
.studio-entry.selected{background:#5c426d}
.studio-scroll{scrollbar-color:#8a70a0 #2f293b}
.studio-layout{gap:20px}
.studio-audit{background:#31263d}
.souvenir-gallery,.souvenir-puzzle,.souvenir-world,.souvenir-studio{color:var(--kb-text)}
.souvenir-gallery .page-heading h1,.souvenir-puzzle .page-heading h1,.souvenir-world .page-heading h1,.souvenir-studio .page-heading h1{color:#f9dff0}
.souvenir-gallery .card,.souvenir-puzzle .card,.souvenir-world .card,.souvenir-studio .card{
  background:linear-gradient(140deg,#3c314b,#2b3040);border-color:#8c7898
}
.org-reminders{border-left:4px solid #ddae81}
.org-journal-entry,.list-row{border-color:#67576f}
.org-calendar-day{border-color:#67576f}
.org-calendar-day h3{color:#f6d6e9}
.media-grid{gap:19px}
.poster{border-radius:18px;overflow:hidden;box-shadow:0 14px 30px #0a071e55}
.media-grid .card,.upcoming .card{transition:border-color .16s ease}
.media-grid .card:hover,.upcoming .card:hover{border-color:#dcb0e9}
.auth-gate{color:#fff0fc}
.auth-gate-brand{color:#f7d8fc}
.auth-gate-content .card{background:#30283f}
.login-streak-note{background:#302b43;border-color:#826a96;color:#efdaef}
.login-streak-note span{color:#f4d7f4}
.login-streak-note small{color:#cbb6d3}
#toast{background:#392344;color:#fff6ff;border:1px solid #bd99ca;box-shadow:0 12px 34px #0b071b77}
.footer{color:#bca8c8}
@media(min-width:800px){
 .card:is(.shop-product,.entry-hub-card):hover{transform:translateY(-2px);transition:transform .18s ease,border-color .18s}
}
@media(max-width:900px){
 .home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .home-grid>*{min-width:0}
 .studio-layout{grid-template-columns:minmax(0,1fr)}
 .shop-product{grid-template-columns:minmax(92px,136px) minmax(0,1fr)}
}
@media(max-width:650px){
 .main-shell{margin-left:0}
 .topbar{height:70px;padding-inline:17px;border-bottom:1px solid var(--kb-border)}
 .breadcrumb:after{color:#f6d9f7;font-size:17px}
 main{padding:19px 16px calc(112px + env(safe-area-inset-bottom,0px));max-width:100vw}
 .page-heading{margin:18px 0 24px}
 .page-heading h1{font-size:clamp(31px,8vw,42px)}
 .page-heading p{font-size:14px}
 .hero{min-height:365px;border-radius:21px;margin-bottom:17px}
 .hero-content{padding:27px 23px;max-width:100%}
 .hero h1{font-size:clamp(35px,9vw,45px)}
 .hero p{font-size:14px}
 .home-grid{grid-template-columns:1fr;gap:15px}
 .card{padding:20px;border-radius:17px}
 .mobile-nav{
   padding:8px 7px calc(8px + env(safe-area-inset-bottom,0px));
   background:#221b32ed;border-top:1px solid #796488;
   backdrop-filter:blur(20px);box-shadow:0 -8px 34px #0e081888;
 }
 .mobile-nav a{border-radius:13px;color:#d8c3e2;font-size:11px;min-height:55px;padding:8px 4px}
 .mobile-nav a.current{background:#6a4c82;color:#fff1ff}
 .mobile-nav a span{font-size:22px}
 .shop-wallet{padding:17px;align-items:flex-start;flex-direction:column}
 .shop-product{grid-template-columns:96px minmax(0,1fr);gap:13px;padding:15px}
 .shop-product>img,.shop-art-placeholder{width:96px}
 .shop-product h2{margin-top:8px;font-size:19px}
 .shop-product .button{width:100%;margin-top:6px}
 .entry-hub-grid,.media-grid,.guide-grid{grid-template-columns:minmax(0,1fr)}
 .entry-hub-card{min-height:98px}
 .quiz-card{padding:19px}
 .quiz-progress{justify-content:flex-start;flex-wrap:wrap}
 .answers button{min-height:56px}
 .studio-tabs{scroll-snap-type:x proximity}
 .studio-tabs button{scroll-snap-align:start}
 .shop-provisional-levels{display:grid;grid-template-columns:1fr}
 .bank-pagination{gap:12px}
 .auth-gate{min-height:100dvh;padding:24px 17px 70px}
}
@media(max-width:360px){
 .shop-product{grid-template-columns:1fr}
 .shop-product>img,.shop-art-placeholder{width:100%;max-height:190px}
 .mobile-nav a{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
/* Les univers exceptionnels restent distincts, avec des cartes cohérentes. */
body:has(.gta-hero) main .card{
 background:linear-gradient(140deg,#332739,#282335);border:1px solid #825c85;color:#fff0f5
}
body:has(.gta-hero) main .card p{color:#ebcedd}
body:has(.gta-hero) main .gta-hero{
 border-radius:25px;border:1px solid #ed8ca8;
 box-shadow:0 22px 60px #f7509225;
}
body:has(.gta-hero) main .gta-caption h2{font-size:clamp(32px,4.6vw,55px);text-shadow:0 4px 24px #1b092b99}
body:has(.gta-hero) main .gaming-links a{border-radius:13px}
body:has(.wow-banner) main .card{
 background:linear-gradient(145deg,#f7ebd4,#e8d8b7);
 border:1px solid #a68b60;color:#433321;box-shadow:0 10px 30px #59431c22
}
body:has(.wow-banner) main .card :is(h2,h3,b){color:#4f3720}
body:has(.wow-banner) main .card p,body:has(.wow-banner) main .card small{color:#66513a}
body:has(.wow-banner) main .wow-banner{
 border:1px solid #9d885f;border-radius:23px;
 background:linear-gradient(120deg,#efdfb8,#d3c39e);
 box-shadow:0 12px 36px #47351526
}

/* Personnages — petit atelier d'équipement avec scène lumineuse */
.dressing-v2{gap:clamp(16px,2.5vw,30px)}
.dressing-v2 .character-stage,.character-stage{
  border:1px solid #9782ae;border-radius:24px;
  background:radial-gradient(ellipse at 52% 40%,#9d80ba,#5a476d 48%,#31263f 90%);
  box-shadow:inset 0 2px 18px #f9dbff25,0 20px 50px #0d0b1a44;
  color:#fff1ff
}
.character-stage h2,.character-stage>span{color:#fff0f6}
.dressing-v2 .character-stage .character{filter:drop-shadow(0 18px 17px #1c142c55)}
.wardrobe-grid{gap:12px}
.wardrobe-grid>div{
  padding:15px;border:1px solid #69567d;border-radius:16px;
  background:#2a263a
}
.wardrobe-grid>div>label:first-child{margin:4px 0 10px}
.local-save-note{color:#d4badb;font-size:12px}
.person-tabs button,.form-picker button{
  border-radius:13px;border-color:#8c759d;background:#332841;color:#f0dbf5
}
.person-tabs .selected,.form-picker .selected{background:#d4a7e6;color:#26192f}
.reward-grid{gap:15px}
.reward-card{
  background:linear-gradient(160deg,#3f2f52,#2a263a);
  border:1px solid #7b6689;border-radius:19px;color:#f8ecff;
  box-shadow:0 8px 24px #10091922
}
.reward-preview{
  background:radial-gradient(ellipse at 50% 32%,#8f70a8,#473552 75%);
  min-height:162px
}
.reward-card-copy{padding:17px}
.reward-card-copy h3{color:#ffeefb}
.reward-card-copy p,.reward-card-copy small{color:#d6c1e1}
.reward-card.is-locked .reward-preview{filter:saturate(.55)}
.reward-lock{filter:drop-shadow(0 4px 8px #100a1766)}
/* Souvenirs et Grimoire — pages distinctes de la boutique */
.game-tile.souvenir{
  background:linear-gradient(140deg,#513d62,#334c51);
  border:1px solid #b6a1a0;color:#fff5e6
}
.souvenir-gallery .page-heading,.souvenir-puzzle .page-heading{
  border-left:3px solid #eac48d;padding-left:clamp(12px,2vw,22px)
}
.souvenir-gallery .card,.souvenir-puzzle .card{
  box-shadow:0 13px 35px #120b1c44
}
.souvenir-gallery .card h2,.souvenir-puzzle .card h2{color:#fff1fa}
.gallery-active-card{
  border:1px solid #e1b87d!important;
  background:linear-gradient(130deg,#4e364e,#3d4256)!important
}
.souvenir-world .world-map-note{border-radius:0 0 14px 14px}
/* Exploration : carnet d'expédition, contrasté mais serein */
.explorer-feature{
  background:linear-gradient(125deg,#244654,#3d3c63 66%,#6f5070);
  border:1px solid #7594a9;color:#e9f6ff;border-radius:24px;
  box-shadow:0 18px 42px #08172236
}
.explorer-feature h2,.explorer-feature p{color:#e9f6ff}
.explorer-card{background:#2c384b;border:1px solid #668398;border-radius:18px}
.explorer-card h2,.explorer-card h3{color:#eaf6ff}
/* Bibliothèques et médiathèque */
.library-toolbar{gap:12px;align-items:center}
.library-toolbar input,.library-toolbar select{min-height:46px!important;font-size:14px!important}
.filter-favorite{
  border:1px solid #9e7eaa;background:#302741;color:#f4dbf4;
  border-radius:12px;min-height:44px;padding:11px 14px;font-weight:650
}
.filter-favorite.selected{background:#62446e;color:#fff4fb}
.media-grid .poster{border:1px solid #7a678e;min-height:235px}
.media-grid .poster-title{color:#fff8fa}
/* Organisation : séparer les éléments sans ajouter de pression */
.org-reminders{background:linear-gradient(140deg,#3d384d,#3c3440)}
.org-add,.org-calendar-day,.org-journal-entry{border-color:#6b5b7c}
.org-journal-entry{border-radius:12px;padding:14px}
.org-journal-entry:nth-child(even){background:#ffffff08}
/* Interfaces secondaires du Studio */
.studio-entry.selected{border:1px solid #bc98d2}
.studio-audit li{padding:10px 0;line-height:1.6}
.studio-list label,.studio-editor label{color:#eddcf3}
.shop-draft-item[open]{border-color:#d9b8e8;box-shadow:0 0 0 2px #a176ad33}
.shop-provisional-reference>summary{font-weight:700;cursor:pointer;min-height:48px}
/* GTA VI : silhouettes néon, sans interférer avec les mentions officielles */
body:has(.gta-hero) main .gta-hero{
  background:linear-gradient(130deg,#262540,#f67c9f 70%,#ffb789)
}
body:has(.gta-hero) main .gta-hero:after{
  background:linear-gradient(90deg,#231b3fe8,#532c5eaa 48%,#c7527333)
}
body:has(.gta-hero) main .gta-caption .eyebrow{color:#ffd3a7}
body:has(.gta-hero) main .gta-caption .button{
  background:#ffcf9f;color:#39223d;border:1px solid #fff1d4
}
body:has(.gta-hero) main .gta-atlas-card,
body:has(.gta-hero) main .gta-person{
  border-left:3px solid #ed88b4
}
body:has(.gta-hero) main .gta-atlas-card h3,
body:has(.gta-hero) main .gta-person h3{color:#ffcadb}
/* WoW : feuille de parchemin et touches bronze */
body:has(.wow-banner) main .wow-banner>span{color:#8c6337;text-shadow:0 2px 12px #fff1bc}
body:has(.wow-banner) main .wow-main-entry{
  border-left:4px solid #a6874d;box-shadow:0 7px 17px #7756301d
}
body:has(.wow-banner) main .wow-main-entry:hover{transform:translateY(-2px)}
body:has(.wow-banner) main .wow-character{
  border-color:#b9a57f;color:#4a3926
}
body:has(.wow-banner) main .wow-character b{color:#57401c}
/* Petits écrans : éviter les grilles étroites et le recouvrement */
@media(max-width:900px){
 .dressing-v2{grid-template-columns:minmax(0,1fr)}
 .dressing-v2 .character-stage{position:static}
 .reward-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .library-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
 .reward-grid,.library-toolbar{grid-template-columns:minmax(0,1fr)}
 .reward-card{min-width:0}
 .dressing-v2 .character-stage{min-height:340px}
 .wardrobe-grid{grid-template-columns:minmax(0,1fr)}
 .explorer-feature{padding:23px}
 .shop-draft-item[open]>summary{position:relative}
 .studio-list,.studio-editor{min-width:0}
 .studio-entry{min-height:54px}
 .gta-hero .gta-caption{padding:25px 20px}
 .wow-banner{padding:22px 20px}
 .org-journal-entry{padding:12px 8px}
}

/* Activation manuelle : secours si une redirection efface le fragment d'invitation. */
.account-invitation-entry{margin-top:19px;padding:15px;border:1px solid #806c93;border-radius:16px;background:#ffffff09}
.account-invitation-entry summary{font-weight:750;color:#f8dcff;cursor:pointer;min-height:44px;display:flex;align-items:center}
.account-invitation-entry p{font-size:13px;line-height:1.6;color:#d4c2df}
.account-invitation-entry form{display:grid;gap:12px;margin-top:12px}
.account-invitation-entry input{width:100%;font-family:ui-monospace,monospace;font-size:14px}
.account-invitation-entry .button{width:100%}

/* Correctif de contraste après les captures de recette Motorola du 12/11.
   La charte d'origine possède des surfaces ivoire : le texte doit rester sombre
   SUR ces surfaces, même lorsque le reste de l'interface est prune. */
.hero:not(.gta-hero){
  background:#f1e8d9;
  border-color:#a390af;
  color:#24392f
}
.hero:not(.gta-hero)::after{
  background:linear-gradient(90deg,rgba(245,238,223,.94) 0%,rgba(245,238,223,.84) 49%,rgba(245,238,223,.40) 100%)
}
.hero:not(.gta-hero) .hero-content{max-width:710px}
.hero:not(.gta-hero) :is(h1,h1 span){color:#24392f;text-shadow:none}
.hero:not(.gta-hero) :is(p,.hero-kicker,.welcome-line){color:#304a3b;text-shadow:none}
.hero:not(.gta-hero) .hero-kicker{color:#684478}
.hero:not(.gta-hero) h1 span{color:#794d7c}
/* Boîtes de contenus claires : titres, étiquettes et textes ne doivent jamais
   hériter des couleurs lilas destinées aux panneaux foncés. */
:where(main) :is(.gallery-memory-card,.gallery-placeholder,.gallery-empty,.gallery-object-row,.gallery-inventory-item,.gallery-world-object,.gallery-souvenir-card,.gallery-memory-open,.gallery-item,.memory-card,.souvenir-memory-card){
 color:#233c30
}
:where(main) :is(.gallery-memory-card,.gallery-placeholder,.gallery-empty,.gallery-object-row,.gallery-inventory-item,.gallery-world-object,.gallery-souvenir-card,.gallery-memory-open,.gallery-item,.memory-card,.souvenir-memory-card) :is(h2,h3,h4,b,strong,span,small,p,div,em){
 color:#233c30
}
.souvenir-gallery .gallery-empty,.souvenir-gallery .gallery-placeholder{
 background:#f6f4ea;color:#243b32;border-color:#8c9d83
}
.souvenir-gallery .gallery-empty :is(h2,h3,p,span,small),
.souvenir-gallery .gallery-placeholder :is(h2,h3,p,span,small){
 color:#30463a
}
/* Studio et Grimoire : formulaires clairs même sur grand panneau foncé. */
.souvenir-studio :is(.gallery-admin-card,.gallery-studio-row,.gallery-object-row){
 background:#f7f5eb;color:#24382d;border:1px solid #a4a79a
}
.souvenir-studio :is(.gallery-admin-card,.gallery-studio-row,.gallery-object-row) :is(h2,h3,b,strong,span,small,p,label){
 color:#24382d
}
.souvenir-studio :is(.gallery-admin-card,.gallery-studio-row) input:not([type=checkbox]),
.souvenir-studio :is(.gallery-admin-card,.gallery-studio-row) select{
 background:#fffdf7;color:#24382d;border-color:#8a9c8a
}
/* Sur les fonds crème génériques, revenir à la palette originale lisible. */
:where(main) :is(.note,.film-teaser,.entry-hub-card,.gallery-memory-card,.gallery-empty,.gallery-placeholder,.gallery-memory-open,.gallery-gift,.gallery-gift-preview,.game-tile.souvenir){
 --kb-muted:#506451
}
:where(main) :is(.gallery-gift,.gallery-gift-preview) :is(h2,h3,p,span,small){color:#243d31}
:where(main) .gallery-test-toggle{color:#253b30}
:where(main) .gallery-test-toggle :is(span,small){color:#253b30}
:where(main) .gallery-discovered .eyebrow{color:#d9be87}
:where(main) .gallery-discovered .gallery-empty .eyebrow{color:#394f40}
:where(main) .gallery-discovered .gallery-empty h2{color:#243d31}
/* Éviter les inscriptions vert sombre presque invisibles sur un panneau violet. */
:where(main) .card:not(.gallery-empty):not(.gallery-memory-card):not(.gallery-object-row)>.eyebrow,
:where(main) .card:not(.gallery-empty):not(.gallery-memory-card):not(.gallery-object-row) .section-top>.eyebrow{color:#edc991}
@media(max-width:650px){
 .hero:not(.gta-hero){min-height:330px}
 .hero:not(.gta-hero)::after{background:linear-gradient(90deg,rgba(246,239,225,.95),rgba(246,239,225,.75))}
 .hero:not(.gta-hero) h1{font-size:clamp(34px,8vw,48px);line-height:1.13}
 .hero:not(.gta-hero) p{font-size:15px;line-height:1.65}
}

/* Corrections de recette – liste claire d'objets dans un Studio sombre */
.souvenir-studio .gallery-admin-object,
.souvenir-studio .gallery-admin-memory{
 background:#f5f3e9;
 border:1px solid #9ba393;
 border-radius:15px;
 color:#263b30;
 overflow:hidden
}
.souvenir-studio .gallery-admin-object summary,
.souvenir-studio .gallery-admin-memory summary{
 color:#263b30;min-height:68px;padding:16px 18px;
 display:flex;align-items:center;justify-content:space-between;gap:12px;
 cursor:pointer;line-height:1.4
}
.souvenir-studio .gallery-admin-object summary span,
.souvenir-studio .gallery-admin-memory summary span{
 color:#253a31!important;font-size:16px;font-weight:750
}
.souvenir-studio .gallery-admin-object summary small,
.souvenir-studio .gallery-admin-memory summary small{
 color:#526552!important;font-size:12px;font-weight:650;text-align:right
}
.souvenir-studio .gallery-admin-object[open],
.souvenir-studio .gallery-admin-memory[open]{border-color:#9874a4;box-shadow:0 0 0 2px #9874a42c}
.souvenir-studio .gallery-admin-object form,
.souvenir-studio .gallery-admin-memory form{padding:16px 18px 22px;color:#253a31}
.souvenir-studio .gallery-admin-object form label,
.souvenir-studio .gallery-admin-memory form label{color:#263a30}
.souvenir-studio .gallery-admin-object :is(input,select,textarea),
.souvenir-studio .gallery-admin-memory :is(input,select,textarea){
 background:#fffefa;color:#233b2e;border-color:#849281
}
.souvenir-studio .gallery-admin-object .button,
.souvenir-studio .gallery-admin-memory .button{background:#355b48;color:#fff;border:1px solid #42654d}
.souvenir-studio .gallery-admin-object .button.secondary,
.souvenir-studio .gallery-admin-memory .button.secondary{background:#e8e4d5;color:#244235}
/* Accueil : une vraie première impression, sans titre pastel sur fond crème */
.hero:not(.gta-hero) .hero-content{
 display:flex;flex-direction:column;align-items:flex-start;
 justify-content:center;min-height:335px;gap:8px
}
.hero:not(.gta-hero) h1{
 max-width:15ch;font-weight:700;letter-spacing:-.05em;
 color:#1c392e!important;
 text-shadow:0 1px 0 #ffffff55
}
.hero:not(.gta-hero) p{max-width:42ch;color:#2c4437!important;font-size:clamp(15px,1.5vw,18px)}
.hero:not(.gta-hero) .button{
 margin-top:12px;max-width:100%;min-height:50px;
 background:#3e3156;color:#fff2fb;border:1px solid #715b82
}
.hero:not(.gta-hero) .button:hover{background:#56436e}
.hero:not(.gta-hero) .hero-kicker{color:#5b386b!important}
.hero:not(.gta-hero) .hero-caption{color:#334d3b;text-shadow:0 1px 2px #fff7}
/* Les cartes de rubriques claires restent sobres et lisibles */
.home-grid .entry-hub-card,
main .home-destinations a{
 border-color:#71677b;
}
main .home-destinations a:focus-visible{outline:3px solid #5b376d}
main .card .text-link{font-weight:750}
main .card :is(p,small){line-height:1.65}
@media(max-width:650px){
 .hero:not(.gta-hero) .hero-content{min-height:320px;padding:27px 24px;gap:6px}
 .hero:not(.gta-hero) h1{font-size:clamp(35px,9vw,49px);margin:12px 0 8px}
 .hero:not(.gta-hero) .button{width:auto;max-width:100%;font-size:14px}
 .souvenir-studio .gallery-admin-object summary,
 .souvenir-studio .gallery-admin-memory summary{padding:13px 15px;min-height:66px}
}
