:root{font-family:Arial,'Malgun Gothic',sans-serif;color:#193c34;background:#f5f4ef;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 5%;border-bottom:1px solid #d8ded6;background:#fffdf7;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:16px;color:inherit;text-decoration:none}.brand b{font-size:48px;letter-spacing:-6px}.brand span{font-size:11px;font-weight:bold;letter-spacing:2px}.brand small{display:block;letter-spacing:0;margin-top:8px;color:#7c887c}button,select,input{font:inherit}button{cursor:pointer;border:0;background:#e7eee5;color:#204b3c;border-radius:12px;padding:13px 20px;font-weight:bold;min-height:46px}button:hover{background:#d9e8d3}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #d99f35;outline-offset:3px}button.primary{background:#215944;color:white}button.dark{background:#253f39;color:#fff}nav{display:flex;gap:8px}select{padding:12px;border:1px solid #cbd6c9;border-radius:10px;background:#fff}main{max-width:1240px;margin:auto;padding:34px 30px;min-height:75vh}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:center;background:#e3ead9;border-radius:30px;padding:40px;overflow:hidden}.eyebrow{letter-spacing:3px;color:#688260;font-size:12px;font-weight:bold}h1{font-size:46px;line-height:1.2;letter-spacing:-2px;margin:16px 0}h1 small{display:block;font-size:22px;letter-spacing:0;font-weight:normal;margin-top:12px}p{line-height:1.7;color:#647467}.hero canvas{width:100%;max-width:350px}.stats{display:flex;gap:35px;margin:28px 0;font-size:13px}.stats b{font-size:24px;display:block}.section-title{display:flex;justify-content:space-between;align-items:center;margin-top:32px}h2{font-size:24px}.muted{color:#7a847b;font-size:13px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card{background:#fffdf8;border:1px solid #e1e5db;border-radius:20px;overflow:hidden;padding:18px;cursor:pointer;text-align:left;transition:transform .2s}.card:hover{transform:translateY(-4px)}.card img{display:block;width:130px;height:130px;object-fit:contain;margin:auto}.card h3{margin:12px 0 6px;font-size:18px}.card small{font-weight:normal;color:#718273}.card .num{color:#799379;font-size:12px;letter-spacing:2px}.collection{grid-template-columns:repeat(6,1fr)}.collection .card{text-align:center}.collection img{width:100%;height:130px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.toolbar input{padding:14px;border:1px solid #cbd6c9;border-radius:12px;flex:1}.play-layout{display:grid;grid-template-columns:1fr 260px;gap:22px}.board{width:100%;max-height:72vh;aspect-ratio:600/520;touch-action:none;object-fit:contain;background:#f4f3ed;border:1px solid #d8e0d3;border-radius:22px}.sidebar{background:#fffdf8;border:1px solid #dee4d8;border-radius:22px;padding:20px}.metric{font-size:36px;margin:16px 0}.tutorial{font-size:75px;text-align:center;padding:30px;animation:hand 1.6s infinite}.box{padding:22px;background:#fffdf8;border-radius:20px;border:1px solid #dce3d6;margin-bottom:18px}label{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #edf0e7}label input{width:150px;padding:10px;border:1px solid #cedac9;border-radius:9px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.badge{display:inline-block;border-radius:20px;background:#eee6ce;padding:6px 12px;font-size:12px}#notice{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:16px;background:#244c3c;color:white;border-radius:12px;display:none;z-index:5}footer{text-align:center;font-size:11px;color:#768578;padding:25px;border-top:1px solid #e0e4da}@keyframes hand{0%,100%{transform:translateX(-25px) scale(1)}50%{transform:translateX(25px) scale(.9)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}.collection{grid-template-columns:repeat(3,1fr)}.hero{padding:24px}h1{font-size:32px}.play-layout{grid-template-columns:1fr}.sidebar{display:flex;gap:15px;flex-wrap:wrap;align-items:center}.formgrid{grid-template-columns:1fr}}@media(max-width:520px){main{padding:18px 12px}header{padding:15px}.hero{grid-template-columns:1fr}.hero canvas{display:none}.grid{gap:10px}.card{padding:12px}.collection{grid-template-columns:repeat(2,1fr)}nav{gap:3px}nav button{padding:10px}.brand small{display:none}}
.stage{position:relative;align-self:start}.stage .board{display:block;max-height:none}#three-board{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#season-scene{position:absolute;inset:0;width:100%;height:100%;border-radius:22px;pointer-events:none}.stage .board{position:relative;background:transparent}.season-picker{gap:12px;flex-wrap:wrap;justify-content:flex-start;padding:12px;background:#f5f8f0;border-radius:12px}.collection .card{display:grid;grid-template-rows:180px 48px;align-items:center;justify-items:center}.collection .card h3{margin:0;line-height:1.3;max-width:100%;text-align:center;overflow-wrap:anywhere}.collection .card img{height:180px;object-fit:contain}#model{max-width:420px;width:100%;height:auto}.game-rules{position:relative}
.game-rules{margin:24px 0;padding:20px;background:#fffdf8;border:1px solid #cbd6c9;border-radius:16px}.game-rules summary{font-size:20px;font-weight:bold;cursor:pointer;min-height:44px}.game-rules table{width:100%;border-collapse:collapse;line-height:1.65}.game-rules th,.game-rules td{padding:14px;text-align:left;border-top:1px solid #d8ded6;vertical-align:top}.game-rules th{width:180px}.game-rules span[lang]{display:block;color:#415d52}.game-rules p{font-size:14px}.collection img{height:180px}.hero canvas{max-width:420px}@media(max-width:520px){.game-rules{padding:12px}.game-rules th{width:100px}.game-rules th,.game-rules td{padding:10px 5px}}

.stage.spinning-pins-feedback:not(.spinning-pins-complete) .success-feedback{display:none}
.stage.spinning-pins-feedback.spinning-pins-complete .success-feedback i,
.stage.spinning-pins-feedback.spinning-pins-complete .success-ring{display:none}
.member-box{max-width:760px;margin:24px auto}.member-box form{display:grid;gap:16px}.member-box label{display:grid;gap:6px}.member-box input,.member-box textarea{padding:12px;font-size:18px;max-width:100%;border:1px solid #81968f;border-radius:8px}.member-box p{overflow-wrap:anywhere}

.member-box form input,.member-box form textarea{width:100%;box-sizing:border-box}.member-box form label{display:grid;grid-template-columns:1fr}

.referral-panel{padding:16px;background:#edf4e9;border-radius:16px;margin:18px 0}.referral-panel textarea{width:100%;min-height:100px;font:inherit}.invite-sms{display:inline-block;padding:14px;color:#204b3c;min-height:44px}nav{flex-wrap:wrap;max-width:100%}main,.play-layout,.stage,.sidebar,.grid>*{min-width:0}.member-box h1{overflow-wrap:anywhere}#notice{max-width:90vw;width:max-content}.board{user-select:none;-webkit-user-select:none}@media(max-width:520px){header{gap:10px}header nav{width:100%;display:grid;grid-template-columns:1fr 1fr}header nav button{font-size:13px;padding:10px 6px}.brand span{letter-spacing:1px}.stats{gap:16px}.hero{padding:18px}.card img{max-width:100%}.card h3{font-size:16px}.sidebar{padding:12px;gap:10px}.sidebar button{flex:1 1 40%;padding:10px}.member-box{padding:16px}.member-box h1{font-size:26px}select{max-width:100%}.game-rules table{table-layout:fixed}.game-rules td{overflow-wrap:anywhere}.toolbar h2{font-size:20px}.volume{width:100%}}

@media(max-width:600px){body.playing header .brand,body.playing header .volume,body.playing #audio-test,body.playing #language{display:none}body.playing header{padding:8px 12px}body.playing header nav{grid-template-columns:repeat(4,1fr)}body.playing nav button{font-size:11px;min-height:44px;padding:5px}.stage{overflow:auto;max-width:100%}.stage.zoomed{height:520px}.stage.zoomed .board{width:600px;max-width:none}.stage.zoomed #season-scene,.stage.zoomed #three-board{width:600px;height:520px}.stage.zoomed #three-board{pointer-events:none}}

.brand img{width:58px;height:44px;object-fit:contain}.brand span{font-size:25px}.daily-score{padding:15px;background:#e5efdb;border-radius:16px}.rankings p{overflow-wrap:anywhere}.celebration{position:absolute;inset:0;pointer-events:none;z-index:8;overflow:hidden}.celebration strong{position:absolute;top:15%;left:5%;width:90%;text-align:center;color:#795600;font-size:clamp(18px,3vw,30px);text-shadow:0 2px white;opacity:0}.celebration i{position:absolute;left:var(--x);top:-15%;width:9px;height:16px;opacity:0}.celebration.burst strong{animation:qlb-cheer 1.2s both}.celebration.burst i{animation:qlb-confetti 1.1s ease-out both}@keyframes qlb-cheer{0%{opacity:0;transform:scale(.8)}20%,70%{opacity:1;transform:scale(1)}100%{opacity:0}}@keyframes qlb-confetti{0%{opacity:1;transform:translateY(0) rotate(0)}100%{opacity:0;transform:translateY(600px) rotate(var(--r))}}@media(prefers-reduced-motion:reduce){.celebration.burst strong{animation:none;opacity:1}.celebration i{display:none}}
.online-board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:420px}.online-board button{min-height:75px;font-size:32px}#room-state{overflow-wrap:anywhere}
.online-board img{width:65px;height:65px;object-fit:contain}.online-board button:disabled{opacity:1}
.online-board.reversi{grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;max-width:560px}.online-board.reversi button{min-height:36px;padding:1px;font-size:16px;border-radius:5px}.online-board.reversi img{width:100%;height:34px}.online-board .legal:not(:disabled){outline:2px solid #b89936}

.brand video{width:76px;height:64px;object-fit:contain;border-radius:12px;display:block}.brand span{white-space:nowrap}#preferences{max-width:720px}#preferences input[type=checkbox]{width:24px;height:24px}#preferences button{margin:12px 8px 0 0}@media(max-width:520px){.brand video{width:64px;height:56px}#preferences label{flex-wrap:wrap}#preferences select{max-width:100%}}
.game-success-word{position:absolute;left:50%;top:18%;z-index:11;transform:translate(-50%,-50%);min-width:min(70%,360px);padding:16px 28px;border:3px solid #fff1b8;border-radius:20px;background:rgba(25,60,52,.92);color:#fff8d6;text-align:center;font-size:clamp(30px,7vw,58px);font-weight:900;letter-spacing:.03em;text-shadow:0 2px 5px #102c26;box-shadow:0 12px 35px #102c2655;pointer-events:none}.game-success-word.show{animation:game-success-word 1.25s both}@keyframes game-success-word{0%{opacity:0;transform:translate(-50%,-35%) scale(.72)}16%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-68%) scale(1.05)}}@media(prefers-reduced-motion:reduce){.game-success-word.show{animation:game-success-word-gentle 1.25s both}@keyframes game-success-word-gentle{0%,100%{opacity:0}10%,85%{opacity:1}}}
.member-qr{padding:24px;border:1px solid #d6e3dc;border-radius:22px;background:#f6faf6;margin:20px 0}.member-qr canvas{display:block;width:min(280px,100%);height:auto;margin:18px auto;image-rendering:pixelated}.member-qr p,.qr-link{overflow-wrap:anywhere}.qr-link{display:block}.qr-download{display:inline-block;padding:12px 18px;background:#215944;color:white;border-radius:12px;margin-top:16px}.success-feedback{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:9;border-radius:22px}.success-feedback strong{position:absolute;left:5%;top:16%;width:90%;text-align:center;color:#fff5cb;text-shadow:0 3px 9px #263f37,0 1px 2px #263f37;font-size:clamp(24px,4vw,42px);opacity:0}.success-feedback i,.success-ring{position:absolute;left:50%;top:45%;opacity:0}.success-feedback i{width:9px;height:9px;border-radius:50%}.success-ring{width:80px;height:80px;margin:-40px;border:3px solid #ffe4a0;border-radius:50%}.success-feedback.active strong{animation:success-title 950ms both}.success-feedback.active i{animation:success-particle 700ms ease-out both}.success-feedback.active .success-ring{animation:success-ring 650ms ease-out both}.success-feedback.gentle.active strong{animation:success-gentle 1000ms both}@keyframes success-title{0%{opacity:0;transform:translateY(20px) scale(.8)}20%,65%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-18px)}}@keyframes success-particle{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(var(--sx),var(--sy)) scale(.2)}}@keyframes success-ring{0%{opacity:.8;transform:scale(.3)}100%{opacity:0;transform:scale(4)}}@keyframes success-gentle{0%,100%{opacity:0}15%,80%{opacity:1}}.stage{box-shadow:0 16px 50px #173d3524}.card img{image-rendering:auto}.board{image-rendering:auto}

.collection-learning{margin:20px 0}.collection-learning p{line-height:1.7}.learning-thumbnail{display:block;width:150px}.learning-thumbnail img{width:100%;height:auto;border-radius:12px}.learning-card-faces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:760px}.learning-card-faces figure{margin:0;text-align:center}.learning-card-faces img{width:100%;height:auto;border-radius:16px}.learning-link{display:inline-block;text-decoration:none;padding:14px 18px;border-radius:12px;max-width:100%;overflow-wrap:anywhere}@media(max-width:480px){.learning-card-faces{grid-template-columns:1fr}.collection-learning{padding:16px}}
/* NAV-023: large bilingual navigation, including signed-in balances. */
header nav :is(#home,#collection,#settings,#member-account){font-size:clamp(26px,2.25vw,36px);line-height:1.3;white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%;padding:16px 20px}
@media(max-width:600px){header nav,body.playing header nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}header nav :is(#home,#collection,#settings,#member-account){font-size:clamp(22px,6.5vw,30px);padding:12px 8px}header nav #member-account{grid-column:1 / -1}}
.stage.nonogram-feedback:not(.nonogram-complete) .success-feedback{inset:0 auto auto 0;width:21%;height:25%;overflow:hidden}
.stage.nonogram-feedback:not(.nonogram-complete) .success-feedback strong{display:none}
.stage.water-feedback:not(.water-complete) .success-feedback{inset:auto 0 0;height:8%;overflow:hidden}
.stage.water-feedback:not(.water-complete) .success-feedback strong{display:none}
.stage.water-feedback:not(.water-complete) .success-ring{width:20px;height:20px;margin:-10px}
.stage.ring-feedback:not(.ring-complete) .success-feedback{display:none}
.stage.block-feedback:not(.block-complete) .success-feedback{display:none}
.stage.link-feedback:not(.link-complete) .success-feedback{display:none}
.stage.mine-feedback:not(.mine-complete) .success-feedback{display:none}
.stage.difference-feedback:not(.difference-complete) .success-feedback{display:none}
.stage.silhouette-feedback:not(.silhouette-complete) .success-feedback{display:none}
.stage.moving-shadow-feedback:not(.moving-shadow-complete) .success-feedback{display:none}
.stage.bomb-feedback:not(.bomb-complete) .success-feedback{display:none}
.stage.pipe-feedback:not(.pipe-complete) .success-feedback{display:none}
.stage.fruit-step-feedback:not(.fruit-step-complete) .success-feedback{display:none}
.stage.balance-feedback:not(.balance-complete) .success-feedback{display:none}
/* Reduced solitaire keeps intermediate rewards from covering the next card. */
.stage.solitaire-feedback:not(.solitaire-complete) .success-feedback{display:none}
/* Keep intermediate lock rewards away from the next moving pin. */
.stage.timing-lock-feedback:not(.timing-lock-complete) .success-feedback{display:none}
.stage.escape-blocks-feedback:not(.escape-blocks-complete) .success-feedback{display:none}
.stage.sudoku-feedback:not(.sudoku-complete) .success-feedback{display:none}
.stage.ice-rescue-feedback:not(.ice-rescue-complete) .success-feedback{display:none}
.stage.mirror-light-feedback:not(.mirror-light-complete) .success-feedback{display:none}
.stage.flappy-feedback:not(.flappy-complete) .success-feedback{display:none}
.stage.sky-hop-feedback:not(.sky-hop-complete) .success-feedback{display:none}
.stage.fruit-slice-feedback:not(.fruit-slice-complete) .success-feedback{display:none}
/* Keep the final fruit-slice score readable while retaining its success title. */
.stage.fruit-slice-feedback.fruit-slice-complete .success-feedback i,
.stage.fruit-slice-feedback.fruit-slice-complete .success-ring{display:none}
.stage.jump-rope-feedback:not(.jump-rope-complete) .success-feedback{display:none}
.stage.jump-rope-feedback.jump-rope-complete .success-feedback i,
.stage.jump-rope-feedback.jump-rope-complete .success-ring{display:none}
.stage.stepping-stones-feedback:not(.stepping-stones-complete) .success-feedback{display:none}
.stage.bumper-spin-feedback:not(.bumper-spin-complete) .success-feedback{display:none}
.stage.dodge-drop-feedback:not(.dodge-drop-complete) .success-feedback{display:none}
.stage.rhythm-strings-feedback:not(.rhythm-strings-complete) .success-feedback{display:none}
.stage.seed-hunter-feedback:not(.seed-hunter-complete) .success-feedback{display:none}
.stage.cannon-launch-feedback:not(.cannon-launch-complete) .success-feedback{display:none}
.stage.wall-hop-feedback:not(.wall-hop-complete) .success-feedback{display:none}
.stage.wall-hop-feedback.wall-hop-complete .success-feedback i,
.stage.wall-hop-feedback.wall-hop-complete .success-ring{display:none}
.stage.cannon-launch-feedback.cannon-launch-complete .success-feedback i,
.stage.cannon-launch-feedback.cannon-launch-complete .success-ring{display:none}
.stage.seed-hunter-feedback.seed-hunter-complete .success-feedback i,
.stage.seed-hunter-feedback.seed-hunter-complete .success-ring{display:none}
.stage.rhythm-strings-feedback.rhythm-strings-complete .success-feedback i,
.stage.rhythm-strings-feedback.rhythm-strings-complete .success-ring{display:none}
.stage.dodge-drop-feedback.dodge-drop-complete .success-feedback i,
.stage.dodge-drop-feedback.dodge-drop-complete .success-ring{display:none}
.stage.bumper-spin-feedback.bumper-spin-complete .success-feedback i,
.stage.bumper-spin-feedback.bumper-spin-complete .success-ring{display:none}
.stage.stepping-stones-feedback.stepping-stones-complete .success-feedback i,
.stage.stepping-stones-feedback.stepping-stones-complete .success-ring{display:none}

.stage.tug-together-feedback:not(.tug-together-complete) .success-feedback{display:none}
.stage.tug-together-feedback.tug-together-complete .success-feedback i,
.stage.tug-together-feedback.tug-together-complete .success-ring{display:none}


.stage.orbit-defender-feedback:not(.orbit-defender-complete) .success-feedback{display:none}
.stage.orbit-defender-complete .success-feedback.active i,.stage.orbit-defender-complete .success-ring{display:none}
.stage.fishing-feedback:not(.fishing-complete) .success-feedback{display:none}
.stage.fishing-complete .success-feedback.active i,.stage.fishing-complete .success-ring{display:none}

.stage.direction-defender-feedback:not(.direction-defender-complete) .success-feedback{display:none}
.stage.direction-defender-complete .success-feedback.active i,.stage.direction-defender-complete .success-ring{display:none}

.stage.gear-maze-feedback:not(.gear-maze-complete) .success-feedback{display:none}
.stage.gear-maze-complete .success-feedback.active i,.stage.gear-maze-complete .success-ring{display:none}
.stage.rail-runner-feedback:not(.rail-runner-complete) .success-feedback{display:none}
.stage.rail-runner-complete .success-feedback.active i,.stage.rail-runner-complete .success-ring{display:none}

/* 394C1 profiled94 win-only feedback */
.reversi-feedback .success-particles{display:none!important}.reversi-feedback .success-title{font-size:clamp(20px,17cqw,110px)}

.stage.reversi-feedback:not(.reversi-complete) .success-feedback{display:none}
.stage.reversi-feedback .success-feedback strong{font-size:17cqw}
.stage.reversi-feedback .success-feedback i,.stage.reversi-feedback .success-ring{display:none!important}

/* 94-only completion title:17percent is position, matching91-93; actual glyph validation pending. */
.stage.reversi-complete .success-feedback.active strong{top:17%;font-size:clamp(16px,2.4vw,22px);line-height:1.15;animation:none;transform:none;opacity:1;color:#193e34;text-shadow:none;background:#fff7df;padding:0 4px;border-radius:6px}
.stage.reversi-complete .success-feedback.active span,.stage.reversi-complete .success-feedback.active i{display:none}
