:root{--cream-50:#fbf8f1;--cream-100:#f4eee2;--cream-200:#e8dfd0;--oat:#d7c9b7;--sand:#bca98f;--clay:#a8735d;--clay-dark:#7a4f40;--sage:#8f9b82;--sage-dark:#65705d;--ink:#3e382f;--muted:#81776a;--grid:#62594e;--grid-thin:#62594e3b;--paper:#fffcf6eb;--shadow:0 18px 60px #4b3d2d1f}*{box-sizing:border-box}html{color:var(--ink);background:#d8d0c4;min-width:320px}body{color:var(--ink);font-family:var(--font-sans), "PingFang TC", "Microsoft JhengHei", sans-serif;-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 30% 0,#fffcf5bf,#0000 36rem),#d8d0c4;margin:0}button,input{color:inherit;font:inherit}button{-webkit-tap-highlight-color:transparent;cursor:pointer;border:0}button:disabled{cursor:default}button:focus-visible,input:focus-visible{outline:2px solid var(--clay);outline-offset:3px}.app-shell{background:linear-gradient(155deg, #ffffff57, transparent 30%), var(--cream-50);max-width:480px;min-height:100svh;padding:0 18px calc(98px + env(safe-area-inset-bottom));margin:0 auto;position:relative;overflow-x:hidden}.topbar{padding:max(15px, env(safe-area-inset-top)) 0 14px;justify-content:space-between;align-items:center;display:flex}.brand,.profile-chip,.bottom-nav button,.difficulty-strip button,.tool-row button,.number-pad button,.timer-wrap button,.game-footnote button,.profile-card,.preference-card button,.modal-close,.avatar-grid button,.primary-button,.text-button,.pause-layer button{cursor:pointer;border:0}.brand{text-align:left;background:0 0;align-items:center;gap:10px;padding:0;display:flex}.brand-mark{background:var(--ink);color:var(--cream-50);font-family:var(--font-serif), serif;border-radius:50% 50% 46% 54%;justify-content:center;align-items:center;width:36px;height:36px;font-size:17px;display:flex;transform:rotate(-3deg)}.brand strong,.brand small{display:block}.brand strong{font-family:var(--font-serif), serif;letter-spacing:.14em;font-size:17px;font-weight:700;line-height:1}.brand small{color:var(--muted);letter-spacing:.18em;margin-top:5px;font-size:7px}.profile-chip{background:var(--cream-100);border:1px solid #7a4f401f;border-radius:999px;align-items:center;gap:7px;max-width:118px;padding:6px 10px 6px 7px;font-size:12px;display:flex}.profile-chip span:first-child{background:#e3e4d9;border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;display:flex}.profile-chip span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.welcome-row{justify-content:space-between;align-items:flex-end;margin:17px 2px 18px;display:flex}.eyebrow{color:var(--clay);letter-spacing:.18em;margin:0 0 8px;font-size:9px;font-weight:700}h1,h2,p{margin-top:0}.welcome-row h1,.sub-view>h1{font-family:var(--font-serif), "Noto Serif TC", serif;letter-spacing:-.035em;margin:0;font-size:clamp(25px,7vw,32px);font-weight:600;line-height:1.2}h1 em,h2 em{color:var(--clay-dark);font-style:normal}.streak-badge{border-left:1px solid var(--cream-200);flex-direction:column;align-items:center;min-width:54px;padding-left:15px;display:flex}.streak-badge span{font-family:var(--font-serif), serif;font-size:24px;line-height:1}.streak-badge small{color:var(--muted);margin-top:6px;font-size:9px}.difficulty-strip{background:#eee7dc;border:1px solid #65544312;border-radius:16px;grid-template-columns:repeat(5,1fr);gap:2px;margin-bottom:13px;padding:4px;display:grid}.difficulty-strip button{background:0 0;border-radius:12px;min-height:47px;padding:6px 2px;transition:background .18s,box-shadow .18s,color .18s}.difficulty-strip button small,.difficulty-strip button span{display:block}.difficulty-strip button small{color:var(--sand);font-family:var(--font-serif), serif;letter-spacing:.1em;margin-bottom:2px;font-size:8px}.difficulty-strip button span{font-size:11px}.difficulty-strip button.active{background:var(--paper);color:var(--clay-dark);box-shadow:0 3px 12px #50423114}.difficulty-strip button.active small{color:var(--clay)}.play-card{background:#faf6edb8;border:1px solid #62594e1a;border-radius:24px;padding:15px 13px 13px;box-shadow:0 12px 32px #47392812}.game-meta{justify-content:space-between;align-items:center;margin:0 3px 14px;display:flex}.game-meta>div:first-child{grid-template-columns:8px auto;align-items:center;column-gap:7px;display:grid}.level-dot{background:var(--sage);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #8f9b8224}.game-meta strong{font-size:13px;font-weight:700}.game-meta>div:first-child small{color:var(--muted);grid-column:2;margin-top:2px;font-size:8px}.timer-wrap{align-items:center;gap:8px;display:flex}.timer-wrap span{font-family:var(--font-serif), serif;font-variant-numeric:tabular-nums;font-size:17px}.timer-wrap button{background:var(--cream-200);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:10px;display:flex}.sudoku-frame{aspect-ratio:1;background:var(--paper);border-radius:12px;width:100%;position:relative;overflow:hidden}.sudoku-board{background:var(--grid);border:1.5px solid var(--grid);grid-template-columns:repeat(9,1fr);gap:0;width:100%;height:100%;display:grid;overflow:hidden}.sudoku-cell{aspect-ratio:1;border:0;border-bottom:1px solid var(--grid-thin);border-right:1px solid var(--grid-thin);cursor:pointer;background:#fffdf8;justify-content:center;align-items:center;min-width:0;min-height:0;padding:0;transition:background .11s,color .11s;display:flex;position:relative}.sudoku-cell:nth-child(3n):not(:nth-child(9n)){border-right:1.5px solid var(--grid)}.sudoku-cell:nth-child(9n){border-right:0}.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom:1.5px solid var(--grid)}.sudoku-cell:nth-child(n+73){border-bottom:0}.sudoku-cell.peer{background:#f4efe4}.sudoku-cell.same-value{background:#e6e8dc}.sudoku-cell.selected{box-shadow:inset 0 0 0 2px var(--sage-dark);z-index:1;background:#d9dfcf}.sudoku-cell.incorrect{color:#a04e3e;background:#f2dfd7}.cell-value{font-family:var(--font-serif), Georgia, serif;font-variant-numeric:lining-nums;font-size:clamp(19px,6vw,27px);font-weight:500;line-height:1}.sudoku-cell.given .cell-value{color:var(--ink);font-weight:700}.sudoku-cell:not(.given) .cell-value{color:var(--clay-dark)}.cell-notes{grid-template-columns:repeat(3,1fr);width:100%;height:100%;padding:2px;display:grid}.cell-notes i{color:var(--sage-dark);justify-content:center;align-items:center;font-size:clamp(6px,1.8vw,9px);font-style:normal;display:flex}.tool-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(5px,1.6vw,8px);margin:15px 2px 12px;display:grid}.tool-row button{background:0 0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:48px;padding:2px;display:flex;position:relative}.tool-row button:disabled{cursor:default;opacity:.32}.tool-row button.active{color:var(--sage-dark);background:#e6e8dc}.tool-icon{font-family:Georgia,serif;font-size:19px;line-height:1.1}.tool-row small{color:var(--muted);margin-top:4px;font-size:9px}.tool-row b{background:var(--clay);color:#fff;border-radius:999px;padding:2px 4px;font-size:7px;font-weight:700;position:absolute;top:1px;right:6px}.number-pad{grid-template-columns:repeat(9,minmax(0,1fr));gap:clamp(3px,1vw,6px);display:grid}.number-pad button{aspect-ratio:.82;background:var(--cream-100);font-family:var(--font-serif), Georgia, serif;border-radius:clamp(7px,2vw,10px);min-width:0;font-size:clamp(15px,4.6vw,24px);transition:background .12s,transform 90ms}.number-pad button:active:not(:disabled){background:var(--cream-200);transform:translateY(1px)}.number-pad button.complete,.number-pad button:disabled{color:var(--sand);cursor:default;opacity:.38}.game-footnote{color:var(--muted);text-align:center;grid-template-columns:1fr auto 1fr;margin-top:12px;font-size:8px;display:grid}.game-footnote span:last-child{text-align:right}.game-footnote span:first-child{text-align:left}.game-footnote button{color:var(--clay-dark);text-decoration:underline;-webkit-text-decoration-color:var(--oat);text-decoration-color:var(--oat);text-underline-offset:3px;background:0 0;padding:0 10px;font-size:9px}.pause-layer,.generating-layer{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;z-index:4;background:#f7f2e8ed;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pause-layer>span{color:var(--sage);font-family:var(--font-serif), serif;font-size:54px;line-height:1}.pause-layer h2{font-family:var(--font-serif), serif;margin:10px 0 5px;font-size:25px}.pause-layer p,.generating-layer p{color:var(--muted);margin-bottom:18px;font-size:11px}.pause-layer button{background:var(--ink);color:var(--cream-50);border-radius:999px;padding:11px 23px;font-size:11px}.quiet-loader{border:1px solid var(--oat);border-radius:50%;width:44px;height:44px;margin-bottom:15px;display:block;position:relative}.quiet-loader:after{background:var(--clay);content:"";transform-origin:3px 25px;border-radius:50%;width:6px;height:6px;animation:1.2s linear infinite quiet-spin;position:absolute;top:-3px;left:50%;transform:translate(-50%)}.bottom-nav{max-width:480px;padding:8px 48px calc(8px + env(safe-area-inset-bottom));z-index:10;background:#faf7f0eb;border-top:1px solid #62594e1c;grid-template-columns:repeat(3,1fr);align-items:flex-start;width:100%;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:var(--muted);background:0 0;flex-direction:column;align-items:center;gap:2px;min-height:48px;padding:3px 0;display:flex;position:relative}.bottom-nav button span{font-family:var(--font-serif), serif;font-size:20px;line-height:1}.bottom-nav button small{font-size:9px}.bottom-nav button.active{color:var(--clay-dark)}.bottom-nav button.active:after{background:var(--clay);content:"";border-radius:50%;width:3px;height:3px;position:absolute;bottom:0}.sub-view{padding:35px 2px 30px}.sub-view>h1{max-width:390px;margin-bottom:29px}.score-hero{background:radial-gradient(circle at 85% 0,#dae0cfbf,#0000 46%),#eee7dc;border:1px solid #62594e17;border-radius:24px;padding:22px;position:relative}.score-hero>div:first-child small,.score-hero>div:first-child strong{display:block}.score-hero>div:first-child small{color:var(--muted);margin-bottom:3px;font-size:10px}.score-hero>div:first-child strong{font-family:var(--font-serif), serif;letter-spacing:-.04em;font-size:42px;font-weight:500}.rank-seal{flex-direction:column;align-items:center;display:flex;position:absolute;top:18px;right:21px}.rank-seal span{background:var(--sage-dark);color:#fff;font-family:var(--font-serif), serif;border:5px double #dce2d5;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:18px;display:flex}.rank-seal .rank-artwork{object-fit:cover;border-radius:50%;width:62px;height:62px;display:block}.rank-seal small{margin-top:4px;font-size:8px}.rank-progress{background:#62594e1f;border-radius:999px;height:4px;margin-top:17px;overflow:hidden}.rank-progress i{background:var(--clay);border-radius:inherit;height:100%;display:block}.score-hero>p{color:var(--muted);margin:7px 0 0;font-size:9px}.stat-grid{grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0 25px;display:grid}.stat-grid article{text-align:center;background:#f4eee3;border-radius:16px;padding:15px 8px}.stat-grid strong,.stat-grid span{display:block}.stat-grid strong{font-family:var(--font-serif), serif;font-size:24px;font-weight:500}.stat-grid span{color:var(--muted);margin-top:3px;font-size:9px}.best-times,.preference-card{border-top:1px solid var(--cream-200);padding-top:19px}.rank-journey,.achievement-section{border-top:1px solid var(--cream-200);margin-top:25px;padding-top:19px}.rank-journey-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.rank-journey-grid article{background:var(--cream-100);border:1px solid #0000;border-radius:15px;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:1px 8px;min-height:64px;padding:8px;display:grid}.rank-journey-grid article.current{border-color:var(--sage-dark);background:#e4e8dc}.rank-journey-grid article.reached{background:#f0e7dc}.rank-journey-grid article.locked{opacity:.55}.rank-journey-grid .rank-artwork{object-fit:cover;border-radius:50%;grid-row:span 3;width:46px;height:46px}.rank-journey-grid span,.rank-journey-grid small{color:var(--muted);font-size:7px}.rank-journey-grid strong{font-family:var(--font-serif), serif;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.achievement-grid article{background:var(--cream-100);border:1px solid #0000;border-radius:15px;min-height:112px;padding:11px}.achievement-grid article.locked{opacity:.52}.achievement-grid article.unlocked{background:#eef0e7;border-color:#65705d40}.achievement-stamp{border:3px double var(--cream-50);color:var(--sage-dark);background:#dfe3d7;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:8px;display:flex}.achievement-grid article.locked .achievement-stamp{background:var(--cream-200);color:var(--sand)}.achievement-grid strong,.achievement-grid small{display:block}.achievement-grid strong{font-family:var(--font-serif), serif;font-size:12px;font-weight:600}.achievement-grid small{color:var(--muted);margin-top:3px;font-size:8px;line-height:1.45}.section-heading{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.section-heading h2{font-family:var(--font-serif), serif;margin:0;font-size:18px;font-weight:600}.section-heading>span{color:var(--sand);letter-spacing:.16em;font-size:8px}.best-times>div:not(.section-heading),.preference-card>div:not(.section-heading),.preference-card>button{border-bottom:1px solid #62594e14;justify-content:space-between;align-items:center;width:100%;min-height:48px;display:flex}.best-times>div>span{font-size:12px}.best-times>div>span i{color:var(--clay);font-family:var(--font-serif), serif;margin-right:11px;font-size:9px;font-style:normal}.best-times>div>strong{font-family:var(--font-serif), serif;font-variant-numeric:tabular-nums;font-size:15px;font-weight:500}.profile-card{text-align:left;background:#eee7dc;border-radius:20px;align-items:center;width:100%;margin-bottom:25px;padding:17px;display:flex}.profile-card>span{background:#dfe2d6;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;margin-right:13px;font-size:24px;display:flex}.profile-card div{flex:1}.profile-card strong,.profile-card small{display:block}.profile-card strong{font-family:var(--font-serif), serif;font-size:18px}.profile-card small{color:var(--muted);margin-top:3px;font-size:9px}.profile-card i{color:var(--clay);font-family:var(--font-serif), serif;font-size:25px;font-style:normal}.preference-card button{background:0 0;padding:0}.preference-card span{color:var(--muted);font-size:11px}.preference-card strong{font-size:11px;font-weight:600}.privacy-note{background:#e8eadf;border-radius:15px;align-items:flex-start;gap:11px;margin-top:22px;padding:14px;display:flex}.device-transfer-note{background:#f0e5dc;border:1px solid #a8735d1a;border-radius:15px;align-items:flex-start;gap:11px;margin-top:10px;padding:14px;display:flex}.privacy-note>span{color:var(--sage-dark);font-family:var(--font-serif), serif;font-size:24px;line-height:1}.privacy-note p,.device-transfer-note p{color:var(--muted);margin:0;font-size:9px;line-height:1.65}.privacy-note strong,.device-transfer-note strong{color:var(--ink)}.modal-backdrop{z-index:30;background:#302a2373;justify-content:center;align-items:flex-end;padding:18px;display:flex;position:fixed;inset:0}.profile-modal,.victory-modal{background:var(--cream-50);box-shadow:var(--shadow);max-width:444px;padding:26px 23px calc(24px + env(safe-area-inset-bottom));border-radius:27px;width:100%;animation:.33s cubic-bezier(.22,.8,.28,1) both modal-rise;position:relative}.modal-close{background:var(--cream-100);border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:20px;display:flex;position:absolute;top:18px;right:18px}.profile-modal h2,.victory-modal h2{font-family:var(--font-serif), serif;letter-spacing:-.035em;margin-bottom:24px;font-size:28px;font-weight:600}.profile-modal label,.field-label{color:var(--muted);margin-bottom:7px;font-size:10px;display:block}.profile-modal input{border:1px solid var(--cream-200);background:#fffdf8;border-radius:13px;width:100%;height:49px;margin-bottom:17px;padding:0 14px;font-size:15px}.avatar-grid{grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:20px;display:grid}.avatar-grid button{aspect-ratio:1;background:var(--cream-100);border:1px solid #0000;border-radius:50%;font-size:21px}.avatar-grid button.active{border-color:var(--sage-dark);background:#e2e6d9;box-shadow:0 0 0 3px #65705d1a}.primary-button{background:var(--ink);color:var(--cream-50);border-radius:14px;width:100%;min-height:49px;font-size:12px;font-weight:600}.victory-action-stack{gap:8px;display:grid}.secondary-button{background:var(--cream-100);border:1px solid var(--cream-200);color:var(--clay-dark);border-radius:14px;width:100%;min-height:45px;font-size:11px;font-weight:600}.victory-replay-note{color:var(--muted);margin:10px 6px 0;font-size:8px;line-height:1.5}.victory-backdrop{align-items:center;overflow:hidden}.victory-modal{text-align:center;padding-bottom:24px}.victory-orbit{border:1px solid var(--oat);border-radius:50%;justify-content:center;align-items:center;width:74px;height:74px;margin:2px auto 20px;display:flex;position:relative}.victory-orbit:before,.victory-orbit:after{content:"";border:1px solid #a8735d66;border-radius:50%;animation:1.8s ease-out infinite orbit-pulse;position:absolute;inset:-8px}.victory-orbit:after{animation-delay:.7s}.victory-orbit span{background:var(--sage-dark);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:21px;display:flex}.victory-modal h2{margin-bottom:8px}.victory-copy{color:var(--muted);margin-bottom:18px;font-size:10px;line-height:1.6}.points-earned{color:var(--clay-dark);font-family:var(--font-serif), serif;font-size:38px;font-weight:500;display:block}.points-earned small{color:var(--muted);font-family:var(--font-sans), sans-serif;margin-top:2px;font-size:8px;font-weight:400;display:block}.score-breakdown{background:var(--cream-100);border-radius:13px;gap:7px;margin:17px 0;padding:13px;display:grid}.score-breakdown span{color:var(--muted);justify-content:space-between;font-size:9px;display:flex}.score-breakdown b{color:var(--ink)}.text-button{color:var(--muted);text-underline-offset:3px;background:0 0;margin-top:14px;font-size:10px;text-decoration:underline}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{--angle:calc(var(--i) * 20deg);animation:confetti-fall 1.7s calc(var(--i) * 45ms) ease-out both;background:var(--clay);height:11px;left:calc(50% + (var(--i) - 9) * 17px);opacity:0;transform:rotate(var(--angle));border-radius:50% 0;width:6px;position:absolute;top:40%}.confetti i:nth-child(3n){background:var(--sage)}.confetti i:nth-child(3n+1){background:var(--oat)}.stage-artwork{image-rendering:auto;object-fit:cover;height:auto;display:block}.profile-chip .stage-artwork{border:1px solid #62594e14;border-radius:50%;flex:none;width:28px;height:28px}.flow-steps{grid-template-columns:repeat(3,1fr);margin:4px 1px 18px;padding:0;list-style:none;display:grid;position:relative}.flow-steps:before{background:var(--cream-200);content:"";height:1px;position:absolute;top:12px;left:16.66%;right:16.66%}.flow-steps li{color:var(--sand);text-align:center;z-index:1;flex-direction:column;align-items:center;gap:5px;display:flex;position:relative}.flow-steps li>span{background:var(--cream-50);border:1px solid var(--cream-200);font-family:var(--font-serif), serif;border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;font-size:10px;display:flex}.flow-steps li small{letter-spacing:.03em;font-size:8px}.flow-steps li.complete,.flow-steps li.active{color:var(--clay-dark)}.flow-steps li.complete>span{background:var(--sage);border-color:var(--sage);color:#fff}.flow-steps li.active>span{background:var(--cream-50);border-color:var(--clay);box-shadow:0 0 0 4px #a8735d1a}.journey-view,.difficulty-view,.game-view{padding-top:3px}.journey-welcome{align-items:center;margin-top:13px}.unlock-count{background:var(--cream-100);border:1px solid #62594e14;border-radius:999px;flex:none;align-items:baseline;padding:9px 11px;display:flex}.unlock-count strong{color:var(--clay-dark);font-family:var(--font-serif), serif;font-size:20px;font-weight:600;line-height:1}.unlock-count small{color:var(--muted);margin-left:2px;font-size:8px}.stage-list{gap:10px;display:grid}.stage-volumes{gap:24px;display:grid}.stage-volume{gap:10px;display:grid}.stage-volume-heading{border-bottom:1px solid #62594e21;align-items:baseline;gap:9px;padding:0 2px 8px;display:flex}.stage-volume-heading span{color:var(--clay);letter-spacing:.16em;font-size:8px;font-weight:700}.stage-volume-heading h2{font-family:var(--font-serif), serif;letter-spacing:.03em;margin:0;font-size:16px;font-weight:600}.stage-card{text-align:left;background:#f4eee2c7;border:1px solid #62594e17;border-radius:21px;grid-template-columns:84px minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;min-height:106px;padding:10px 11px 10px 10px;transition:border-color .16s,transform .16s,box-shadow .16s;display:grid}.stage-card.unlocked:active{transform:scale(.99)}.stage-card.unlocked:hover{border-color:#7a4f4038;box-shadow:0 8px 24px #4b3d2d12}.stage-card.locked{color:var(--muted);background:#f4eee278}.stage-art-frame{border-radius:17px;width:84px;height:84px;display:block;position:relative;overflow:hidden}.stage-art-frame .stage-artwork{width:100%;height:100%}.stage-card.locked .stage-artwork{filter:grayscale(.65);opacity:.47}.stage-lock{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--muted);background:#f7f1e7d1;border:1px solid #62594e1f;border-radius:50%;justify-content:center;align-items:center;width:33px;height:33px;display:flex;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.stage-card-copy{min-width:0;display:block}.stage-card-copy>small,.stage-card-copy>strong,.stage-card-copy>span,.stage-card-copy>i{display:block}.stage-card-copy>small{color:var(--clay);letter-spacing:.09em;text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:7px;font-weight:700;overflow:hidden}.stage-card-copy>strong{font-family:var(--font-serif), serif;letter-spacing:.02em;font-size:18px;line-height:1.2}.stage-card-copy>span{color:var(--muted);margin-top:3px;font-size:9px;line-height:1.5}.stage-card-copy>i{color:var(--sage-dark);margin-top:5px;font-size:8px;font-style:normal;font-weight:600}.stage-card.locked .stage-card-copy>small,.stage-card.locked .stage-card-copy>i{color:var(--sand)}.stage-chevron{color:var(--clay)}.stage-card.locked .stage-chevron{opacity:0}.stage-rule-note{color:var(--muted);text-align:center;margin:13px 9px 5px;font-size:8px;line-height:1.6}.selection-topbar{justify-content:space-between;align-items:center;margin:6px 0 13px;display:flex}.selection-topbar button,.route-back{background:var(--cream-100);border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.selection-topbar>span{color:var(--muted);letter-spacing:.12em;font-size:9px}.stage-spotlight{background:radial-gradient(circle at 0 0,#fffdf8db,#0000 52%),#eee7dc;border:1px solid #62594e14;border-radius:24px;grid-template-columns:108px minmax(0,1fr);align-items:center;gap:16px;margin:2px 0 24px;padding:12px 15px 12px 12px;display:grid;overflow:hidden}.stage-spotlight>.stage-artwork{border-radius:18px;width:108px;height:108px}.stage-spotlight .eyebrow{margin-bottom:4px;font-size:7px}.stage-spotlight h1{font-family:var(--font-serif), serif;letter-spacing:.03em;margin:0 0 5px;font-size:27px}.stage-spotlight div>p:last-child{color:var(--muted);margin:0;font-size:9px;line-height:1.55}.difficulty-heading{margin:0 2px 10px}.difficulty-list{gap:8px;display:grid}.difficulty-list>button{text-align:left;background:#f4eee2bd;border:1px solid #62594e14;border-radius:17px;grid-template-columns:30px minmax(0,1fr) auto 18px;align-items:center;gap:10px;min-height:74px;padding:10px 12px;transition:background .15s,border-color .15s,transform .1s;display:grid}.difficulty-list>button:hover{background:#f2eadf;border-color:#7a4f4033}.difficulty-list>button:active{transform:scale(.99)}.difficulty-index{color:var(--clay);font-family:var(--font-serif), serif;font-size:13px}.difficulty-copy,.difficulty-copy strong,.difficulty-copy small{display:block}.difficulty-copy strong{font-family:var(--font-serif), serif;letter-spacing:.02em;font-size:16px}.difficulty-copy small{color:var(--muted);margin-top:2px;font-size:8px}.difficulty-meter{gap:3px;margin-top:7px;display:flex}.difficulty-meter i{background:var(--cream-200);border-radius:999px;width:11px;height:3px}.difficulty-meter i.filled{background:var(--sage)}.difficulty-facts{text-align:right;gap:4px;display:grid}.difficulty-facts small{color:var(--muted);white-space:normal;background:#fffdf8ad;border-radius:999px;max-width:116px;padding:3px 6px;font-size:7px;line-height:1.35}.difficulty-list>button>svg{color:var(--clay)}.game-view>.flow-steps{margin-bottom:12px}.game-route-bar{grid-template-columns:38px 48px minmax(0,1fr) auto;align-items:center;gap:9px;margin-bottom:11px;display:grid}.game-route-bar>.stage-artwork{border-radius:13px;width:48px;height:48px}.game-route-bar>div:not(.hint-balance){min-width:0}.game-route-bar>div:not(.hint-balance) small,.game-route-bar>div:not(.hint-balance) strong{display:block}.game-route-bar>div:not(.hint-balance) small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;font-size:8px;overflow:hidden}.game-route-bar>div:not(.hint-balance) strong{font-family:var(--font-serif), serif;font-size:15px}.hint-balance{color:var(--sage-dark);text-align:center;background:#e6e8dc;border-radius:13px;min-width:58px;padding:7px 9px}.hint-balance small,.hint-balance strong{display:block}.hint-balance small{font-size:7px}.hint-balance strong{font-family:var(--font-serif), serif;font-size:15px;line-height:1.15}.hint-balance strong i{font-size:9px;font-style:normal;font-weight:500}.game-view .play-card{padding-top:13px}.game-view .game-meta>div:first-child{max-width:65%}.game-view .game-meta>div:first-child strong{font-size:10px;line-height:1.35}.pause-layer>span{border:1px solid var(--oat);border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;display:flex}.tool-row .tool-icon{color:currentColor;display:block}.journey-summary{background:#eee7dc;border-radius:18px;margin:0 0 25px;padding:17px}.journey-progress-copy{align-items:baseline;gap:7px;display:flex}.journey-progress-copy strong{font-family:var(--font-serif), serif;font-size:25px;font-weight:500}.journey-progress-copy span{color:var(--muted);font-size:9px}.journey-progress-bar{background:#62594e1c;border-radius:999px;height:4px;margin:9px 0 11px;overflow:hidden}.journey-progress-bar i{background:var(--clay);border-radius:inherit;height:100%;display:block}.journey-stage-dots{grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.deferred-check{margin-top:12px}.deferred-check p{color:var(--muted);text-align:center;min-height:14px;margin:7px 4px 0;font-size:9px;line-height:1.5}.custom-avatar{object-fit:cover;border-radius:50%;display:block}.profile-chip .custom-avatar,.profile-card .custom-avatar{flex:none}.custom-avatar-editor{background:var(--cream-100);border-radius:15px;place-items:center;gap:8px;margin:-7px 0 18px;padding:13px;display:grid}.custom-avatar-editor input[type=file]{opacity:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.custom-avatar-editor .secondary-button{justify-content:center;align-items:center;min-height:42px;margin:0;display:flex}.custom-avatar-editor:focus-within .secondary-button{outline:2px solid var(--sage-dark);outline-offset:2px;box-shadow:0 0 0 3px #65705d33}.custom-avatar-editor .text-button{margin:0}.custom-avatar-editor p{color:var(--muted);text-align:center;margin:0;font-size:8px;line-height:1.5}.custom-avatar-editor .profile-status{color:var(--clay-dark)}.generation-error{text-align:center;background:#f0e5dc;border-radius:15px;margin-bottom:12px;padding:13px}.generation-error p{color:var(--clay-dark);margin:0 0 9px;font-size:10px}.profile-modal{max-height:min(92svh,760px);overflow-y:auto}.journey-stage-dots span{color:var(--sand);font-family:var(--font-serif), serif;text-align:center;background:#fffdf8a6;border-radius:7px;padding:4px;font-size:8px}.journey-stage-dots span.unlocked{color:var(--sage-dark);background:#dfe3d7}.profile-card>span{padding:0;overflow:hidden}.profile-card>span .stage-artwork{width:54px;height:54px}.profile-card>svg{color:var(--clay)}.cloud-account-card{background:#f4eee2c7;border:1px solid #62594e17;border-radius:18px;gap:10px;margin:16px 0;padding:15px;display:grid}.cloud-account-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.cloud-account-card p strong,.cloud-account-card p small{display:block}.cloud-account-card p strong{color:var(--ink);font-family:var(--font-serif), serif;font-size:15px}.cloud-account-card p small,.cloud-status{overflow-wrap:anywhere;font-size:12px}.cloud-connected{color:var(--sage-dark);letter-spacing:.04em;font-size:12px;font-weight:700}.cloud-account-card .secondary-button{min-height:44px}.cloud-account-card .text-button{justify-self:start;align-items:center;min-height:44px;margin:0;display:inline-flex}.danger-button{color:var(--clay-dark)}.danger-primary{background:var(--clay-dark)}.cloud-choice-modal>p:not(.eyebrow){color:var(--muted);margin:0 0 16px;font-size:13px;line-height:1.65}.cloud-choice-modal{gap:10px;display:grid}.cloud-privacy-note{color:var(--sage-dark);background:#e8eadf;border-radius:16px;align-items:flex-start;gap:10px;margin:12px 0 16px;padding:14px;display:flex}.cloud-privacy-note p{margin:0;font-size:12px;line-height:1.6}.cloud-privacy-note strong{margin-bottom:2px;font-size:13px;display:block}.privacy-note>svg{color:var(--sage-dark);flex:none}.device-transfer-note>svg{color:var(--clay-dark);flex:none}.bottom-nav button>svg{display:block}.avatar-grid{grid-template-columns:repeat(5,1fr)}.avatar-grid button{padding:0;overflow:hidden}.avatar-grid .stage-artwork{width:100%;height:100%}.victory-modal{max-height:min(92svh,760px);overflow-y:auto}.promotion-card{text-align:left;background:#eee7dc;border:1px solid #62594e14;border-radius:18px;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:12px;margin:14px 0;padding:9px;display:grid}.promotion-card>.stage-artwork{border-radius:13px;width:76px;height:76px}.rank-unlock-card{text-align:left;background:#e7ebdf;border:1px solid #65705d2b;border-radius:18px;grid-template-columns:66px minmax(0,1fr);align-items:center;gap:12px;margin:12px 0;padding:9px;display:grid}.rank-unlock-card .rank-artwork{object-fit:cover;border-radius:50%;width:66px;height:66px}.rank-unlock-card small,.rank-unlock-card strong,.rank-unlock-card span{display:block}.rank-unlock-card small,.achievement-unlock-card>small{color:var(--sage-dark);letter-spacing:.12em;font-size:7px;font-weight:700}.rank-unlock-card strong{font-family:var(--font-serif), serif;margin:2px 0 3px;font-size:15px}.rank-unlock-card span{color:var(--muted);font-size:8px;line-height:1.5}.achievement-unlock-card{text-align:left;background:#f0e7dc;border-radius:14px;margin:12px 0;padding:11px}.achievement-unlock-card>div{gap:5px;margin-top:7px;display:grid}.achievement-unlock-card span{color:var(--clay-dark);align-items:center;gap:5px;font-size:10px;display:flex}.hell-unlock-note{color:var(--sage-dark);font-family:var(--font-serif), serif;background:#e8eadf;border-radius:12px;margin:12px 0;padding:11px;font-size:13px}.promotion-card small,.promotion-card strong,.promotion-card span{display:block}.promotion-card small{color:var(--clay);letter-spacing:.12em;font-size:7px;font-weight:700}.promotion-card strong{font-family:var(--font-serif), serif;margin:2px 0 3px;font-size:15px}.promotion-card span,.final-stage-note{color:var(--muted);font-size:8px;line-height:1.5}.final-stage-note{background:#e8eadf;border-radius:12px;margin:13px 0;padding:10px}.shake{animation:.28s ease-in-out cell-shake}@keyframes modal-rise{0%{opacity:0;transform:translateY(28px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes quiet-spin{to{transform:translate(-50%)rotate(360deg)}}@keyframes orbit-pulse{0%{opacity:.7;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}@keyframes confetti-fall{0%{opacity:0;transform:translate(0, 0) rotate(var(--angle))}15%{opacity:1}to{opacity:0;transform:translate(calc((var(--i) - 9) * 13px), 44vh) rotate(calc(var(--angle) + 230deg))}}@keyframes cell-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media (min-width:520px){.app-shell{min-height:100vh;box-shadow:0 0 80px #3e382f21}.modal-backdrop{align-items:center}}@media (max-width:355px){.app-shell{padding-left:11px;padding-right:11px}.play-card{padding-left:9px;padding-right:9px}.welcome-row h1{font-size:24px}.difficulty-strip button span{font-size:10px}.difficulty-strip button small{display:none}.stage-card{grid-template-columns:76px minmax(0,1fr) 14px;gap:9px;padding-left:8px}.stage-art-frame{width:76px;height:76px}.stage-card-copy>span{font-size:8px}.stage-spotlight{grid-template-columns:92px minmax(0,1fr);gap:12px}.stage-spotlight>.stage-artwork{width:92px;height:92px}.difficulty-list>button{grid-template-columns:25px minmax(0,1fr) auto 15px;gap:7px;padding-left:9px;padding-right:9px}.difficulty-facts small{padding-left:4px;padding-right:4px}.game-route-bar{grid-template-columns:34px 42px minmax(0,1fr) auto;gap:7px}.route-back{width:34px;height:34px}.game-route-bar>.stage-artwork{width:42px;height:42px}.hint-balance{min-width:53px;padding-left:6px;padding-right:6px}}.resume-card,.daily-card,.daily-archive,.learning-hint,.game-review-embedded{background:#fffdf8b8;border:1px solid #62594e1f;border-radius:18px;margin:12px 0;padding:14px;box-shadow:0 8px 24px #4739280d}.resume-card,.daily-card{gap:9px;display:grid}.resume-card p,.daily-card p,.learning-hint p,.game-review p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.resume-card button,.daily-card button,.learning-hint button,.game-review button{min-height:42px}.resume-card button+button{margin-top:-3px}.daily-card{background:linear-gradient(135deg,#e8eadfe6,#fffdf8d1)}.daily-card h2,.daily-archive h2,.game-review h2{color:var(--ink);font-family:var(--font-serif), serif;margin:0 0 8px;font-size:18px}.daily-card button,.learning-hint button,.game-review button{background:var(--sage-dark);color:#fffdf8;border-radius:12px;padding:10px 13px;font-weight:700}.daily-card button:disabled,.daily-archive button:disabled{cursor:not-allowed;opacity:.55}.daily-archive ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.daily-archive button{color:var(--muted);text-align:left;background:0 0;border:1px solid #62594e1f;border-radius:10px;width:100%;min-height:39px;padding:8px 10px;font-size:11px}.daily-archive button:not(:disabled):hover,.daily-archive button:not(:disabled):focus-visible{background:var(--cream-200);color:var(--ink)}.learning-hint{border-color:#8f9b8257}.learning-hint button{margin-top:9px}.learning-hint-result{border-left:3px solid var(--sage);color:var(--ink);background:#edf0e5;border-radius:0 10px 10px 0;margin:10px 0;padding:9px 11px;font-size:12px;line-height:1.55}.sudoku-cell.hint-context:not(.selected){background:#ccd2be8f;box-shadow:inset 0 0 0 1px #68765c47}.game-review-embedded{background:#fffdf885;margin:16px 0}.game-review p+p{margin-top:7px}.game-review ul{color:var(--muted);margin:10px 0;padding-left:20px;font-size:11px;line-height:1.6}.game-review button{width:100%}.active-conflict-backdrop{z-index:30}.active-conflict{background:var(--paper);border:1px solid #62594e26;border-radius:22px;gap:11px;width:min(100%,390px);max-width:390px;padding:24px 20px;display:grid;box-shadow:0 22px 54px #2b221733}.active-conflict h2{font-family:var(--font-serif), serif;margin:0;font-size:22px;line-height:1.28}.active-conflict>p:not(.eyebrow){color:var(--muted);margin:0 0 3px;font-size:13px;line-height:1.55}.active-conflict .text-button{justify-self:start}.daily-settlement-note{color:var(--muted);margin:12px 0;font-size:12px;line-height:1.5}.victory-action-stack>button,.daily-card button,.resume-card button,.learning-hint button,.game-review button{min-height:44px}@media (max-width:355px){.resume-card,.daily-card,.daily-archive,.learning-hint,.game-review-embedded{border-radius:14px;padding:11px}.daily-archive button{font-size:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
