:root{font-family:ui-rounded,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#28475b;background:#dcebed;font-synthesis:none}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{overscroll-behavior:none}button{font:inherit;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible{outline:3px solid #eeb86f;outline-offset:2px}#app{max-width:580px;margin:auto;background:#dcebed;min-height:100dvh}.home,.page{padding:calc(env(safe-area-inset-top) + 18px) 18px calc(92px + env(safe-area-inset-bottom))}.mast,.brand,.page-header,.play-top{display:flex;align-items:center;justify-content:space-between}.brand{justify-content:flex-start;gap:10px}.brand-icon{width:45px;height:45px;display:grid;place-items:center;background:#fff9ed;color:#477c91;border-radius:14px;font-size:31px;box-shadow:0 3px 0 #c6dadd}.brand h1{font-size:23px;margin:0;letter-spacing:-.9px}.brand small{font-size:8px;letter-spacing:1.5px;font-weight:800;color:#76929b}.circle{width:41px;height:41px;background:#fff9ed;border-radius:50%;font-size:20px;color:#587f8b}.welcome{background:#fff9ed;border-radius:23px;padding:20px;margin-top:25px;position:relative;box-shadow:0 5px 0 #cddddd}.eyebrow{font-size:10px;color:#72919b;letter-spacing:1.3px;font-weight:850}.welcome h2{font-size:25px;letter-spacing:-.8px;margin:5px 0}.welcome p{font-size:12px;color:#78909c;margin:5px 0 23px}.medal{position:absolute;right:21px;top:21px;color:#88a876;font-size:42px;background:#e7f0d9;border-radius:15px;width:54px;height:54px;text-align:center;line-height:54px}.progress-info{display:flex;justify-content:space-between;font-size:12px;color:#65818b}.progress{display:flex;gap:5px;margin-top:10px}.progress i{height:8px;flex:1;border-radius:5px;background:#e5e7df}.progress i.filled{background:#83b1a1}.section-head{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.section-head h3{font-size:16px;margin:0}.section-head span{font-size:12px;color:#72909b}.cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.game-card{background:#fff9ed;min-height:157px;border-radius:19px;text-align:left;padding:14px;display:flex;flex-direction:column;align-items:flex-start;position:relative;box-shadow:0 3px 0 #cbdedb;color:#28475b}.game-symbol{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;font-size:37px;margin-bottom:10px}.card-sudoku .game-symbol{background:#c3deec}.card-picross .game-symbol{background:#f4dcb6}.card-mines .game-symbol{background:#dcd4ee}.game-card strong{font-size:16px}.game-card small{font-size:11px;color:#78909b;margin-top:4px}.card-arrow{position:absolute;right:15px;top:14px;color:#a6b9bb}.daily-banner{width:100%;margin-top:19px;background:#f9f5e9;border-radius:17px;padding:17px;display:flex;text-align:left;align-items:center;gap:14px;color:#28475b}.daily-banner>span:first-child{font-size:27px;color:#d3a559}.daily-banner>span:nth-child(2){display:flex;flex:1;flex-direction:column;gap:4px}.daily-banner small,.career small{color:#7b939a;font-size:11px}.daily-banner>span:last-child{font-size:24px}.career{display:flex;align-items:center;gap:12px;background:#fff9ed;border-radius:17px;padding:18px;flex-wrap:wrap}.career>span{font-size:29px}.career>div:nth-child(2){display:flex;flex-direction:column;gap:3px}.mini-progress{flex-basis:100%;height:6px;border-radius:9px;background:#e5e7df;overflow:hidden}.mini-progress i{height:100%;display:block;background:#8dbba6}.tabbar{position:fixed;max-width:580px;left:50%;transform:translateX(-50%);bottom:0;width:100%;height:calc(67px + env(safe-area-inset-bottom));background:#fff9ed;display:flex;justify-content:space-around;padding:8px 8px env(safe-area-inset-bottom);z-index:20;border-top:1px solid #e3e8e2}.tabbar button{background:transparent;color:#92a5a9;flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px;font-size:10px;font-weight:650}.tabbar button span{font-size:23px}.tabbar button.selected{color:#4d869a}.page-header{height:45px;margin-bottom:22px}.page-header h2{font-size:20px}.back{font-size:32px;color:#3d6777;background:#fff9ed;border-radius:12px;width:43px;height:43px;line-height:32px}.right-empty{width:43px}.choice-head{text-align:center;background:#fff9ed;border-radius:23px;padding:27px 17px}.hero-symbol{font-size:66px;background:#dcebed;border-radius:22px;display:inline-grid;place-items:center;width:92px;height:92px}.choice-head h3{margin:14px 0 6px;font-size:24px}.choice-head p,.hint-text,.lead{font-size:13px;color:#6e8994;line-height:1.5}.choice-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 22px}.choice-options button{padding:15px 8px;background:#fff9ed;border-radius:13px;color:#466c7b;font-weight:700;border:2px solid transparent}.choice-options button.is-active{border-color:#669fb2;background:#eaf5f4}.choice-info{margin:18px 0;color:#65818b;text-align:center}.primary,.outline,.import-button{width:100%;margin:10px 0 0;padding:17px;border-radius:15px;background:#598fa4;color:white;font-weight:800;font-size:15px;text-align:center;display:block}.primary.secondary,.outline,.import-button{background:#fff9ed;color:#4b8093}.hint-text{text-align:center;margin-top:20px}.date-banner{background:#fff9ed;padding:18px;border-radius:18px;display:flex;gap:12px;text-transform:capitalize;font-weight:800}.lead{margin:22px 0}.daily-list,.record-list{display:flex;flex-direction:column;gap:11px}.daily-item,.record{display:flex;gap:12px;align-items:center;width:100%;background:#fff9ed;padding:14px;border-radius:15px;text-align:left;color:#28475b}.daily-icon{background:#c4dfeb;border-radius:13px;width:48px;height:48px;display:grid;place-items:center;font-size:29px}.daily-item>span:nth-child(2),.record>div{display:flex;flex-direction:column;gap:4px;flex:1}.daily-item small,.record small{color:#8499a0;font-size:12px}.daily-item>b:last-child{font-size:25px}.stat-banner{background:#fff9ed;border-radius:18px;padding:25px;margin-bottom:24px;display:flex;flex-direction:column;gap:6px}.stat-banner b{font-size:34px}.stat-banner span{color:#76939b}.setting-card{background:#fff9ed;border-radius:17px;padding:18px;margin-bottom:14px}.setting-card h3{margin:0 0 14px}.setting-card p{color:#708892;font-size:13px;line-height:1.5}.setting-card .outline,.setting-card .import-button{border:1px solid #d9e3df}.toggle{display:flex;justify-content:space-between;align-items:center}.toggle input{width:22px;height:22px;accent-color:#598fa4}.connection{font-size:12px;color:#488977;margin-top:10px}.play{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 11px) 12px calc(env(safe-area-inset-bottom) + 15px);display:flex;flex-direction:column}.play-top{min-height:48px;gap:8px}.play-title{flex:1;text-align:center;display:flex;flex-direction:column;gap:2px}.play-title b{font-size:19px}.play-title small{font-size:12px;color:#7c939d}.timer{background:#fff9ed;color:#4a7586;border-radius:12px;height:43px;min-width:80px;font-weight:800}.game-stage{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:0;padding:10px 0}.game-meta{display:flex;justify-content:space-between;width:100%;font-size:12px;color:#6b8994;margin-bottom:13px}.sudoku-board{display:grid;grid-template-columns:repeat(9,1fr);width:min(calc(100vw - 24px),440px);aspect-ratio:1;border:3px solid #49758a;background:#fffdf6;box-shadow:0 5px 0 #c6d9dc}.sudoku-cell{min-width:0;min-height:0;padding:0;background:transparent;border-right:1px solid #c2d2d5;border-bottom:1px solid #c2d2d5;color:#427f9a;font-weight:650;font-size:clamp(15px,5vw,25px);position:relative}.sudoku-cell.given{font-weight:850;color:#2b4b5d}.sudoku-cell.peer{background:#edf5f4}.sudoku-cell.same{background:#d6e7ea}.sudoku-cell.focus{background:#efd6a4!important}.sudoku-cell.invalid{color:#cb5b5b;background:#f8d8d5!important}.sudoku-cell.box-right{border-right:2px solid #527b90}.sudoku-cell.box-bottom{border-bottom:2px solid #527b90}.notes{font-size:clamp(5px,1.75vw,8px);letter-spacing:1px;display:block;line-height:1.7;word-break:break-all;color:#7596a0}.tools{width:100%;display:flex;justify-content:space-around;gap:6px;margin-top:18px}.tools button{background:#fff9ed;flex:1;max-width:100px;min-height:58px;border-radius:13px;font-size:25px;color:#518093;display:flex;flex-direction:column;align-items:center;justify-content:center}.tools button.active{background:#b2d7df}.tools small{font-size:10px;margin-top:4px}.number-pad{display:grid;grid-template-columns:repeat(9,1fr);gap:3px;width:100%;margin-top:14px}.number-pad button{background:#fff9ed;border-radius:9px;color:#386a7f;font-size:clamp(19px,6vw,31px);font-weight:800;aspect-ratio:.75}.play-tip{text-align:center;font-size:11px;color:#728e97;margin:14px 0 2px}.picross-scroller{width:100%;overflow:auto;display:flex;justify-content:center}.picross-grid{display:grid;grid-template-columns:calc(var(--rowclues)*17px + 12px) repeat(var(--cols),minmax(0,1fr));grid-template-rows:calc(var(--colclues)*16px + 12px) repeat(var(--rows),minmax(0,1fr));width:min(calc(100vw - 24px),430px);aspect-ratio:1;background:#fffaf0;border:2px solid #51778d}.pic-corner{display:grid;place-items:center;color:#aec0c2;font-size:22px}.col-clue,.row-clue{font-size:11px;font-weight:800;color:#426a7c;display:flex;align-items:center;justify-content:flex-end}.col-clue{flex-direction:column;padding-bottom:4px}.row-clue{flex-direction:row;gap:2px;padding-right:5px}.pic-cell{background:#fffaf0;border:1px solid #becfd3;padding:0;min-width:0;min-height:0;aspect-ratio:1;color:#aa9592;font-size:20px}.pic-cell.on{background:#4c8197;border-color:#4c8197}.pic-cell.cross{background:#f0eae2}.pic-cell.edge-right{border-right:2px solid #64889a}.pic-cell.edge-bottom{border-bottom:2px solid #64889a}.mine-grid{display:grid;grid-template-columns:repeat(var(--cols),1fr);width:min(calc(100vw - 24px),420px);gap:3px;background:#a3bdc2;padding:5px;border-radius:7px;aspect-ratio:1}.mine-cell{min-width:0;min-height:0;padding:0;background:#fff9ed;border-radius:3px;box-shadow:inset 0 -3px #d1e4df;font-weight:900;font-size:clamp(14px,4.2vw,22px);color:#537db2}.mine-cell.revealed{background:#dfeced;box-shadow:none}.mine-cell[data-number="2"]{color:#5d9b71}.mine-cell[data-number="3"]{color:#ce7172}.mine-cell[data-number="4"]{color:#7660a5}.result,.pause-overlay{margin:auto;background:#fff9ed;border-radius:24px;padding:35px 25px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;width:100%}.result-emoji{font-size:54px}.result h2,.pause-overlay h2{margin:2px}.result p,.pause-overlay p{color:#80949a}.result>b{font-size:30px}.result .primary,.pause-overlay .primary{margin-top:12px}#toast{position:fixed;bottom:calc(85px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#294a5c;color:#fff;padding:11px 18px;border-radius:20px;font-size:13px;transition:.2s;z-index:50;text-align:center;max-width:85vw}#toast.on{opacity:1;transform:translate(-50%,0)}@media (max-height:690px){.game-stage{justify-content:flex-start}.tools{margin-top:8px}.tools button{min-height:46px;font-size:20px}.number-pad{margin-top:8px}.play-tip{margin:7px 0}.sudoku-board{width:min(calc(100vw - 24px),calc(100dvh - 273px),420px)}.mine-grid{width:min(calc(100vw - 24px),calc(100dvh - 215px),420px)}.picross-grid{width:min(calc(100vw - 24px),calc(100dvh - 220px),420px)}}@media(min-width:600px){body{background:#c5dbdb}#app{box-shadow:0 0 40px #91b7bb}}

/* v1.1 Pastel Arcade visual refresh, calm play */
:root{color:#3a5575;background:#c4bbdf}body{background:linear-gradient(150deg,#c5b9df,#b5d8ef 65%,#d7e7d0);background-attachment:fixed}#app{background:linear-gradient(180deg,#b7d4f0 0%,#d5eec7 100%);min-height:100dvh;border-left:5px solid #faf9ff;border-right:5px solid #faf9ff;box-shadow:0 0 24px #7471a344}.home,.page{position:relative;background-image:linear-gradient(#ffffff22 1px,transparent 1px),linear-gradient(90deg,#ffffff22 1px,transparent 1px);background-size:32px 32px}.brand-icon,.circle,.game-card,.welcome,.career,.daily-item,.record,.choice-head,.setting-card,.stat-banner,.date-banner{border:3px solid #fff;box-shadow:0 5px 0 #8aa3bd55,0 7px 12px #666ca91b}.brand-icon{background:#8c9df8;color:white;box-shadow:0 4px 0 #6e7ed5;border-radius:16px}.brand h1{color:#456294;text-shadow:0 2px #ffffffba}.brand small{color:#657ca4}.welcome{display:block;width:100%;color:#3a5575;text-align:left;cursor:pointer;background:linear-gradient(160deg,#fffef4,#fef3db);margin-top:18px;padding:18px;border-radius:24px;transition:transform .15s,box-shadow .15s}.welcome:active,.game-card:active,.daily-item:active{transform:translateY(3px);box-shadow:0 2px 0 #8395bb55}.welcome h2{color:#526ba4}.welcome p{margin-bottom:13px}.welcome-cta{display:block;text-align:right;margin-top:10px;font-size:12px;font-weight:800;color:#5b8ea8}.medal{background:#e4f6bc;color:#ecb85a;box-shadow:0 3px 0 #cce1a0}.progress i{height:11px;background:#e6dff1;border:1px solid #ffffff}.progress i.filled{background:#f0bd69}.game-card{border-radius:21px;background:linear-gradient(#fffef4,#fff6e7);min-height:161px}.game-symbol{border:2px solid #ffffffbd;box-shadow:0 4px 0 #acb3c43d}.card-sudoku .game-symbol{background:#a9cff9}.card-picross .game-symbol{background:#f9ce96}.card-mines .game-symbol{background:#d8c5fa}.game-card strong{color:#4a608c}.card-arrow{color:#ef9aa5}.section-head h3{color:#52648f}.career{background:#fff9e9}.tabbar{background:#fff8ed;border-top:3px solid white;border-radius:19px 19px 0 0;box-shadow:0 -5px 20px #7474a01c}.tabbar button.selected{color:#7894dd}.primary{background:#9cd9eb;box-shadow:0 4px 0 #5eacc7;color:#37617e;border:2px solid #eaffff;border-radius:15px}.primary.secondary,.outline,.import-button{background:#f7c5c0;color:#9a5b67;box-shadow:0 4px 0 #df9a9d;border:2px solid #ffe8e3}.choice-options button.is-active{background:#d7eafc;border-color:#89aaf7}.choice-options button{box-shadow:0 3px 0 #aabbd14d}.play{background:linear-gradient(170deg,#b9d8ef,#e0efd2);min-height:100dvh}.timer{min-width:45px!important;width:45px!important;height:44px!important;font-size:21px!important;border-radius:14px!important;background:#f5d0d0!important;color:#975b7a!important;border:2px solid #fff!important;box-shadow:0 3px 0 #cf9dba!important}.pause-overlay,.result{border:3px solid #fff!important;background:#fff8ea!important;box-shadow:0 7px 0 #b3a5bf!important;border-radius:23px!important}.result-stars{font-size:34px;letter-spacing:7px;color:#efbf57;text-shadow:0 3px #db9e48}.sudoku-cell:focus-visible,.pic-cell:focus-visible,.mine-cell:focus-visible{outline:2px solid #ee9fb6;outline-offset:-2px}@media(min-width:600px){#app{border-radius:22px;overflow:hidden;min-height:calc(100dvh - 24px);margin:12px auto}.tabbar{bottom:12px}}@media(max-width:380px){.welcome{padding:14px}.game-card{min-height:145px;padding:11px}.home,.page{padding-left:12px;padding-right:12px}}

/* v1.2 edge-to-edge PWA and unified game icon colors */
html,body{width:100%;background:#b9d8ef!important;overflow-x:hidden}
#app{border-left:0!important;border-right:0!important;box-shadow:none!important;width:100%;max-width:580px;min-height:100dvh;background:linear-gradient(180deg,#b7d4f0,#d5eec7)}
@media(max-width:599px){#app{max-width:none!important;margin:0!important;border-radius:0!important}.home,.page,.play{min-height:100dvh}}
@media(min-width:600px){#app{border-radius:22px;margin:12px auto;overflow:hidden}}
.daily-icon.game-badge{padding:0;border:2px solid #fff;box-shadow:0 3px 0 #849bc344;background:#fff9ed}
.game-badge .game-symbol{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;font-size:28px;margin:0}
.game-badge.card-sudoku .game-symbol{background:#a9cff9}
.game-badge.card-picross .game-symbol{background:#f9ce96}
.game-badge.card-mines .game-symbol{background:#d8c5fa}
.picross-reveal{margin:auto;width:100%;max-width:460px;text-align:center;background:#fff8ea;border:3px solid #fff;border-radius:25px;padding:20px 15px;box-shadow:0 6px 0 #a5a8cb66;display:flex;align-items:center;flex-direction:column;gap:8px}
.picross-reveal h2{margin:0;color:#526ba4}.picross-reveal p{font-size:13px;color:#627d94;margin:3px 0 5px}.reveal-caption{color:#d38a89;font-weight:900;letter-spacing:.05em}
.reveal-art{display:grid;grid-template-columns:repeat(var(--art-cols),1fr);width:min(70vw,290px);aspect-ratio:1;border:9px solid #e6dafa;border-radius:12px;background:#fffdf0;overflow:hidden;box-shadow:0 5px 0 #9facbf}
.reveal-art span{background:#fffdf0}.reveal-art span.colored{background:#639db2}
.picross-reveal .primary,.picross-reveal .outline{margin-top:8px}

/* v1.3: pastel mahjong board, fitted in portrait without scrolling */
.card-mahjong .game-symbol,.game-badge.card-mahjong .game-symbol{background:#c5edce;color:#438878}
.mahjong-board{position:relative;width:min(calc(100vw - 24px),420px,calc((100dvh - 230px)*1.58));aspect-ratio:1.53;max-height:calc(100dvh - 230px);border-radius:18px;border:4px solid #fff9e8;box-shadow:0 7px 0 #a4b6b6;background:linear-gradient(150deg,#a5d8b8,#88c8b0);margin:14px auto;overflow:hidden}
.mahjong-tile{position:absolute;left:calc(3% + var(--x)*9.45%);top:calc(6% + var(--y)*14.7%);width:8.9%;height:13.5%;display:grid;place-items:center;border:1.5px solid #edd9b9;border-radius:6px;background:#fff7dd;box-shadow:1px 3px 0 #bea77f,2px 4px 3px #497d6e66;color:#3b6572;font-size:clamp(15px,5vw,27px);padding:0;line-height:1;transition:transform .12s,background .12s}
.mahjong-tile.blocked{opacity:.72;filter:saturate(.7)}.mahjong-tile.selected{background:#fce9ab;outline:3px solid #ed9c88;z-index:4;transform:translateY(-3px)}.mahjong-tile.hinted{background:#fff1a8;outline:3px solid #e9a658;z-index:3}.mahjong-tools{margin-top:12px}.mahjong-tools button{min-height:60px}
@media(max-width:360px){.mahjong-tile{font-size:16px}}@media(max-height:620px){.mahjong-board{width:min(calc(100vw - 24px),calc((100dvh - 195px)*1.53));max-height:calc(100dvh - 195px);margin:5px auto}.mahjong-tools{margin-top:4px}}
