:root{color-scheme:light;--ink:#40324d;--cream:#fff9e9;--pink:#ff6685;--blue:#43bddd;--yellow:#ffc94b;--mint:#6bd6a4;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100svh;color:var(--ink);background:radial-gradient(circle at 18% 15%,#fff 0 4%,transparent 20%),linear-gradient(145deg,#fff0c8,#ffd6df 48%,#c9f4ee);overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:4px solid #7351a6;outline-offset:3px}[hidden]{display:none!important}.topbar{height:68px;max-width:1050px;margin:auto;padding:0 22px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-size:11px;font-weight:900;letter-spacing:1.5px}.brand b{background:var(--pink);color:white;border-radius:20px;padding:5px 9px;letter-spacing:.5px}.small-button{background:#fff9;border:2px solid #fff;border-radius:30px;padding:9px 14px;font-size:12px;font-weight:800;box-shadow:0 4px 0 #c98fa455}.layout{max-width:1000px;margin:4px auto 0;padding:0 22px;display:grid;grid-template-columns:350px 420px;gap:80px;align-items:center;justify-content:center}.eyebrow{color:#e34169;font-size:11px;font-weight:900;letter-spacing:2px;margin:0 0 17px}h1{font-size:49px;line-height:1.35;letter-spacing:-3px;margin:0}h1 span{color:#e64971;text-shadow:3px 3px 0 #fff}.lead{font-size:15px;line-height:2;color:#685b72;font-weight:700;margin:20px 0}.rule-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:26px}.rule-cards div{background:#fff9;border:2px solid #fff;border-radius:17px;text-align:center;padding:13px 5px;box-shadow:0 7px 0 #b98c9b22}.rule-cards b{display:block;font-size:27px;height:35px}.rule-cards span{font-size:11px;line-height:1.5;font-weight:900}.record{margin-top:18px;border:2px dashed #e86d8c77;border-radius:16px;padding:14px 18px;display:grid;grid-template-columns:1fr auto;align-items:center;background:#fff6}.record span{font-size:10px;letter-spacing:1px;font-weight:800}.record strong{font-size:20px;color:#e14368}.record small{grid-column:1/-1;font-size:10px;margin-top:6px}.game-shell{min-width:0}.hud{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin:0 6px 8px;text-align:center}.hud div{background:#fff8;border-radius:13px;padding:7px 5px;border:2px solid #fff}.hud small{font-size:8px;display:block;letter-spacing:1px;color:#84738c;font-weight:800}.hud strong{font-size:17px;font-variant-numeric:tabular-nums}.viewport{position:relative;width:100%;aspect-ratio:420/620;max-height:calc(100svh - 245px);min-height:340px;background:#7fdbd0;border:5px solid #fff;border-radius:28px;overflow:hidden;box-shadow:0 16px 42px #984d6d33;isolation:isolate}canvas{display:block;width:100%;height:100%;touch-action:none}.play-hud{position:absolute;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;pointer-events:none;font-size:13px;font-weight:900;text-shadow:0 2px 0 #fff}.play-hud #hearts{color:#ec456e;letter-spacing:3px}.play-hud #level{background:#fff9;border-radius:15px;padding:5px 10px}.fever{position:absolute;top:52px;left:45px;right:45px;text-align:center;background:#fff16d;color:#9b4c2c;border:3px solid white;border-radius:30px;padding:7px;font-size:13px;font-weight:900;animation:bounce .55s infinite alternate}.toast{position:absolute;left:30px;right:30px;bottom:20px;text-align:center;color:white;font-weight:900;font-size:17px;text-shadow:0 3px 6px #794356;pointer-events:none}.overlay{position:absolute;inset:0;background:#614975c9;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:25px}.overlay:empty{display:none}.card{width:100%;max-height:100%;overflow:auto;background:var(--cream);border:4px solid white;border-radius:24px;text-align:center;padding:23px;box-shadow:0 12px 0 #422b5155}.card .big{font-size:50px;margin:0}.card h2{font-size:25px;margin:7px 0}.card p{font-size:12px;line-height:1.8;color:#716379;margin:8px 0 16px}.card .score-big{font-size:38px;color:#e14368;font-weight:900;line-height:1.2}.primary,.secondary{width:100%;min-height:49px;border-radius:14px;font-weight:900}.primary{background:var(--pink);color:white;box-shadow:0 5px 0 #b93f5d}.secondary{background:white;border:2px solid #e6d9df;margin-top:11px}.sticker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.sticker{background:white;border:2px solid #f2dce4;border-radius:13px;padding:8px 3px;font-size:29px}.sticker small{display:block;font-size:8px;margin-top:4px}.sticker.locked{filter:grayscale(1);opacity:.35}.turn-buttons{display:grid;grid-template-columns:74px 1fr 74px;gap:9px;margin-top:11px;align-items:center}.turn-buttons>button{height:54px;border-radius:16px;background:#fff;color:#d93d68;font-size:29px;font-weight:900;box-shadow:0 5px 0 #d59bad}.turn-buttons>button:active{transform:translateY(3px);box-shadow:0 2px 0 #d59bad}.turn-buttons>button small{display:block;font-size:8px;line-height:8px}.turn-buttons>div{text-align:center;font-size:11px;line-height:1.4}.turn-buttons>div small{display:block;font-size:8px;color:#7d6e82;margin-top:3px}.game-menu{display:flex;gap:8px;margin-top:14px}.game-menu button{flex:1;background:#fff8;border:2px solid #fff;border-radius:12px;padding:9px 5px;font-size:10px;font-weight:800}.game-menu button:disabled{opacity:.45}.save-note{text-align:center;font-size:8px;color:#826f80;margin:8px 0}footer{text-align:center;font-size:8px;letter-spacing:3px;color:#82667a;margin:19px 0}@keyframes bounce{to{transform:translateY(-3px)}}@media(max-width:799px){.topbar{height:50px;max-width:480px;padding:0 14px}.brand{font-size:9px}.layout{display:block;max-width:450px;padding:0 12px;margin:auto}.intro{display:none}.viewport{max-height:calc(100svh - 215px);min-height:300px;border-width:4px;border-radius:22px}.hud{margin-bottom:5px}.turn-buttons{margin-top:8px}.game-menu{margin-top:10px}.save-note{margin:6px 0}footer{margin:10px 0}.overlay{padding:20px}.card{padding:19px}.card h2{font-size:22px}}@media(max-height:590px) and (orientation:landscape){.topbar{height:42px}.layout{display:grid;grid-template-columns:235px 330px;gap:28px;max-width:700px}.intro{display:block}.lead,.rule-cards,.record{display:none}h1{font-size:34px}.viewport{height:365px;min-height:0}.hud{display:none}.turn-buttons{grid-template-columns:60px 1fr 60px}.game-menu,.save-note,footer{display:none}.eyebrow{margin-bottom:10px}}@media(prefers-reduced-motion:reduce){.fever{animation:none}}
/* Keep the 420:620 playfield undistorted when vertical space is limited. */
.viewport{width:min(100%,calc((100svh - 245px)*420/620));height:auto;margin-left:auto;margin-right:auto;max-height:none}
@media(max-width:799px){.viewport{width:min(100%,calc((100svh - 215px)*420/620));height:auto;max-height:none}}
@media(max-height:590px) and (orientation:landscape){.viewport{width:100%;height:365px}}
