*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;overflow:hidden;background:#0e1430;
  font-family:'Trebuchet MS','Segoe UI',Verdana,sans-serif;color:#fff;user-select:none}
canvas#c{display:block;width:100%;height:100%;position:absolute;inset:0;z-index:1}

.screen{position:absolute;inset:0;z-index:10;display:none;align-items:center;justify-content:center}
.screen.show{display:flex}

/* --- ЗАСТАВКА --- */
.title-bg{position:absolute;inset:0;background-size:cover;background-position:center;
  transform:scale(1.06);animation:slowpan 24s ease-in-out infinite alternate;filter:saturate(1.1)}
@keyframes slowpan{from{transform:scale(1.06) translate(-1%,0)}to{transform:scale(1.14) translate(1%,-1%)}}
.title-vignette{position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 45%,rgba(10,14,40,.15) 0%,rgba(10,14,40,.72) 70%,rgba(8,10,30,.92) 100%)}
.title-inner{position:relative;z-index:2;text-align:center;padding:20px}

.game-logo{display:flex;flex-direction:column;align-items:center;line-height:1;margin-bottom:34px}
.logo-teo{font-size:clamp(64px,15vw,150px);font-weight:900;letter-spacing:.06em;
  color:#ffd23f;-webkit-text-stroke:clamp(4px,1vw,9px) #23306b;paint-order:stroke fill;
  text-shadow:0 10px 0 #1a2352,0 16px 26px rgba(0,0,0,.55);transform:rotate(-2deg)}
.logo-sub{margin-top:8px;font-size:clamp(15px,3.4vw,30px);font-weight:800;letter-spacing:.34em;
  text-transform:uppercase;color:#fff;-webkit-text-stroke:4px #23306b;paint-order:stroke fill;
  text-shadow:0 4px 12px rgba(0,0,0,.6)}

.btn-cartoon{display:inline-block;cursor:pointer;border:none;font-family:inherit;font-weight:900;
  color:#3b2500;background:linear-gradient(#ffd851,#ffab1a);
  border-radius:999px;box-shadow:0 8px 0 #c96b00,0 14px 24px rgba(0,0,0,.45),inset 0 3px 0 rgba(255,255,255,.6);
  transition:transform .08s ease,box-shadow .08s ease}
.btn-cartoon:hover{transform:translateY(-2px);box-shadow:0 10px 0 #c96b00,0 18px 28px rgba(0,0,0,.5),inset 0 3px 0 rgba(255,255,255,.6)}
.btn-cartoon:active{transform:translateY(6px);box-shadow:0 2px 0 #c96b00,0 6px 12px rgba(0,0,0,.4),inset 0 3px 0 rgba(255,255,255,.5)}
.btn-huge{font-size:clamp(26px,5vw,44px);letter-spacing:.12em;padding:clamp(14px,2.4vw,22px) clamp(44px,9vw,86px);
  animation:pulse 2.2s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
.btn-small{font-size:17px;padding:11px 30px;letter-spacing:.06em}

.diff-row{margin-top:26px;display:flex;flex-direction:column;align-items:center;gap:9px}
.diff-label{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:#a9b6e6;font-weight:700}
.mode-btns{display:flex;gap:20px;justify-content:center;align-items:flex-end}
.mode-btn{cursor:pointer;background:none;border:none;padding:0;border-radius:22px;
  transition:transform .12s ease,filter .12s ease;
  filter:grayscale(.45) brightness(.66);opacity:.72}
.mode-btn img{display:block;width:clamp(112px,27vw,152px);height:auto;pointer-events:none}
.mode-btn:hover{transform:translateY(-3px)}
.mode-btn.active{filter:none;opacity:1;transform:translateY(-3px) scale(1.05)}
.mode-btn[data-mode="kids"].active{filter:drop-shadow(0 6px 16px rgba(70,150,255,.6))}
.mode-btn[data-mode="adult"].active{filter:drop-shadow(0 6px 16px rgba(255,70,40,.75))}
/* «Взрослый» подсвечивается, пока выбран детский */
.mode-btn.glow:not(.active){animation:btnGlow 1.7s ease-in-out infinite}
@keyframes btnGlow{
  0%,100%{filter:grayscale(.3) brightness(.8) drop-shadow(0 0 0 rgba(255,50,30,0));opacity:.85}
  50%{filter:grayscale(0) brightness(1.05) drop-shadow(0 0 20px rgba(255,60,35,.85));opacity:1}
}

.title-links{margin-top:24px;display:flex;gap:20px;justify-content:center;flex-wrap:wrap}
.btn-link{cursor:pointer;background:none;border:none;font-family:inherit;font-weight:700;font-size:14px;
  color:#b8c4f0;letter-spacing:.05em;border-bottom:2px solid rgba(184,196,240,.35);padding-bottom:2px}
.btn-link:hover{color:#ffd23f;border-color:#ffd23f}
.title-hint{position:absolute;bottom:18px;left:0;right:0;z-index:2;text-align:center;
  font-size:12px;color:#8e9bcd;letter-spacing:.06em}

/* --- КАТСЦЕНА --- */
#screen-cut{background:#000}
#cutscene{width:100%;height:100%;object-fit:contain;background:#000}
.btn-skip{position:absolute;right:18px;bottom:18px;cursor:pointer;font-family:inherit;font-weight:800;
  font-size:15px;color:#fff;background:rgba(0,0,0,.55);border:2px solid rgba(255,255,255,.5);
  border-radius:999px;padding:10px 22px;backdrop-filter:blur(3px)}
.btn-skip:hover{background:rgba(255,210,63,.9);color:#2a1c00;border-color:#ffd23f}

/* --- ПАНЕЛЬ УРОВНЕЙ --- */
#screen-levels{background:radial-gradient(ellipse at 50% 30%,#25306a,#0e1430 70%)}
.panel{width:min(760px,92vw);max-height:88vh;overflow:auto;text-align:center;
  background:rgba(16,22,54,.92);border:3px solid rgba(255,255,255,.14);border-radius:26px;
  padding:28px 24px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.panel h2{font-size:30px;font-weight:900;letter-spacing:.06em;margin-bottom:20px;color:#ffd23f;
  -webkit-text-stroke:3px #23306b;paint-order:stroke fill}
.level-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:22px}
.level-card{cursor:pointer;text-align:left;padding:16px;border-radius:18px;border:3px solid rgba(255,255,255,.14);
  background:linear-gradient(160deg,#2b376f,#1a2350);transition:transform .1s ease,border-color .1s ease}
.level-card:hover{transform:translateY(-3px);border-color:#ffd23f}
.level-card.locked{opacity:.45;cursor:not-allowed}
.level-card.locked:hover{transform:none;border-color:rgba(255,255,255,.14)}
.level-card .lc-num{font-size:12px;letter-spacing:.22em;color:#93a1d8;font-weight:800}
.level-card .lc-name{font-size:20px;font-weight:900;margin:3px 0 8px}
.level-card .lc-meta{font-size:13px;color:#a9b6e6}
.level-card .lc-stars{margin-top:8px;font-size:19px;color:#ffd23f;letter-spacing:2px}

/* --- УПРАВЛЕНИЕ --- */
.stick{position:absolute;z-index:5;width:130px;height:130px;border-radius:50%;
  background:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.2);display:none;pointer-events:none}
.stick.show{display:block}
.stick-knob{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;
  background:rgba(255,210,63,.85);box-shadow:0 3px 10px rgba(0,0,0,.4)}
.btn-pause{position:absolute;z-index:6;top:14px;right:14px;display:none;cursor:pointer;
  width:44px;height:44px;border-radius:14px;font-family:inherit;font-weight:900;font-size:15px;letter-spacing:2px;
  color:#fff;background:rgba(16,22,54,.75);border:2px solid rgba(255,255,255,.25)}
.btn-pause.show{display:block}

/* ================= ВЗРОСЛЫЙ РЕЖИМ (тёмная заставка) ================= */
body.mode-adult{background:#08090b}
body.mode-adult .title-bg{
  background:radial-gradient(ellipse at 50% 35%,#241014 0%,#0c0a0c 60%,#050506 100%);
  filter:none;animation:slowpan 30s ease-in-out infinite alternate}
body.mode-adult .title-vignette{
  background:radial-gradient(ellipse at 50% 42%,rgba(60,10,10,.15) 0%,rgba(6,6,8,.82) 68%,rgba(2,2,3,.96) 100%)}
body.mode-adult .logo-teo{color:#c0392b;-webkit-text-stroke-color:#1a0a08;
  text-shadow:0 10px 0 #140606,0 16px 30px rgba(0,0,0,.7)}
body.mode-adult .logo-sub{color:#d8cfc8;-webkit-text-stroke-color:#1a0a08;letter-spacing:.3em}
body.mode-adult .btn-huge{background:linear-gradient(#d24632,#9a1e10);color:#fff;
  box-shadow:0 8px 0 #5a140c,0 14px 24px rgba(0,0,0,.6),inset 0 3px 0 rgba(255,255,255,.25)}
body.mode-adult .btn-huge:active{box-shadow:0 2px 0 #5a140c,0 6px 12px rgba(0,0,0,.5),inset 0 3px 0 rgba(255,255,255,.2)}
body.mode-adult .diff-label{color:#9a8f88}
body.mode-adult .title-hint{color:#7a6f68}
body.mode-adult .btn-link{color:#b9a9a2;border-color:rgba(185,169,162,.35)}
body.mode-adult .btn-link:hover{color:#ff6a4a;border-color:#ff6a4a}
/* в тёмном режиме «Детский» — обычный чип, «Взрослый» уже активен и горит */
body.mode-adult #screen-levels{background:radial-gradient(ellipse at 50% 30%,#241014,#08090b 70%)}
body.mode-adult .panel{background:rgba(14,10,10,.94);border-color:rgba(255,120,90,.14)}
body.mode-adult .panel h2{color:#c0392b;-webkit-text-stroke-color:#1a0a08}
body.mode-adult .level-card{background:linear-gradient(160deg,#2a1614,#160c0c);border-color:rgba(255,120,90,.14)}
body.mode-adult .level-card:hover{border-color:#ff6a4a}
body.mode-adult .level-card .lc-stars{color:#e0703a}
