:root{font-family:ui-rounded,'Hiragino Maru Gothic ProN','Yu Gothic',sans-serif;color:#66331e;background:#fff8ec;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 15% 20%,#ffe5b880,transparent 30%),radial-gradient(circle at 85% 80%,#ffd1c580,transparent 30%),#fff8ec}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #623eee;outline-offset:3px}.game{width:min(100%,470px);margin:auto;padding:22px 18px 28px}.topline{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:800;letter-spacing:1px;color:#a78468}.topline div{display:flex;gap:8px}.topline button{border:1px solid #ead9c4;border-radius:20px;background:#fffaf2;color:#8e6950;padding:6px 10px;font-size:11px}header{position:relative;text-align:center;padding:25px 0 24px}h1{font-size:clamp(30px,8.8vw,43px);letter-spacing:-3px;margin:0;color:#fff5e9;-webkit-text-stroke:1px #d85447;text-shadow:0 3px 0 #c54439,0 6px 0 #f8b6a0;filter:drop-shadow(0 2px 2px #e9b491);transform:rotate(-3deg);font-weight:1000}h1 span{color:#ffd24e;-webkit-text-stroke:1px #b76226}h1 i{color:#fa675a;font-style:normal;margin-left:5px}header p{font-size:11px;font-weight:800;margin:19px 0 0;color:#9b7054}.spark{position:absolute;color:#ffbc3c;font-size:25px;top:25px}.s1{left:0}.s2{right:0;top:53px;font-size:17px}.panel{padding:14px;border-radius:28px;background:linear-gradient(#fffaf1,#fcebd2);border:2px solid #fff;box-shadow:0 7px 0 #dec3a0,0 12px 28px #a5632820}.stats{display:flex;gap:10px;margin-bottom:14px}.stats>div{flex:1;display:flex;align-items:center;justify-content:space-between;border-radius:20px;background:#fffaf2;border:1px solid #efddc5;padding:10px 14px;box-shadow:0 2px 3px #cfab8020}.stats small{font-size:11px;font-weight:800}.stats strong{font-size:28px;line-height:1;color:#72391e;font-weight:900;font-variant-numeric:tabular-nums}#score{color:#ee5b4c}.boardwrap{position:relative}.board{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;padding:7px;background:#e9cfab;border-radius:18px;box-shadow:inset 0 2px 5px #9f653325}.cell{aspect-ratio:1;min-width:0;position:relative;display:grid;place-items:center;padding:3px;border:1px solid #fff5e8;background:linear-gradient(140deg,#f9ecdb,#edd8ba);border-radius:11px;box-shadow:inset 0 -2px 2px #d1b18c40;touch-action:manipulation}.cell:not(:disabled):hover{background:#fff5df}.cell:disabled{cursor:default}.token{width:90%;height:90%;border-radius:50%;position:relative;display:block;border:2px solid #fff9;box-shadow:inset 0 3px 3px #fff8,inset 0 -5px 3px #0002,0 3px 3px #6b371b30;transition:background .2s;pointer-events:none}.token:before{content:'';position:absolute;width:32%;height:16%;background:#ffffffe8;border-radius:50%;left:15%;top:13%;transform:rotate(-40deg);filter:blur(.5px)}.red{background:radial-gradient(circle at 32% 22%,#ff9b94,#ff364c 58%,#c91636)}.blue{background:radial-gradient(circle at 32% 22%,#8ddcff,#259bff 58%,#1464cd)}.yellow{background:radial-gradient(circle at 32% 22%,#fff39a,#ffc32a 58%,#e99500)}.hint{outline:3px solid #ffcb4c;outline-offset:-2px;animation:hint 1.4s infinite}.hint:after{content:'ここ！';position:absolute;bottom:-5px;background:#fff4cf;border:1px solid #f5bf40;border-radius:6px;font-size:10px;padding:2px 5px;z-index:2}.flip .token{animation:flip .35s ease}.pop .token{animation:pop .48s both}.placed .token{animation:place .25s ease}#status{text-align:center;font-size:11px;font-weight:800;min-height:17px;margin:14px 0;color:#9d7050}.tray{display:flex;align-items:center;justify-content:space-between;border:1px solid #fff;border-radius:19px;padding:13px;background:#fff8ec;box-shadow:0 2px 2px #dec3a060}.tray small{font-weight:900;font-size:13px}.tray span:not(.token){display:block;font-size:9px;color:#a8866a;margin-top:5px}#queue{display:flex;align-items:center;gap:8px}#queue .token{width:33px;height:33px;opacity:.65}#queue .token:first-child{width:43px;height:43px;opacity:1;outline:3px solid #ffd27a;outline-offset:3px}.foot{display:flex;align-items:center;justify-content:space-between;margin:23px 6px 0;font-size:11px;color:#ac8464;letter-spacing:1px}.foot b{color:#77452d;margin-left:5px}.foot button{border:0;background:transparent;color:#947254;font-size:12px;font-weight:800}.tip{text-align:center;font-size:10px;color:#b7957a;margin-top:20px}#burst{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center;z-index:4}.bonus{font-size:46px;color:#ff574e;font-weight:1000;text-shadow:2px 2px white,-2px -2px white,0 4px white;animation:bonus .95s both;transform:rotate(-8deg)}.particle{position:absolute;width:10px;height:10px;background:#ffd64f;border-radius:3px;animation:fly .7s forwards}.overlay{position:fixed;inset:0;background:#62362155;backdrop-filter:blur(7px);display:grid;place-items:center;padding:24px;z-index:10}.overlay[hidden]{display:none}.modal{width:min(100%,370px);border-radius:28px;border:3px solid #fff;background:#fff8eb;padding:28px 24px;box-shadow:0 15px 50px #61342133}.eyebrow{font-size:10px;letter-spacing:3px;color:#d49a63;font-weight:900}.modal h2{font-size:23px;margin:12px 0 22px}.rule{display:flex;align-items:start;gap:12px;margin:18px 0;font-size:13px;line-height:1.8}.rule b{background:#ff655b;border-radius:50%;color:white;min-width:27px;text-align:center}.rule strong{display:block}.rule small{color:#a47a5b}.primary{width:100%;border:2px solid #fff;border-radius:18px;padding:15px;background:linear-gradient(#ff8274,#f5534c);color:white;box-shadow:0 4px 0 #ce413b;font-weight:900;margin-top:12px}.result{text-align:center}.result strong{display:block;font-size:54px;color:#f35c4d}.result p{color:#a88061;font-size:13px}@keyframes hint{50%{box-shadow:0 0 15px #ffc65b}}@keyframes flip{50%{transform:scaleX(.12) scale(1.1)}}@keyframes pop{35%{transform:scale(1.22);filter:brightness(1.5)}100%{transform:scale(0);opacity:0}}@keyframes place{from{transform:scale(.3)}70%{transform:scale(1.15)}}@keyframes bonus{0%{opacity:0;scale:.5}30%{opacity:1;scale:1.1}80%{opacity:1}100%{opacity:0;translate:0 -30px}}@keyframes fly{to{transform:translate(var(--x),var(--y)) rotate(160deg);opacity:0}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important}}@media(max-width:360px){.game{padding:14px 10px}.panel{padding:10px}.stats>div{padding:10px}.stats strong{font-size:24px}#queue{gap:5px}}
/* Playful, layered game logo and celebratory results */
header{padding:13px 0 19px}.logo{position:relative;width:285px;max-width:100%;margin:0 auto;padding:4px 0 10px}.logo:before{content:'';position:absolute;inset:16px 0 5px;background:linear-gradient(150deg,#ff9b78,#ff615b 65%,#e83e4c);border-radius:45% 35% 42% 32%;transform:rotate(-5deg);border:3px solid #fff4da;box-shadow:0 5px 0 #c8493c,0 9px 0 #f3ce9c}.logo:after{content:'';position:absolute;inset:2px -7px;background:conic-gradient(from 10deg,transparent 0deg 14deg,#ffc95c 15deg 20deg,transparent 21deg 69deg,#ffc95c 70deg 77deg,transparent 78deg 180deg,#ffc95c 181deg 185deg,transparent 186deg 260deg,#ffc95c 261deg 267deg,transparent 268deg);z-index:-1;border-radius:50%}.logo h1{position:relative;z-index:2;filter:none;line-height:1.04;font-size:46px;letter-spacing:-3px;transform:rotate(-4deg);margin:0;text-shadow:2px 0 #ad3935,-2px 0 #ad3935,0 -2px #ad3935,0 4px #ad3935,0 7px #a6322d;-webkit-text-stroke:1px #ad3935}.logo h1 .logo-top{display:block;font-size:35px;color:#fffbe8;-webkit-text-stroke:1px #ad3935;letter-spacing:2px}.logo h1 .logo-bottom{display:block;color:#ffdf55;-webkit-text-stroke:1px #a95027}.logo h1 i{color:#fffbe8;margin:0}.logo-chip{position:absolute;width:23px;height:23px;border-radius:50%;border:2px solid white;box-shadow:0 3px 0 #0002;z-index:3}.logo-chip.red{left:0;top:8px;transform:rotate(-15deg)}.logo-chip.blue{right:4px;top:22px}.logo-chip.yellow{left:24px;bottom:0;width:16px;height:16px}.logo-star{position:absolute;right:10px;bottom:0;z-index:3;color:#fff6c1;text-shadow:0 2px #c35a2d;font-size:25px}header p{margin:15px 0 0}.spark{top:24px}.s2{top:90px}.modal{max-height:90dvh;overflow:auto;position:relative}.celebration{border-color:#fff3c8;background:radial-gradient(ellipse at 50% 20%,#fff1bc,transparent 50%),#fff9ec;text-align:center;box-shadow:0 0 0 6px #ffcd6155,0 20px 70px #66332240}.celebration .eyebrow{color:#f25949;font-size:13px;letter-spacing:3px}.celebration h2{font-size:28px;color:#e64c3e;margin:10px 0 3px;text-shadow:0 2px white}.result{position:relative;z-index:2}.result-crown{font-size:48px;color:#ffbc22;line-height:1.2;filter:drop-shadow(0 3px 0 #d58e28);animation:crown .7s ease both}.result p{margin:5px 0}.result strong{font-size:clamp(44px,13vw,64px);font-variant-numeric:tabular-nums;line-height:1.15;color:#f05b49;text-shadow:0 3px white,0 5px #f5be89}.score-unit{font-size:10px;letter-spacing:4px;font-weight:900;color:#d59554}.result-best{margin:14px auto 16px;border-radius:30px;background:#fff0cc;padding:9px 16px;font-size:11px;color:#a87535;display:inline-flex;gap:10px;align-items:center;letter-spacing:1px}.result-best b{font-size:19px;color:#885024}.best-badge{background:#ff6253;color:white;font-size:9px;padding:3px 6px;border-radius:6px}.rankheading{font-size:12px;margin:12px 0;color:#a47c59}.ranklist{position:relative;z-index:2;border:1px solid #efdcb9;border-radius:16px;overflow:hidden;background:#fffcf6;text-align:left}.rankrow{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid #f1e5d2;font-size:12px}.rankrow:last-child{border:0}.rankrow.current{background:#fff0c8}.ranknum{font-weight:900;font-size:18px;color:#c49155;min-width:24px}.rankrow:first-child .ranknum{color:#edae14;font-size:23px}.rankdate{color:#a5856a;font-size:10px;flex:1}.rankrow strong{font-size:17px;color:#754526;font-variant-numeric:tabular-nums}.rankrow small{font-size:9px;font-weight:normal;color:#b19070}.ranknote{font-size:9px;color:#ad9077;margin:10px 0}.rankempty{font-size:12px;padding:12px;color:#a5856a}.rankbest{background:#fff0cc;border-radius:16px;padding:12px;margin-bottom:15px;font-size:12px;display:flex;justify-content:space-between;align-items:center}.rankbest strong{font-size:28px;color:#e75b46}.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:25px}.confetti i{position:absolute;top:-20px;width:8px;height:14px;background:var(--color);animation:confetti 1.8s var(--delay) ease-out both}.celebration .primary{position:relative;z-index:2;background:linear-gradient(#ff9e52,#ff6650);box-shadow:0 4px 0 #d84f36}.topline{letter-spacing:.3px}.topline div{gap:5px}.topline button{padding:6px 8px;font-size:10px}@keyframes confetti{0%{transform:translateY(0) rotate(var(--rot));opacity:1}100%{transform:translateY(600px) rotate(calc(var(--rot) + 300deg));opacity:0}}@keyframes crown{from{transform:scale(0) rotate(-30deg)}70%{transform:scale(1.2) rotate(10deg)}to{transform:scale(1) rotate(0)}}
body.at-title .game>.topline,body.at-title .game>header,body.at-title .game>.panel,body.at-title .game>.foot,body.at-title .game>.tip{display:none}.title-screen{min-height:100dvh;display:grid;place-items:center;padding:26px 20px;background:radial-gradient(ellipse at 50% 28%,#fff5d2,transparent 60%)}.title-screen[hidden]{display:none}.title-content{width:min(100%,390px);text-align:center}.title-kicker{font-size:12px;font-weight:800;color:#b4845f;letter-spacing:3px;margin:8px 0 4px}.title-logo{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 15px #c2722820)}.title-description{font-size:12px;font-weight:800;color:#966443;margin:0 0 24px}.title-pieces{display:flex;gap:14px;justify-content:center;margin:0 0 30px}.title-pieces .token{width:46px;height:46px}.title-pieces .token:nth-child(2){transform:translateY(-8px)}.title-play{font-size:23px;padding:18px;border-radius:24px;margin:0;background:linear-gradient(#ff976b,#ff6256);box-shadow:0 6px 0 #d6493c,0 9px 20px #da744d22}.title-play span{font-size:15px;margin-left:15px}.title-menu{display:flex;gap:12px;margin-top:23px}.title-menu button{flex:1;border:2px solid white;border-radius:17px;background:linear-gradient(#fffdf5,#ffefcf);box-shadow:0 3px 0 #dfc099;padding:14px 6px;color:#805135;font-weight:800;font-size:14px}.title-best{color:#b58c60;font-size:10px;font-weight:800;letter-spacing:2px;margin-top:32px}.title-best strong{display:block;font-size:30px;letter-spacing:1px;color:#aa6c39;margin-top:6px}.title-note{font-size:10px;color:#b49a80;margin-top:23px}header{padding:0 0 16px}.image-heading{all:unset;display:block}.game-logo{display:block;width:230px;max-width:80%;height:auto;margin:-5px auto -12px}header p{margin:0;font-size:10px}.help-modal{width:min(94vw,900px)}.help-visual-link{display:block;text-decoration:none;color:#ad805a;font-size:10px;text-align:center}.help-visual{display:block;width:100%;height:auto;border-radius:14px}.help-visual-link span{display:block;margin:8px 0 15px}.help-modal .rule{margin:10px 0}.help-modal h2{margin-bottom:15px}@media(min-width:650px){.help-modal .rule{display:inline-flex;width:32%;vertical-align:top;font-size:12px}.help-modal .primary{width:240px;display:block;margin:16px auto 0}}@media(max-height:720px){.title-screen{padding:18px 20px}.title-logo{width:85%;margin:auto}.title-pieces{margin-bottom:20px}.title-best{margin-top:24px}.title-description{margin-bottom:20px}}
#onlineStatus{font-size:10px;color:#ac7958;min-height:16px;line-height:1.6;margin:8px 0 12px}.nickname-label{display:flex;align-items:center;gap:8px;color:#9e7050;font-size:11px;margin:12px 0}.nickname-label input{min-width:0;flex:1;border:1px solid #e6ccb0;border-radius:10px;padding:9px;background:#fffdf8;color:#77432d;font:inherit}.online-buttons{display:flex;gap:8px}.online-buttons button,.offline-play{background:none;border:1px solid #e6ccb0;border-radius:12px;padding:8px;color:#9b7051;font-size:10px}.online-buttons button{flex:1}.offline-play{margin-top:16px;border:0;text-decoration:underline}.title-play:disabled{opacity:.6;cursor:wait}

/* Stage mode */
.purple{background:radial-gradient(circle at 32% 22%,#eac7ff,#b961f2 58%,#8034bf)}.purple:after{content:'✦';position:absolute;inset:0;display:grid;place-items:center;color:#ffffffb0;font-size:14px}.stone-cell{background:linear-gradient(145deg,#c7bbae,#8d8278);border-color:#efe8df}.stone{color:#e7dfd5;font-size:30px;text-shadow:0 3px #72675c}.stage-progress{font-size:11px;color:#a6784c;margin:14px 0}.classic-play{display:block;width:100%;padding:12px;border:1px solid #ebd1a9;border-radius:16px;background:#fff7e8;color:#94613c;font-weight:800;font-size:13px}.stage-hud{padding:4px 5px 13px}.stage-hud[hidden]{display:none}.stage-hud>div{display:flex;align-items:center;justify-content:space-between}.stage-hud b{font-size:10px;color:#d16c43;letter-spacing:1px}.stage-hud button{font-size:10px;border:1px solid #ebd1a9;border-radius:9px;background:#fff7e7;padding:5px 9px;color:#94613c}.stage-hud h2{font-size:17px;margin:7px 0}.stage-hud p{font-size:11px;margin:6px 0;color:#a0744d}.stage-hud progress{width:100%;height:9px;accent-color:#ff7860;border:0;border-radius:10px;overflow:hidden}.stage-hud progress::-webkit-progress-bar{background:#f1dfbf}.stage-hud progress::-webkit-progress-value{background:linear-gradient(90deg,#ffc747,#ff7762);border-radius:10px}.stage-map-modal{width:min(95vw,480px)}.stage-map-modal #modalBody{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.chapter-title{grid-column:1/-1;margin:13px 0 3px;font-size:12px;color:#ab7753}.stage-card{display:flex;flex-direction:column;align-items:center;padding:10px 4px;gap:5px;border:1px solid #ebd4af;border-radius:15px;background:#fffdf5;color:#85502c;min-width:0}.stage-card b{font-size:25px;color:#f17350}.stage-card span{font-size:9px;overflow-wrap:anywhere}.stage-card small{font-size:8px;line-height:1.4;color:#b28a63}.stage-card.done{background:#fff0bf;border-color:#efc657}.stage-card.locked{opacity:.55;background:#e8e1d8;cursor:default}.stage-result-actions{display:flex;gap:8px;margin-top:17px}.stage-result-actions button{flex:1;padding:10px;border:1px solid #e6cba7;border-radius:13px;background:#fff8eb;color:#95613f;font-size:11px}.title-screen{padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom))}.game{padding-bottom:max(28px,env(safe-area-inset-bottom))}@media(max-width:360px){.stage-map-modal{padding:20px 14px}.stage-card b{font-size:22px}}
.audio-settings{margin:12px auto 0;max-width:300px;font-size:11px;color:#94613c}.audio-settings summary{cursor:pointer}.audio-settings label{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:12px 0}.audio-settings input{accent-color:#f47758;max-width:210px;flex:1}.audio-message{font-size:10px;color:#b66e4b;line-height:1.6}.help-demo{background:#fff1d8;border:1px solid #efd7ad;border-radius:20px;padding:14px;margin-bottom:18px}.demo-top{display:flex;align-items:center;justify-content:space-between;font-size:13px}.demo-top button{background:#fffaf0;border:1px solid #dec299;border-radius:9px;padding:7px;font-size:10px;color:#96623e}#demoCaption{text-align:center;font-size:12px;font-weight:800;min-height:32px;color:#ce6248}.demo-board{width:min(100%,320px);margin:auto;gap:4px}.demo-board .cell{cursor:default}.demo-target{outline:3px solid #ffc43d;outline-offset:-2px}.demo-finger{position:absolute;right:-4px;bottom:-10px;font-size:28px;z-index:3;color:#774727;filter:drop-shadow(0 2px white)}.demo-note{text-align:center;font-size:9px;color:#b08a65;margin-bottom:0}.topline{gap:4px}.topline div{flex-wrap:wrap;justify-content:flex-end}.topline button{white-space:nowrap}body.at-title .game{padding-top:0;padding-bottom:0}
.title-audio-controls{display:flex;gap:12px;margin:20px auto 0;max-width:330px}.audio-switch{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2px solid!important;border-radius:24px!important;font-weight:900!important;transition:background .15s,color .15s}.title-audio-controls .audio-switch{flex:1;padding:12px 8px!important;font-size:13px!important}.audio-switch:after{content:'';width:25px;height:14px;display:inline-block;border-radius:20px;background:radial-gradient(circle at 7px 7px,white 0 5px,transparent 5.5px),#aa9c8b;flex-shrink:0}.audio-on{color:#29684b!important;background:#e1f3dc!important;border-color:#80b88a!important}.audio-on:after{background:radial-gradient(circle at 18px 7px,white 0 5px,transparent 5.5px),#43965b}.audio-off{color:#7c7166!important;background:#eae5de!important;border-color:#c6bdb1!important}.audio-warning{border-color:#e9a443!important}.sound-state{display:flex;justify-content:center;gap:16px;font-size:10px;color:#9d8062;margin:10px 0}.sound-state b{color:#70543e}.opening-note{font-size:10px;color:#ae835b;line-height:1.7;margin:12px 0 8px}.preview-audio{border:1px solid #e6bd85;border-radius:14px;padding:9px 14px;color:#96603b;background:#fff0d3;font-size:11px}.preview-audio:disabled{opacity:.45;cursor:default}.topline .audio-switch{padding:6px 8px!important}.topline .audio-switch:after{width:19px;height:12px;background:radial-gradient(circle at 6px 6px,white 0 4px,transparent 4.5px),#aa9c8b}.topline .audio-on:after{background:radial-gradient(circle at 13px 6px,white 0 4px,transparent 4.5px),#43965b}
.secondary-action{width:100%;border:1px solid #dec5a1;border-radius:15px;padding:13px;background:#fffaf1;color:#87603f;font-weight:800;margin-top:12px}
