*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#stage,#stage *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,canvas,img{-webkit-user-drag:none;user-drag:none}html,body{margin:0;min-height:100%;background:#0e252e;color:#f8f6e9;font-family:system-ui,-apple-system,sans-serif}body{background:radial-gradient(ellipse at 50% 0,#284c53,#0b202a 80%)}main{max-width:1600px;margin:auto;padding:0 34px}header{height:94px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-family:Georgia,serif;letter-spacing:4px;font-size:32px;font-weight:900;text-decoration:none;color:#fff}.brand span{display:block;font:10px system-ui;letter-spacing:3px;color:#9fb9bc;margin-top:5px}.settings{display:flex;align-items:center;gap:20px;font-size:14px;color:#d1dfe0}.settings label{display:flex;gap:7px;align-items:center}input{accent-color:#ebbd73;width:17px;height:17px}button{cursor:pointer;border:1px solid #ffffff35;color:white;background:#ffffff0c;font:inherit;border-radius:9px;min-width:42px;min-height:42px}button:hover{background:#ffffff25}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffd383;outline-offset:4px}#stage{position:relative;overflow:hidden;background:#6d9baa;border:1px solid #76909355;border-radius:15px;box-shadow:0 25px 70px #0006;aspect-ratio:16/9}canvas{display:block;width:100%;height:100%;outline:0}#hud{position:absolute;top:24px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:start;font-size:12px;font-weight:800;letter-spacing:2px;color:#fff;text-shadow:0 2px 8px #163c48}#hud[hidden]{display:none}#hud b{font-size:24px;letter-spacing:0;margin-left:9px}#hud small{font-size:13px;letter-spacing:0}.centerhud{text-align:center}.centerhud small{display:block;font-weight:500;margin-top:7px}#overlay{position:absolute;inset:0;display:flex;align-items:center;background:linear-gradient(90deg,#092e3ce8 0%,#143d4ba6 44%,#16394400 80%)}#overlay[hidden]{display:none}.intro{padding:5% 7%;max-width:750px}h1{font:700 clamp(32px,4.5vw,68px)/1.08 Georgia,serif;letter-spacing:-2px;margin:20px 0;color:#fff9e7}.eyebrow{font-size:12px;letter-spacing:3px;color:#f3d299;font-weight:700}.intro p{line-height:1.75;color:#e4edf0}.primary{margin:18px 0;background:#efc27d;color:#183540;border:0;padding:17px 25px;min-width:235px;font-weight:800;font-size:17px;box-shadow:0 7px 22px #09263340}.primary:hover{background:#ffda9d}.primary span{margin-left:28px}.intro .hint{font-size:13px;margin-bottom:0}.intro .subhint{font-size:12px;color:#b7cdd0;margin-top:5px}#message{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);background:#102d35ec;border:1px solid #ffffff35;border-radius:12px;padding:13px 22px;max-width:85%;text-align:center;pointer-events:none;opacity:0;transition:opacity .2s;font-size:16px;z-index:3;text-wrap:balance;box-shadow:0 10px 28px #00000026}#message.show{opacity:1}footer{padding:22px 0;display:flex;justify-content:space-between;gap:14px;font-size:12px;color:#9bb6bd}footer i{display:inline-block;width:6px;height:6px;background:#efc27d;border-radius:50%;margin-right:8px}footer em{font-style:normal;padding:0 12px;color:#4f7580}#touch{display:none;position:absolute;bottom:18px;left:18px;right:18px;justify-content:space-between;pointer-events:none}#touch>div{display:flex;gap:10px}#touch button{pointer-events:auto;width:60px;height:57px;background:#133b49bb;border-color:#ffffff66;touch-action:none;user-select:none;font-weight:800;backdrop-filter:blur(5px)}#touch .jump{background:#e6bd79;color:#163643;width:73px}#flash{position:absolute;inset:0;background:white;pointer-events:none;opacity:0}#flash.snap{animation:snap .35s}@keyframes snap{0%{opacity:.9}100%{opacity:0}}@media(pointer:coarse){#touch{display:flex}#message{top:clamp(78px,13vw,96px);bottom:auto;left:50%;transform:translateX(-50%);max-width:min(72%,360px);padding:7px 11px;border-radius:10px;font-size:11px;line-height:1.28;background:#102d35c7;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}#message.compact{max-width:min(74%,380px)}footer span:last-child{display:none}.hint{display:none}}@media(max-width:700px){main{padding:0 10px}#touch{bottom:2px;left:12px;right:12px}#touch>div{gap:7px}#touch button{width:48px;height:46px;min-width:48px;min-height:46px;border-radius:10px;font-size:12px}#touch .jump{width:60px;min-width:60px}header{height:72px}.brand{font-size:25px}.brand span{font-size:8px;letter-spacing:1.5px}.settings{gap:8px;font-size:12px}.settings button{min-width:34px;min-height:34px}#stage{aspect-ratio:4/5}#hud{top:14px;left:15px;right:15px;font-size:10px;letter-spacing:1px}#hud b{font-size:20px}.centerhud{display:none}.intro{padding:24px}h1{font-size:44px}.intro p{font-size:15px}.intro .subhint{font-size:12px}.eyebrow{font-size:10px!important}footer{font-size:11px;padding:16px 3px}#message{font-size:10.5px;width:auto;max-width:min(72%,360px);top:clamp(78px,13vw,96px);bottom:auto;left:50%;transform:translateX(-50%);padding:7px 10px;line-height:1.25}#message.compact{max-width:min(74%,380px)}}@media(max-height:500px) and (orientation:landscape){header,footer{display:none}main{padding:0}#stage{height:100dvh;aspect-ratio:auto;border:0;border-radius:0}.intro{padding:25px 6%}h1{font-size:38px;margin:8px 0}.intro p{margin:5px 0}.primary{margin:8px 0;padding:12px 20px}.subhint{display:none}}#stage:fullscreen{width:100vw;height:100vh;border:0;border-radius:0}
#collection{position:absolute;inset:0;z-index:4;background:linear-gradient(140deg,#102f39f7,#0c222bf7);overflow:auto;padding:30px 38px;scrollbar-color:#688c92 #16333d}#collection[hidden],#touch[hidden]{display:none!important}.collection-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.collection-head h2{font:700 32px Georgia,serif;margin:0 0 6px}.collection-head p{color:#afc7ce;font-size:14px;margin:0}.journey{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.level-card{padding:0;overflow:hidden;text-align:left;border:1px solid #54757e;border-radius:12px;background:#1a3d48;position:relative;transition:transform .15s,background .15s}.level-card:not(:disabled):hover{transform:translateY(-3px);background:#25525e}.level-card:disabled{cursor:default;opacity:.55}.level-card img{width:100%;height:100px;object-fit:cover;display:block}.card-text{display:block;padding:12px}.card-text strong{display:block;font-size:16px;line-height:1.2;margin:5px 0 7px}.card-text small{display:block;font-size:12px;color:#bdcfd2}.card-text .stars{color:#efc27d;letter-spacing:3px;font-size:16px}.level-num{position:absolute;top:8px;left:8px;background:#0c293add;border-radius:6px;padding:4px 8px;font-size:12px}.album-card{border:1px solid #4c6e78;background:#153741;border-radius:10px;overflow:hidden;margin:0}.album-card img{width:100%;height:130px;object-fit:cover;display:block}.album-card.missing img{filter:grayscale(1) brightness(.3)}.album-card figcaption{padding:12px}.album-card strong{display:block;margin-bottom:6px;font-size:16px}.album-card p{font-size:13px;line-height:1.5;color:#bfd0d3;margin:4px 0}.album-card a{font-size:12px;color:#edcd91}.summary-strip{margin:18px 0;display:flex;gap:20px;color:#ebd5ac;font-size:14px;flex-wrap:wrap}.collection-note{font-size:12px;color:#aac1c7;margin-top:20px;line-height:1.6}#overlayActions{display:flex;gap:10px;flex-wrap:wrap}#overlayActions button{padding:8px 16px;font-size:14px}.photo-preview{display:block;width:180px;height:95px;object-fit:cover;border:5px solid #fff7e4;transform:rotate(-3deg);margin-bottom:12px}.result-stars{color:#f4cd88;letter-spacing:8px;font-size:25px;margin:12px 0}.settings button{font-size:14px;padding:0 10px}.settings{gap:12px}.intro{max-height:100%;overflow:auto}#collection .empty{background:#ffffff0b;height:130px;display:grid;place-items:center;font-size:35px;color:#9bb7bd}@media(max-width:1000px){.journey{grid-template-columns:repeat(3,minmax(0,1fr))}.level-card img{height:85px}.settings{gap:8px}.brand span{letter-spacing:1px}footer span:last-child{font-size:10px}}@media(max-width:700px){.settings{gap:5px}.settings label{font-size:0;gap:0}.settings label::before{font-size:12px}.settings label:has(#music)::before{content:'♫'}.settings label:has(#sound)::before{content:'♪'}.settings input{width:15px;height:15px}.settings button{padding:0 7px;font-size:12px}#full{display:none}.brand{font-size:23px;letter-spacing:2px}.brand span{font-size:7px}#collection{padding:20px 15px}.journey{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.collection-head{align-items:flex-start}.collection-head h2{font-size:27px}.collection-head p{font-size:12px}.card-text{padding:10px}.card-text strong{font-size:14px}.album-card p{font-size:12px}.album-card img{height:100px}.summary-strip{gap:12px}.intro .hint{font-size:12px}}@media(max-height:500px) and (orientation:landscape){.journey{grid-template-columns:repeat(5,minmax(0,1fr))}#collection{padding:18px 24px}.collection-head{margin-bottom:10px}.level-card img{height:70px}.collection-head h2{font-size:25px}.intro{max-width:75%}.intro h1{font-size:32px}.intro .hint{display:none}}@media(prefers-reduced-motion:reduce){.level-card{transition:none}#flash.snap{animation:none}}

/* 4.3.33: PWA / iOS standalone safe-area support. */
html.pwa-standalone body{min-height:100dvh;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}
html.pwa-standalone main{min-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
@media(max-width:700px){html.pwa-standalone header{height:64px}html.pwa-standalone footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}}
