:root{--navy:#1c2340;--navy2:#2b3561;--red:#e3262f;--red2:#a8141b;--bg:#fdf6e9;--card:#fff;--sun:#ffbf1f;--mint:#19a974;--sky:#3d8bfd;--bad:#e0453a;--mut:#6c7088;--ink:#1c2340}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:"Segoe UI",Roboto,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji";overscroll-behavior:none;user-select:none;-webkit-user-select:none}
#app{position:fixed;top:0;left:0;right:0;bottom:0;overflow:hidden}
.screen{position:absolute;top:0;left:0;right:0;bottom:0;display:none;flex-direction:column;overflow-y:auto;padding:calc(env(safe-area-inset-top,0px) + 14px) 16px calc(env(safe-area-inset-bottom,0px) + 18px)}
.screen.on{display:flex;animation:in .25s ease}
.screen>*{flex-shrink:0}
@keyframes in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
h1,h2,h3,h4{margin:0}
button{font:inherit;border:0;cursor:pointer;color:inherit;background:none}
input{font:inherit;font-size:17px;width:100%;padding:12px 14px;border:2px solid #e8dfcf;border-radius:14px;background:#fff;color:var(--ink);user-select:text;-webkit-user-select:text}
label{font-weight:700;font-size:14px;color:var(--mut);display:block;margin:14px 0 6px}
.muted{color:var(--mut);font-size:13.5px;line-height:1.4}
.top{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.top h2{flex:1;font-size:21px}
.back{width:44px;height:44px;border-radius:14px;background:#fff;box-shadow:0 2px 0 #0001;font-size:20px;flex:none}
.row{display:flex;align-items:center;gap:8px}
.btn{background:var(--red);color:#fff;font-weight:800;font-size:18px;border-radius:16px;padding:15px 18px;box-shadow:0 4px 0 var(--red2);width:100%;margin-top:10px}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--red2)}
.btn.sec{background:#fff;color:var(--ink);box-shadow:0 4px 0 #e4dccd}
.h3{font-size:16px;margin:18px 0 8px}

/* Start */
.hero{background:linear-gradient(160deg,var(--navy) 0%,var(--navy2) 60%,#3b2f63 100%);color:#fff;border-radius:24px;padding:18px 18px 16px;position:relative;overflow:hidden;box-shadow:0 8px 24px #1c234044}
.hero:after{content:"";position:absolute;left:-10%;right:-10%;bottom:-2px;height:46px;background:linear-gradient(135deg,transparent 33%,#ffffff14 33%,#ffffff14 50%,transparent 50%) 0 0/90px 46px,linear-gradient(225deg,transparent 33%,#ffffff14 33%,#ffffff14 50%,transparent 50%) 0 0/90px 46px;pointer-events:none}
.logo{font-weight:900;font-size:28px;letter-spacing:-.5px;display:flex;align-items:center;gap:10px}
.cross{display:inline-block;width:30px;height:30px;background:var(--red);border-radius:8px;position:relative;flex:none;transform:rotate(-8deg);box-shadow:0 3px 0 var(--red2)}
.cross:before,.cross:after{content:"";position:absolute;background:#fff;left:50%;top:50%;transform:translate(-50%,-50%)}
.cross:before{width:18px;height:6px}.cross:after{width:6px;height:18px}
.sub{margin-top:8px;font-size:14.5px;opacity:.92;line-height:1.35}
.stats{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.pill{background:#ffffff22;border-radius:999px;padding:6px 12px;font-weight:700;font-size:13.5px;white-space:nowrap}
.lvl{margin-top:12px;font-size:13.5px;opacity:.95}
.bar{height:9px;background:#ffffff33;border-radius:9px;margin-top:6px;overflow:hidden;position:relative;z-index:1}
.bar i{display:block;height:100%;background:var(--sun);border-radius:9px;transition:width .6s}
.bar.dark{background:#e8dfcf;margin:6px 0 12px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.tile{background:var(--card);border-radius:20px;padding:14px;text-align:left;box-shadow:0 3px 0 #0000000d,0 6px 16px #0000000a;display:flex;flex-direction:column;gap:4px;min-height:100px;position:relative;transition:transform .1s}
.tile:active{transform:scale(.97)}
.tile .ic{font-size:30px}
.tile b{font-size:16px}
.tile small{color:var(--mut);font-size:12.5px;line-height:1.3}
.tile.big{grid-column:span 2;flex-direction:row;align-items:center;gap:14px;background:linear-gradient(135deg,#fff,#ffeec4)}
.tile.big .ic{font-size:44px}
.tile .tag{position:absolute;right:10px;top:10px;background:var(--red);color:#fff;font-weight:800;font-size:11px;border-radius:8px;padding:3px 7px}
.tile .tag.done{background:var(--mint)}
.bingo{background:var(--card);border-radius:20px;padding:14px;margin-top:12px;box-shadow:0 3px 0 #0000000d}
.bhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.bhead span{font-size:12px;font-weight:800;color:#fff;background:var(--navy);padding:3px 8px;border-radius:8px}
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.bcell{background:#f6efe1;border-radius:14px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;position:relative;min-height:70px;border:2px dashed #e3d6bd}
.bcell span{font-size:24px}
.bcell small{font-size:10.5px;line-height:1.15;color:var(--mut);text-align:center}
.bcell.hit{background:#fff;border:2px solid var(--red)}
.bcell.hit{background:#ffe9e7}
.bcell.hit:after{content:"\2713";position:absolute;right:-6px;top:-8px;width:24px;height:24px;border-radius:50%;background:var(--red);color:#fff;font:900 15px/24px Arial,sans-serif;text-align:center;box-shadow:0 2px 0 var(--red2)}
.bingo .muted{margin:10px 0 0;font-size:12.5px}

/* Spiel */
#s-play{overflow:hidden;padding:calc(env(safe-area-inset-top,0px) + 10px) 10px calc(env(safe-area-inset-bottom,0px) + 10px);background:var(--navy)}
.hud{display:flex;align-items:center;gap:10px;color:#fff;margin-bottom:8px}
.hud .back{background:#ffffff1f;color:#fff}
#hearts{font-size:20px;letter-spacing:1px}
#hearts .gone{filter:grayscale(1);opacity:.25}
#hearts .pr{font-size:14px;font-weight:800;background:#ffffff26;border-radius:8px;padding:4px 9px}
#hround{flex:1;text-align:center;font-weight:700;font-size:15px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#hscore{font-weight:900;font-size:20px;color:var(--sun);min-width:52px;text-align:right}
.stagewrap{flex:1 1 0 !important;min-height:320px;position:relative;border-radius:22px;overflow:hidden;background:#fff}
.stage{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;touch-action:none}
.stage *{touch-action:none}
.fuse{height:12px;background:#ffffff22;border-radius:8px;margin-top:8px;overflow:hidden}
.fuse i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--red),var(--sun));border-radius:8px}
.fuse.low i{background:var(--red);animation:blink .3s infinite alternate}
@keyframes blink{to{opacity:.45}}
#intro{position:absolute;top:0;left:0;right:0;bottom:0;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;background:#1c2340dd;color:#fff;z-index:20}
#intro.on{display:flex;animation:zoom .3s cubic-bezier(.3,1.6,.5,1)}
#intro.off{display:flex;animation:fadeout .2s forwards;pointer-events:none}
@keyframes zoom{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
@keyframes fadeout{to{opacity:0;transform:scale(1.2)}}
.iic{font-size:84px;line-height:1.1}
.icmd{font-size:34px;font-weight:900;text-transform:uppercase;letter-spacing:-.5px;margin-top:8px;text-shadow:0 4px 0 var(--red)}
.ihint{font-size:16px;margin-top:12px;opacity:.9;max-width:320px;line-height:1.35}
.fast{background:var(--sun);color:var(--navy);font-weight:900;font-size:20px;padding:6px 16px;border-radius:12px;margin-bottom:14px;animation:wob .4s infinite alternate}
@keyframes wob{from{transform:rotate(-4deg)}to{transform:rotate(4deg) scale(1.06)}}
#flash{position:absolute;top:0;left:0;right:0;bottom:0;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;color:#fff;z-index:21}
#flash.on{display:flex;animation:zoom .25s ease}
#flash.ok{background:#19a974ee}
#flash.bad{background:#e3262fee}
.fic{font-size:90px;font-weight:900;line-height:1}
.fmsg{font-size:20px;font-weight:800;margin-top:12px;max-width:330px;line-height:1.3}

/* Bausteine der Mini-Games */
.o{position:absolute;left:0;top:0;transform:translate(-50%,-50%)}
.bx{position:absolute}
.emo{font-size:52px;line-height:1;text-align:center}
.stage .tag{background:var(--navy);color:#fff;font-weight:800;font-size:14px;padding:4px 10px;border-radius:8px}
.gbtn{background:#fff;border-radius:18px;padding:12px 14px;font-weight:800;font-size:16px;box-shadow:0 4px 0 #0002,0 6px 14px #0001;text-align:center;cursor:pointer;white-space:nowrap}
.gbtn:active{filter:brightness(.92)}
.gbtn.good{background:var(--mint)!important;color:#fff}
.gbtn.wrong{background:var(--bad)!important;color:#fff;animation:shake .3s}
@keyframes shake{25%{margin-left:-6px}75%{margin-left:6px}}
.num{width:84px;height:84px;display:flex;align-items:center;justify-content:center;font-size:34px}
.card{background:#fff;border-radius:20px;padding:14px 18px;box-shadow:0 6px 18px #0002;text-align:center;width:80%;max-width:330px}
.tk-ic{font-size:50px}
.tk-tx{font-weight:800;font-size:19px;margin-top:4px;line-height:1.25}
.card.pop{animation:zoom .25s}
.tool,.bin{width:42%;max-width:170px;height:84px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;white-space:normal}
.tool span{font-size:34px}
.tool small,.bin small{font-size:13.5px}
.bin{color:#fff;font-size:30px}
.side{color:#fff;font-weight:800;opacity:.55;font-size:15px;white-space:nowrap}
.sign{background:#fff;color:var(--navy);font-weight:800;padding:7px 14px;border-radius:12px;box-shadow:0 3px 0 #0002;white-space:nowrap;font-size:15px}
.tiphint{color:var(--navy);font-weight:800;opacity:.6;white-space:nowrap;font-size:15px}
.count{font-weight:900;color:var(--navy);background:#fff;padding:4px 12px;border-radius:10px;white-space:pre;font-size:15px}
.q{font-size:19px;white-space:nowrap;background:#fff;padding:6px 14px;border-radius:12px;box-shadow:0 3px 0 #0002}
.draggable{cursor:grab}
.held{filter:drop-shadow(0 10px 8px #0005);z-index:5}

/* Bühnen */
.bg-def{background:var(--bg)}
.bg-station{background:linear-gradient(#d9e8f6,#f3f7fb 70%,#b8bfc9 70%,#b8bfc9 74%,#e9ecf0 74%)}
.bg-kitchen{background:#f7e9d2;background-image:linear-gradient(90deg,#00000008 1px,transparent 1px),linear-gradient(#00000008 1px,transparent 1px);background-size:40px 40px}
.bg-night{background:radial-gradient(circle at 50% 85%,#4a2f2f 0,#241a2e 55%,#141024 100%)}
.bg-red{background:linear-gradient(160deg,#e3262f,#b5121b)}
.bg-alp{background:linear-gradient(#8fd0ff 0%,#d9f1ff 50%,#86c96f 50%,#5ea64a 100%)}
.bg-village{background:linear-gradient(#bfe3ff,#eaf6ff 60%,#cfe7b9 60%,#a9d38f 100%)}
.bg-bank{background:linear-gradient(#2b3a55,#46597d)}
.bg-road{background:linear-gradient(#bde0ff 0%,#e9f5ff 55%,#6b7280 55%,#4b5563 100%)}
.bg-wood{background:#c99a62;background-image:repeating-linear-gradient(90deg,#00000010 0 3px,transparent 3px 46px)}
.bg-snow{background:linear-gradient(#e5f1ff,#fff)}
.bg-saw{background:radial-gradient(circle at 50% 40%,#ead3a2 0,#d8b77a 60%,#8fbf6a 61%)}
.bg-meadow{background:linear-gradient(#a8d98d,#6fb257)}
.bg-rock{background:linear-gradient(#a9b1bd,#6f6255 30%,#5c5046 100%)}

/* Zug */
.clk{border-radius:50%;background:radial-gradient(circle,#fffaf0 0,#fdeccb 100%);border:12px solid #127c84;box-shadow:0 0 0 4px #e8b93a,0 8px 24px #0003}
.clk-face{position:absolute;top:0;left:0;right:0;bottom:0}
.clk-face i{position:absolute;top:0;left:0;right:0;bottom:0}
.clk-face i:before{content:"";position:absolute;left:calc(50% - 2px);top:4%;width:4px;height:4px;border-radius:50%;background:#7aa9ad}
.clk-face i.h:before{left:calc(50% - 7px);top:3%;width:14px;height:14px;background:#127c84}
.clk-hand{position:absolute;left:calc(50% - 9px);bottom:50%;width:18px;height:42%;background:linear-gradient(90deg,#f2b51f 50%,#d99a10 50%);transform-origin:50% 100%;clip-path:polygon(36% 2%,44% 0,56% 0,64% 2%,100% 100%,0 100%)}
.clk-hand:after{content:none}
.clk-dot{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px;border-radius:50%;background:#127c84;border:3px solid #f2b51f}
/* Käse */
.cheese{background:linear-gradient(150deg,#ffe27a,#f6c331);border-radius:34% 58% 40% 48%/44% 40% 54% 50%;box-shadow:inset -10px -14px 0 #e0a91c,0 10px 24px #0002}
.hole{position:absolute;border-radius:50%;background:radial-gradient(circle at 60% 65%,#f3d36a 0,#d79e13 70%);box-shadow:inset 3px 4px 4px #b07d06}
/* Fondue */
.pot{width:200px;height:110px;background:linear-gradient(#b0262b,#7a1218);border-radius:0 0 100px 100px/0 0 90px 90px;box-shadow:0 10px 20px #0006}
.pot-cheese{position:absolute;left:8px;right:8px;top:-10px;height:30px;border-radius:50%;background:radial-gradient(#ffe48a,#f0bd2a)}
.fork{width:20px;transform-origin:50% 0}
.fork-stick{position:absolute;left:8px;top:0;bottom:30px;width:5px;background:linear-gradient(90deg,#9aa3ad,#e8edf2,#9aa3ad);border-radius:3px}
.fork-stick:before{content:"";position:absolute;left:-6px;top:-6px;width:17px;height:44px;background:#6b3e1d;border-radius:6px}
.bread{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font-size:42px}
.bread.fall{animation:fall .6s forwards}
@keyframes fall{to{transform:translate(-50%,300px) rotate(120deg);opacity:.2}}
/* Röstigraben */
.ground{background:linear-gradient(#6fbf54 0 14px,#8a5a34 14px);display:flex;justify-content:center;padding-top:30px}
.ground span{font-weight:900;color:#fff;font-size:18px;text-shadow:0 2px 0 #0004}
.ditch{background:linear-gradient(#5a3a22,#3b2414);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:10px;color:#ffd99a;font-weight:800;font-size:11px;text-align:center}
.ditch em{font-style:normal;font-size:20px}
/* Sonntag */
.tempt{background:var(--sun);animation:wiggle .35s infinite alternate;font-size:15px}
@keyframes wiggle{from{margin-top:-3px;margin-left:-2px}to{margin-top:3px;margin-left:2px}}
.neighbor{font-size:44px}
/* Couvert */
.urn{width:130px;height:96px;background:linear-gradient(#e3262f,#b01219);border-radius:14px;box-shadow:0 6px 0 #7a0d12;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:10px;color:#fff;font-size:14px}
.slot{position:absolute;left:20%;right:20%;top:20px;height:10px;background:#300;border-radius:5px}
.env{font-size:64px;display:flex;flex-direction:column;align-items:center;transition:opacity .3s}
.env small{font-size:12px;font-weight:800;color:var(--navy);background:#fff;padding:2px 6px;border-radius:6px}
/* Schoggi */
.choc{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;padding:6px;background:#4a2412;border-radius:10px;box-shadow:0 8px 18px #0004}
.choc i{background:linear-gradient(135deg,#8b4a26,#6a3518);border-radius:5px;box-shadow:inset -2px -2px 0 #3e1c0b}
.cutline{width:4px;background:repeating-linear-gradient(#e3262f 0 8px,transparent 8px 14px)}
.cutline.cut{background:#e3262f;width:6px}
.knife{font-size:40px}
/* Gondel */
.cable{background:#333}
.zone{background:var(--mint);border-radius:4px;opacity:.9}
.station{font-size:40px;display:flex;flex-direction:column;align-items:center;background:#ffffffcc;border-radius:12px;padding:4px 10px;border:3px solid var(--mint)}
.station small{font-size:12px;font-weight:800}
.gondola{font-size:46px}
/* Kuh */
.target{width:28%;max-width:120px;background:#fffffff0;border-radius:16px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;box-shadow:0 4px 0 #0002;border:3px dashed #0003}
.target span{font-size:38px}
.target small{font-weight:800;font-size:13px}
.cow{font-size:70px}
.cow i{position:absolute;font-style:normal;font-size:24px;left:24%;bottom:-6px}
/* Bankgeheimnis */
.atm{width:190px;background:#d8dde6;border-radius:18px;padding:12px;box-shadow:0 8px 0 #9aa3b2}
.scr{background:#0f3b2e;color:#7dffb2;font-family:monospace;font-size:20px;text-align:center;padding:10px;border-radius:8px;margin-bottom:10px}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.keys i{font-style:normal;background:#fff;border-radius:8px;text-align:center;padding:7px 0;font-weight:800}
.spy{font-size:54px;animation:zoom .25s}
.spy b{position:absolute;left:50%;top:-14px;transform:translateX(-50%);font-size:14px;background:#fff;color:var(--navy);padding:2px 6px;border-radius:8px;white-space:nowrap}
.spy.shoo{animation:shoo .5s forwards}
@keyframes shoo{to{opacity:0;margin-top:-60px}}
.spy.peek{animation:wob .2s infinite alternate}
/* Gemeinde */
.road{background:#9aa0a8;border-radius:7px}
.door{font-size:60px;display:flex;flex-direction:column;align-items:center}
.door small{font-size:12px;font-weight:800;background:#fff;padding:2px 6px;border-radius:6px;color:var(--navy)}
.digi{font-family:monospace;font-size:34px;font-weight:900;background:#111;color:#ff5a4f;padding:6px 14px;border-radius:10px;letter-spacing:2px}
.walker{font-size:56px}
/* Alphorn */
.horn{width:250px;height:60px}
.horn .tube{position:absolute;left:0;top:26px;width:220px;height:12px;background:linear-gradient(#a86a35,#7a4a20);border-radius:6px;transform:rotate(-14deg);transform-origin:0 50%}
.horn .bell{position:absolute;right:4px;top:-10px;width:48px;height:60px;background:radial-gradient(circle at 40% 50%,#3a2210 0 35%,#a86a35 36%);border-radius:50%;transform:rotate(-14deg)}
.horn.blow{animation:wob .12s infinite alternate}
.meter{background:#ffffffaa;border:3px solid var(--navy);border-radius:14px;overflow:hidden}
.meter .band{position:absolute;left:0;right:0;background:#19a97488;border-top:2px solid var(--mint);border-bottom:2px solid var(--mint)}
.meter .fill{position:absolute;left:0;right:0;bottom:0;height:0;background:linear-gradient(#3d8bfdcc,#1c2340cc)}
/* Jodel */
.note{height:48px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:16px;box-shadow:0 3px 0 #0002}
.note.hi{background:#fff3c4}
.note.ok{background:var(--mint);color:#fff}
.note.bad{background:var(--bad);color:#fff}
.jbtn{width:40%;height:96px;font-size:34px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.jbtn small{font-size:15px}
/* Sack */
.bag{width:100%;height:100%;background:linear-gradient(160deg,#fafafa,#d9dde3);border-radius:22% 22% 30% 30%/14% 14% 40% 40%;position:relative;box-shadow:0 5px 0 #0002}
.bag:before{content:"";position:absolute;left:38%;top:-8%;width:24%;height:18%;background:#c7ccd4;border-radius:40% 40% 10% 10%}
.marke{position:absolute;width:20%;height:16%;background:linear-gradient(135deg,#e3262f,#ff8a3d);border-radius:3px;border:2px solid #fff;box-shadow:0 1px 2px #0004}
.bagw.good .bag{background:var(--mint)}
.bagw.wrong .bag{background:#f5b0ab}
/* Vignette */
.car{line-height:1}
.vig{width:74px;height:62px;background:linear-gradient(135deg,#e3262f,#ff5f6b);border:3px solid #fff;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;box-shadow:0 4px 10px #0004;transition:transform .2s}
.vig b:before{content:"✚ ";font-size:14px}
/* Kuckuck */
.chouse{width:180px;height:200px;background:linear-gradient(#7a4a20,#5a3415);border-radius:8px;box-shadow:0 8px 20px #0004}
.roof{position:absolute;left:-24px;right:-24px;top:-50px;height:60px;background:#3d220c;clip-path:polygon(50% 0,100% 100%,0 100%)}
.hdoor{position:absolute;left:50%;top:18px;width:56px;height:56px;margin-left:-28px;background:#2b1708;border-radius:6px;transition:transform .15s;transform-origin:0 50%}
.chouse.open .hdoor{transform:perspective(200px) rotateY(-80deg)}
.cface{position:absolute;left:50%;bottom:22px;width:88px;height:88px;margin-left:-44px;border-radius:50%;background:#fff6e0;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:22px;border:4px solid #c9a15e}
.bird{opacity:0;font-size:54px;transition:transform .12s,opacity .1s;z-index:3}
.bird b{display:block;font-size:16px;background:#fff;border-radius:8px;padding:2px 6px}
.bird.out{opacity:1;transform:translate(-50%,-50%) scale(1.15)!important}
/* Schuhe */
.mat{width:84%;height:56%;background:repeating-linear-gradient(45deg,#8d6b3f 0 6px,#7c5c34 6px 12px);border-radius:12px;color:#ffe3b0;font-weight:900;font-size:22px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px;letter-spacing:3px;box-shadow:0 6px 0 #0003}
.shoe{font-size:50px}
/* Waschplan */
.plan{background:#fff;border-radius:12px;padding:12px 16px;width:78%;max-width:300px;box-shadow:0 6px 16px #0002;font-size:16px}
.plan h4{text-align:center;margin-bottom:6px;font-size:15px;color:var(--red)}
.plan div{display:flex;gap:12px;padding:4px 0;border-bottom:1px dashed #ddd}
.plan div span{width:28px;font-weight:800;color:var(--mut)}
.name{width:30%;font-size:15px;padding:14px 4px;overflow:hidden;text-overflow:ellipsis}
/* Slalom */
.skier{font-size:50px}
.skier.crash{animation:wob .1s infinite alternate}
.tree{font-size:44px}
/* Gipfel */
.mtn{width:0;height:0;border-left:min(46vw,220px) solid transparent;border-right:min(46vw,220px) solid transparent;border-bottom:min(80vw,380px) solid #7d8a9c;filter:drop-shadow(0 -2px 0 #fff)}
.flag{font-size:40px}
.climber{font-size:46px;transition:left .1s,top .1s}
.climber.slip{animation:shake .3s}
.lr{width:30%;height:70px;font-size:32px}
/* Hornussen */
.board{height:22px;background:linear-gradient(#e2b778,#b5823f);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#5a3a12;box-shadow:0 4px 0 #0003}
.board:after{content:"";position:absolute;left:50%;top:20px;width:6px;height:70px;margin-left:-3px;background:#8a6232}
.nouss{width:18px;height:18px;border-radius:50%;background:#111;box-shadow:0 0 0 3px #fff8,-8px -8px 12px #0004}
.nouss.bounce{animation:fadeout .4s forwards}
/* Schwingen */
.ring{border-radius:50%;background:radial-gradient(#f0dcae,#d4b06d);box-shadow:inset 0 0 0 6px #b98f4b}
.wrest{font-size:84px}
.tug{height:34px;background:linear-gradient(90deg,var(--bad),#f4f4f4 50%,var(--mint));border-radius:17px;border:3px solid #fff;box-shadow:0 4px 0 #0002}
.tug i{position:absolute;top:-8px;width:8px;height:44px;margin-left:-4px;background:var(--navy);border-radius:4px}
.tug b,.tug em{position:absolute;top:38px;font-size:13px;font-weight:800;font-style:normal;color:var(--navy)}
.tug b{right:0}.tug em{left:0}
/* Raclette */
.heat{font-size:34px;letter-spacing:8px}
.rkase{width:220px;height:110px;background:#f6d77a;border-radius:110px 110px 12px 12px/110px 110px 12px 12px;box-shadow:inset 0 -14px 0 #c78f2a,0 10px 24px #0005;overflow:hidden}
.rk-top{position:absolute;left:0;right:0;bottom:0;height:62%;background:#fff1c2}
.rkase.scrape .rk-top{animation:scr .4s forwards}
@keyframes scr{to{transform:translateY(80px) skewX(-20deg)}}
.rscale{height:22px;border-radius:11px;background:linear-gradient(90deg,#fff1c2,#f2a900 65%,#4a2200);border:3px solid #fff}
.rscale .g{position:absolute;top:-6px;bottom:-6px;border:3px solid var(--mint);border-radius:8px}
.rscale .m{position:absolute;top:-12px;width:6px;height:40px;margin-left:-3px;background:#fff;border-radius:3px;box-shadow:0 0 0 2px var(--navy)}
.gbig{font-size:22px;padding:16px 28px}
/* Fünfliber */
.coin{width:88px;height:18px;border-radius:44px/9px;background:linear-gradient(#f2f4f7,#a9b0ba);border:1px solid #7d848f;font-size:11px;font-weight:900;color:#59606b;display:flex;align-items:center;justify-content:center}
.coin.moving{box-shadow:0 0 0 3px var(--sun)}
/* Grüezi */
.trail{background:#dcc79c;border-top:4px solid #b9a172;border-bottom:4px solid #b9a172;opacity:.85}
.hiker{font-size:50px;padding:6px}
.hiker b{position:absolute;left:50%;top:-16px;transform:translateX(-50%);font-size:14px;background:#fff;padding:2px 6px;border-radius:8px;white-space:nowrap;color:var(--navy)}
.hiker.greeted{filter:drop-shadow(0 0 6px #fff)}
/* Füfi */
.basket{font-size:60px}
.fall{font-size:42px}
.fuefi{display:block;font-style:normal;width:36px;height:36px;border-radius:50%;background:radial-gradient(#ffe48a,#d6a400);border:2px solid #a37c00;font-size:18px;font-weight:900;color:#6b5100;line-height:32px}
/* Edelweiss */
.flower{font-size:46px;padding:4px;transition:transform .3s,opacity .3s}
.flower.picked{opacity:0;transform:translate(-50%,-140%) scale(.4)!important}
.edw.wrong{animation:shake .3s;filter:drop-shadow(0 0 8px var(--bad))}
/* Tunnel */
.bore{background:#1b1612;box-shadow:inset 0 3px 0 #000}
.head{position:absolute;top:-6px;width:22px;height:46px;background:linear-gradient(#f2c230,#b38500);border-radius:6px}
.head.l{right:-6px}.head.r{left:-6px}

/* Ergebnis */
.res-hero{background:linear-gradient(160deg,var(--navy),#3b2f63);color:#fff;border-radius:24px;padding:22px;text-align:center}
.res-hero .big{font-size:60px;padding:0}
.res-hero .score{font-size:72px;font-weight:900;line-height:1;color:var(--sun)}
.res-hero .score.small{font-size:36px;margin:6px 0}
.slabel{opacity:.85;margin-top:6px}
.nb{display:inline-block;margin-top:10px;background:var(--red);padding:5px 14px;border-radius:10px;font-weight:900}
.verdict{background:#fff;border-radius:18px;padding:16px;margin-top:12px;font-size:17px;font-weight:700;text-align:center;line-height:1.4;box-shadow:0 3px 0 #0000000d}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:#fff;border-radius:999px;padding:8px 14px;font-weight:700;box-shadow:0 2px 0 #0001}
/* Album */
.album{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.acard{background:#fff;border-radius:16px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;box-shadow:0 3px 0 #0000000d;min-height:118px}
.acard .aic{font-size:34px}
.acard b{font-size:12.5px;line-height:1.2}
.acard small{font-size:10.5px;color:var(--mut)}
.acard.locked{background:#efe7d8}
.acard.locked b{color:var(--mut)}
.vd{font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:7px;color:#fff;white-space:nowrap}
.v-yes{background:var(--mint)}.v-mid{background:#e39b00}.v-no{background:var(--red)}.v-lock{background:var(--mut)}
.kcard{background:#fff;border-radius:24px;padding:20px;text-align:center;box-shadow:0 6px 18px #0000000f;border-top:8px solid var(--red)}
.kic{font-size:70px}
.kcard h3{font-size:22px;margin-top:4px}
.kq{font-size:18px;font-style:italic;margin:14px 0;line-height:1.4;color:var(--navy2)}
.kv{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;margin-bottom:10px}
.kv .vd{font-size:15px;padding:5px 12px;border-radius:10px}
.kf{text-align:left;line-height:1.5;font-size:15.5px;margin:0 0 10px}
/* Party */
.prow{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.pn{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.seg{display:flex;gap:8px}
.seg button{flex:1;background:#fff;border-radius:12px;padding:12px;font-weight:800;box-shadow:0 3px 0 #e4dccd}
.seg button.sel{background:var(--navy);color:#fff;box-shadow:0 3px 0 #000}
.rank{background:#fff;border-radius:18px;padding:6px 14px;margin-top:12px}
.rrow{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0e8da;font-size:17px}
.rrow:last-child{border:0}
.rrow b{flex:1}.rrow em{font-style:normal;font-weight:900;color:var(--red)}
.handoff{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--navy);color:#fff;z-index:50;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;font-size:20px;font-weight:700}
.handoff>div{width:100%;max-width:360px}
.hname{font-size:40px;font-weight:900;color:var(--sun);margin:8px 0}
.handoff small{display:block;opacity:.75;font-size:14px;margin-bottom:10px}
/* Einstellungen */
.set{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:16px;padding:12px 16px;margin-bottom:8px;font-weight:700}
.sw{width:54px;height:32px;border-radius:16px;background:#d8d0c2;position:relative;transition:background .2s}
.sw:after{content:"";position:absolute;left:3px;top:3px;width:26px;height:26px;border-radius:50%;background:#fff;transition:left .2s}
.sw.on{background:var(--mint)}.sw.on:after{left:25px}
.statg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.statg div{background:#fff;border-radius:14px;padding:10px 12px}
.statg b{font-size:22px;display:block}
.statg small{color:var(--mut);font-size:12.5px}
#toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 28px);transform:translateX(-50%);background:var(--navy);color:#fff;padding:12px 18px;border-radius:14px;font-weight:700;z-index:60;display:none;max-width:90%;text-align:center;box-shadow:0 8px 24px #0004}
#fx{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:70;overflow:hidden}
.conf{position:absolute;width:10px;height:14px;border-radius:2px}

/* Screenshot-Modus: ohne Animationen */
.shot *,.shot *:before,.shot *:after{animation:none!important;transition:none!important}

/* ---------- Erweiterung: 10 neue Mini-Games ---------- */
.arw{font-size:24px;padding:0}
.arw.cur{box-shadow:0 0 0 3px var(--sun),0 3px 0 #0002}
.flgw{width:150px;height:200px}
.flg-pole{position:absolute;left:12px;top:0;width:8px;height:200px;background:#8a5a2b;border-radius:4px}
.flg{position:absolute;left:20px;top:6px;width:110px;height:110px;background:var(--red);border-radius:4px;box-shadow:0 4px 10px #0003}
.flg:before,.flg:after{content:"";position:absolute;background:#fff;left:50%;top:50%;transform:translate(-50%,-50%)}
.flg:before{width:22%;height:62%}.flg:after{width:62%;height:22%}
.chalet{background:#9c6534;background-image:repeating-linear-gradient(#0000 0 26px,#00000018 26px 29px);border-radius:10px 10px 4px 4px;box-shadow:0 6px 18px #0003}
.chalet .roof2{position:absolute;left:-6%;right:-6%;top:-34px;height:40px;background:#5a3418;clip-path:polygon(50% 0,100% 100%,0 100%)}
.gbox{font-size:28px;background:#6b3f1c;border-radius:8px;padding:2px 6px 6px;box-shadow:0 4px 0 #3d230f;cursor:pointer;white-space:nowrap;letter-spacing:-4px}
.gbox.dry{background:#7a6a55;animation:shake .5s infinite;filter:saturate(.6)}
.drop{font-size:30px;pointer-events:none}
.mz{width:74px;height:74px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#c9ced6 60%,#8e959f);border:3px solid #7d848f;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#3b4250;cursor:pointer;box-shadow:0 4px 0 #0004}
.mz.big{width:86px;height:86px}.mz.mid{width:66px;height:66px}
.mz b{font-size:24px;line-height:1}.mz small{font-size:11px;font-weight:800}
.mz.tapd{animation:flick .2s;filter:brightness(1.15)}
.mzsum{font-size:34px;font-weight:900;color:#fff;background:#0003;padding:6px 18px;border-radius:14px}
.mzsum.ok{background:var(--mint)}.mzsum.bad{background:var(--bad)}
.guest{font-size:48px;cursor:pointer;padding:4px}
.guest small{display:block;font-size:12px;font-weight:800;color:#fff;background:#0006;border-radius:7px;padding:1px 6px;margin-top:-4px}
.guest.wrong{filter:drop-shadow(0 0 8px var(--bad))}
.clink{font-size:34px;pointer-events:none}
.table{font-size:40px;background:#6d4a2e;border-radius:50%;padding:26px 18px;box-shadow:0 6px 18px #0006}
.fog{position:absolute;background:#e3e7ec;border-radius:40%;filter:blur(3px);transition:opacity .35s;opacity:.97}
.fog.gone{opacity:0}
.sunb{font-size:70px}.mtnb{font-size:90px}
.bowl{font-size:96px}
.ingr{font-size:44px;cursor:grab;background:#fff;border-radius:16px;padding:6px 8px;box-shadow:0 4px 0 #0002}
.ingr small{display:block;font-size:11.5px;font-weight:800;color:var(--navy)}
.aclk{padding:6px;border-radius:50%;line-height:0}
.saus{font-size:80px;transition:transform .15s;z-index:2}
.stick{width:70%;height:6px;background:#8a5a2b;border-radius:3px;z-index:1}
.heat2{font-size:54px;white-space:nowrap;animation:flick .6s infinite alternate}
@keyframes flick{from{opacity:.75}to{opacity:1}}
.cbars{display:flex;gap:10px;height:110px}
.cb{flex:1;position:relative;background:#ffffff22;border-radius:10px;overflow:hidden;border:3px solid #ffffff44}
.cb.on{border-color:var(--sun)}
.cb .z{position:absolute;left:0;right:0;background:#19a97455;border-top:2px dashed #19a974}
.cb .f{position:absolute;left:0;right:0;bottom:0;height:0;background:linear-gradient(#7a3a12,#d48a3a)}
.cb.burnt .f{background:#1b1410}
.cb span{position:absolute;left:0;right:0;bottom:4px;text-align:center;color:#fff;font-weight:900}
.dw{font-size:26px;font-weight:900;color:var(--red);margin-top:4px;white-space:nowrap}
.dopt{width:78%;max-width:320px;white-space:normal}
.lanes{background:repeating-linear-gradient(90deg,#4b5563 0 calc(33.33% - 3px),#fff 0 calc(33.33% + 3px))}
.mecar{font-size:50px;filter:drop-shadow(0 0 8px #ffbf1f)}.jam{font-size:48px}
.mecar.crash{animation:shake .3s 2}

/* ---------- Extras, Tagesziele, Bonus-Videos ---------- */
.tile .lockb{position:absolute;right:10px;top:10px;background:var(--navy);color:#fff;font-weight:800;font-size:11px;border-radius:8px;padding:3px 7px}
.tile .left{position:absolute;right:10px;top:10px;background:#efe7d8;color:var(--navy);font-weight:800;font-size:11px;border-radius:8px;padding:3px 7px}
.gcard{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:20px;padding:12px 14px;margin-top:12px;box-shadow:0 3px 0 #0000000d;text-align:left;width:100%}
.gcard .ic{font-size:32px}.gcard b{font-size:16px}.gcard small{display:block;color:var(--mut);font-size:12.5px}
.gcard .dot{margin-left:auto;background:var(--red);color:#fff;font-weight:900;border-radius:999px;padding:4px 10px;font-size:12px;white-space:nowrap}
.btn.ad{background:#fff;color:var(--ink);box-shadow:0 4px 0 #e4dccd;border:2px dashed #d9cdb6;font-size:16px}
.btn.ext{background:var(--navy);box-shadow:0 4px 0 #000}
.goal{background:#fff;border-radius:16px;padding:12px 14px;margin-bottom:8px;display:flex;align-items:center;gap:10px;box-shadow:0 2px 0 #0000000d}
.goal .gt{flex:1}.goal .gt b{display:block;font-size:15px}.goal .gt small{color:var(--mut);font-size:12.5px}
.goal .gb{height:7px;background:#efe7d8;border-radius:7px;margin-top:6px;overflow:hidden}.goal .gb i{display:block;height:100%;background:var(--mint)}
.goal button{background:var(--mint);color:#fff;font-weight:900;border-radius:12px;padding:9px 12px;white-space:nowrap}
.goal .ok{color:var(--mint);font-weight:900;white-space:nowrap}.goal .rw{color:#b07d00;font-weight:900;white-space:nowrap}
.gstat{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.gstat span{background:#fff;border-radius:999px;padding:7px 12px;font-weight:800;font-size:14px;box-shadow:0 2px 0 #0000000d}
.cos{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.cos button{background:#fff;border-radius:16px;padding:10px;text-align:left;box-shadow:0 2px 0 #0000000d;display:flex;gap:8px;align-items:center}
.cos button .ci{font-size:26px}.cos button b{display:block;font-size:13.5px;line-height:1.2}.cos button small{font-size:12px;color:var(--mut)}
.cos button.own small{color:var(--mint);font-weight:800}.cos button.eq{outline:3px solid var(--mint)}
.cos button.no{opacity:.6}
.acard{position:relative}
.acard .lockb{position:absolute;right:5px;top:5px;font-size:10px;background:var(--navy);color:#fff;border-radius:6px;padding:1px 5px;font-weight:800}
.badge{font-size:18px;margin-right:6px;background:#ffffff26;border-radius:999px;padding:1px 6px}
