/* The forest art direction remains v10. These rules integrate production controls. */
.statusbar,.home-indicator{display:none!important}
.app{height:100dvh;max-height:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
#page-view{top:env(safe-area-inset-top);bottom:64px}.app[data-section="intro"] #page-view{inset:0}
.app .bottom-nav{min-height:60px;padding-bottom:8px}.bottom-nav button{min-width:48px;min-height:48px}
.app .header{padding-top:10px}.screen{animation:none}.screen p,.lesson-body p{overflow-wrap:anywhere}
.screen .quiet-note{font-size:12px}.icon-button{min-width:48px;min-height:48px}.screen-top h1{overflow-wrap:anywhere}
.screen .sam-link>svg{width:24px;flex-shrink:0}.app[data-section="lesson"] #content-view{inset:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
.lesson-body{padding-bottom:24px}.lesson-body .question-prompt{font-size:21px;line-height:1.55;margin:16px 0 20px}
.combined-passage{margin-top:0!important;margin-bottom:24px!important;border-left:3px solid #b9ca9f}
.combined-passage .english{font:18px/1.85 Georgia,serif;white-space:pre-line;color:#263e31}
.lesson-footer{position:relative!important;bottom:auto!important;z-index:2;padding-bottom:max(24px,env(safe-area-inset-bottom));background:#f7f8f2}
.lesson-toolbar{position:sticky;top:0;z-index:3;background:var(--sam-paper);min-height:64px}
.vocab-hint{width:100%;min-height:94px;border:1px solid #aabc9e;border-radius:18px;padding:20px;margin:0 0 24px;background:#edf2e5;color:#334f3d;font-size:15px;line-height:1.65}
.grammar-note{padding:20px;border-radius:16px;background:#eaf0e1;margin:16px 0 24px;font-size:16px;line-height:1.75}.grammar-note h2{font-size:20px}.grammar-note p{margin:12px 0}.formula{font-family:Georgia,serif}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%}td,th{padding:8px;border-bottom:1px solid #b7c7ae;text-align:left}
.qna-suggestion{display:block;padding:16px 0;border-bottom:1px solid var(--sam-border);line-height:1.7}.qna-suggestion summary{cursor:pointer;min-height:48px;padding:10px 0}.qna-suggestion p{font-size:15px;color:var(--sam-muted)}
.toast{z-index:80;pointer-events:none}.word-token{min-height:48px}.app .answer-option{min-height:54px}.answer-option span:last-child{overflow-wrap:anywhere}
.reward-screen{position:fixed;inset:0;margin:auto;border:0;width:min(100%,430px);height:100dvh;max-height:100dvh;max-width:100%;padding:0;background:#f4f6eb;color:#234330;overflow:auto}
.reward-screen::backdrop{background:#eff2e8}.reward-content{max-width:390px;min-height:100%;margin:auto;padding:36px 26px max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;text-align:center}.reward-content>.label{font-size:13px;color:#586a51;margin:8px 0 14px}.reward-content h1{font-size:28px;line-height:1.5;letter-spacing:-.05em;margin:0}.reward-stage{height:340px;width:100%;position:relative;margin:16px 0 0;flex-shrink:0}.gacha-machine{height:100%;width:240px;position:absolute;left:calc(50% - 120px)}
.gacha-friend{position:absolute;left:calc(50% - 150px);bottom:30px;width:124px;height:130px}.gacha-friend .rig-head{position:absolute!important;left:0!important;top:0!important;width:105px!important}.gacha-friend .rig-body{position:absolute!important;left:12px!important;top:72px!important;width:85px!important}.gacha-arm{position:absolute;left:80px;top:74px;width:56px;height:45px;transform-origin:0 30px}.gacha-arm .rig-hand{width:45px!important;position:static!important;display:block!important}
.gacha-crank{transform-box:fill-box;transform-origin:center}.gacha-drop{opacity:0}.playing .gacha-crank{animation:crank-turn 1.6s cubic-bezier(.4,0,.2,1) 1}.playing .gacha-arm{animation:friend-turn 1.6s ease-in-out 1}.playing .gacha-friend .rig-head{animation:friend-nod 1.6s ease-in-out 1}.playing .capsule-pool{animation:capsules-shift .35s ease-in-out 4}.playing .gacha-drop{animation:capsule-drop .65s 1.5s both}.reward-result{min-height:106px;opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}.revealed .reward-result{opacity:1;transform:none}.reward-result h2{font-size:21px;margin:8px 0}.reward-result p{font-size:14px;color:#586a51}.seed-emblem{color:#4f784c;display:block}.seed-emblem svg{width:32px;height:32px}.reward-content>.sam-button{margin-top:auto;flex-shrink:0}
@keyframes crank-turn{0%{rotate:0deg}25%{rotate:25deg}40%{rotate:10deg}100%{rotate:360deg}}
@keyframes friend-turn{0%,100%{transform:rotate(0)}25%{transform:rotate(-35deg)}55%{transform:rotate(32deg)}80%{transform:rotate(-15deg)}}
@keyframes friend-nod{0%,100%{transform:rotate(0)}30%{transform:rotate(9deg) translateY(4px)}70%{transform:rotate(-5deg)}}
@keyframes capsules-shift{0%,100%{transform:translate(0,0)}50%{transform:translate(2px,-5px)}}
@keyframes capsule-drop{0%{opacity:0;transform:translateY(-22px)}20%{opacity:1}65%{transform:translateY(23px)}80%{transform:translateY(12px)}100%{opacity:1;transform:translateY(20px)}}
@media(max-height:650px){.reward-content{padding-top:16px}.reward-content h1{font-size:23px}.reward-stage{height:245px}.gacha-machine{height:245px;left:calc(50% - 120px)}.gacha-friend{scale:.8;left:calc(50% - 126px);bottom:7px}.reward-result{min-height:85px}.reward-result p{margin:4px 0}.reward-stage{margin-top:0}}
@media(prefers-reduced-motion:reduce){.reward-result{transform:none}.playing .gacha-drop{opacity:1;transform:translateY(20px)}}
@supports not(height:100dvh){.app,.reward-screen{height:100vh}}
