/* Native screen states and timing. These styles override the old landing-page demos. */
.native-app [hidden]{display:none!important}.native-app{position:relative}.native-app button:disabled{cursor:default}.native-app button:focus-visible,.native-app input:focus-visible{outline:3px solid #9d70ff;outline-offset:3px}.native-app button:active{transform:scale(.975)}
.native-caption{font-size:11px;line-height:1.6;color:#766a64;margin:15px 18px}.native-sheet{box-sizing:border-box;width:min(420px,calc(100vw - 24px));max-height:85dvh;overflow:auto;background:#fff9f4;color:#26211f;border:0;border-radius:30px 30px 18px 18px;padding:28px 18px 18px;font:14px Roboto,Arial,sans-serif;box-shadow:0 24px 90px #0007;overscroll-behavior:contain}.native-sheet::backdrop{background:#0007}.native-sheet h3{font-size:24px;margin:0 32px 6px 0}.native-sheet input{width:100%;box-sizing:border-box;background:#fffdfb;color:#26211f;border:1px solid #e6cfc1;border-radius:18px;padding:15px;margin:12px 0;font:inherit}.native-sheet .sheet-close{position:absolute;right:14px;top:12px;border:0;border-radius:50%;width:44px;height:44px;font-size:23px;background:#fff0e8;color:#c73f2b}.native-sheet .demo-button{border-radius:18px;background:#ffd9cd;color:#c73f2b;padding:12px;font:inherit;border:0;min-height:44px}.native-app :is(.native-shopping-row,.supply-item){transition:background-color 180ms}
/* FindKeyScreen: locked success, 500ms arrival, 650ms answer motion. */
.native-keys .radical-option{position:relative;height:118px;animation:none}.native-keys .radical-option:disabled{opacity:1}.native-keys .answer-state{font:11px Arial,sans-serif;font-style:normal;color:#18755f;min-height:13px}.native-keys .is-wrong .answer-state{color:#c44838}.native-keys .quiz-character{height:205px;padding:0;display:flex;flex-direction:column;justify-content:center;font-size:100px;overflow:hidden}.native-keys .quiz-character:before{width:160px;height:160px}.native-found:after{content:'✓';position:absolute;right:17px;top:13px;font:700 18px Arial;color:#18755f}.key-burst{position:absolute;left:50%;top:50%;pointer-events:none}.key-burst i{position:absolute;background:#6898c8;width:6px;height:6px;border-radius:50%;transform:translate(var(--dx),var(--dy));animation:key-native-burst 650ms cubic-bezier(.4,0,.2,1)}.key-burst i:nth-child(even){background:#e3af58}@keyframes key-native-burst{from{transform:translate(calc(var(--dx)*.8),calc(var(--dy)*.8)) scale(2.5)}to{transform:translate(var(--dx),var(--dy)) scale(1)}}
/* ExplodedPartsPanel: assembled colored components, not a whole glyph crossfade. */
.native-bloom .character-display{height:226px;min-height:226px;padding:0;position:relative}.native-bloom .whole-character{position:absolute;inset:0;width:100%;height:100%;opacity:0!important;z-index:3;font-size:0;cursor:pointer}.native-bloom .is-split .whole-character{pointer-events:none}.native-bloom .split-parts,.native-bloom .character-display:hover .split-parts,.native-bloom .character-display:focus-within .split-parts,.native-bloom .is-split .split-parts{position:absolute;inset:0;display:block;opacity:1!important;transform:none!important;pointer-events:none!important;transition:none}.native-bloom .part-button{position:absolute;left:calc(50% - 66px);top:calc(50% - 53px);width:132px;height:106px;border-radius:22px;padding:10px;background:transparent;color:#106650;transform:translate(-18px,0) scale(.42);transition:background-color 340ms,color 340ms}.native-bloom .part-button+button{background:transparent;color:#b83d2f;transform:translate(18px,0) scale(.42)}.native-bloom .part-button span{font-size:52px;left:10px;top:3px}.native-bloom .part-button :is(small,em,i){opacity:0;transition:opacity 340ms}.native-bloom .is-split .part-button{background:#106650;color:white;transform:translate(-72px,0) rotate(-3deg);pointer-events:auto}.native-bloom .is-split .part-button+button{background:#b83d2f;transform:translate(72px,0) rotate(3deg)}.native-bloom .is-split .part-button :is(small,em,i){opacity:1}.native-bloom .part-button em{font-size:10px}.native-bloom .pinyin{display:none}.native-bloom .native-structure-card{cursor:pointer}.native-bloom .structure-hint{margin-top:-28px;position:relative}.native-component-page{margin:0 16px!important;padding:18px!important;min-height:280px!important;background:#fff9f0!important;color:#292323}.native-component-page h3{font:82px serif;text-align:center;margin:24px 0 9px}.native-component-page p{text-align:center}.native-bloom .native-tabs>span:last-child{display:none}
/* WeekScreen: three compact meal cards per day + MealEditorSheet. */
.native-week-scroll{max-height:440px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.native-meal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}.native-meal-tile{border:0;border-radius:16px;padding:9px 6px;background:#ffe6de;color:#241d19;font:11px Arial;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;min-height:139px}.native-meal-tile:nth-child(2){background:#ddeedb}.native-meal-tile:nth-child(3){background:#e9dfff}.native-meal-tile>small{font-size:10px;color:#c73f2b}.native-meal-tile:nth-child(2)>small{color:#3f7447}.native-meal-tile:nth-child(3)>small{color:#66519b}.native-meal-tile img{width:100%;height:54px;object-fit:contain;opacity:.28}.native-meal-tile span{overflow-wrap:anywhere;line-height:1.4}.native-meal-tile.has-meal{box-shadow:inset 0 0 0 1px #241d1910}.native-week small{color:#766a64;font-size:11px}.portion-control{display:flex;align-items:center;gap:12px;margin:18px 0}.portion-control>span{flex:1}.portion-control button{width:44px;padding:0!important;font-size:20px!important}.picker-tabs{display:flex;gap:8px}.picker-tabs [aria-pressed=false]{background:#f4eae0;color:#766a64}.dish-choice{display:flex;align-items:center;gap:12px;border:0;border-radius:18px;padding:8px;background:none;color:#26211f;width:100%;text-align:left;font:14px Arial;min-height:76px}.dish-choice:hover{background:#fff0e8}.dish-choice img{width:58px;height:58px;object-fit:cover;border-radius:16px}.dish-choice span{flex:1}.dish-choice i{font:22px Arial;background:#ffd9cd;color:#c73f2b;width:35px;height:35px;text-align:center;line-height:35px;border-radius:13px}.meal-existing{display:flex;gap:8px;justify-content:space-between;margin-top:18px}.native-food .grocery-item{min-height:44px;display:flex;gap:10px;align-items:center}.native-food input[type=checkbox]{accent-color:#c73f2b;width:20px;height:20px}
/* FreshInventoryScreen / FreshShoppingScreen: restock goes straight to shopping. */
.native-dokupit .supply-action{width:44px;height:44px;font-size:22px;max-width:44px;flex-shrink:0}.native-dokupit .supply-action:disabled{opacity:1;background:#fffdfbcc;color:#c9473a}.native-dokupit .native-live-nav button{border:0;background:transparent;border-radius:20px;min-height:48px;padding:10px 16px;color:#766a64;font-size:13px}.native-dokupit .native-live-nav button[aria-pressed=true]{color:#c9473a;background:#ffe5d8}.shopping-progress{margin:10px 18px;font-size:13px}.shopping-progress output{float:right;padding:4px 8px;border-radius:20px;background:#ffe5d8;color:#c9473a}.shopping-progress p{font-size:12px;color:#766a64}.shopping-progress progress{width:100%;height:6px;appearance:none;border:0;display:block;border-radius:10px;overflow:hidden}.shopping-progress progress::-webkit-progress-bar{background:#ffe5d8}.shopping-progress progress::-webkit-progress-value{background:#c9473a;transition:width 170ms}.native-shopping-row{margin:10px 18px;display:flex;align-items:center;gap:10px;padding:14px 12px;border-radius:22px;background:#fffdfb;color:#26211f;cursor:pointer;min-height:52px}.native-shopping-row input{accent-color:#1e7454;width:20px;height:20px}.native-shopping-row>span{font-size:23px;padding:8px;background:#fffdfbcc;border-radius:14px}.native-shopping-row strong{font-size:14px;font-weight:500}.native-shopping-row.checked{background:#ddf5e9c2}.native-shopping-row.checked strong{text-decoration:line-through;color:#766a64}.native-dokupit [data-finish-shopping]{width:calc(100% - 36px);margin:18px;min-height:58px;border-radius:30px;animation:finish-reveal 160ms ease-out}@keyframes finish-reveal{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.native-celebration{pointer-events:none;position:absolute;inset:0;overflow:hidden}.native-celebration i{position:absolute;left:50%;top:83%;width:7px;height:7px;border-radius:50%;background:var(--color);animation:fresh-celebrate 950ms cubic-bezier(.4,0,.2,1) forwards}@keyframes fresh-celebrate{0%{opacity:1;transform:translate(0,0)}65%{transform:translate(var(--x),var(--y));opacity:.5}100%{transform:translate(var(--x),calc(var(--y) + 150px));opacity:0}}
/* GameView: free placement and the native 760ms hold-to-move threshold. */
.native-city .city-map{height:380px;min-height:380px;overflow:hidden;cursor:crosshair}.native-city .city-hall,.native-city .city-cat,.native-city-quest{pointer-events:none}.city-object{position:absolute;z-index:4;background:none;border:0;transform:translate(-50%,-100%);width:95px;height:95px;padding:0;touch-action:none;cursor:grab}.city-object img{width:100%;height:100%;object-fit:contain;pointer-events:none}.city-object.placing:before{content:'';position:absolute;bottom:0;left:10%;width:80%;height:24%;border:2px solid #3d9375;border-radius:50%;background:#d0f1b96b;z-index:-1}.native-city .city-confirm{margin:8px 15px;width:calc(100% - 30px);background:#42836d}.native-city .city-palette .city-tool{min-height:48px}.native-neon canvas{touch-action:none;cursor:pointer}.native-neon .neon-native-hud>span:last-child{max-width:70px}
/* ReaderActivity transition moves foreground by 14dp; media stays fixed. */
.native-reader .reader-overlay{animation:none!important;z-index:2}.native-reader .reader-art{touch-action:pan-y}.native-reader .demo-button:disabled{opacity:.3}.native-reader .reader-overlay>[data-story-text]{min-height:130px;font-size:16px}
.native-bloom .is-split .part-button{transform:translate(calc(-1*var(--part-distance,72px)),0) rotate(-3deg)}.native-bloom .is-split .part-button+button{transform:translate(var(--part-distance,72px),0) rotate(3deg)}
@media(max-width:380px){.native-bloom .part-button{width:116px;left:calc(50% - 58px)}.native-bloom .is-split .part-button{transform:translate(-63px,0) rotate(-3deg)}.native-bloom .is-split .part-button+button{transform:translate(63px,0) rotate(3deg)}.native-meal-grid{gap:5px}.native-meal-tile{font-size:10px;padding:8px 5px}.native-city .city-map{height:340px;min-height:340px}.native-sheet{padding:25px 14px 16px}.picker-tabs .demo-button{font-size:12px;padding:9px}}
@media(prefers-reduced-motion:reduce){.native-app *{animation:none!important;transition:none!important}}
