:root{
  /* Viva: padrão original de jogo social, vibrante sem usar neon agressivo. */
  --bg:#1B2152; --panel:#29245F; --panel-2:#3B347A;
  --tile:#2A174F; --tile-end:#21133F; --tile-shadow:#100A29; --ink:#FFF9FF;
  --gold:#50E3A4; --gold-soft:rgba(80,227,164,.22); --sage:#67D9EF; --rust:#FF8798;
  --paper-text:#FFF9FF; --paper-dim:#D6D1EA; --button-ink:#172B2A;
  --glow-a:rgba(111,92,220,.24); --glow-b:rgba(255,126,151,.18);
  --surface-border:rgba(255,249,237,.10); --surface-border-soft:rgba(255,249,237,.17);
  --surface-border-strong:rgba(255,249,237,.23); --surface-border-hover:rgba(255,249,237,.38);
  --glass:rgba(17,18,55,.50); --overlay:rgba(20,18,55,.95);
  --selected-start:#83F2C2; --success-start:#A2F4D1; --repeat-start:#FFE19A; --danger-start:#FFB1BC;
  --placeholder:rgba(214,209,234,.64); --footer-dim:rgba(214,209,234,.52);
  --display: 'Fraunces', serif;
  --body: 'Work Sans', sans-serif;
  --mono: 'Space Mono', monospace;
}

/* Temas da coleção. Viva é o padrão; alternativas inclusivas continuam gratuitas. */
html[data-theme="viva"]{
  --bg:#1B2152; --panel:#29245F; --panel-2:#3B347A;
  --tile:#2A174F; --tile-end:#21133F; --tile-shadow:#100A29; --ink:#FFF9FF;
  --gold:#50E3A4; --gold-soft:rgba(80,227,164,.22); --sage:#67D9EF; --rust:#FF8798;
  --paper-text:#FFF9FF; --paper-dim:#D6D1EA; --button-ink:#172B2A;
  --glow-a:rgba(111,92,220,.24); --glow-b:rgba(255,126,151,.18);
  --glass:rgba(17,18,55,.50); --overlay:rgba(20,18,55,.95);
  --selected-start:#83F2C2; --success-start:#A2F4D1; --repeat-start:#FFE19A; --danger-start:#FFB1BC;
  --placeholder:rgba(214,209,234,.64); --footer-dim:rgba(214,209,234,.52);
}
html[data-theme="sereno"]{
  --bg:#18312F; --panel:#254742; --panel-2:#315A53;
  --tile:#FFF8E8; --tile-end:#E8DDC7; --tile-shadow:#B9AA91; --ink:#273532;
  --gold:#E9A23B; --gold-soft:rgba(233,162,59,.20); --sage:#77BFA3; --rust:#E27B68;
  --paper-text:#FFF9ED; --paper-dim:#CFDDD7; --button-ink:#1F302D;
  --glow-a:rgba(233,162,59,.12); --glow-b:rgba(119,191,163,.14);
  --glass:rgba(13,42,39,.42); --overlay:rgba(18,43,40,.95);
  --selected-start:#FFF0C8; --success-start:#DDF4E7; --repeat-start:#FFE5A9; --danger-start:#FFE0D9;
  --placeholder:rgba(207,221,215,.65); --footer-dim:rgba(207,221,215,.52);
}
html[data-theme="ocean"]{
  --bg:#17364D; --panel:#214A66; --panel-2:#2C5A78;
  --tile:#F3F7FA; --tile-end:#DCE8F1; --tile-shadow:#A8BED0; --ink:#17364D;
  --gold:#F2B84B; --gold-soft:rgba(242,184,75,.18); --sage:#67C6D4; --rust:#FF786B;
  --paper-text:#F7FAFC; --paper-dim:#B8CDDC; --button-ink:#10283A;
  --glow-a:rgba(242,184,75,.10); --glow-b:rgba(103,198,212,.14);
  --glass:rgba(12,39,58,.38); --overlay:rgba(15,42,61,.94);
  --selected-start:#EAF6FF; --success-start:#D9F3F6; --repeat-start:#FFF3C9; --danger-start:#FFE0DC;
  --placeholder:rgba(184,205,220,.62); --footer-dim:rgba(184,205,220,.50);
}
html[data-theme="cafe"]{
  --bg:#3A2C26; --panel:#59443A; --panel-2:#72594B;
  --tile:#FFF7E9; --tile-end:#E8D5BD; --tile-shadow:#BBA288; --ink:#3B2B24;
  --gold:#D99A55; --gold-soft:rgba(217,154,85,.20); --sage:#7DB69A; --rust:#D77263;
  --paper-text:#FFF8EE; --paper-dim:#DCC9B9; --button-ink:#35261F;
  --glow-a:rgba(217,154,85,.13); --glow-b:rgba(125,182,154,.12);
  --glass:rgba(47,32,27,.46); --overlay:rgba(49,35,30,.95);
  --selected-start:#FFE9C6; --success-start:#DDEFE4; --repeat-start:#FFDAA2; --danger-start:#FFDDD5;
  --placeholder:rgba(220,201,185,.63); --footer-dim:rgba(220,201,185,.50);
}
html[data-theme="floresta"]{
  --bg:#17352A; --panel:#26513E; --panel-2:#356A50;
  --tile:#FFF9E8; --tile-end:#E3DDC4; --tile-shadow:#B3AA89; --ink:#24382D;
  --gold:#E2AE4B; --gold-soft:rgba(226,174,75,.21); --sage:#82BFA2; --rust:#DC7464;
  --paper-text:#FFFBEF; --paper-dim:#C9DCCE; --button-ink:#1D3026;
  --glow-a:rgba(226,174,75,.12); --glow-b:rgba(130,191,162,.14);
  --glass:rgba(12,44,32,.45); --overlay:rgba(16,47,36,.95);
  --selected-start:#FFEDBC; --success-start:#DDF3E6; --repeat-start:#FFE09B; --danger-start:#FFDDD7;
  --placeholder:rgba(201,220,206,.64); --footer-dim:rgba(201,220,206,.51);
}
html[data-theme="vinho"]{
  --bg:#451F2B; --panel:#673343; --panel-2:#814659;
  --tile:#FFF8EF; --tile-end:#E7D4C9; --tile-shadow:#B99D92; --ink:#492833;
  --gold:#E2AC52; --gold-soft:rgba(226,172,82,.21); --sage:#8DB9A1; --rust:#E07769;
  --paper-text:#FFF8F1; --paper-dim:#DFC9CF; --button-ink:#3C2029;
  --glow-a:rgba(226,172,82,.13); --glow-b:rgba(141,185,161,.12);
  --glass:rgba(58,20,33,.46); --overlay:rgba(61,24,37,.95);
  --selected-start:#FFE9BD; --success-start:#DDEFE5; --repeat-start:#FFDB96; --danger-start:#FFDDD7;
  --placeholder:rgba(223,201,207,.64); --footer-dim:rgba(223,201,207,.51);
}
html[data-theme="ardosia"]{
  --bg:#29343B; --panel:#3D4A51; --panel-2:#55636A;
  --tile:#FFF8EC; --tile-end:#DDD6C9; --tile-shadow:#AAA296; --ink:#28343A;
  --gold:#D79A52; --gold-soft:rgba(215,154,82,.20); --sage:#78B6A7; --rust:#DA7366;
  --paper-text:#FFF9F1; --paper-dim:#CFD8D9; --button-ink:#263239;
  --glow-a:rgba(215,154,82,.12); --glow-b:rgba(120,182,167,.13);
  --glass:rgba(30,41,46,.48); --overlay:rgba(34,45,50,.95);
  --selected-start:#FFE9C6; --success-start:#DDEFE9; --repeat-start:#FFDAA4; --danger-start:#FFDED8;
  --placeholder:rgba(207,216,217,.64); --footer-dim:rgba(207,216,217,.51);
}
html[data-theme="jardim"]{
  --bg:#E9EFE5; --panel:#D4E1D1; --panel-2:#B9CEB6;
  --tile:#FFFCF3; --tile-end:#E5E4D7; --tile-shadow:#AFB2A2; --ink:#34463A;
  --gold:#A64E31; --gold-soft:rgba(166,78,49,.17); --sage:#4E8270; --rust:#A74339;
  --paper-text:#2D3D33; --paper-dim:#46594D; --button-ink:#FFFDF8;
  --glow-a:rgba(255,255,255,.58); --glow-b:rgba(121,158,126,.22);
  --glass:rgba(255,255,255,.46); --overlay:rgba(221,231,217,.95);
  --selected-start:#F8E3B7; --success-start:#D8EBDD; --repeat-start:#F4D494; --danger-start:#F5D4CF;
  --placeholder:rgba(52,70,58,.58); --footer-dim:rgba(52,70,58,.52);
  --surface-border:rgba(45,61,51,.10); --surface-border-soft:rgba(45,61,51,.18);
  --surface-border-strong:rgba(45,61,51,.24); --surface-border-hover:rgba(45,61,51,.40);
}
html[data-theme="ambar"]{
  --bg:#171A1B; --panel:#292D2D; --panel-2:#3B403F;
  --tile:#FFF8E6; --tile-end:#DBD2BD; --tile-shadow:#A99F88; --ink:#2D332F;
  --gold:#F0B44C; --gold-soft:rgba(240,180,76,.22); --sage:#85BBA2; --rust:#E27666;
  --paper-text:#FFF8EA; --paper-dim:#C8D0CA; --button-ink:#272D2A;
  --glow-a:rgba(240,180,76,.13); --glow-b:rgba(133,187,162,.12);
  --glass:rgba(10,12,12,.56); --overlay:rgba(17,20,20,.96);
  --selected-start:#FFEAB9; --success-start:#DDF0E5; --repeat-start:#FFDB91; --danger-start:#FFDDD6;
  --placeholder:rgba(200,208,202,.64); --footer-dim:rgba(200,208,202,.50);
}
html[data-theme="aurora"]{
  --bg:#30295B; --panel:#443A75; --panel-2:#5B4B8E;
  --tile:#F7F2FF; --tile-end:#DED5F4; --tile-shadow:#B6A7D5; --ink:#30295B;
  --gold:#E7A5FF; --gold-soft:rgba(231,165,255,0.19); --sage:#79D8F2; --rust:#FF788D;
  --paper-text:#FFF9FF; --paper-dim:#D8CDEA; --button-ink:#2B224C;
  --glow-a:rgba(231,165,255,0.14); --glow-b:rgba(121,216,242,0.14);
  --glass:rgba(35,27,75,0.44); --overlay:rgba(37,31,72,0.95);
  --selected-start:#F2E9FF; --success-start:#DDF8FF; --repeat-start:#F9E5FF; --danger-start:#FFE2E9;
  --placeholder:rgba(216,205,234,0.65); --footer-dim:rgba(216,205,234,0.52);
}
html[data-theme="sunset"]{
  --bg:#6B3347; --panel:#88465B; --panel-2:#A85E70;
  --tile:#FFF6EA; --tile-end:#F0D7C2; --tile-shadow:#CDA88E; --ink:#512638;
  --gold:#FFC35C; --gold-soft:rgba(255,195,92,0.20); --sage:#76D9C6; --rust:#FF736C;
  --paper-text:#FFF9F4; --paper-dim:#EACBC8; --button-ink:#4A2431;
  --glow-a:rgba(255,195,92,0.16); --glow-b:rgba(118,217,198,0.13);
  --glass:rgba(76,31,48,0.42); --overlay:rgba(83,38,55,0.95);
  --selected-start:#FFF0D7; --success-start:#DDF8F0; --repeat-start:#FFEBC4; --danger-start:#FFE1DF;
  --placeholder:rgba(234,203,200,0.68); --footer-dim:rgba(234,203,200,0.54);
}
html[data-theme="neon"]{
  --bg:#202635; --panel:#30384C; --panel-2:#46516C;
  --tile:#F7F9FD; --tile-end:#DDE4EF; --tile-shadow:#AEB9CA; --ink:#202635;
  --gold:#FF7EAA; --gold-soft:rgba(255,126,170,0.19); --sage:#78D7FF; --rust:#FF7C72;
  --paper-text:#F9FAFF; --paper-dim:#C4CEE1; --button-ink:#202635;
  --glow-a:rgba(255,126,170,0.15); --glow-b:rgba(120,215,255,0.14);
  --glass:rgba(20,25,38,0.48); --overlay:rgba(25,30,43,0.95);
  --selected-start:#FFE5EF; --success-start:#DDF6FF; --repeat-start:#FFE5F0; --danger-start:#FFE2DF;
  --placeholder:rgba(196,206,225,0.66); --footer-dim:rgba(196,206,225,0.52);
}

html[data-theme="cloud"]{
  --bg:#EAF4FB; --panel:#D7EAF5; --panel-2:#C2DDEA;
  --tile:#FFFFFF; --tile-end:#EAF2F7; --tile-shadow:#AFC7D5; --ink:#28495D;
  --gold:#E6A13C; --gold-soft:rgba(230,161,60,0.20); --sage:#338FA3; --rust:#CF5C64;
  --paper-text:#244255; --paper-dim:#607E91; --button-ink:#233E50;
  --glow-a:rgba(255,255,255,0.62); --glow-b:rgba(111,184,211,0.20);
  --glass:rgba(255,255,255,0.46); --overlay:rgba(213,233,244,0.94);
  --selected-start:#FFF7DA; --success-start:#DDF6F5; --repeat-start:#FFF1BF; --danger-start:#FFE1E3;
  --placeholder:rgba(71,104,123,0.58); --footer-dim:rgba(65,93,110,0.55);
  --surface-border:rgba(36,66,85,0.10); --surface-border-soft:rgba(36,66,85,0.17);
  --surface-border-strong:rgba(36,66,85,0.23); --surface-border-hover:rgba(36,66,85,0.38);
}
html[data-theme="lavender"]{
  --bg:#F2EDFA; --panel:#E4DAF3; --panel-2:#D2C3E9;
  --tile:#FFFDFE; --tile-end:#EEE7F7; --tile-shadow:#BCAED0; --ink:#504269;
  --gold:#A96AC2; --gold-soft:rgba(169,106,194,0.20); --sage:#438F98; --rust:#C85D72;
  --paper-text:#493C61; --paper-dim:#76688D; --button-ink:#3F3453;
  --glow-a:rgba(255,255,255,0.62); --glow-b:rgba(196,167,225,0.24);
  --glass:rgba(255,255,255,0.45); --overlay:rgba(231,221,244,0.95);
  --selected-start:#F8E8FF; --success-start:#DFF5F2; --repeat-start:#F5E1FF; --danger-start:#FFE1E8;
  --placeholder:rgba(90,74,112,0.58); --footer-dim:rgba(83,70,102,0.53);
  --surface-border:rgba(73,60,97,0.10); --surface-border-soft:rgba(73,60,97,0.17);
  --surface-border-strong:rgba(73,60,97,0.23); --surface-border-hover:rgba(73,60,97,0.38);
}
html[data-theme="peach"]{
  --bg:#FFF0E6; --panel:#FADCCB; --panel-2:#F2C6B0;
  --tile:#FFFDF8; --tile-end:#F6E7DB; --tile-shadow:#D2B6A5; --ink:#62483D;
  --gold:#DF8245; --gold-soft:rgba(223,130,69,0.20); --sage:#398F82; --rust:#C65B5D;
  --paper-text:#5A4036; --paper-dim:#8A6B5E; --button-ink:#4D362E;
  --glow-a:rgba(255,255,255,0.66); --glow-b:rgba(244,181,150,0.22);
  --glass:rgba(255,255,255,0.46); --overlay:rgba(249,224,209,0.95);
  --selected-start:#FFF2C9; --success-start:#DDF4EC; --repeat-start:#FFE8B5; --danger-start:#FFDCDD;
  --placeholder:rgba(105,77,65,0.58); --footer-dim:rgba(99,73,62,0.52);
  --surface-border:rgba(90,64,54,0.10); --surface-border-soft:rgba(90,64,54,0.17);
  --surface-border-strong:rgba(90,64,54,0.23); --surface-border-hover:rgba(90,64,54,0.38);
}

/* Temas premium com degradê em movimento. */
html[data-theme="prism"]{
  --bg:#DCEBFF; --panel:rgba(232,239,255,0.88); --panel-2:rgba(209,220,250,0.90);
  --tile:#FFFFFF; --tile-end:#E8EEFF; --tile-shadow:#B8C5E5; --ink:#39476B;
  --gold:#8058C7; --gold-soft:rgba(128,88,199,0.18); --sage:#247E9D; --rust:#C95878;
  --paper-text:#33405F; --paper-dim:#64718E; --button-ink:#303B58;
  --glow-a:rgba(255,255,255,0.54); --glow-b:rgba(168,213,255,0.30);
  --glass:rgba(255,255,255,0.52); --overlay:rgba(226,234,255,0.94);
  --selected-start:#F4E9FF; --success-start:#DDF8F4; --repeat-start:#FFF0C9; --danger-start:#FFE0E8;
  --placeholder:rgba(72,86,120,0.55); --footer-dim:rgba(68,82,115,0.52);
  --surface-border:rgba(51,64,95,0.10); --surface-border-soft:rgba(51,64,95,0.18);
  --surface-border-strong:rgba(51,64,95,0.24); --surface-border-hover:rgba(51,64,95,0.40);
}
html[data-theme="tropical"]{
  --bg:#D7F6EF; --panel:rgba(228,250,244,0.88); --panel-2:rgba(196,235,226,0.91);
  --tile:#FFFDF7; --tile-end:#E9F5EA; --tile-shadow:#AFCFC5; --ink:#285B59;
  --gold:#D27A55; --gold-soft:rgba(210,122,85,0.18); --sage:#227E79; --rust:#C5545E;
  --paper-text:#285451; --paper-dim:#5C7F7A; --button-ink:#234B49;
  --glow-a:rgba(255,255,255,0.58); --glow-b:rgba(128,226,212,0.28);
  --glass:rgba(255,255,255,0.50); --overlay:rgba(220,245,238,0.94);
  --selected-start:#FFF0D9; --success-start:#D8F8EE; --repeat-start:#FFE8B9; --danger-start:#FFDDE0;
  --placeholder:rgba(52,94,90,0.54); --footer-dim:rgba(48,88,84,0.50);
  --surface-border:rgba(40,84,81,0.10); --surface-border-soft:rgba(40,84,81,0.18);
  --surface-border-strong:rgba(40,84,81,0.24); --surface-border-hover:rgba(40,84,81,0.40);
}
html[data-theme="candyflow"]{
  --bg:#FFE4F0; --panel:rgba(255,239,247,0.89); --panel-2:rgba(239,216,242,0.91);
  --tile:#FFFFFF; --tile-end:#F2E9FA; --tile-shadow:#C9B7D6; --ink:#684F78;
  --gold:#B75F97; --gold-soft:rgba(183,95,151,0.18); --sage:#3C819B; --rust:#C3536D;
  --paper-text:#5C476B; --paper-dim:#806B8B; --button-ink:#513F5E;
  --glow-a:rgba(255,255,255,0.60); --glow-b:rgba(186,219,255,0.30);
  --glass:rgba(255,255,255,0.52); --overlay:rgba(248,229,243,0.94);
  --selected-start:#FFE7F6; --success-start:#DDF6F4; --repeat-start:#FFEAC3; --danger-start:#FFDDE7;
  --placeholder:rgba(92,71,107,0.54); --footer-dim:rgba(87,68,101,0.50);
  --surface-border:rgba(92,71,107,0.10); --surface-border-soft:rgba(92,71,107,0.18);
  --surface-border-strong:rgba(92,71,107,0.24); --surface-border-hover:rgba(92,71,107,0.40);
}

/* Temas premium escuros com efeitos próprios. */
html[data-theme="galaxy"]{
  --bg:#090D25; --panel:rgba(20,25,58,0.92); --panel-2:rgba(38,43,88,0.94);
  --tile:#F6F4FF; --tile-end:#D9D7F0; --tile-shadow:#9D9BC5; --ink:#24264F;
  --gold:#B995FF; --gold-soft:rgba(185,149,255,0.22); --sage:#65E7FF; --rust:#FF718F;
  --paper-text:#F8F5FF; --paper-dim:#B9B6D8; --button-ink:#171936;
  --glow-a:rgba(185,149,255,0.16); --glow-b:rgba(101,231,255,0.13);
  --glass:rgba(6,8,30,0.58); --overlay:rgba(8,10,31,0.96);
  --selected-start:#EEE8FF; --success-start:#D9FAFF; --repeat-start:#FFF0BD; --danger-start:#FFE0E8;
  --placeholder:rgba(185,182,216,0.60); --footer-dim:rgba(185,182,216,0.48);
}
html[data-theme="fireworks"]{
  --bg:#070B1E; --panel:rgba(18,24,55,0.94); --panel-2:rgba(33,43,82,0.95);
  --tile:#FFF9EE; --tile-end:#E9E0D2; --tile-shadow:#BBAE9E; --ink:#1D2749;
  --gold:#FFD166; --gold-soft:rgba(255,209,102,0.22); --sage:#56D9FF; --rust:#FF5F87;
  --paper-text:#FFF9F0; --paper-dim:#B8C3E2; --button-ink:#171D35;
  --glow-a:rgba(255,209,102,0.14); --glow-b:rgba(86,217,255,0.12);
  --glass:rgba(4,7,24,0.60); --overlay:rgba(6,9,27,0.96);
  --selected-start:#FFF1C7; --success-start:#D9F8FF; --repeat-start:#FFE9A8; --danger-start:#FFDCE5;
  --placeholder:rgba(184,195,226,0.60); --footer-dim:rgba(184,195,226,0.48);
}
html[data-theme="magma"]{
  --bg:#160812; --panel:rgba(45,15,29,0.94); --panel-2:rgba(77,23,42,0.95);
  --tile:#FFF3E8; --tile-end:#E8CFC2; --tile-shadow:#B89484; --ink:#4C1C2C;
  --gold:#FF9E45; --gold-soft:rgba(255,158,69,0.23); --sage:#FF59C7; --rust:#FF4E4E;
  --paper-text:#FFF3EC; --paper-dim:#DBB4C0; --button-ink:#34101E;
  --glow-a:rgba(255,111,52,0.17); --glow-b:rgba(255,58,153,0.12);
  --glass:rgba(20,4,12,0.60); --overlay:rgba(23,6,15,0.96);
  --selected-start:#FFE2C4; --success-start:#FFE0F4; --repeat-start:#FFD69F; --danger-start:#FFD3D3;
  --placeholder:rgba(219,180,192,0.60); --footer-dim:rgba(219,180,192,0.48);
}
html[data-theme="auroranight"]{
  --bg:#041923; --panel:rgba(8,45,56,0.93); --panel-2:rgba(15,74,84,0.94);
  --tile:#F0FFFB; --tile-end:#CDE7E2; --tile-shadow:#8EBCB6; --ink:#123F47;
  --gold:#B8FFB8; --gold-soft:rgba(184,255,184,0.21); --sage:#60E6FF; --rust:#FF7080;
  --paper-text:#EEFFFA; --paper-dim:#A8D4D1; --button-ink:#0B343B;
  --glow-a:rgba(114,255,191,0.15); --glow-b:rgba(96,230,255,0.13);
  --glass:rgba(2,22,28,0.58); --overlay:rgba(3,25,31,0.96);
  --selected-start:#DDFFE9; --success-start:#D6FBFF; --repeat-start:#F3FFB9; --danger-start:#FFDCE0;
  --placeholder:rgba(168,212,209,0.60); --footer-dim:rgba(168,212,209,0.48);
}
html[data-theme="cybergrid"]{
  --bg:#050818; --panel:rgba(14,20,49,0.94); --panel-2:rgba(25,36,76,0.95);
  --tile:#F3F7FF; --tile-end:#CFD9EE; --tile-shadow:#8FA2C5; --ink:#192950;
  --gold:#FF4FD8; --gold-soft:rgba(255,79,216,0.22); --sage:#35E7FF; --rust:#FF5C7C;
  --paper-text:#F4F8FF; --paper-dim:#AAB8D8; --button-ink:#101936;
  --glow-a:rgba(255,79,216,0.14); --glow-b:rgba(53,231,255,0.13);
  --glass:rgba(3,6,22,0.62); --overlay:rgba(4,7,23,0.96);
  --selected-start:#FFE1F8; --success-start:#D7FAFF; --repeat-start:#FFF0B8; --danger-start:#FFD9E2;
  --placeholder:rgba(170,184,216,0.60); --footer-dim:rgba(170,184,216,0.48);
}

html[data-theme="electric"]{
  --bg:#030B1D; --panel:rgba(10,28,63,0.94); --panel-2:rgba(17,50,92,0.95);
  --tile:#F5FAFF; --tile-end:#D8E8F7; --tile-shadow:#8EAFCB; --ink:#12385C;
  --gold:#F8F044; --gold-soft:rgba(248,240,68,0.22); --sage:#43E8FF; --rust:#FF668C;
  --paper-text:#F4FAFF; --paper-dim:#ABC6DF; --button-ink:#102A47;
  --glow-a:rgba(248,240,68,0.12); --glow-b:rgba(67,232,255,0.14);
  --glass:rgba(2,10,29,0.64); --overlay:rgba(2,9,27,0.96);
  --selected-start:#FFFDD1; --success-start:#D8FAFF; --repeat-start:#FFF6A8; --danger-start:#FFDCE6;
  --placeholder:rgba(171,198,223,0.60); --footer-dim:rgba(171,198,223,0.48);
}
html[data-theme="enchanted"]{
  --bg:#071B18; --panel:rgba(14,50,43,0.94); --panel-2:rgba(25,78,66,0.95);
  --tile:#F7FFF5; --tile-end:#DCEED8; --tile-shadow:#91B58C; --ink:#224D3D;
  --gold:#FFD879; --gold-soft:rgba(255,216,121,0.22); --sage:#86F5BD; --rust:#FF7A94;
  --paper-text:#F3FFF7; --paper-dim:#B3D9C4; --button-ink:#173E31;
  --glow-a:rgba(255,216,121,0.13); --glow-b:rgba(134,245,189,0.14);
  --glass:rgba(4,24,20,0.62); --overlay:rgba(5,25,22,0.96);
  --selected-start:#FFF4C9; --success-start:#D9FFE9; --repeat-start:#FFECB0; --danger-start:#FFDDE4;
  --placeholder:rgba(179,217,196,0.60); --footer-dim:rgba(179,217,196,0.48);
}
html[data-theme="solarflare"]{
  --bg:#13070E; --panel:rgba(49,17,35,0.94); --panel-2:rgba(83,28,52,0.95);
  --tile:#FFF7EE; --tile-end:#ECD7CA; --tile-shadow:#BC9A86; --ink:#542338;
  --gold:#FFCA50; --gold-soft:rgba(255,202,80,0.23); --sage:#62E8D2; --rust:#FF5C68;
  --paper-text:#FFF6EE; --paper-dim:#DAB8C3; --button-ink:#3C1426;
  --glow-a:rgba(255,202,80,0.15); --glow-b:rgba(255,87,117,0.13);
  --glass:rgba(24,4,14,0.64); --overlay:rgba(25,5,15,0.96);
  --selected-start:#FFE8AF; --success-start:#D9FFF4; --repeat-start:#FFD989; --danger-start:#FFD8DA;
  --placeholder:rgba(218,184,195,0.60); --footer-dim:rgba(218,184,195,0.48);
}
html[data-theme="hologram"]{
  --bg:#071027; --panel:rgba(17,29,70,0.93); --panel-2:rgba(31,48,101,0.95);
  --tile:#F7FBFF; --tile-end:#D8E2F5; --tile-shadow:#91A6CD; --ink:#243A70;
  --gold:#70FFE5; --gold-soft:rgba(112,255,229,0.21); --sage:#A879FF; --rust:#FF6E9F;
  --paper-text:#F6F8FF; --paper-dim:#B7C4E2; --button-ink:#152B58;
  --glow-a:rgba(112,255,229,0.13); --glow-b:rgba(168,121,255,0.14);
  --glass:rgba(4,10,34,0.62); --overlay:rgba(5,11,34,0.96);
  --selected-start:#DFFFF8; --success-start:#E9DFFF; --repeat-start:#CFFFF5; --danger-start:#FFDDEB;
  --placeholder:rgba(183,196,226,0.60); --footer-dim:rgba(183,196,226,0.48);
}

@keyframes premiumGradientMove{
  0%{ background-position:0% 50%; }
  50%{ background-position:100% 50%; }
  100%{ background-position:0% 50%; }
}
@keyframes starDrift{
  0%{ transform:translate3d(0,0,0) scale(1); opacity:.45; }
  50%{ transform:translate3d(-18px,12px,0) scale(1.05); opacity:.9; }
  100%{ transform:translate3d(-36px,24px,0) scale(1); opacity:.45; }
}
@keyframes cosmicPulse{
  0%,100%{ transform:scale(.92); opacity:.28; }
  50%{ transform:scale(1.12); opacity:.66; }
}
@keyframes fireworkBloom{
  0%,100%{ transform:scale(.82); opacity:.22; filter:saturate(1); }
  38%{ transform:scale(1.02); opacity:.9; filter:saturate(1.45); }
  70%{ transform:scale(1.18); opacity:.35; filter:saturate(1.15); }
}
@keyframes magmaPulse{
  0%,100%{ transform:translate3d(-3%,2%,0) scale(1); opacity:.48; }
  50%{ transform:translate3d(4%,-3%,0) scale(1.16); opacity:.86; }
}
@keyframes auroraWave{
  0%,100%{ transform:translate3d(-12%,0,0) skewX(-7deg) scaleX(.92); opacity:.34; }
  50%{ transform:translate3d(12%,-3%,0) skewX(7deg) scaleX(1.08); opacity:.72; }
}
@keyframes cyberGridMove{
  from{ background-position:0 0, 0 0; }
  to{ background-position:0 48px, 48px 0; }
}
@keyframes cyberGlow{
  0%,100%{ opacity:.24; transform:scale(.9); }
  50%{ opacity:.62; transform:scale(1.08); }
}

@keyframes electricFlash{
  0%,7%,12%,46%,50%,100%{ opacity:.08; filter:brightness(.8); }
  8%,10%,47%,49%{ opacity:.78; filter:brightness(1.75); }
}
@keyframes stormCloudMove{
  0%,100%{ transform:translate3d(-4%,2%,0) scale(1); opacity:.38; }
  50%{ transform:translate3d(5%,-3%,0) scale(1.12); opacity:.66; }
}
@keyframes petalFloat{
  0%{ background-position:0 0,30px 60px,80px 20px; transform:translateY(12px) rotate(0deg); opacity:.38; }
  50%{ opacity:.74; }
  100%{ background-position:70px -120px,-20px -85px,145px -110px; transform:translateY(-28px) rotate(5deg); opacity:.32; }
}
@keyframes solarOrbit{
  from{ transform:rotate(0deg) scale(1.05); }
  to{ transform:rotate(360deg) scale(1.05); }
}
@keyframes solarBreath{
  0%,100%{ opacity:.30; transform:scale(.88); filter:blur(18px); }
  50%{ opacity:.72; transform:scale(1.12); filter:blur(25px); }
}
@keyframes holoScan{
  from{ background-position:0 0; }
  to{ background-position:0 42px; }
}
@keyframes holoShift{
  0%,100%{ transform:translate3d(-5%,2%,0) skewX(-3deg); opacity:.30; }
  50%{ transform:translate3d(6%,-3%,0) skewX(3deg); opacity:.68; }
}

/* Os fundos ficam presos à janela e continuam por toda a rolagem. */
html[data-theme="viva"] body{
  background-image:
    radial-gradient(circle at 14% 10%,rgba(75,139,224,.40),transparent 34%),
    radial-gradient(circle at 88% 18%,rgba(125,69,157,.36),transparent 36%),
    radial-gradient(circle at 82% 90%,rgba(255,126,151,.28),transparent 42%),
    linear-gradient(145deg,#17224F 0%,#24215C 48%,#53306B 76%,#8E4F70 100%);
}
html[data-theme="viva"] .tile.selected,
html[data-theme="viva"] .tile.flash-ok,
html[data-theme="viva"] .tile.flash-repeat,
html[data-theme="viva"] .tile.flash-bad,
html[data-theme="viva"] .tutorial-tile.active{ color:#2A174F; }
html[data-theme="prism"] body{
  background-image:linear-gradient(125deg,#CBE5FF,#E0CEFF,#FFD6E8,#C7F4EE,#DCEBFF);
  background-size:320% 320%; animation:premiumGradientMove 13s ease infinite;
}
html[data-theme="tropical"] body{
  background-image:linear-gradient(125deg,#C9F2E7,#CDEBFF,#FFE4C9,#D9F6E9,#C9F2E7);
  background-size:320% 320%; animation:premiumGradientMove 14s ease infinite;
}
html[data-theme="candyflow"] body{
  background-image:linear-gradient(125deg,#FFD9EA,#E5D8FF,#CFEAFF,#FFE4D2,#FFD9EA);
  background-size:320% 320%; animation:premiumGradientMove 12s ease infinite;
}
html[data-theme="galaxy"] body{
  background-image:linear-gradient(145deg,#080B22 0%,#17123C 48%,#09152D 100%);
}
html[data-theme="galaxy"] body::before{
  opacity:.8;
  background-image:
    radial-gradient(circle,#FFFFFF 0 1px,transparent 1.7px),
    radial-gradient(circle,#8EE8FF 0 1px,transparent 1.8px),
    radial-gradient(circle,#C6A8FF 0 1.3px,transparent 2px);
  background-size:72px 72px,110px 110px,155px 155px;
  background-position:0 0,28px 35px,70px 10px;
  animation:starDrift 16s linear infinite;
}
html[data-theme="galaxy"] body::after{
  opacity:.55;
  background:
    radial-gradient(circle at 18% 22%,rgba(139,102,255,.56),transparent 30%),
    radial-gradient(circle at 80% 68%,rgba(48,210,255,.42),transparent 34%);
  animation:cosmicPulse 7s ease-in-out infinite;
}
html[data-theme="fireworks"] body{
  background-image:linear-gradient(150deg,#050819,#101833 55%,#080B1F);
}
html[data-theme="fireworks"] body::before,
html[data-theme="fireworks"] body::after{
  opacity:.72;
  background-image:
    radial-gradient(circle at 18% 26%,transparent 0 22px,rgba(255,209,102,.85) 23px 25px,transparent 26px),
    radial-gradient(circle at 72% 22%,transparent 0 34px,rgba(86,217,255,.78) 35px 37px,transparent 38px),
    radial-gradient(circle at 82% 72%,transparent 0 28px,rgba(255,86,171,.78) 29px 31px,transparent 32px),
    radial-gradient(circle at 28% 78%,transparent 0 38px,rgba(157,114,255,.72) 39px 41px,transparent 42px),
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.78) 0 2px,transparent 3px);
  animation:fireworkBloom 5.2s ease-in-out infinite;
}
html[data-theme="fireworks"] body::after{
  animation-delay:-2.6s; transform:rotate(18deg) scale(.9); opacity:.48;
}
html[data-theme="magma"] body{
  background-image:linear-gradient(145deg,#14070F,#3B0D1D 46%,#190610 100%);
}
html[data-theme="magma"] body::before{
  opacity:.74;
  background:
    radial-gradient(ellipse at 18% 22%,rgba(255,112,38,.66),transparent 36%),
    radial-gradient(ellipse at 78% 32%,rgba(255,43,125,.52),transparent 34%),
    radial-gradient(ellipse at 46% 86%,rgba(255,183,54,.54),transparent 38%);
  filter:blur(22px);
  animation:magmaPulse 8s ease-in-out infinite;
}
html[data-theme="magma"] body::after{
  opacity:.32;
  background:repeating-radial-gradient(ellipse at 50% 110%,rgba(255,170,54,.42) 0 8px,transparent 10px 34px);
  animation:cosmicPulse 6s ease-in-out infinite reverse;
}
html[data-theme="auroranight"] body{
  background-image:linear-gradient(160deg,#03141D,#073340 55%,#041722);
}
html[data-theme="auroranight"] body::before{
  opacity:.66;
  background:
    linear-gradient(105deg,transparent 12%,rgba(87,255,180,.48) 30%,transparent 48%),
    linear-gradient(75deg,transparent 28%,rgba(72,195,255,.44) 48%,transparent 66%),
    linear-gradient(118deg,transparent 45%,rgba(189,111,255,.36) 62%,transparent 78%);
  filter:blur(24px) saturate(1.25);
  animation:auroraWave 9s ease-in-out infinite;
}
html[data-theme="auroranight"] body::after{
  opacity:.36;
  background:radial-gradient(ellipse at 50% 4%,rgba(111,255,207,.50),transparent 50%);
  animation:cosmicPulse 8s ease-in-out infinite;
}
html[data-theme="cybergrid"] body{
  background-image:linear-gradient(155deg,#040716,#0D1530 58%,#070A1A);
}
html[data-theme="cybergrid"] body::before{
  opacity:.48;
  background-image:
    linear-gradient(rgba(53,231,255,.20) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,79,216,.17) 1px,transparent 1px);
  background-size:48px 48px;
  transform:perspective(420px) rotateX(58deg) scale(1.5) translateY(18%);
  transform-origin:center bottom;
  animation:cyberGridMove 3.6s linear infinite;
}
html[data-theme="cybergrid"] body::after{
  opacity:.5;
  background:
    radial-gradient(circle at 20% 24%,rgba(255,79,216,.45),transparent 26%),
    radial-gradient(circle at 82% 66%,rgba(53,231,255,.42),transparent 30%);
  animation:cyberGlow 6s ease-in-out infinite;
}

html[data-theme="electric"] body{
  background-image:linear-gradient(155deg,#020817,#071B3A 55%,#03091A);
}
html[data-theme="electric"] body::before{
  opacity:.3;
  background:
    linear-gradient(118deg,transparent 0 43%,rgba(244,252,89,.92) 44% 44.7%,transparent 45.5% 100%),
    linear-gradient(62deg,transparent 0 56%,rgba(70,229,255,.82) 57% 57.7%,transparent 58.5% 100%),
    linear-gradient(132deg,transparent 0 66%,rgba(255,255,255,.78) 67% 67.35%,transparent 68% 100%);
  animation:electricFlash 6.4s steps(1,end) infinite;
}
html[data-theme="electric"] body::after{
  opacity:.56;
  background:
    radial-gradient(ellipse at 18% 18%,rgba(43,123,210,.48),transparent 36%),
    radial-gradient(ellipse at 80% 38%,rgba(36,212,245,.30),transparent 34%),
    radial-gradient(ellipse at 48% 88%,rgba(44,72,155,.44),transparent 40%);
  filter:blur(22px);
  animation:stormCloudMove 9s ease-in-out infinite;
}
html[data-theme="enchanted"] body{
  background-image:linear-gradient(150deg,#061713,#0B352A 52%,#071C18);
}
html[data-theme="enchanted"] body::before{
  opacity:.62;
  background-image:
    radial-gradient(ellipse at center,rgba(255,218,125,.90) 0 2px,transparent 3.5px),
    radial-gradient(ellipse at center,rgba(124,255,193,.82) 0 2.5px,transparent 4px),
    radial-gradient(ellipse at center,rgba(255,126,183,.74) 0 2px,transparent 3.5px);
  background-size:92px 132px,128px 176px,168px 218px;
  animation:petalFloat 13s linear infinite;
}
html[data-theme="enchanted"] body::after{
  opacity:.54;
  background:
    radial-gradient(circle at 20% 28%,rgba(87,255,176,.35),transparent 28%),
    radial-gradient(circle at 82% 70%,rgba(255,207,103,.31),transparent 32%);
  animation:cosmicPulse 8s ease-in-out infinite;
}
html[data-theme="solarflare"] body{
  background-image:linear-gradient(150deg,#10050B,#3D0D25 52%,#160711);
}
html[data-theme="solarflare"] body::before{
  opacity:.68;
  background:conic-gradient(from 0deg at 50% 50%,transparent 0 8%,rgba(255,177,54,.56) 10% 14%,transparent 17% 30%,rgba(255,70,111,.50) 33% 38%,transparent 42% 58%,rgba(255,221,103,.44) 62% 68%,transparent 72% 100%);
  filter:blur(26px) saturate(1.35);
  animation:solarOrbit 18s linear infinite;
}
html[data-theme="solarflare"] body::after{
  opacity:.58;
  background:
    radial-gradient(circle at 50% 48%,rgba(255,211,90,.62),rgba(255,84,94,.30) 22%,transparent 46%),
    radial-gradient(circle at 12% 78%,rgba(117,252,224,.24),transparent 26%);
  animation:solarBreath 7s ease-in-out infinite;
}
html[data-theme="hologram"] body{
  background-image:linear-gradient(155deg,#050B20,#172054 52%,#07102A);
}
html[data-theme="hologram"] body::before{
  opacity:.42;
  background-image:repeating-linear-gradient(0deg,rgba(111,255,229,.18) 0 1px,transparent 1px 8px);
  animation:holoScan 2.7s linear infinite;
}
html[data-theme="hologram"] body::after{
  opacity:.60;
  background:
    linear-gradient(112deg,transparent 8%,rgba(81,255,224,.34) 28%,transparent 47%),
    linear-gradient(72deg,transparent 30%,rgba(169,111,255,.38) 52%,transparent 70%),
    radial-gradient(circle at 78% 24%,rgba(255,83,190,.30),transparent 27%);
  filter:blur(18px) saturate(1.35);
  animation:holoShift 8s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){
  html[data-theme] body,
  html[data-theme] body::before,
  html[data-theme] body::after{ animation:none !important; }
}


/* Palavriz 1.3.4 — modo de desempenho adaptativo.
   Em dispositivos touch/constrangidos, temas premium mantêm as cores/efeitos,
   mas pausam o movimento decorativo enquanto a partida está ativa. */
html[data-page-hidden="true"] body,
html[data-page-hidden="true"] body::before,
html[data-page-hidden="true"] body::after,
html[data-game-active="true"][data-performance-mode="mobile"] body,
html[data-game-active="true"][data-performance-mode="mobile"] body::before,
html[data-game-active="true"][data-performance-mode="mobile"] body::after,
html[data-game-active="true"][data-performance-mode="reduced"] body,
html[data-game-active="true"][data-performance-mode="reduced"] body::before,
html[data-game-active="true"][data-performance-mode="reduced"] body::after{
  animation-play-state:paused !important;
}
