/* Daumen-Spiele – www.guri-online.com/spiele (generated by tools/build_web.py) */
@font-face{font-family:"Alfa Slab One";src:url(schrift/alfa-slab-one-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Audiowide";src:url(schrift/audiowide-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Baloo 2";src:url(schrift/baloo-2-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Baloo 2";src:url(schrift/baloo-2-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Bebas Neue";src:url(schrift/bebas-neue-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Bungee";src:url(schrift/bungee-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url(schrift/dm-sans-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url(schrift/dm-sans-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Fredoka";src:url(schrift/fredoka-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Fredoka";src:url(schrift/fredoka-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Fredoka";src:url(schrift/fredoka-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Lilita One";src:url(schrift/lilita-one-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Monoton";src:url(schrift/monoton-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Nunito";src:url(schrift/nunito-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Nunito";src:url(schrift/nunito-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Shrikhand";src:url(schrift/shrikhand-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Sniglet";src:url(schrift/sniglet-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Titan One";src:url(schrift/titan-one-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
/* Layout: a shelf of eleven game cards (one column on phones, up to three on wide screens); each game takes the whole screen when opened */
:root{
  --hub-bg:#E6EEE9;
  --hub-ink:#1E2B28;
  --hub-muted:#4F5D58;
  --hub-card:#FFFFFF;
  --hub-line:#CFDAD3;
  --hub-display:'Baloo 2','Arial Rounded MT Bold','Trebuchet MS',sans-serif;
  --hub-body:'Nunito','Segoe UI',system-ui,sans-serif;
  color-scheme:light;
}
[hidden]{display:none!important}
html,body{min-height:100%}
body{margin:0;background:var(--hub-bg);color:var(--hub-ink);font-family:var(--hub-body)}
body.in-game{overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.hub{max-width:1240px;margin:0 auto;padding-inline:16px;padding-block:28px 40px;display:flex;flex-direction:column;gap:22px}
.hub-head{display:flex;align-items:center;gap:14px}
.logo{flex:none;width:58px;height:58px;border-radius:18px;background:var(--hub-ink);display:flex;align-items:center;justify-content:center}
.hub-head h1{font-family:var(--hub-display);font-weight:800;font-size:clamp(38px,9vw,56px);line-height:.95;margin:0;letter-spacing:-.01em;text-wrap:balance}
.lead{margin:0;font-weight:700;color:var(--hub-muted);line-height:1.45;max-width:46ch}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:16px}
.gcard{background:var(--hub-card);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 0 var(--hub-line),0 12px 28px rgba(30,43,40,.08)}
.gcard .art{display:block;width:100%;height:150px}
.gbody{padding:16px 18px 18px;display:flex;flex-direction:column;gap:12px;flex:1;min-width:0}
.gcard h2{margin:0;line-height:1;font-weight:400;color:var(--c)}
.gl{--c:#23533B;--btn:#2F7A4A}
.gb{--c:#B23E28;--btn:#2F6F6D}
.gr{--c:#B42318;--btn:#B42318}
.gl h2{font-family:'Lilita One','Arial Rounded MT Bold',sans-serif;font-size:32px}
.gb h2{font-family:'Fredoka','Arial Rounded MT Bold',sans-serif;font-weight:700;font-size:32px}
.gr h2{font-family:'Bebas Neue','Arial Narrow',sans-serif;font-size:42px;letter-spacing:.02em}
.gp{--c:#1A5E98;--btn:#1F6FB2}.gp h2{font-family:'Sniglet','Arial Rounded MT Bold',sans-serif;font-weight:800;font-size:34px}
.gs{--c:#A8380A;--btn:#C2410C}.gs h2{font-family:'Titan One','Arial Rounded MT Bold',sans-serif;font-size:28px}
.gk{--c:#B32E27;--btn:#C7372F}.gk h2{font-family:'Bungee','Arial Black',sans-serif;font-size:25px}
.gm{--c:#4A33A8;--btn:#5B3FC4}.gm h2{font-family:'Audiowide','Arial Black',sans-serif;font-size:27px}
.gw{--c:#1F5F56;--btn:#2F8F6A}.gw h2{font-family:'Alfa Slab One',Rockwell,serif;font-size:27px}
.gz{--c:#5B2A86;--btn:#C2410C}.gz h2{font-family:'Shrikhand',Georgia,serif;font-size:31px}
.ge{--c:#2B2F8F;--btn:#2B2F8F}.ge h2{font-family:'Monoton','Courier New',monospace;font-size:34px;letter-spacing:.02em}
.gn{--c:#8A3E10;--btn:#B8520F}.gn h2{font-family:'Fredoka','Arial Rounded MT Bold',sans-serif;font-weight:700;font-size:32px}
.desc{margin:0;color:var(--hub-muted);font-weight:700;line-height:1.4}
.stats{display:flex;gap:22px;flex-wrap:wrap;font-variant-numeric:tabular-nums}
.stat{display:flex;flex-direction:column;gap:2px}
.stat small{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--hub-muted)}
.stat b{font-family:var(--hub-display);font-weight:800;font-size:22px;line-height:1.1}
.dots{display:flex;gap:4px;margin-top:3px}
.dots i{width:10px;height:10px;border-radius:50%;background:var(--hub-line)}
.dots i.on{background:var(--btn)}
.saved{margin:0;font-size:13px;font-weight:800;color:var(--hub-muted)}
.play{margin-top:auto;font-family:var(--hub-display);font-weight:800;font-size:21px;min-height:54px;border:0;border-radius:16px;background:var(--btn);color:#fff;cursor:pointer;touch-action:manipulation}
.play:focus-visible{outline:3px solid var(--hub-ink);outline-offset:3px}
.foot{margin:0;color:var(--hub-muted);font-weight:700;font-size:13px}
@media (hover:hover){.play:hover{filter:brightness(1.08)}}
/* lianen */
.g-lianen{--jungle:#16352A;
  --panel:rgba(255,255,255,.93);
  --card:#F3F8EC;
  --ink:#1B3A2B;
  --muted:#46644F;
  --leaf:#2F7A4A;
  --accent:#C2410C;
  --track:#D6E5CC;
  --howto:#E2EDD6;
  --scrim:rgba(9,26,18,.62);
  --display:'Lilita One','Arial Rounded MT Bold','Trebuchet MS',sans-serif;
  --body:'Nunito','Segoe UI',system-ui,sans-serif;
  color-scheme:light;}
.g-lianen{height:100%}
.g-lianen{margin:0;background:var(--jungle);color:var(--ink);font-family:var(--body);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.g-lianen #l-stage{position:fixed;inset:0;touch-action:none;cursor:pointer}
.g-lianen #l-c{display:block;width:100%;height:100%}
.g-lianen .hud{position:fixed;left:0;right:0;top:0;margin:0 auto;max-width:520px;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 0;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.g-lianen .row{display:flex;gap:8px;align-items:stretch}
.g-lianen .chip{background:var(--panel);border-radius:14px;padding:0 12px;min-height:46px;display:flex;align-items:center;gap:6px}
.g-lianen .hearts{gap:3px}
.g-lianen .hearts svg{width:18px;height:18px;display:block}
.g-lianen .score{flex:1;min-width:0;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:4px 10px}
.g-lianen .score-top{display:flex;align-items:center;gap:8px}
.g-lianen .score-num{font-family:var(--display);font-size:24px;line-height:1.05;font-variant-numeric:tabular-nums}
.g-lianen .mult{font-family:var(--display);font-size:14px;color:#fff;background:var(--accent);padding:1px 7px;border-radius:8px}
.g-lianen .sub{font-size:12px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-lianen .coins{font-family:var(--display);font-size:18px;font-variant-numeric:tabular-nums}
.g-lianen .icon-btn{pointer-events:auto;width:46px;height:46px;border:0;border-radius:14px;background:var(--panel);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation}
.g-lianen .progress{gap:10px;padding:8px 12px}
.g-lianen .progress-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.g-lianen .progress-text{display:flex;justify-content:space-between;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.g-lianen .bar{height:8px;background:var(--track);border-radius:4px;overflow:hidden}
.g-lianen .fill{height:100%;width:0;background:var(--leaf);border-radius:4px}
.g-lianen .hint{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.g-lianen .hint span{background:rgba(27,58,43,.92);color:#fff;border-radius:999px;padding:10px 16px;font-weight:800;font-size:14px;text-align:center}
.g-lianen .overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--scrim)}
.g-lianen .card{width:100%;max-width:340px;background:var(--card);border-radius:22px;padding:24px 20px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.28)}
.g-lianen .card h1,.g-lianen .card h2{font-family:var(--display);font-weight:400;margin:0;line-height:1.05;text-wrap:balance}
.g-lianen .card h1{font-size:40px;color:var(--leaf)}
.g-lianen .card h2{font-size:30px;color:var(--ink)}
.g-lianen .card p{margin:0;line-height:1.45;color:var(--muted);font-weight:700}
.g-lianen .howto{display:grid;gap:8px;text-align:left;background:var(--howto);border-radius:14px;padding:12px 14px;font-weight:800;font-size:14px}
.g-lianen .howto div{display:flex;gap:10px;align-items:center}
.g-lianen .howto svg{flex:none}
.g-lianen .btn{font-family:var(--display);font-size:20px;border:0;border-radius:16px;min-height:54px;padding:0 18px;cursor:pointer;touch-action:manipulation}
.g-lianen .btn.primary{background:var(--accent);color:#fff}
.g-lianen .btn.secondary{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px #C3D6B6}
.g-lianen .btn:focus-visible,.g-lianen .icon-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.g-lianen .big{font-family:var(--display);font-size:46px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.g-lianen .record{font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-lianen .banner{position:fixed;left:0;right:0;top:36%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;pointer-events:none;text-align:center}
.g-lianen .banner small{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(20,20,30,.5);padding:4px 12px;border-radius:999px}
.g-lianen .banner b{font-family:var(--display);font-weight:400;font-size:44px;line-height:1.05;color:#fff;text-wrap:balance;background:rgba(20,20,30,.42);padding:4px 18px 8px;border-radius:18px}
.g-lianen .banner:not([hidden]){animation:bannerIn 2.6s ease both}
@keyframes bannerIn{0%{opacity:0;transform:translateY(14px) scale(.96)}12%{opacity:1;transform:none}78%{opacity:1}100%{opacity:0}}
.g-lianen .worlds{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.g-lianen .worlds span{font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px;background:var(--howto);color:var(--muted)}
.g-lianen .worlds span.on{background:var(--leaf);color:#fff}
@media (prefers-reduced-motion: reduce){.g-lianen .banner:not([hidden]){animation:none}}
/* ballon */
.g-ballon{--sky:#BFD9EE;
  --panel:rgba(255,255,255,.93);
  --card:#F7FAFD;
  --ink:#253045;
  --muted:#4A5670;
  --coral:#E8735A;
  --accent:#C24B33;
  --teal:#2F6F6D;
  --track:#F3D9CF;
  --howto:#E6EEF6;
  --scrim:rgba(20,30,52,.55);
  --display:'Fredoka','Arial Rounded MT Bold','Trebuchet MS',sans-serif;
  color-scheme:light;}
.g-ballon{height:100%}
.g-ballon{margin:0;background:var(--sky);color:var(--ink);font-family:var(--display);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.g-ballon #b-stage{position:fixed;inset:0;touch-action:none;cursor:pointer}
.g-ballon #b-c{display:block;width:100%;height:100%}
.g-ballon .hud{position:fixed;left:0;right:0;top:0;margin:0 auto;max-width:520px;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 0;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.g-ballon .row{display:flex;gap:8px;align-items:stretch}
.g-ballon .chip{background:var(--panel);border-radius:14px;padding:0 12px;min-height:46px;display:flex;align-items:center;gap:6px}
.g-ballon .hearts{gap:3px}
.g-ballon .hearts svg{width:18px;height:18px;display:block}
.g-ballon .score{flex:1;min-width:0;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:4px 10px}
.g-ballon .score-top{display:flex;align-items:center;gap:8px}
.g-ballon .score-num{font-size:24px;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums}
.g-ballon .mult{font-size:14px;font-weight:700;color:#fff;background:var(--teal);padding:1px 7px;border-radius:8px}
.g-ballon .sub{font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.g-ballon .coins{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}
.g-ballon .icon-btn{pointer-events:auto;width:46px;height:46px;border:0;border-radius:14px;background:var(--panel);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation}
.g-ballon .half{flex:1;min-width:0;padding:8px 12px;gap:8px}
.g-ballon .half-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.g-ballon .half-text{display:flex;justify-content:space-between;gap:6px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.g-ballon .bar{height:8px;background:var(--track);border-radius:4px;overflow:hidden}
.g-ballon .fill{height:100%;width:100%;background:var(--coral);border-radius:4px}
.g-ballon .fill.low{background:#B42318}
.g-ballon .island-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.g-ballon .island-text b{font-size:13px;font-weight:600}
.g-ballon .island-text span{font-size:12px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
.g-ballon .hint{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.g-ballon .hint span{background:rgba(37,48,69,.92);color:#fff;border-radius:999px;padding:10px 16px;font-weight:600;font-size:14px;text-align:center}
.g-ballon .overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--scrim)}
.g-ballon .card{width:100%;max-width:340px;background:var(--card);border-radius:24px;padding:24px 20px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 18px 40px rgba(20,30,52,.25)}
.g-ballon .card h1,.g-ballon .card h2{font-weight:700;margin:0;line-height:1.05;text-wrap:balance}
.g-ballon .card h1{font-size:38px;color:var(--accent)}
.g-ballon .card h2{font-size:28px}
.g-ballon .card p{margin:0;line-height:1.45;color:var(--muted);font-weight:500}
.g-ballon .howto{display:grid;gap:8px;text-align:left;background:var(--howto);border-radius:14px;padding:12px 14px;font-weight:600;font-size:14px}
.g-ballon .howto div{display:flex;gap:10px;align-items:center}
.g-ballon .howto svg{flex:none}
.g-ballon .btn{font-family:var(--display);font-weight:600;font-size:19px;border:0;border-radius:16px;min-height:54px;padding:0 18px;cursor:pointer;touch-action:manipulation}
.g-ballon .btn.primary{background:var(--accent);color:#fff}
.g-ballon .btn.secondary{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px #CCD8E6}
.g-ballon .btn:focus-visible,.g-ballon .icon-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.g-ballon .big{font-size:46px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.g-ballon .record{font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.g-ballon .banner{position:fixed;left:0;right:0;top:36%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;pointer-events:none;text-align:center}
.g-ballon .banner small{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(20,20,30,.5);padding:4px 12px;border-radius:999px}
.g-ballon .banner b{font-family:var(--display);font-weight:700;font-size:42px;line-height:1.05;color:#fff;text-wrap:balance;background:rgba(20,20,30,.42);padding:4px 18px 8px;border-radius:18px}
.g-ballon .banner:not([hidden]){animation:bannerIn 2.6s ease both}
@keyframes bannerIn{0%{opacity:0;transform:translateY(14px) scale(.96)}12%{opacity:1;transform:none}78%{opacity:1}100%{opacity:0}}
.g-ballon .worlds{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.g-ballon .worlds span{font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px;background:var(--howto);color:var(--muted)}
.g-ballon .worlds span.on{background:var(--teal);color:#fff}
@media (prefers-reduced-motion: reduce){.g-ballon .banner:not([hidden]){animation:none}}
/* bruecke */
.g-bruecke{--dusk:#2B1830;
  --panel:rgba(255,255,255,.93);
  --card:#FBF4EE;
  --ink:#2B1830;
  --muted:#6B5470;
  --accent:#B42318;
  --plum:#9A4560;
  --seg-off:#EAD5DC;
  --howto:#F3E3DA;
  --scrim:rgba(30,12,30,.6);
  --display:'Bebas Neue','Oswald','Arial Narrow',sans-serif;
  --body:'DM Sans','Segoe UI',system-ui,sans-serif;
  color-scheme:light;}
.g-bruecke{height:100%}
.g-bruecke{margin:0;background:var(--dusk);color:var(--ink);font-family:var(--body);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.g-bruecke #r-stage{position:fixed;inset:0;touch-action:none;cursor:pointer}
.g-bruecke #r-c{display:block;width:100%;height:100%}
.g-bruecke .hud{position:fixed;left:0;right:0;top:0;margin:0 auto;max-width:520px;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 0;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.g-bruecke .row{display:flex;gap:8px;align-items:stretch}
.g-bruecke .chip{background:var(--panel);border-radius:14px;padding:0 12px;min-height:46px;display:flex;align-items:center;gap:6px}
.g-bruecke .hearts{gap:3px}
.g-bruecke .hearts svg{width:18px;height:18px;display:block}
.g-bruecke .score{flex:1;min-width:0;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:4px 10px}
.g-bruecke .score-top{display:flex;align-items:center;gap:8px}
.g-bruecke .score-num{font-family:var(--display);font-size:30px;line-height:1;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.g-bruecke .mult{font-family:var(--display);font-size:17px;line-height:1.2;color:#fff;background:var(--accent);padding:1px 7px;border-radius:8px;letter-spacing:.03em}
.g-bruecke .sub{font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.g-bruecke .coins{font-family:var(--display);font-size:22px;line-height:1;font-variant-numeric:tabular-nums}
.g-bruecke .icon-btn{pointer-events:auto;width:46px;height:46px;border:0;border-radius:14px;background:var(--panel);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation}
.g-bruecke .hutcard{flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px}
.g-bruecke .hut-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700}
.g-bruecke .hut-top span{display:flex;align-items:center;gap:6px}
.g-bruecke .hut-top em{font-style:normal;font-weight:500;color:var(--muted)}
.g-bruecke .segs{display:flex;gap:3px}
.g-bruecke .segs i{flex:1;height:8px;border-radius:2px;background:var(--seg-off)}
.g-bruecke .segs i.on{background:var(--plum)}
.g-bruecke .pills{display:flex;gap:8px;flex-wrap:wrap}
.g-bruecke .pill{background:var(--panel);border-radius:999px;padding:6px 12px;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700}
.g-bruecke .hint{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.g-bruecke .hint span{background:rgba(36,18,42,.92);color:#fff;border-radius:999px;padding:10px 16px;font-weight:700;font-size:14px;text-align:center}
.g-bruecke .overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--scrim)}
.g-bruecke .card{width:100%;max-width:340px;background:var(--card);border-radius:22px;padding:24px 20px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 18px 40px rgba(20,8,20,.35)}
.g-bruecke .card h1,.g-bruecke .card h2{font-family:var(--display);font-weight:400;margin:0;line-height:.95;letter-spacing:.02em;text-wrap:balance}
.g-bruecke .card h1{font-size:52px;color:var(--accent)}
.g-bruecke .card h2{font-size:40px}
.g-bruecke .card p{margin:0;line-height:1.45;color:var(--muted);font-weight:500}
.g-bruecke .howto{display:grid;gap:8px;text-align:left;background:var(--howto);border-radius:14px;padding:12px 14px;font-weight:700;font-size:14px}
.g-bruecke .howto div{display:flex;gap:10px;align-items:center}
.g-bruecke .howto svg{flex:none}
.g-bruecke .btn{font-family:var(--display);font-size:24px;letter-spacing:.04em;border:0;border-radius:16px;min-height:54px;padding:0 18px;cursor:pointer;touch-action:manipulation}
.g-bruecke .btn.primary{background:var(--accent);color:#fff}
.g-bruecke .btn.secondary{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px #E2CCD3}
.g-bruecke .btn:focus-visible,.g-bruecke .icon-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.g-bruecke .big{font-family:var(--display);font-size:60px;line-height:1;font-variant-numeric:tabular-nums}
.g-bruecke .record{font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.g-bruecke .banner{position:fixed;left:0;right:0;top:36%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;pointer-events:none;text-align:center}
.g-bruecke .banner small{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(20,20,30,.5);padding:4px 12px;border-radius:999px}
.g-bruecke .banner b{font-family:var(--display);font-weight:400;font-size:56px;line-height:1.05;color:#fff;text-wrap:balance;background:rgba(20,20,30,.42);padding:4px 18px 8px;border-radius:18px}
.g-bruecke .banner:not([hidden]){animation:bannerIn 2.6s ease both}
@keyframes bannerIn{0%{opacity:0;transform:translateY(14px) scale(.96)}12%{opacity:1;transform:none}78%{opacity:1}100%{opacity:0}}
.g-bruecke .worlds{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.g-bruecke .worlds span{font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px;background:var(--howto);color:var(--muted)}
.g-bruecke .worlds span.on{background:var(--plum);color:#fff}
@media (prefers-reduced-motion: reduce){.g-bruecke .banner:not([hidden]){animation:none}}
/* schlucht */
.g-schlucht{--bg:#8FCBEF;--card:#F6F8F1;--ink:#2A2418;--muted:#5E5444;--accent:#C2410C;--fill:#2F7A4A;--track:#E3DCC8;--howto:#ECE7D8;--scrim:rgba(30,24,14,.6);--line:#DED5C0;--hintbg:rgba(42,36,24,.92);--display:'Titan One','Arial Rounded MT Bold',sans-serif;--dweight:400;--h1:34px;
  --body:'Nunito','Segoe UI',system-ui,sans-serif;
  --panel:rgba(255,255,255,.93);
  color-scheme:light;}
.g-schlucht{height:100%}
.g-schlucht{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.g-schlucht #s-stage{position:fixed;inset:0;touch-action:none;cursor:pointer}
.g-schlucht #s-c{display:block;width:100%;height:100%}
.g-schlucht .hud{position:fixed;left:0;right:0;top:0;margin:0 auto;max-width:520px;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 0;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.g-schlucht .row{display:flex;gap:8px;align-items:stretch}
.g-schlucht .chip{background:var(--panel);border-radius:14px;padding:0 12px;min-height:46px;display:flex;align-items:center;gap:6px}
.g-schlucht .hearts{gap:3px}
.g-schlucht .hearts svg{width:18px;height:18px;display:block}
.g-schlucht .score{flex:1;min-width:0;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:4px 10px}
.g-schlucht .score-top{display:flex;align-items:center;gap:8px}
.g-schlucht .score-num{font-family:var(--display);font-weight:var(--dweight);font-size:24px;line-height:1.05;font-variant-numeric:tabular-nums}
.g-schlucht .mult{font-family:var(--display);font-weight:var(--dweight);font-size:14px;line-height:1.3;color:#fff;background:var(--accent);padding:1px 7px;border-radius:8px}
.g-schlucht .sub{font-size:12px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-schlucht .coins{font-family:var(--display);font-weight:var(--dweight);font-size:18px;font-variant-numeric:tabular-nums}
.g-schlucht .icon-btn{pointer-events:auto;width:46px;height:46px;border:0;border-radius:14px;background:var(--panel);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation}
.g-schlucht .progress{gap:10px;padding:8px 12px}
.g-schlucht .progress-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.g-schlucht .progress-text{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.g-schlucht .bar{height:8px;background:var(--track);border-radius:4px;overflow:hidden}
.g-schlucht .fill{height:100%;width:0;background:var(--fill);border-radius:4px}
.g-schlucht .hint{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.g-schlucht .hint span{background:var(--hintbg);color:#fff;border-radius:999px;padding:10px 16px;font-weight:800;font-size:14px;text-align:center}
.g-schlucht .banner{position:fixed;left:0;right:0;top:36%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;pointer-events:none;text-align:center}
.g-schlucht .banner small{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(20,20,30,.5);padding:4px 12px;border-radius:999px}
.g-schlucht .banner b{font-family:var(--display);font-weight:var(--dweight);font-size:42px;line-height:1.05;color:#fff;text-wrap:balance;background:rgba(20,20,30,.42);padding:4px 18px 8px;border-radius:18px}
.g-schlucht .banner:not([hidden]){animation:bannerIn 2.6s ease both}
@keyframes bannerIn{0%{opacity:0;transform:translateY(14px) scale(.96)}12%{opacity:1;transform:none}78%{opacity:1}100%{opacity:0}}
.g-schlucht .overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--scrim)}
.g-schlucht .card{width:100%;max-width:340px;max-height:100%;overflow-y:auto;background:var(--card);border-radius:22px;padding:24px 20px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.28)}
.g-schlucht .card h1,.g-schlucht .card h2{font-family:var(--display);font-weight:var(--dweight);margin:0;line-height:1.05;text-wrap:balance}
.g-schlucht .card h1{font-size:var(--h1);color:var(--accent)}
.g-schlucht .card h2{font-size:30px;color:var(--ink)}
.g-schlucht .card p{margin:0;line-height:1.45;color:var(--muted);font-weight:700}
.g-schlucht .howto{display:grid;gap:8px;text-align:left;background:var(--howto);border-radius:14px;padding:12px 14px;font-weight:800;font-size:14px}
.g-schlucht .howto div{display:flex;gap:10px;align-items:center}
.g-schlucht .howto svg{flex:none}
.g-schlucht .btn{font-family:var(--display);font-weight:var(--dweight);font-size:20px;border:0;border-radius:16px;min-height:54px;padding:0 18px;cursor:pointer;touch-action:manipulation}
.g-schlucht .btn.primary{background:var(--accent);color:#fff}
.g-schlucht .btn.secondary{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
.g-schlucht .btn:focus-visible,.g-schlucht .icon-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.g-schlucht .big{font-family:var(--display);font-weight:var(--dweight);font-size:46px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.g-schlucht .record{font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-schlucht .worlds{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.g-schlucht .worlds span{font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px;background:var(--howto);color:var(--muted)}
.g-schlucht .worlds span.on{background:var(--accent);color:#fff}
@media (prefers-reduced-motion: reduce){.g-schlucht .banner:not([hidden]){animation:none}}
/* kanone */
.g-kanone{--bg:#FFE3C8;--card:#FFF8F2;--ink:#3A1E2E;--muted:#6E5163;--accent:#C7372F;--fill:#E09A1A;--track:#F3DCCF;--howto:#FBE7DC;--scrim:rgba(58,30,46,.55);--line:#EBCFC2;--hintbg:rgba(58,30,46,.92);--display:'Bungee','Arial Black',sans-serif;--dweight:400;--h1:30px;
  --body:'Nunito','Segoe UI',system-ui,sans-serif;
  --panel:rgba(255,255,255,.93);
  color-scheme:light;}
.g-kanone{height:100%}
.g-kanone{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.g-kanone #k-stage{position:fixed;inset:0;touch-action:none;cursor:pointer}
.g-kanone #k-c{display:block;width:100%;height:100%}
.g-kanone .hud{position:fixed;left:0;right:0;top:0;margin:0 auto;max-width:520px;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 0;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.g-kanone .row{display:flex;gap:8px;align-items:stretch}
.g-kanone .chip{background:var(--panel);border-radius:14px;padding:0 12px;min-height:46px;display:flex;align-items:center;gap:6px}
.g-kanone .hearts{gap:3px}
.g-kanone .hearts svg{width:18px;height:18px;display:block}
.g-kanone .score{flex:1;min-width:0;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:4px 10px}
.g-kanone .score-top{display:flex;align-items:center;gap:8px}
.g-kanone .score-num{font-family:var(--display);font-weight:var(--dweight);font-size:24px;line-height:1.05;font-variant-numeric:tabular-nums}
.g-kanone .mult{font-family:var(--display);font-weight:var(--dweight);font-size:14px;line-height:1.3;color:#fff;background:var(--accent);padding:1px 7px;border-radius:8px}
.g-kanone .sub{font-size:12px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-kanone .coins{font-family:var(--display);font-weight:var(--dweight);font-size:18px;font-variant-numeric:tabular-nums}
.g-kanone .icon-btn{pointer-events:auto;width:46px;height:46px;border:0;border-radius:14px;background:var(--panel);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation}
.g-kanone .progress{gap:10px;padding:8px 12px}
.g-kanone .progress-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.g-kanone .progress-text{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.g-kanone .bar{height:8px;background:var(--track);border-radius:4px;overflow:hidden}
.g-kanone .fill{height:100%;width:0;background:var(--fill);border-radius:4px}
.g-kanone .hint{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.g-kanone .hint span{background:var(--hintbg);color:#fff;border-radius:999px;padding:10px 16px;font-weight:800;font-size:14px;text-align:center}
.g-kanone .banner{position:fixed;left:0;right:0;top:36%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;pointer-events:none;text-align:center}
.g-kanone .banner small{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(20,20,30,.5);padding:4px 12px;border-radius:999px}
.g-kanone .banner b{font-family:var(--display);font-weight:var(--dweight);font-size:42px;line-height:1.05;color:#fff;text-wrap:balance;background:rgba(20,20,30,.42);padding:4px 18px 8px;border-radius:18px}
.g-kanone .banner:not([hidden]){animation:bannerIn 2.6s ease both}
@keyframes bannerIn{0%{opacity:0;transform:translateY(14px) scale(.96)}12%{opacity:1;transform:none}78%{opacity:1}100%{opacity:0}}
.g-kanone .overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--scrim)}
.g-kanone .card{width:100%;max-width:340px;max-height:100%;overflow-y:auto;background:var(--card);border-radius:22px;padding:24px 20px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.28)}
.g-kanone .card h1,.g-kanone .card h2{font-family:var(--display);font-weight:var(--dweight);margin:0;line-height:1.05;text-wrap:balance}
.g-kanone .card h1{font-size:var(--h1);color:var(--accent)}
.g-kanone .card h2{font-size:30px;color:var(--ink)}
.g-kanone .card p{margin:0;line-height:1.45;color:var(--muted);font-weight:700}
.g-kanone .howto{display:grid;gap:8px;text-align:left;background:var(--howto);border-radius:14px;padding:12px 14px;font-weight:800;font-size:14px}
.g-kanone .howto div{display:flex;gap:10px;align-items:center}
.g-kanone .howto svg{flex:none}
.g-kanone .btn{font-family:var(--display);font-weight:var(--dweight);font-size:20px;border:0;border-radius:16px;min-height:54px;padding:0 18px;cursor:pointer;touch-action:manipulation}
.g-kanone .btn.primary{background:var(--accent);color:#fff}
.g-kanone .btn.secondary{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
.g-kanone .btn:focus-visible,.g-kanone .icon-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.g-kanone .big{font-family:var(--display);font-weight:var(--dweight);font-size:46px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.g-kanone .record{font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-kanone .worlds{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.g-kanone .worlds span{font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px;background:var(--howto);color:var(--muted)}
.g-kanone .worlds span.on{background:var(--accent);color:#fff}
@media (prefers-reduced-motion: reduce){.g-kanone .banner:not([hidden]){animation:none}}
/* mond */
.g-mond{--bg:#4B4E9E;--card:#F4F2FB;--ink:#211D45;--muted:#5A5480;--accent:#5B3FC4;--fill:#22A090;--track:#DDD8F0;--howto:#E8E4F6;--scrim:rgba(20,16,50,.6);--line:#D6D0EE;--hintbg:rgba(33,29,69,.92);--display:'Audiowide','Arial Black',sans-serif;--dweight:400;--h1:30px;
  --body:'Nunito','Segoe UI',system-ui,sans-serif;
  --panel:rgba(255,255,255,.93);
  color-scheme:light;}
.g-mond{height:100%}
.g-mond{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.g-mond #m-stage{position:fixed;inset:0;touch-action:none;cursor:pointer}
.g-mond #m-c{display:block;width:100%;height:100%}
.g-mond .hud{position:fixed;left:0;right:0;top:0;margin:0 auto;max-width:520px;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 0;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.g-mond .row{display:flex;gap:8px;align-items:stretch}
.g-mond .chip{background:var(--panel);border-radius:14px;padding:0 12px;min-height:46px;display:flex;align-items:center;gap:6px}
.g-mond .hearts{gap:3px}
.g-mond .hearts svg{width:18px;height:18px;display:block}
.g-mond .score{flex:1;min-width:0;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:4px 10px}
.g-mond .score-top{display:flex;align-items:center;gap:8px}
.g-mond .score-num{font-family:var(--display);font-weight:var(--dweight);font-size:24px;line-height:1.05;font-variant-numeric:tabular-nums}
.g-mond .mult{font-family:var(--display);font-weight:var(--dweight);font-size:14px;line-height:1.3;color:#fff;background:var(--accent);padding:1px 7px;border-radius:8px}
.g-mond .sub{font-size:12px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-mond .coins{font-family:var(--display);font-weight:var(--dweight);font-size:18px;font-variant-numeric:tabular-nums}
.g-mond .icon-btn{pointer-events:auto;width:46px;height:46px;border:0;border-radius:14px;background:var(--panel);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation}
.g-mond .progress{gap:10px;padding:8px 12px}
.g-mond .progress-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.g-mond .progress-text{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.g-mond .bar{height:8px;background:var(--track);border-radius:4px;overflow:hidden}
.g-mond .fill{height:100%;width:0;background:var(--fill);border-radius:4px}
.g-mond .hint{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.g-mond .hint span{background:var(--hintbg);color:#fff;border-radius:999px;padding:10px 16px;font-weight:800;font-size:14px;text-align:center}
.g-mond .banner{position:fixed;left:0;right:0;top:36%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;pointer-events:none;text-align:center}
.g-mond .banner small{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(20,20,30,.5);padding:4px 12px;border-radius:999px}
.g-mond .banner b{font-family:var(--display);font-weight:var(--dweight);font-size:42px;line-height:1.05;color:#fff;text-wrap:balance;background:rgba(20,20,30,.42);padding:4px 18px 8px;border-radius:18px}
.g-mond .banner:not([hidden]){animation:bannerIn 2.6s ease both}
@keyframes bannerIn{0%{opacity:0;transform:translateY(14px) scale(.96)}12%{opacity:1;transform:none}78%{opacity:1}100%{opacity:0}}
.g-mond .overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--scrim)}
.g-mond .card{width:100%;max-width:340px;max-height:100%;overflow-y:auto;background:var(--card);border-radius:22px;padding:24px 20px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.28)}
.g-mond .card h1,.g-mond .card h2{font-family:var(--display);font-weight:var(--dweight);margin:0;line-height:1.05;text-wrap:balance}
.g-mond .card h1{font-size:var(--h1);color:var(--accent)}
.g-mond .card h2{font-size:30px;color:var(--ink)}
.g-mond .card p{margin:0;line-height:1.45;color:var(--muted);font-weight:700}
.g-mond .howto{display:grid;gap:8px;text-align:left;background:var(--howto);border-radius:14px;padding:12px 14px;font-weight:800;font-size:14px}
.g-mond .howto div{display:flex;gap:10px;align-items:center}
.g-mond .howto svg{flex:none}
.g-mond .btn{font-family:var(--display);font-weight:var(--dweight);font-size:20px;border:0;border-radius:16px;min-height:54px;padding:0 18px;cursor:pointer;touch-action:manipulation}
.g-mond .btn.primary{background:var(--accent);color:#fff}
.g-mond .btn.secondary{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
.g-mond .btn:focus-visible,.g-mond .icon-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.g-mond .big{font-family:var(--display);font-weight:var(--dweight);font-size:46px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.g-mond .record{font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-mond .worlds{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.g-mond .worlds span{font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px;background:var(--howto);color:var(--muted)}
.g-mond .worlds span.on{background:var(--accent);color:#fff}
@media (prefers-reduced-motion: reduce){.g-mond .banner:not([hidden]){animation:none}}
/* pinguin */
.g-pinguin{--bg:#8CCBF0;--card:#F7FBFE;--ink:#16324A;--muted:#4A6378;--accent:#1F6FB2;--fill:#E0781E;--track:#D6E8F4;--howto:#E4F1FA;--scrim:rgba(14,40,64,.55);--line:#CFE2EF;--hintbg:rgba(22,50,74,.92);--display:'Sniglet','Arial Rounded MT Bold',sans-serif;--dweight:800;--h1:38px;
  --body:'Nunito','Segoe UI',system-ui,sans-serif;
  --panel:rgba(255,255,255,.93);
  color-scheme:light;}
.g-pinguin{height:100%}
.g-pinguin{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.g-pinguin #p-stage{position:fixed;inset:0;touch-action:none;cursor:pointer}
.g-pinguin #p-c{display:block;width:100%;height:100%}
.g-pinguin .hud{position:fixed;left:0;right:0;top:0;margin:0 auto;max-width:520px;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 0;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.g-pinguin .row{display:flex;gap:8px;align-items:stretch}
.g-pinguin .chip{background:var(--panel);border-radius:14px;padding:0 12px;min-height:46px;display:flex;align-items:center;gap:6px}
.g-pinguin .hearts{gap:3px}
.g-pinguin .hearts svg{width:18px;height:18px;display:block}
.g-pinguin .score{flex:1;min-width:0;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:4px 10px}
.g-pinguin .score-top{display:flex;align-items:center;gap:8px}
.g-pinguin .score-num{font-family:var(--display);font-weight:var(--dweight);font-size:24px;line-height:1.05;font-variant-numeric:tabular-nums}
.g-pinguin .mult{font-family:var(--display);font-weight:var(--dweight);font-size:14px;line-height:1.3;color:#fff;background:var(--accent);padding:1px 7px;border-radius:8px}
.g-pinguin .sub{font-size:12px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-pinguin .coins{font-family:var(--display);font-weight:var(--dweight);font-size:18px;font-variant-numeric:tabular-nums}
.g-pinguin .icon-btn{pointer-events:auto;width:46px;height:46px;border:0;border-radius:14px;background:var(--panel);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation}
.g-pinguin .progress{gap:10px;padding:8px 12px}
.g-pinguin .progress-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.g-pinguin .progress-text{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.g-pinguin .bar{height:8px;background:var(--track);border-radius:4px;overflow:hidden}
.g-pinguin .fill{height:100%;width:0;background:var(--fill);border-radius:4px}
.g-pinguin .hint{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.g-pinguin .hint span{background:var(--hintbg);color:#fff;border-radius:999px;padding:10px 16px;font-weight:800;font-size:14px;text-align:center}
.g-pinguin .banner{position:fixed;left:0;right:0;top:36%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;pointer-events:none;text-align:center}
.g-pinguin .banner small{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(20,20,30,.5);padding:4px 12px;border-radius:999px}
.g-pinguin .banner b{font-family:var(--display);font-weight:var(--dweight);font-size:42px;line-height:1.05;color:#fff;text-wrap:balance;background:rgba(20,20,30,.42);padding:4px 18px 8px;border-radius:18px}
.g-pinguin .banner:not([hidden]){animation:bannerIn 2.6s ease both}
@keyframes bannerIn{0%{opacity:0;transform:translateY(14px) scale(.96)}12%{opacity:1;transform:none}78%{opacity:1}100%{opacity:0}}
.g-pinguin .overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--scrim)}
.g-pinguin .card{width:100%;max-width:340px;max-height:100%;overflow-y:auto;background:var(--card);border-radius:22px;padding:24px 20px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.28)}
.g-pinguin .card h1,.g-pinguin .card h2{font-family:var(--display);font-weight:var(--dweight);margin:0;line-height:1.05;text-wrap:balance}
.g-pinguin .card h1{font-size:var(--h1);color:var(--accent)}
.g-pinguin .card h2{font-size:30px;color:var(--ink)}
.g-pinguin .card p{margin:0;line-height:1.45;color:var(--muted);font-weight:700}
.g-pinguin .howto{display:grid;gap:8px;text-align:left;background:var(--howto);border-radius:14px;padding:12px 14px;font-weight:800;font-size:14px}
.g-pinguin .howto div{display:flex;gap:10px;align-items:center}
.g-pinguin .howto svg{flex:none}
.g-pinguin .btn{font-family:var(--display);font-weight:var(--dweight);font-size:20px;border:0;border-radius:16px;min-height:54px;padding:0 18px;cursor:pointer;touch-action:manipulation}
.g-pinguin .btn.primary{background:var(--accent);color:#fff}
.g-pinguin .btn.secondary{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
.g-pinguin .btn:focus-visible,.g-pinguin .icon-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.g-pinguin .big{font-family:var(--display);font-weight:var(--dweight);font-size:46px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.g-pinguin .record{font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-pinguin .worlds{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.g-pinguin .worlds span{font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px;background:var(--howto);color:var(--muted)}
.g-pinguin .worlds span.on{background:var(--accent);color:#fff}
@media (prefers-reduced-motion: reduce){.g-pinguin .banner:not([hidden]){animation:none}}
.g-pinguin .hud{padding:calc(env(safe-area-inset-top,0px) + 6px) 8px 0;gap:4px;max-width:460px}
.g-pinguin .row{gap:5px}
.g-pinguin .chip{min-height:32px;border-radius:11px;padding:0 9px;background:rgba(255,255,255,.74)}
.g-pinguin .hearts{gap:2px}
.g-pinguin .hearts svg{width:14px;height:14px}
.g-pinguin .score{flex-direction:row;justify-content:center;gap:8px;padding:0 10px}
.g-pinguin .score-top{gap:6px}
.g-pinguin .score-num{font-size:18px}
.g-pinguin .mult{font-size:12px;padding:0 6px;border-radius:7px}
.g-pinguin .sub{font-size:11px}
.g-pinguin .coins{font-size:15px;gap:4px}
.g-pinguin .coins svg{width:17px;height:15px}
.g-pinguin .icon-btn{position:relative;width:32px;height:32px;border-radius:11px;background:rgba(255,255,255,.74)}
.g-pinguin .icon-btn::after{content:"";position:absolute;inset:-6px}
.g-pinguin .icon-btn svg{width:16px;height:16px}
.g-pinguin .progress{min-height:0;padding:4px 9px;gap:7px;background:rgba(255,255,255,.62)}
.g-pinguin .progress svg{width:16px;height:16px}
.g-pinguin .progress-body{gap:3px}
.g-pinguin .progress-text{font-size:11px}
.g-pinguin .bar{height:4px}
.g-pinguin .banner{top:15%;gap:4px}
.g-pinguin .banner small{font-size:11px;padding:3px 10px}
.g-pinguin .banner b{font-size:28px;padding:3px 14px 6px;border-radius:14px}
@media (min-aspect-ratio: 4/3){.g-pinguin .hud{flex-direction:row;max-width:780px;align-items:stretch}
.g-pinguin .hud .row{flex:1.5}
.g-pinguin .hud .progress{flex:1}}
/* kanu */
.g-kanu{--bg:#3FB6C9;--card:#F3FAF8;--ink:#163A38;--muted:#46645F;--accent:#C8402A;--fill:#2F8F6A;--track:#D3E8E2;--howto:#E1F0EC;--scrim:rgba(14,40,38,.58);--line:#CBE2DC;--hintbg:rgba(22,58,56,.92);--display:'Alfa Slab One','Rockwell',serif;--dweight:400;--h1:30px;
  --body:'Nunito','Segoe UI',system-ui,sans-serif;
  --panel:rgba(255,255,255,.93);
  color-scheme:light;}
.g-kanu{height:100%}
.g-kanu{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.g-kanu #w-stage{position:fixed;inset:0;touch-action:none;cursor:pointer}
.g-kanu #w-c{display:block;width:100%;height:100%}
.g-kanu .hud{position:fixed;left:0;right:0;top:0;margin:0 auto;max-width:520px;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 0;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.g-kanu .row{display:flex;gap:8px;align-items:stretch}
.g-kanu .chip{background:var(--panel);border-radius:14px;padding:0 12px;min-height:46px;display:flex;align-items:center;gap:6px}
.g-kanu .hearts{gap:3px}
.g-kanu .hearts svg{width:18px;height:18px;display:block}
.g-kanu .score{flex:1;min-width:0;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:4px 10px}
.g-kanu .score-top{display:flex;align-items:center;gap:8px}
.g-kanu .score-num{font-family:var(--display);font-weight:var(--dweight);font-size:24px;line-height:1.05;font-variant-numeric:tabular-nums}
.g-kanu .mult{font-family:var(--display);font-weight:var(--dweight);font-size:14px;line-height:1.3;color:#fff;background:var(--accent);padding:1px 7px;border-radius:8px}
.g-kanu .sub{font-size:12px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-kanu .coins{font-family:var(--display);font-weight:var(--dweight);font-size:18px;font-variant-numeric:tabular-nums}
.g-kanu .icon-btn{pointer-events:auto;width:46px;height:46px;border:0;border-radius:14px;background:var(--panel);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation}
.g-kanu .progress{gap:10px;padding:8px 12px}
.g-kanu .progress-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.g-kanu .progress-text{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.g-kanu .bar{height:8px;background:var(--track);border-radius:4px;overflow:hidden}
.g-kanu .fill{height:100%;width:0;background:var(--fill);border-radius:4px}
.g-kanu .hint{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.g-kanu .hint span{background:var(--hintbg);color:#fff;border-radius:999px;padding:10px 16px;font-weight:800;font-size:14px;text-align:center}
.g-kanu .banner{position:fixed;left:0;right:0;top:36%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;pointer-events:none;text-align:center}
.g-kanu .banner small{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(20,20,30,.5);padding:4px 12px;border-radius:999px}
.g-kanu .banner b{font-family:var(--display);font-weight:var(--dweight);font-size:42px;line-height:1.05;color:#fff;text-wrap:balance;background:rgba(20,20,30,.42);padding:4px 18px 8px;border-radius:18px}
.g-kanu .banner:not([hidden]){animation:bannerIn 2.6s ease both}
@keyframes bannerIn{0%{opacity:0;transform:translateY(14px) scale(.96)}12%{opacity:1;transform:none}78%{opacity:1}100%{opacity:0}}
.g-kanu .overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--scrim)}
.g-kanu .card{width:100%;max-width:340px;max-height:100%;overflow-y:auto;background:var(--card);border-radius:22px;padding:24px 20px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.28)}
.g-kanu .card h1,.g-kanu .card h2{font-family:var(--display);font-weight:var(--dweight);margin:0;line-height:1.05;text-wrap:balance}
.g-kanu .card h1{font-size:var(--h1);color:var(--accent)}
.g-kanu .card h2{font-size:30px;color:var(--ink)}
.g-kanu .card p{margin:0;line-height:1.45;color:var(--muted);font-weight:700}
.g-kanu .howto{display:grid;gap:8px;text-align:left;background:var(--howto);border-radius:14px;padding:12px 14px;font-weight:800;font-size:14px}
.g-kanu .howto div{display:flex;gap:10px;align-items:center}
.g-kanu .howto svg{flex:none}
.g-kanu .btn{font-family:var(--display);font-weight:var(--dweight);font-size:20px;border:0;border-radius:16px;min-height:54px;padding:0 18px;cursor:pointer;touch-action:manipulation}
.g-kanu .btn.primary{background:var(--accent);color:#fff}
.g-kanu .btn.secondary{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
.g-kanu .btn:focus-visible,.g-kanu .icon-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.g-kanu .big{font-family:var(--display);font-weight:var(--dweight);font-size:46px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.g-kanu .record{font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.g-kanu .worlds{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.g-kanu .worlds span{font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px;background:var(--howto);color:var(--muted)}
.g-kanu .worlds span.on{background:var(--accent);color:#fff}
@media (prefers-reduced-motion: reduce){.g-kanu .banner:not([hidden]){animation:none}}
/* zuendschnur */
.g-zuendschnur{color-scheme: dark;
  --night: #160c28;
  --ink: #fff4e6;
  --muted: #d3c4ee;
  --ember: #ffb347;
  --flare: #ff5c7a;
  --gold: #ffd76a;
  --frost: #9fe7ff;
  --glass: rgba(30, 16, 54, 0.86);
  --line: rgba(255, 244, 230, 0.16);
  --btn-ink: #2a1240;
  --font-display: "Shrikhand", "Georgia", serif;
  --font-ui: Nunito, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;}
.g-zuendschnur{height: 100%;}
.g-zuendschnur{margin: 0; overflow: hidden; background: var(--night);
  color: var(--ink); font-family: var(--font-ui); font-weight: 700; font-size: 15px; line-height: 1.45;
  -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent;}
.g-zuendschnur *,.g-zuendschnur *::before,.g-zuendschnur *::after{box-sizing: border-box;}
.g-zuendschnur #z-backdrop{position: fixed; inset: 0; background: radial-gradient(120% 80% at 50% 0%, #3a1f63 0%, var(--night) 70%);}
.g-zuendschnur #z-stage{position: fixed; top: env(safe-area-inset-top, 0px); bottom: env(safe-area-inset-bottom, 0px); left: 0; right: 0;
  width: min(100%, 64vh); min-width: min(100%, 320px); margin-inline: auto; overflow: hidden; touch-action: manipulation;
  box-shadow: 0 0 0 1px rgba(255, 244, 230, 0.06), 0 30px 80px rgba(0, 0, 0, 0.45);}
.g-zuendschnur canvas{display: block; width: 100%; height: 100%; touch-action: none;}
.g-zuendschnur button,.g-zuendschnur input{font: inherit; color: inherit;}
.g-zuendschnur button{cursor: pointer;}
.g-zuendschnur :focus-visible{outline: 2px solid var(--gold); outline-offset: 2px;}
.g-zuendschnur #z-hud{position: absolute; inset: 0; pointer-events: none;}
.g-zuendschnur .hud-top{position: absolute; top: 10px; left: 16px; right: 10px; display: flex; justify-content: flex-end;}
.g-zuendschnur .hud-alt{position: absolute; top: 34px; left: 0; right: 0; margin: 0; text-align: center;
  font-family: var(--font-display); font-size: 46px; line-height: 1; font-variant-numeric: tabular-nums;
  text-shadow: 0 3px 0 rgba(42, 18, 64, 0.55), 0 0 22px rgba(255, 179, 71, 0.35);}
.g-zuendschnur .hud-alt small{font-size: 0.42em; margin-left: 4px;}
.g-zuendschnur .hud-rank{position: absolute; top: 90px; left: 50%; transform: translateX(-50%); margin: 0;
  padding: 3px 12px; border-radius: 999px; background: rgba(30, 16, 54, 0.6); border: 1px solid var(--line);
  font-size: 13px; font-weight: 800; letter-spacing: 0.02em; white-space: nowrap;}
.g-zuendschnur .hud-rank.pop{animation: zs-pop 0.5s ease-out;}
@keyframes zs-pop{ 0% { transform: translateX(-50%) scale(1.35); background: var(--ember); color: var(--btn-ink); } 100% { transform: translateX(-50%) scale(1); } }
.g-zuendschnur .icon-btn{pointer-events: auto; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line);
  background: rgba(30, 16, 54, 0.55); display: grid; place-items: center; padding: 0; font-size: 22px; line-height: 1;}
.g-zuendschnur .icon-btn svg{width: 18px; height: 18px;}
.g-zuendschnur .banner{position: absolute; left: 16px; right: 16px; top: 26%; margin: 0; text-align: center; pointer-events: none;
  font-family: var(--font-display); font-size: 28px; line-height: 1.1; text-wrap: balance;
  text-shadow: 0 3px 0 rgba(42, 18, 64, 0.5), 0 0 24px rgba(255, 215, 106, 0.4); opacity: 0;}
.g-zuendschnur .banner.show{animation: zs-banner 2.4s ease-out forwards;}
.g-zuendschnur .banner small{display: block; font-family: var(--font-ui); font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); margin-bottom: 4px;}
@keyframes zs-banner{ 0% { opacity: 0; transform: translateY(10px); } 15% { opacity: 1; transform: none; } 75% { opacity: 1; } 100% { opacity: 0; transform: translateY(-8px); } }
.g-zuendschnur .overlay{position: absolute; inset: 0; display: flex; flex-direction: column; padding: 16px;}
.g-zuendschnur .eyebrow{margin: 0; font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold);}
.g-zuendschnur .start{padding-top: 22px; gap: 10px; background: linear-gradient(to bottom, rgba(22, 12, 40, 0.8) 0%, rgba(22, 12, 40, 0.62) 46%, rgba(22, 12, 40, 0) 68%);}
.g-zuendschnur .title{margin: 0; font-family: var(--font-display); font-weight: 400; font-size: clamp(46px, 15vw, 68px); line-height: 0.95;
  color: var(--ink); text-shadow: 0 4px 0 #6a2a5e, 0 0 30px rgba(255, 179, 71, 0.45); text-wrap: balance;}
.g-zuendschnur .lede{margin: 2px 0 0; max-width: 32ch; font-size: 16px; font-weight: 700; text-wrap: pretty;}
.g-zuendschnur .rules{list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 6px; font-size: 14px; max-width: 36ch;}
.g-zuendschnur .rules li{display: flex; gap: 8px; align-items: baseline;}
.g-zuendschnur .key{flex: none; padding: 1px 8px; border-radius: 6px; font-size: 12px; font-weight: 800; background: var(--ink); color: var(--btn-ink);}
.g-zuendschnur .key-hot{background: var(--ember);}
.g-zuendschnur .key-red{background: #ff2e5b; color: var(--ink);}
.g-zuendschnur .key-dark{background: var(--btn-ink); color: var(--ink); box-shadow: inset 0 0 0 1px var(--line);}
.g-zuendschnur .mini{margin-top: 6px; padding: 10px 12px; border-radius: 14px; background: rgba(30, 16, 54, 0.62); border: 1px solid var(--line); max-width: 300px;}
.g-zuendschnur .mini-head{margin: 0 0 4px; font-size: 12px; font-weight: 800; color: var(--muted);}
.g-zuendschnur .mini ol{margin: 0; padding: 0; list-style: none; display: grid; gap: 2px;}
.g-zuendschnur .mini-note{margin: 4px 0 0; font-size: 12px; color: var(--muted);}
.g-zuendschnur .row-entry{display: grid; grid-template-columns: 2.2em 1fr auto; gap: 8px; align-items: baseline; font-variant-numeric: tabular-nums;}
.g-zuendschnur .row-entry .rk{font-weight: 800; color: var(--muted);}
.g-zuendschnur .row-entry .nm{min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700;}
.g-zuendschnur .row-entry .sc{font-weight: 800;}
.g-zuendschnur .row-entry.me .nm,.g-zuendschnur .row-entry.me .sc{color: var(--gold);}
.g-zuendschnur .start-foot{margin-top: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px;}
.g-zuendschnur .cta{margin: 0; font-family: var(--font-display); font-size: 24px; transform-origin: left center; text-shadow: 0 2px 0 rgba(42, 18, 64, 0.6), 0 0 18px rgba(255, 179, 71, 0.6); animation: zs-breathe 1.6s ease-in-out infinite;}
@keyframes zs-breathe{ 50% { transform: scale(1.07); } }
.g-zuendschnur .ghost-btn{border: 1px solid rgba(255, 244, 230, 0.4); background: rgba(30, 16, 54, 0.5); border-radius: 999px; padding: 8px 18px; font-weight: 800;}
.g-zuendschnur .primary{border: 0; border-radius: 999px; padding: 12px 26px; font-weight: 800; font-size: 17px; background: var(--ember); color: var(--btn-ink); box-shadow: 0 4px 0 #b86a1f;}
.g-zuendschnur .primary:active{transform: translateY(2px); box-shadow: 0 2px 0 #b86a1f;}
.g-zuendschnur .small{padding: 8px 14px; font-size: 14px;}
.g-zuendschnur .over{justify-content: center; align-items: center; background: rgba(22, 12, 40, 0.35);}
.g-zuendschnur .panel{width: 100%; max-width: 360px; padding: 20px; border-radius: 20px; background: var(--glass); border: 1px solid var(--line); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);}
.g-zuendschnur .over-panel{display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px;}
.g-zuendschnur .big{margin: 0; font-family: var(--font-display); font-size: 70px; line-height: 1; font-variant-numeric: tabular-nums; text-shadow: 0 4px 0 #6a2a5e;}
.g-zuendschnur .big small{font-size: 0.4em; margin-left: 6px;}
.g-zuendschnur .record{margin: 4px 0 0; font-weight: 800; color: var(--gold); text-wrap: balance;}
.g-zuendschnur .gap{margin: 0; font-weight: 800; color: var(--frost); text-wrap: balance;}
.g-zuendschnur .gap:empty,.g-zuendschnur .record:empty{display: none;}
.g-zuendschnur .stats{margin: 2px 0 0; font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums;}
.g-zuendschnur .actions{display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 10px;}
.g-zuendschnur .hint{margin: 4px 0 0; font-size: 12px; color: var(--muted);}
.g-zuendschnur .name-form{width: 100%; margin-top: 8px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; text-align: left;}
.g-zuendschnur .name-form .lbl{font-size: 13px; font-weight: 800;}
.g-zuendschnur .name-form .row{display: flex; gap: 8px; min-width: 0;}
.g-zuendschnur .name-form .row button{flex: none;}
.g-zuendschnur .name-form input{flex: 1; min-width: 0; padding: 9px 12px; border-radius: 12px; border: 1px solid rgba(255, 244, 230, 0.35); background: rgba(10, 4, 24, 0.5); -webkit-user-select: text; user-select: text;}
.g-zuendschnur .err{margin: 0; font-size: 12px; color: var(--flare); font-weight: 700;}
.g-zuendschnur .board{justify-content: center; align-items: center; background: rgba(22, 12, 40, 0.55);}
.g-zuendschnur .board-panel{display: flex; flex-direction: column; gap: 12px; max-height: 100%;}
.g-zuendschnur .board-head{display: flex; justify-content: space-between; align-items: center;}
.g-zuendschnur .board-head h2{margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 28px;}
.g-zuendschnur .tabs{display: flex; gap: 6px; padding: 4px; border-radius: 999px; background: rgba(10, 4, 24, 0.45);}
.g-zuendschnur .tabs button{flex: 1; border: 0; border-radius: 999px; padding: 7px 10px; font-weight: 800; background: transparent; color: var(--muted);}
.g-zuendschnur .tabs button[aria-selected="true"]{background: var(--ink); color: var(--btn-ink);}
.g-zuendschnur .board-list{margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; overflow-y: auto; max-height: 46vh; min-height: 3em; touch-action: pan-y;}
.g-zuendschnur .board-list li{padding: 6px 8px; border-radius: 10px;}
.g-zuendschnur .board-list li.me{background: rgba(255, 215, 106, 0.12);}
.g-zuendschnur .board-list .empty{color: var(--muted); font-size: 14px;}
.g-zuendschnur .status{margin: 0; font-size: 12px; color: var(--muted); text-wrap: pretty;}
@media (prefers-reduced-motion: reduce){.g-zuendschnur .cta,.g-zuendschnur .hud-rank.pop,.g-zuendschnur .banner.show{animation: none;}
.g-zuendschnur .banner.show{opacity: 1;}}
/* echo */
.g-echo{color-scheme: dark;
  --cave: #140e38;
  --ink: #eef4ff;
  --muted: #b6b2e0;
  --neon: #3ef0ff;
  --pink: #ff5cf0;
  --warn: #ff6a6a;
  --glass: rgba(16, 11, 44, 0.86);
  --line: rgba(238, 244, 255, 0.16);
  --btn-ink: #0d0a26;
  --font-display: "Monoton", "Courier New", monospace;
  --font-ui: Nunito, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;}
.g-echo{height: 100%;}
.g-echo{margin: 0; overflow: hidden; background: #07051a;
  color: var(--ink); font-family: var(--font-ui); font-weight: 700; font-size: 15px; line-height: 1.45;
  -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent;}
.g-echo *,.g-echo *::before,.g-echo *::after{box-sizing: border-box;}
.g-echo #e-backdrop{position: fixed; inset: 0; background: radial-gradient(120% 80% at 50% 0%, #20185a 0%, #07051a 70%);}
.g-echo #e-stage{position: fixed; top: env(safe-area-inset-top, 0px); bottom: env(safe-area-inset-bottom, 0px); left: 0; right: 0;
  width: min(100%, 64vh); min-width: min(100%, 320px); margin-inline: auto; overflow: hidden; touch-action: manipulation;
  box-shadow: 0 0 0 1px rgba(62, 240, 255, 0.08), 0 30px 80px rgba(0, 0, 0, 0.5);}
.g-echo canvas{display: block; width: 100%; height: 100%; touch-action: none;}
.g-echo button,.g-echo input{font: inherit; color: inherit;}
.g-echo button{cursor: pointer;}
.g-echo :focus-visible{outline: 2px solid var(--neon); outline-offset: 2px;}
.g-echo #e-hud{position: absolute; inset: 0; pointer-events: none;}
.g-echo .hud-top{position: absolute; top: 10px; left: 14px; right: 10px; display: flex; justify-content: space-between; align-items: flex-start; gap: 10px;}
.g-echo .hud-dist{margin: 8px 0 0; font-size: 12px; font-weight: 800; color: var(--muted); font-variant-numeric: tabular-nums;}
.g-echo .hud-score{position: absolute; top: 30px; left: 0; right: 0; margin: 0; text-align: center;
  font-size: 40px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums;
  text-shadow: 0 0 18px rgba(62, 240, 255, 0.55);}
.g-echo .hud-mult{position: absolute; top: 80px; left: 50%; transform: translateX(-50%); margin: 0; padding: 3px 12px; border-radius: 999px;
  font-size: 13px; font-weight: 800; white-space: nowrap; color: var(--btn-ink); background: var(--neon);
  box-shadow: 0 0 16px rgba(62, 240, 255, 0.6);}
.g-echo .hud-rank{position: absolute; top: 112px; left: 50%; transform: translateX(-50%); margin: 0;
  padding: 3px 12px; border-radius: 999px; background: rgba(16, 11, 44, 0.7); border: 1px solid var(--line);
  font-size: 13px; font-weight: 800; white-space: nowrap;}
.g-echo .hud-rank.pop{animation: ec-pop 0.5s ease-out;}
@keyframes ec-pop{ 0% { transform: translateX(-50%) scale(1.35); background: var(--pink); } 100% { transform: translateX(-50%) scale(1); } }
.g-echo .icon-btn{pointer-events: auto; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line);
  background: rgba(16, 11, 44, 0.6); display: grid; place-items: center; padding: 0; font-size: 22px; line-height: 1;}
.g-echo .icon-btn svg{width: 18px; height: 18px;}
.g-echo .banner{position: absolute; left: 16px; right: 16px; top: 24%; margin: 0; text-align: center; pointer-events: none;
  font-size: 28px; font-weight: 800; line-height: 1.1; text-wrap: balance; opacity: 0;
  text-shadow: 0 0 20px rgba(62, 240, 255, 0.7);}
.g-echo .banner.show{animation: ec-banner 2.4s ease-out forwards;}
.g-echo .banner small{display: block; font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--neon); margin-bottom: 4px;}
@keyframes ec-banner{ 0% { opacity: 0; transform: translateY(10px); } 15% { opacity: 1; transform: none; } 75% { opacity: 1; } 100% { opacity: 0; transform: translateY(-8px); } }
.g-echo .overlay{position: absolute; inset: 0; display: flex; flex-direction: column; padding: 16px;}
.g-echo .eyebrow{margin: 0; font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--neon);}
.g-echo .start{padding-top: 22px; gap: 10px; background: linear-gradient(to bottom, rgba(7, 5, 26, 0.82) 0%, rgba(7, 5, 26, 0.6) 50%, rgba(7, 5, 26, 0) 72%);}
.g-echo .title{margin: 0; font-family: var(--font-display); font-weight: 400; font-size: clamp(56px, 19vw, 84px); line-height: 1;
  color: var(--neon); text-shadow: 0 0 12px rgba(62, 240, 255, 0.9), 0 0 36px rgba(255, 92, 240, 0.55);}
.g-echo .lede{margin: 2px 0 0; max-width: 32ch; font-size: 16px; font-weight: 800; text-wrap: pretty;}
.g-echo .rules{list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 6px; font-size: 14px; max-width: 38ch;}
.g-echo .rules li{display: flex; gap: 8px; align-items: baseline;}
.g-echo .key{flex: none; padding: 1px 8px; border-radius: 6px; font-size: 12px; font-weight: 800; background: var(--ink); color: var(--btn-ink);}
.g-echo .key-neon{background: var(--neon);}
.g-echo .key-pink{background: var(--pink);}
.g-echo .mini{margin-top: 6px; padding: 10px 12px; border-radius: 14px; background: rgba(16, 11, 44, 0.7); border: 1px solid var(--line); max-width: 300px;}
.g-echo .mini-head{margin: 0 0 4px; font-size: 12px; font-weight: 800; color: var(--muted);}
.g-echo .mini ol{margin: 0; padding: 0; list-style: none; display: grid; gap: 2px;}
.g-echo .mini-note{margin: 4px 0 0; font-size: 12px; color: var(--muted);}
.g-echo .row-entry{display: grid; grid-template-columns: 2.2em 1fr auto; gap: 8px; align-items: baseline; font-variant-numeric: tabular-nums;}
.g-echo .row-entry .rk{font-weight: 800; color: var(--muted);}
.g-echo .row-entry .nm{min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700;}
.g-echo .row-entry .sc{font-weight: 800;}
.g-echo .row-entry.me .nm,.g-echo .row-entry.me .sc{color: var(--neon);}
.g-echo .start-foot{margin-top: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px;}
.g-echo .cta{margin: 0; font-size: 22px; font-weight: 800; color: var(--neon); text-shadow: 0 0 14px rgba(62, 240, 255, 0.7); transform-origin: left center; animation: ec-breathe 1.6s ease-in-out infinite;}
@keyframes ec-breathe{ 50% { transform: scale(1.06); } }
.g-echo .ghost-btn{border: 1px solid rgba(238, 244, 255, 0.4); background: rgba(16, 11, 44, 0.5); border-radius: 999px; padding: 8px 18px; font-weight: 800;}
.g-echo .primary{border: 0; border-radius: 999px; padding: 12px 26px; font-weight: 800; font-size: 17px; background: var(--neon); color: var(--btn-ink); box-shadow: 0 0 22px rgba(62, 240, 255, 0.5);}
.g-echo .primary:active{transform: translateY(1px);}
.g-echo .small{padding: 8px 14px; font-size: 14px;}
.g-echo .over{justify-content: center; align-items: center; background: rgba(7, 5, 26, 0.35);}
.g-echo .panel{width: 100%; max-width: 360px; padding: 20px; border-radius: 20px; background: var(--glass); border: 1px solid var(--line); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);}
.g-echo .over-panel{display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px;}
.g-echo .over-panel .eyebrow{color: var(--warn);}
.g-echo .big{margin: 0; font-size: 60px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; text-shadow: 0 0 22px rgba(62, 240, 255, 0.5);}
.g-echo .big small{font-size: 0.32em; margin-left: 6px; color: var(--muted);}
.g-echo .record{margin: 4px 0 0; font-weight: 800; color: var(--neon); text-wrap: balance;}
.g-echo .gap{margin: 0; font-weight: 800; color: var(--pink); text-wrap: balance;}
.g-echo .gap:empty,.g-echo .record:empty{display: none;}
.g-echo .stats{margin: 2px 0 0; font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; text-wrap: balance;}
.g-echo .actions{display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 10px;}
.g-echo .hint{margin: 4px 0 0; font-size: 12px; color: var(--muted);}
.g-echo .name-form{width: 100%; margin-top: 8px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; text-align: left;}
.g-echo .name-form .lbl{font-size: 13px; font-weight: 800;}
.g-echo .name-form .row{display: flex; gap: 8px; min-width: 0;}
.g-echo .name-form .row button{flex: none;}
.g-echo .name-form input{flex: 1; min-width: 0; padding: 9px 12px; border-radius: 12px; border: 1px solid rgba(238, 244, 255, 0.35); background: rgba(5, 3, 18, 0.6); -webkit-user-select: text; user-select: text;}
.g-echo .err{margin: 0; font-size: 12px; color: var(--warn); font-weight: 700;}
.g-echo .board{justify-content: center; align-items: center; background: rgba(7, 5, 26, 0.55);}
.g-echo .board-panel{display: flex; flex-direction: column; gap: 12px; max-height: 100%;}
.g-echo .board-head{display: flex; justify-content: space-between; align-items: center;}
.g-echo .board-head h2{margin: 0; font-size: 24px; font-weight: 800;}
.g-echo .tabs{display: flex; gap: 6px; padding: 4px; border-radius: 999px; background: rgba(5, 3, 18, 0.5);}
.g-echo .tabs button{flex: 1; border: 0; border-radius: 999px; padding: 7px 10px; font-weight: 800; background: transparent; color: var(--muted);}
.g-echo .tabs button[aria-selected="true"]{background: var(--neon); color: var(--btn-ink);}
.g-echo .board-list{margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; overflow-y: auto; max-height: 46vh; min-height: 3em; touch-action: pan-y;}
.g-echo .board-list li{padding: 6px 8px; border-radius: 10px;}
.g-echo .board-list li.me{background: rgba(62, 240, 255, 0.12);}
.g-echo .board-list .empty{color: var(--muted); font-size: 14px;}
.g-echo .status{margin: 0; font-size: 12px; color: var(--muted); text-wrap: pretty;}
@media (prefers-reduced-motion: reduce){.g-echo .cta,.g-echo .hud-rank.pop,.g-echo .banner.show{animation: none;}
.g-echo .banner.show{opacity: 1;}}
/* nuss */
.g-nuss{--frame:#1d1209;
  --hud:rgba(44,24,10,.62);
  --hud-line:rgba(255,226,180,.22);
  --accent:#f07a28;
  --accent-hi:#ffa04a;
  --accent-deep:#a8461a;
  --leaf:#86c540;
  --leaf-deep:#4f7d1e;
  --gold:#ffc93a;
  --paper:#fff8ec;
  --paper-2:#f7ead2;
  --ink:#3a2414;
  --ink-soft:#6e5440;
  --line:#ead6b6;
  --chip:#f4e3c6;
  --font-display:"Fredoka","Trebuchet MS",sans-serif;
  --font-body:"Nunito","Segoe UI",system-ui,sans-serif;
  color-scheme:light;}
.g-nuss *,.g-nuss *::before,.g-nuss *::after{box-sizing:border-box}
.g-nuss [hidden]{display:none!important}
.g-nuss{height:100%;margin:0;background:var(--frame);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.45;overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.g-nuss #n-app{position:fixed;inset:0;display:flex;justify-content:center;background:var(--frame)}
.g-nuss .svgdefs{position:absolute;width:0;height:0;overflow:hidden}
.g-nuss #n-stage{position:relative;height:100%;width:100%;max-width:480px;overflow:hidden;display:flex;flex-direction:column;padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px));background:#e9c98e}
@media (min-width:520px){.g-nuss #n-stage{box-shadow:0 0 0 1px rgba(0,0,0,.25),0 30px 90px rgba(0,0,0,.5)}}
.g-nuss #n-cv{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.g-nuss svg.i{width:1em;height:1em;display:inline-block;vertical-align:-.14em;flex:0 0 auto}
.g-nuss .hud{position:relative;z-index:2;pointer-events:none;padding-top:max(10px,env(safe-area-inset-top,0px));display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:start}
.g-nuss .panel{display:flex;flex-direction:column;gap:2px;background:var(--hud);color:#fff;border-radius:16px;padding:6px 11px 7px;border:1px solid var(--hud-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);min-width:0;box-shadow:0 4px 14px rgba(30,12,2,.25)}
.g-nuss .panel.mid{justify-self:center;align-items:center;min-width:92px}
.g-nuss .panel.right{justify-self:end;align-items:flex-end}
.g-nuss .lbl{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.g-nuss .val{font-family:var(--font-display);font-weight:600;font-size:25px;line-height:1;font-variant-numeric:tabular-nums}
.g-nuss .leaves{display:flex;flex-wrap:wrap;gap:1px;padding-top:1px}
.g-nuss .leaves svg{width:18px;height:18px;transition:transform .25s,opacity .25s}
.g-nuss .leaves .off{opacity:.5;filter:sepia(1) saturate(.6) brightness(.7);transform:rotate(28deg) scale(.8)}
.g-nuss .nutchip{display:inline-flex;align-items:center;gap:3px;margin-top:3px;font:700 12px/1 var(--font-display);color:#ffe7b0;background:rgba(0,0,0,.25);border-radius:999px;padding:3px 7px 3px 5px}
.g-nuss .nutchip svg{width:13px;height:13px}
.g-nuss .nutchip.bump{animation:na-bump .3s ease}
@keyframes na-bump{40%{transform:scale(1.25)}}
.g-nuss .combo{grid-column:1/-1;justify-self:center;font-family:var(--font-display);font-weight:600;font-size:18px;color:#fff;background:linear-gradient(180deg,var(--accent-hi),var(--accent));border-radius:999px;padding:3px 13px;box-shadow:0 3px 0 var(--accent-deep),0 6px 14px rgba(0,0,0,.25);visibility:hidden;text-shadow:0 1px 0 rgba(0,0,0,.25)}
.g-nuss .combo.on{visibility:visible}
.g-nuss .combo.pop{animation:na-bump .25s ease}
.g-nuss .bossbar{grid-column:1/-1;display:flex;flex-direction:column;gap:4px;background:var(--hud);border:1px solid var(--hud-line);border-radius:14px;padding:6px 11px 8px;color:#fff}
.g-nuss .bossbar .bar{height:10px;border-radius:10px;background:rgba(255,255,255,.2);overflow:hidden}
.g-nuss .bossbar .bar span{display:block;height:100%;background:linear-gradient(90deg,#ffb35a,#e5322d);border-radius:inherit;transition:width .15s}
.g-nuss .spacer{flex:1}
.g-nuss .bottom{position:relative;z-index:2;pointer-events:none;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;padding-bottom:max(12px,env(safe-area-inset-bottom,0px))}
.g-nuss .ammo{display:flex;align-items:center;gap:8px;background:var(--hud);border:1px solid var(--hud-line);color:#fff;border-radius:16px;padding:5px 12px 5px 5px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s}
.g-nuss .ammo canvas{width:38px;height:38px;display:block}
.g-nuss .ammo b{display:block;font-family:var(--font-display);font-weight:600;font-size:16px;line-height:1.05}
.g-nuss .ammo span{font-size:12px;opacity:.85}
.g-nuss .ammo.special{background:linear-gradient(180deg,var(--accent-hi),var(--accent));box-shadow:0 3px 0 var(--accent-deep);border-color:transparent}
.g-nuss .roundbtn{pointer-events:auto;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--hud);border:1px solid var(--hud-line);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);touch-action:manipulation;font-size:20px;padding:0}
.g-nuss .banner{position:absolute;left:0;right:0;top:20%;z-index:3;pointer-events:none;text-align:center;font-family:var(--font-display);font-weight:700;font-size:40px;line-height:1.05;color:#fff;opacity:0;padding:0 16px;text-wrap:balance;filter:drop-shadow(0 2px 0 #4a200a) drop-shadow(0 -2px 0 #4a200a) drop-shadow(2px 0 0 #4a200a) drop-shadow(-2px 0 0 #4a200a) drop-shadow(0 6px 10px rgba(0,0,0,.35))}
.g-nuss .banner small{display:block;font-size:18px;font-weight:600;margin-top:6px;color:#ffe7b0}
.g-nuss .banner.show{animation:na-ban 1.8s ease forwards}
@keyframes na-ban{0%{opacity:0;transform:scale(.7)}12%{opacity:1;transform:scale(1.06)}22%{transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:translateY(-14px)}}
.g-nuss .toast{position:absolute;left:max(14px,env(safe-area-inset-left,0px));bottom:calc(max(12px,env(safe-area-inset-bottom,0px)) + 62px);z-index:3;display:flex;align-items:center;gap:7px;background:rgba(44,24,10,.78);border:1px solid var(--hud-line);color:#fff;border-radius:14px;padding:5px 12px 5px 6px;box-shadow:0 6px 16px rgba(0,0,0,.25);opacity:0;pointer-events:none;max-width:calc(100% - 28px)}
.g-nuss .toast canvas{width:30px;height:30px;flex:0 0 auto}
.g-nuss .toast b{display:block;font:600 15px/1.1 var(--font-display);color:#ffe7b0}
.g-nuss .toast span{display:block;font-size:11.5px;opacity:.9;line-height:1.25}
.g-nuss .toast.show{animation:na-toast 2.3s ease forwards}
@keyframes na-toast{0%{opacity:0;transform:translateY(10px)}10%{opacity:1;transform:none}85%{opacity:1}100%{opacity:0;transform:translateY(-6px)}}
.g-nuss .ammo.pop{animation:na-bump .35s ease}
.g-nuss .title{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;padding:max(5vh,calc(env(safe-area-inset-top,0px) + 18px)) max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));pointer-events:none}
.g-nuss .nlogo{margin:0;display:flex;flex-direction:column;align-items:center;font-family:var(--font-display);font-weight:700;line-height:.86;letter-spacing:-.01em;text-align:center;filter:drop-shadow(0 2.5px 0 #3a1606) drop-shadow(0 -2.5px 0 #3a1606) drop-shadow(2.5px 0 0 #3a1606) drop-shadow(-2.5px 0 0 #3a1606) drop-shadow(0 7px 0 #6b2a0a) drop-shadow(0 14px 18px rgba(30,10,0,.4));animation:na-logo 3.2s ease-in-out infinite}
.g-nuss .nlogo span{display:block;background-clip:text;-webkit-background-clip:text;color:transparent}
.g-nuss .nlogo .l1{font-size:clamp(58px,19vw,84px);background-image:linear-gradient(180deg,#fff7d6 10%,#ffd24a 55%,#f0a020 95%)}
.g-nuss .nlogo .l2{font-size:clamp(50px,16vw,72px);background-image:linear-gradient(180deg,#ffd2a0 5%,#ff8a3a 50%,#d8501a 95%);margin-top:2px}
@keyframes na-logo{50%{transform:translateY(-4px) rotate(-1deg)}}
.g-nuss .tag{margin:14px 0 0;font:700 14px/1 var(--font-display);letter-spacing:.04em;color:#fff;background:rgba(58,28,8,.6);border:1px solid var(--hud-line);border-radius:999px;padding:7px 14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.g-nuss .tspace{flex:1;min-height:12px}
.g-nuss .card{pointer-events:auto;width:100%;max-width:360px;background:var(--paper);border-radius:26px;padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 6px 0 #d9bf98,0 22px 50px rgba(30,12,2,.45);border:1px solid #fff}
.g-nuss .tfoot{height:max(25vh,190px);flex:0 0 auto}
.g-nuss .worldsel{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:6px;background:var(--paper-2);border-radius:16px;padding:6px}
.g-nuss .wbtn{width:44px;height:44px;border-radius:12px;border:0;background:#fff;color:var(--ink);font:600 28px/1 var(--font-display);box-shadow:0 2px 0 #dcc29a;cursor:pointer;padding:0 0 3px;touch-action:manipulation}
.g-nuss .wmid{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0}
.g-nuss .wmid b{font:600 21px/1.1 var(--font-display)}
.g-nuss .wmid span{font-size:12px;color:var(--ink-soft);line-height:1.25}
.g-nuss .wdots{display:flex;gap:5px;margin-top:4px}
.g-nuss .wdots i{width:8px;height:8px;border-radius:50%;background:#e2cfae}
.g-nuss .wdots i.on{background:var(--accent)}
.g-nuss .wdots i.lock{box-shadow:inset 0 0 0 2px #c9b08a;background:transparent}
.g-nuss .tstats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.g-nuss .tstats div{background:var(--paper-2);border-radius:14px;padding:7px 10px;display:flex;flex-direction:column;gap:1px}
.g-nuss .tstats span{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.g-nuss .tstats b{font:600 22px/1.05 var(--font-display);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:5px}
.g-nuss .tstats b svg{width:18px;height:18px}
.g-nuss .tstats b span{font:inherit;letter-spacing:0;text-transform:none;color:inherit}
.g-nuss .row{display:flex;gap:8px}
.g-nuss .row .btn{flex:1}
.g-nuss .btn{min-height:50px;border-radius:16px;border:0;font:600 19px/1 var(--font-display);cursor:pointer;touch-action:manipulation;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:transform .08s,box-shadow .08s}
.g-nuss .btn.primary{background:linear-gradient(180deg,var(--accent-hi),var(--accent));color:#fff;box-shadow:0 5px 0 var(--accent-deep),0 10px 20px rgba(168,70,26,.3);text-shadow:0 1px 0 rgba(0,0,0,.2)}
.g-nuss .btn.primary:active{transform:translateY(3px);box-shadow:0 2px 0 var(--accent-deep)}
.g-nuss .btn.big{min-height:62px;font-size:27px;border-radius:20px}
.g-nuss .btn.soft{background:var(--chip);color:var(--ink);box-shadow:0 3px 0 #dcc29a;font-size:16px;min-height:46px}
.g-nuss .btn.soft:active{transform:translateY(2px);box-shadow:0 1px 0 #dcc29a}
.g-nuss .btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.g-nuss .btn[disabled]{opacity:.45;cursor:default;transform:none!important}
.g-nuss .iconbtn{width:46px;min-height:46px;flex:0 0 46px;border-radius:14px;border:0;background:var(--chip);color:var(--ink);box-shadow:0 3px 0 #dcc29a;display:grid;place-items:center;cursor:pointer;font-size:21px;padding:0}
.g-nuss button:focus-visible{outline:3px solid var(--leaf);outline-offset:2px}
.g-nuss .backdrop{position:absolute;inset:0;z-index:5;background:rgba(30,14,4,.35)}
.g-nuss .sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;background:var(--paper);color:var(--ink);border-radius:28px 28px 0 0;padding:20px max(20px,env(safe-area-inset-right,0px)) max(20px,env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));max-height:92%;overflow-y:auto;box-shadow:0 -14px 44px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:14px;animation:na-up .34s cubic-bezier(.2,.85,.25,1)}
@keyframes na-up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.g-nuss .grab{width:42px;height:5px;border-radius:5px;background:var(--line);align-self:center;margin:-8px 0 -4px}
.g-nuss .eyebrow{margin:0;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep)}
.g-nuss h2{margin:0;font-family:var(--font-display);font-weight:600;font-size:32px;line-height:1}
.g-nuss .lede{margin:0;color:var(--ink-soft)}
.g-nuss .howto{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:s}
.g-nuss .howto li{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start;counter-increment:s}
.g-nuss .howto li::before{content:counter(s);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,var(--accent-hi),var(--accent));color:#fff;font:600 17px/1 var(--font-display);box-shadow:0 2px 0 var(--accent-deep)}
.g-nuss .howto b{display:block;font-family:var(--font-display);font-weight:600;font-size:18px;line-height:1.15}
.g-nuss .howto span{color:var(--ink-soft);font-size:14px}
.g-nuss .legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.g-nuss .legend div{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px 8px;min-width:0}
.g-nuss .legend canvas{width:46px;height:46px;flex:0 0 auto}
.g-nuss .legend span{font-size:12px;line-height:1.25;color:var(--ink-soft);min-width:0}
.g-nuss .legend b{display:block;color:var(--ink);font-size:13px}
.g-nuss .actions{display:flex;gap:10px;flex-wrap:wrap}
.g-nuss .actions .btn{flex:1 1 130px}
.g-nuss .pb{margin:0;font-size:13px;color:var(--ink-soft)}
.g-nuss .pb b{font-family:var(--font-display);font-size:17px;color:var(--ink);font-variant-numeric:tabular-nums}
.g-nuss .big{font-family:var(--font-display);font-weight:600;font-size:76px;line-height:.9;font-variant-numeric:tabular-nums}
.g-nuss .chips{display:flex;flex-wrap:wrap;gap:7px}
.g-nuss .chip{font-size:13px;font-weight:700;padding:6px 11px;border-radius:999px;background:var(--chip);color:var(--ink);display:inline-flex;align-items:center;gap:4px}
.g-nuss .chip b{font-family:var(--font-display);font-weight:600;font-size:16px}
.g-nuss .chip.gold{background:#fff0c4;color:#6b4a00}
.g-nuss .earn{display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(180deg,#fff3d6,#ffe6b0);border:1px solid #f3cf86;border-radius:16px;padding:10px 14px}
.g-nuss .earn span{font-weight:800;font-size:13px;color:#7a4a00}
.g-nuss .earn b{font:600 26px/1 var(--font-display);display:flex;align-items:center;gap:6px;color:#5a3400}
.g-nuss .earn b svg{width:24px;height:24px}
.g-nuss .shophead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.g-nuss .purse{display:inline-flex;align-items:center;gap:6px;font:600 22px/1 var(--font-display);background:#fff0c4;color:#5a3400;border-radius:999px;padding:7px 13px 7px 9px}
.g-nuss .purse svg{width:20px;height:20px}
.g-nuss .ups{display:grid;gap:9px}
.g-nuss .up{display:grid;grid-template-columns:54px 1fr auto;gap:11px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:9px 10px}
.g-nuss .up canvas{width:54px;height:54px;border-radius:14px;background:var(--paper-2)}
.g-nuss .up b{display:block;font:600 17px/1.1 var(--font-display)}
.g-nuss .up small{display:block;color:var(--ink-soft);font-size:12.5px;line-height:1.3}
.g-nuss .pips{display:flex;gap:3px;margin-top:4px}
.g-nuss .pips i{width:16px;height:6px;border-radius:4px;background:var(--line)}
.g-nuss .pips i.on{background:linear-gradient(90deg,var(--leaf),var(--leaf-deep))}
.g-nuss .buy{min-height:44px;min-width:76px;font-size:17px;border-radius:14px;padding:0 10px}
.g-nuss .buy svg{width:17px;height:17px}
.g-nuss .linkbtn{background:none;border:0;color:var(--ink-soft);font:700 12.5px var(--font-body);text-decoration:underline;cursor:pointer;padding:6px;align-self:center}
.g-nuss .links{display:flex;justify-content:center;gap:18px;align-self:center}
.g-nuss .card .linkbtn{margin:-4px 0 -6px}
.g-nuss #n-rotate{position:fixed;inset:0;z-index:20;display:none;place-items:center;background:var(--frame);color:#fff;text-align:center;padding:24px}
.g-nuss #n-rotate p{font:600 30px/1.1 var(--font-display);max-width:14ch}
@media (orientation:landscape) and (max-height:500px){.g-nuss #n-rotate{display:grid}}
.g-nuss #n-stage[data-screen="menu"] .hud,.g-nuss #n-stage[data-screen="menu"] .bottom,.g-nuss #n-stage[data-screen="help"] .hud,.g-nuss #n-stage[data-screen="shop"] .hud,.g-nuss #n-stage[data-screen="help"] .bottom,.g-nuss #n-stage[data-screen="shop"] .bottom{visibility:hidden}
@media (prefers-reduced-motion:reduce){.g-nuss .sheet{animation:none}
.g-nuss .nlogo{animation:none}
.g-nuss .banner.show{animation:na-ban 1.8s steps(1,end) forwards}}

/* web version: link home and legal links */
.hub-home{align-self:flex-start;font-weight:800;font-size:14px;color:var(--hub-muted);text-decoration:none;padding:6px 0;min-height:44px;display:inline-flex;align-items:center}
.hub-home:hover{color:var(--hub-ink);text-decoration:underline}
.hub-foot{display:flex;flex-direction:column;gap:8px}
.hub-foot nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.hub-foot a{color:var(--hub-muted);font-weight:800;font-size:13px}
.hub-home:focus-visible,.hub-foot a:focus-visible{outline:3px solid var(--hub-ink);outline-offset:2px}
