@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;650;700;750&family=Outfit:wght@400;500;600;650;700;750;800;900&display=swap');
:root{--ink:#254d39;--muted:#7a8776;--paper:#f7f8f0;--orange:#ef8244;--line:#e3e7da;--font:'DM Sans',Arial,sans-serif;--display:'Outfit','Trebuchet MS',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #e28a35;outline-offset:4px}button{border:0}button:hover:not(:disabled){filter:brightness(.97)}button:active:not(:disabled){transform:translateY(1px)}.header{height:104px;max-width:1376px;padding:0 48px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:30px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.brand-icon{font-size:37px;transform:rotate(-12deg)}.brand strong{font-family:var(--display);font-size:37px;letter-spacing:-1.8px;line-height:.95;font-weight:800}.brand-dot{color:var(--orange)}.brand small{display:block;font-size:10px;font-weight:750;letter-spacing:2.5px;margin-top:6px}nav{display:flex;gap:30px;align-items:center;margin-left:auto;margin-right:22px}.nav-button{background:transparent;font-size:14px;font-weight:650;padding:15px 0;color:#798470;position:relative}.nav-button.active{color:var(--ink)}.nav-button.active:after{content:'';width:6px;height:6px;border-radius:50%;position:absolute;background:var(--orange);bottom:2px;left:50%}.tiny-tag{display:inline-grid;place-items:center;background:#e7ecd9;border-radius:5px;font-size:10px;margin-left:6px;width:18px;height:18px}.help-dot{border:1.5px solid #92a18a;width:15px;height:15px;display:inline-grid;place-items:center;border-radius:50%;font-size:10px;margin-left:4px}.icon-button{background:#edf0e5;width:40px;height:40px;border-radius:50%;display:grid;place-items:center}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}main{max-width:1376px;padding:34px 48px 0;margin:auto}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:15px}.eyebrow{font-weight:750;letter-spacing:2px;font-size:10px;display:block;margin-bottom:9px;color:#83906e}h1{font-family:var(--display);font-size:29px;font-weight:650;letter-spacing:-.8px;margin:0}h1>span{color:var(--orange)}.edition{font-size:12px;color:#7d886d;padding-top:13px;white-space:nowrap;display:flex;align-items:center;gap:7px}.edition>span{height:6px;width:6px;background:#94b56d;border-radius:50%}.game-wrap{border-radius:21px;overflow:hidden;border:1px solid #d6e1cd;box-shadow:0 8px 25px #27473007}.game-stage{position:relative;aspect-ratio:1280/620;background:#94dcdf;overflow:hidden;isolation:isolate}canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.hud{position:absolute;top:24px;left:26px;right:26px;display:flex;justify-content:space-between;pointer-events:none;align-items:center;gap:12px;z-index:2}.hud-level{display:flex;align-items:center;gap:11px;background:#fffef5ee;padding:10px 16px 10px 10px;border-radius:13px;box-shadow:0 3px 0 #4c75630d}.level-badge{border-radius:8px;background:#d7e8a1;display:grid;place-items:center;width:37px;height:38px;font-family:var(--display);font-size:23px;font-weight:700}.hud-small{display:block;font-size:9px;letter-spacing:1.5px;margin-bottom:3px;font-weight:700;color:#829578}.hud-level strong{font-size:14px;font-weight:750}.hud-right{display:flex;gap:8px;align-items:center}.hud-pill,.hud-button{border-radius:11px;background:#fffef5ed;padding:12px 16px;font-size:16px;line-height:23px;box-shadow:0 3px 0 #4c75630d}.hearts{letter-spacing:4px;color:#ee825c}.coins{display:flex;gap:8px;align-items:center}.coins>span:first-child{color:#e5b647;font-size:23px}.coin-divider,#coinTotal{font-size:12px;color:#929a81}.hud-button{pointer-events:auto;font-weight:800;padding:12px 17px;font-size:20px}.hud-button:disabled{opacity:.5}.start-panel{position:absolute;left:6%;top:25%;z-index:2}.intro-pill{font-size:9px;letter-spacing:1.5px;font-weight:750;background:#e8f1d4d9;color:#548152;border:1px solid #adc69465;border-radius:30px;padding:8px 12px;display:inline-block}h2{font-family:var(--display)}.start-panel h2{font-size:clamp(28px,4.4vw,62px);line-height:1.05;letter-spacing:-2px;font-weight:800;margin:17px 0 16px;text-shadow:0 2px 0 #fff3}.start-panel h2 em{color:#438048;font-style:normal}.start-panel p{color:#577053;font-size:15px;line-height:1.7;margin:0 0 22px;font-weight:500}.primary-button{display:flex;align-items:center;justify-content:center;gap:20px;border-radius:12px;background:var(--orange);color:#fffdf1;padding:15px 25px;font-weight:750;box-shadow:0 4px 0 #bc6434;min-height:51px;font-size:16px;transition:filter .15s,transform .15s}.primary-button>span:last-child{margin-left:12px;font-size:23px;font-weight:400;line-height:16px}.primary-button .play-icon{font-size:12px}.start-note{font-size:10px;letter-spacing:.25px;color:#788262;display:block;margin-top:17px}.character-note{position:absolute;left:71%;top:21%;font-family:var(--display);font-size:18px;font-weight:600;transform:rotate(8deg);color:#426b4e;text-align:center;line-height:1.2}.character-note span{font-size:42px;display:block;transform:rotate(12deg);line-height:1.4}.level-stamp{position:absolute;bottom:24px;left:30px;display:flex;gap:10px;align-items:center;color:#fbffe8;text-shadow:0 1px 3px #254d3920}.level-stamp>span{font-family:var(--display);font-size:37px;font-weight:600;opacity:.8;border-right:1px solid #ffffff60;padding-right:12px}.level-stamp>div{font-size:10px;font-weight:700;letter-spacing:1.7px}.level-stamp small{font-size:10px;font-weight:400;letter-spacing:.1px;display:block;margin-top:4px}.game-toolbar{background:#fffef8;min-height:65px;display:flex;align-items:center;justify-content:space-between;padding:15px 26px;gap:14px}.controls-legend{display:flex;gap:28px;align-items:center;font-size:12px;color:#728069}.controls-legend>span{display:flex;align-items:center;gap:4px}.controls-legend b{font-weight:500;margin-left:5px}.or{font-size:11px;margin:0 2px;color:#afb49f}kbd{font:600 11px var(--font);display:inline-flex;justify-content:center;align-items:center;min-width:23px;height:24px;padding:0 5px;background:#f0f2e8;border:1px solid #dfe5d6;box-shadow:0 2px 0 #e1e6d8;border-radius:5px;color:#7b8a70}.space-key{padding:0 10px}.fullscreen-button{background:none;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500}.fullscreen-button svg{width:16px;height:16px}.worlds{margin-top:31px;scroll-margin-top:18px}.worlds-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.worlds h2{font-size:20px;letter-spacing:-.35px;margin:0;font-weight:600}.worlds h2>span{font-weight:400;color:#8b957c}.worlds-heading>span{font-size:11px;color:#929b86}.world-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:11px}.world-card{border-radius:11px;position:relative;padding:0;overflow:hidden;background:#eff1e7;text-align:left;border:1.5px solid transparent;transition:transform .15s,border-color .15s}.world-card.selected{border-color:#7ca35b;background:#f9fbed;box-shadow:0 2px 7px #44633809}.world-card.locked{opacity:.6}.world-card .world-art{height:62px;background-size:200%;background-image:url('assets/world.webp');background-position:45% 70%;position:relative;overflow:hidden}.world-card:nth-child(2) .world-art{filter:hue-rotate(310deg);background-position:100% 85%}.world-card:nth-child(3) .world-art{filter:hue-rotate(22deg) saturate(.75);background-position:0% 90%}.world-card:nth-child(4) .world-art{filter:hue-rotate(65deg);background-position:70% 80%}.world-card:nth-child(5) .world-art{filter:hue-rotate(25deg) saturate(.6);background-position:40% 10%}.world-card:nth-child(6) .world-art{filter:hue-rotate(110deg) brightness(.7);background-position:70% 85%}.world-card:nth-child(7) .world-art{filter:hue-rotate(290deg);background-position:90% 85%}.world-card:nth-child(8) .world-art{filter:hue-rotate(190deg) brightness(.65);background-position:0% 85%}.world-card .world-number{position:absolute;left:8px;top:7px;display:grid;place-items:center;background:#fbffefcc;color:#38543a;font-size:10px;font-weight:750;width:21px;height:21px;border-radius:6px}.world-card .world-symbol{position:absolute;right:9px;bottom:5px;font-size:27px;filter:drop-shadow(0 2px 2px #31452444)}.world-card .world-copy{padding:10px 9px}.world-card strong{font-size:11px;font-weight:750;display:block;white-space:nowrap}.world-card small{font-size:9px;color:#8b987f;display:block;margin-top:4px}.world-card.selected small{color:#728c58}.world-card .lock{position:absolute;right:8px;top:9px;width:10px;height:12px;border:1.5px solid #648057;border-radius:3px;background:#ecf2df}.lock:before{content:'';position:absolute;left:1px;top:-6px;width:5px;height:6px;border:1.5px solid #648057;border-bottom:0;border-radius:4px 4px 0 0}footer{display:flex;justify-content:space-between;padding:25px 0;font-size:10px;color:#9aA28d}footer span span{color:#95ae71;margin-left:6px}.overlay{position:absolute;inset:0;background:#1e483970;z-index:6;display:grid;place-items:center;padding:16px;backdrop-filter:blur(7px)}[hidden]{display:none!important}.dialog-card{padding:27px 42px 20px;background:#fafbed;border-radius:22px;box-shadow:0 20px 60px #183b3930;max-width:440px;text-align:center}.dialog-icon{font-size:38px;display:block;margin-bottom:6px}.dialog-card h2{font-size:32px;letter-spacing:-1px;line-height:1.1;margin:12px 0}.dialog-card p{font-size:14px;line-height:1.6;color:#7b886e;margin:0 0 20px}.dialog-card .primary-button{width:100%}.text-button{font-size:12px;display:block;margin:17px auto 0;background:transparent;font-weight:600}.text-button.muted{color:#8b957b;margin-top:13px;font-size:11px}.result-stats{display:flex;justify-content:center;gap:24px;margin:18px 0 23px}.result-stats strong{display:block;font:700 24px var(--display)}.result-stats small{font-size:10px;color:#879275}.toast{position:absolute;left:50%;bottom:18%;transform:translate(-50%,12px);opacity:0;transition:opacity .25s,transform .25s;z-index:8;background:#fcfff0f5;color:var(--ink);border:1px solid #fff;border-radius:11px;padding:11px 20px;font-size:14px;text-align:center;box-shadow:0 4px 20px #183b3930;max-width:80%;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.power-indicator{position:absolute;left:27px;top:99px;border-radius:20px;background:#fffbeae6;padding:7px 14px;font-size:12px;font-weight:700;z-index:2}.boss-hud{position:absolute;left:50%;top:25px;transform:translateX(-50%);width:230px;text-align:center;color:#fffae4;font-size:10px;font-weight:700;letter-spacing:2px;text-shadow:0 2px 3px #15344266;z-index:3}.boss-hud>div{height:11px;background:#203432aa;border:2px solid #fff6;border-radius:10px;overflow:hidden;margin-top:7px}.boss-hud i{display:block;background:#ff9664;height:100%;transition:width .2s}.boss-hud small{font-size:10px;letter-spacing:0;display:block;margin-top:5px}.touch-controls{position:absolute;bottom:17px;left:18px;right:18px;justify-content:space-between;z-index:4;display:none;pointer-events:none}.touch-controls>div{display:flex;gap:10px}.touch-controls button{pointer-events:auto;width:53px;height:53px;border-radius:15px;font-size:26px;background:#fbffe7cb;border:2px solid #fff9;color:#325f42;touch-action:none;user-select:none}.touch-controls .touch-jump{background:#ef8244e8;color:#fff;width:66px;font-size:36px}dialog{max-width:650px;width:calc(100% - 32px);border:1px solid #dce4c8;border-radius:22px;padding:37px;color:var(--ink);background:#fbfcf1;box-shadow:0 15px 80px #183b3940}dialog::backdrop{background:#1e483980;backdrop-filter:blur(5px)}dialog h2{font-size:28px;letter-spacing:-.7px;margin:10px 0 17px}dialog p{font-size:14px;line-height:1.7;color:#7b886e}.close-dialog{position:absolute;right:15px;top:12px;font-size:25px;background:none}.help-controls{display:grid;grid-template-columns:1fr 1fr;gap:13px;align-items:center;background:#edf2e2;border-radius:12px;padding:18px;font-size:12px;margin:20px 0}.help-controls b{font-weight:600}.power-help{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0 13px}.power-help span{display:block;font-size:26px;margin-bottom:8px}.power-help b{font-size:13px}.power-help p{font-size:12px;margin:6px 0}.help-tip{background:#f6efdc;padding:12px 15px;border-radius:10px}dialog>.primary-button{margin-top:23px;width:100%}.game-stage:fullscreen{width:100vw;height:100dvh;aspect-ratio:auto;background:#243f35}.game-stage:fullscreen canvas{object-fit:contain}.game-stage:fullscreen .start-panel{left:7%;top:27%}.game-stage:fullscreen .hud{top:20px}body.is-playing .character-note,body.is-playing .level-stamp{display:none}body.is-playing .game-stage{cursor:default}
@media(min-width:1450px){.start-panel h2{font-size:62px}}@media(max-width:1100px){.header{padding:0 28px;height:88px}main{padding:25px 28px 0}.edition{display:none}.section-heading{margin-bottom:20px}.start-panel h2{font-size:45px}.start-panel p{font-size:13px;margin-bottom:16px}.intro-pill{font-size:8px}.start-panel{top:24%}.hud{top:17px;left:20px;right:20px}.world-card strong{font-size:10px}.controls-legend{gap:18px}.world-grid{gap:8px}.character-note{font-size:16px}.start-note{margin-top:13px}.primary-button{padding:12px 21px;min-height:46px}.worlds{margin-top:26px}}@media(max-width:780px){.header{padding:0 20px;height:82px;gap:15px}.brand strong{font-size:31px}.brand-icon{font-size:30px}.brand small{font-size:8px;letter-spacing:2px}nav{gap:18px;margin-right:0}.nav-button{font-size:12px}#adventure{display:none}main{padding:22px 20px 0}h1{font-size:24px}.section-heading .eyebrow{font-size:8px}.game-stage{aspect-ratio:1.5;}.game-stage canvas{object-fit:cover;object-position:64%}.start-panel{left:6%;top:28%}.start-panel h2{font-size:41px}.start-panel p{font-size:12px;max-width:280px}.intro-pill{font-size:7px}.hud{left:13px;right:13px;top:13px}.hud-level{padding:8px;gap:7px}.level-badge{width:29px;height:32px;font-size:19px}.hud-small{font-size:7px}.hud-level strong{font-size:11px}.hud-pill,.hud-button{padding:9px 11px;font-size:14px;line-height:20px}.hud-pill.hearts{letter-spacing:2px}.coins{gap:5px}.character-note{left:76%;top:28%;font-size:13px}.level-stamp{left:20px;bottom:16px}.controls-legend{gap:12px}.controls-legend>span:last-child{display:none}.controls-legend b{font-size:10px}.game-toolbar{padding:14px}.world-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.world-card strong{font-size:12px}.world-card small{font-size:10px}.world-card .world-art{height:60px}.worlds-heading>span{font-size:10px}.worlds h2{font-size:19px}.edition{display:none}footer{font-size:9px;gap:18px}.boss-hud{top:76px;width:180px}.power-indicator{top:73px;left:14px;font-size:10px}.dialog-card{padding:20px 28px}.dialog-card h2{font-size:28px}.dialog-icon{font-size:29px}.dialog-card p{font-size:12px}.dialog-card .eyebrow{font-size:8px}.dialog-card .text-button{margin-top:12px}body.is-playing .game-stage{aspect-ratio:1.45}}
@media(pointer:coarse){body.is-playing .touch-controls{display:flex}.controls-legend{font-size:11px}.game-toolbar .controls-legend:after{content:'Mit den Tasten im Spiel bewegen & springen.'}.game-toolbar .controls-legend>span{display:none}}@media(max-width:500px){.header{padding:0 16px;height:73px}.brand strong{font-size:28px}.brand-icon{font-size:27px}.brand{gap:5px}nav{gap:14px}#levelsNav{font-size:11px}.tiny-tag{display:none}.help-dot{display:none}#help{font-size:11px}.sound-button{width:32px;height:32px;flex-shrink:0}main{padding:20px 12px 0}.section-heading{padding:0 4px;margin-bottom:16px}h1{font-size:21px}.game-wrap{border-radius:15px}.game-stage{aspect-ratio:.91}.game-stage canvas{object-fit:cover;object-position:70%}.start-panel{top:24%;left:7%;}.start-panel h2{font-size:43px}.start-panel p{font-size:13px;max-width:260px}.intro-pill{font-size:7px}.start-note{font-size:9px}.character-note{display:none}.hud-level{padding:7px}.hud-right{gap:5px}.hud-pill,.hud-button{padding:8px}.hud-pill.hearts{font-size:12px;letter-spacing:0}.coins{font-size:12px;gap:4px}.coins>span:first-child{font-size:18px}.coin-divider,#coinTotal{font-size:10px}.hud-small{letter-spacing:1px}.level-stamp{bottom:18px}.level-stamp>span{font-size:28px}.game-toolbar{padding:12px;min-height:50px}.fullscreen-button{font-size:10px;gap:5px}.controls-legend{gap:10px}.controls-legend>span:first-child .or,.controls-legend>span:first-child kbd:nth-of-type(3),.controls-legend>span:first-child kbd:nth-of-type(4){display:none}.controls-legend b{font-size:9px}.controls-legend kbd{font-size:9px;min-width:18px;height:21px}.controls-legend .space-key{padding:0 5px}.worlds{margin-top:23px}.worlds h2{font-size:18px}.worlds-heading{padding:0 3px}.worlds-heading>span{font-size:9px}.world-grid{gap:8px}.world-card .world-copy{padding:9px 5px}.world-card strong{font-size:10px;letter-spacing:-.25px}.world-card small{font-size:8px}.world-card .world-art{height:55px}.world-symbol{font-size:23px!important}footer{padding:21px 3px;font-size:9px;line-height:1.7}footer>span:last-child{max-width:130px;text-align:right}body.is-playing .game-stage{aspect-ratio:.95}.dialog-card{padding:20px 25px;width:100%}.dialog-card h2{font-size:29px}.dialog-card p{font-size:13px}.dialog-icon{font-size:35px}.dialog-card .primary-button{min-height:46px}.toast{font-size:12px;max-width:92%;bottom:23%;padding:9px 13px}.boss-hud{top:80px}dialog{padding:28px 21px}dialog h2{font-size:25px}.power-help{gap:10px}.power-help b{font-size:12px}.power-help p{font-size:11px}.help-controls{padding:14px;gap:13px 7px;font-size:11px}.help-controls kbd{font-size:9px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

body.is-playing .game-stage canvas{object-position:center center}

/* Keep small progress labels readable, including narrow layouts. */
.start-note,.worlds-heading>span,.world-card small,.level-stamp small,footer{font-size:12px}
.world-card strong{font-size:12px}
.hud-small{font-size:10px}
.controls-legend b,.fullscreen-button,.text-button,.text-button.muted{font-size:12px}
@media(max-width:1100px){.world-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.world-card .world-art{height:66px}}
@media(max-width:500px){.world-card strong{font-size:12px;white-space:normal;overflow-wrap:anywhere}.world-card small{font-size:11px}.world-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.world-card .world-art{height:62px}.world-card .world-copy{padding:10px}.hud-small{font-size:9px}footer{font-size:11px}.start-note{font-size:11px}.controls-legend b{font-size:11px}.fullscreen-button{font-size:11px}.worlds-heading>span{font-size:11px}}
.overlay.result-reveal{animation:results-in .6s ease both}.overlay.result-reveal .dialog-card{animation:result-card-in .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes results-in{from{opacity:0}to{opacity:1}}@keyframes result-card-in{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.overlay.result-reveal,.overlay.result-reveal .dialog-card{animation:none}}

.status-bar{display:flex;align-items:center;gap:20px;min-height:43px;padding:9px 25px;background:#f0f3e5;border-top:1px solid #e2e8d7;color:#697d58;font-size:12px}
.status-bar>span{font-weight:700;flex-shrink:0}.status-bar .toast{position:static;left:auto;bottom:auto;transform:none;box-shadow:none;border:0;background:none;border-radius:0;padding:0;font-size:12px;text-align:left;max-width:none;color:#697d58;line-height:1.5;transition:opacity .2s}.status-bar .toast.show{transform:none}
.game-wrap:fullscreen{display:flex;flex-direction:column;width:100vw;height:100dvh;background:#25473c;border:0;border-radius:0}
.game-wrap:fullscreen .game-stage{flex:1;min-height:0;aspect-ratio:auto}.game-wrap:fullscreen canvas{object-fit:contain;object-position:center}
.game-wrap:fullscreen .game-toolbar,.game-wrap:fullscreen .status-bar{flex-shrink:0}.game-wrap:fullscreen .hud{top:14px}.game-wrap:fullscreen .touch-controls{bottom:12px}
@media(max-width:650px){.status-bar{padding:9px 13px;gap:6px;min-height:59px;align-items:flex-start;flex-direction:column}.status-bar .toast{font-size:12px;min-height:18px}.status-bar>span{font-size:12px}.game-wrap:fullscreen .game-toolbar{display:none}.game-wrap:fullscreen .status-bar{min-height:38px;flex-direction:row;gap:12px}.game-wrap:fullscreen .status-bar>span{display:none}}
