.cohesive-lesson{--lesson-gap: 1rem;padding:1.25rem}.cohesive-lesson .lesson-shell-heading{position:static;display:grid;grid-template-columns:1fr auto;gap:.35rem .75rem;background:#f0f5fc;color:#172554;border:1px solid #dce5f1;border-radius:12px;padding:.75rem;margin:0 0 1rem;box-shadow:none;min-height:0}.lesson-shell-heading strong{font-size:1rem}.lesson-shell-heading span{grid-column:1;font-size:.85rem}.cohesive-lesson .lesson-shell-heading button{grid-column:2;grid-row:1 / 3;font-size:.75rem;width:auto;height:auto;min-width:120px;max-width:145px;min-height:44px;padding:.4rem;border-radius:8px;background:transparent}.cohesive-lesson .sensei-guide{margin:0 0 1rem;padding:.65rem .8rem}.cohesive-lesson .sensei-avatar,.cohesive-lesson .sensei-avatar img{width:40px;height:48px}.cohesive-lesson .sensei-guide strong{display:none}.cohesive-lesson .sensei-guide p{margin:0;line-height:1.5}.cohesive-lesson .jp,.cohesive-lesson .first-encounter-word{font-size:clamp(2.5rem,8vw,4.5rem);line-height:1.35}.cohesive-lesson .example-sentence{font-size:clamp(1.75rem,5vw,2.7rem);line-height:1.8;overflow-wrap:anywhere}.cohesive-lesson .kana-unlock-glyph{font-size:clamp(4rem,15vw,7rem)}.cohesive-lesson .meet-word-written{padding:.8rem}.cohesive-lesson .audio{min-height:44px;border-radius:12px;font-size:.95rem}.cohesive-lesson .meet-word-speaker{width:auto;min-width:110px;height:auto;padding:.6rem .9rem;white-space:nowrap}.cohesive-lesson:has(.memory-scene img,.vms-scene img)>.picture{display:none}.cohesive-lesson .sticky-study-action{position:static!important;padding:0!important;margin-top:1rem;background:transparent}.cohesive-lesson>.reveal,.cohesive-lesson .sticky-study-action .reveal,.cohesive-lesson .lesson-answer-feedback>.primary{width:100%;min-height:48px;margin-top:1rem}.cohesive-lesson .vms-scene,.cohesive-lesson figure{margin:1rem 0}.cohesive-lesson figure img,.cohesive-lesson .vms-scene img{max-height:320px;object-fit:contain}.lesson-image-fallback{padding:1rem;background:#f1f5f9;border-radius:12px}.lesson-answer-feedback{margin-top:1rem;padding:1rem;border:2px solid #d5dfea;border-radius:14px;background:#f8fafc;color:#172554}.lesson-answer-feedback.correct{border-color:#67a98a}.lesson-answer-feedback.incorrect{border-color:#d6a86b}.lesson-answer-feedback h3{margin:0 0 .5rem}.lesson-answer-feedback p{line-height:1.6;overflow-wrap:anywhere}.trip-plan,.offline-coverage{margin-block:1rem;padding:1rem;border:1px solid #dce5f1;border-radius:14px;background:#f8fafc}.trip-plan label{display:block;margin-block:.75rem}.trip-plan input,.trip-plan select{min-height:44px;max-width:100%}.trip-plan fieldset{border:1px solid #dce5f1;border-radius:10px}.trip-plan .trip-priorities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.trip-plan .trip-priorities label{display:flex;align-items:center;gap:.5rem}.trip-plan .trip-priorities input{min-height:0}.trip-plan button{margin:.4rem .4rem .4rem 0}.offline-coverage table{width:100%;border-collapse:collapse;font-size:.85rem}.offline-coverage th,.offline-coverage td{text-align:left;padding:.5rem .3rem;border-bottom:1px solid #dce5f1}.offline-coverage details{margin-block:.7rem}.offline-mode-card{display:grid;gap:.8rem;margin-top:1rem;padding:1rem;border:1px solid #dce5f1;border-radius:16px;background:#f8fafc}.offline-mode-card h3,.offline-mode-card p{margin:0}.offline-mode-card>label{display:grid;gap:.4rem;font-weight:700}.offline-mode-card select{min-height:44px;max-width:100%;padding:.65rem .75rem;border:1px solid #cbd5e1;border-radius:10px;background:#fff}#forceOfflineToggle{display:flex;align-items:center;justify-content:flex-start;gap:.55rem;width:max-content;min-height:44px;padding:.5rem .7rem;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#172554;font-weight:750}#forceOfflineToggle.is-forced{border-color:#f0b4b4;background:#fff7f7}.offline-status-dot{display:inline-block;width:.72rem;height:.72rem;flex:0 0 auto;border-radius:50%;background:#16a34a;box-shadow:0 0 0 3px #dcfce7}.offline-status-dot.is-offline{background:#dc2626;box-shadow:0 0 0 3px #fee2e2}#forceOfflineStatus{font-size:.82rem;color:#475569}@media(max-width:560px){.cohesive-lesson{padding:.85rem}.cohesive-lesson .lesson-shell-heading{grid-template-columns:1fr}.cohesive-lesson .lesson-shell-heading button{grid-column:1;grid-row:auto;max-width:none;text-align:left;min-height:44px;padding:.2rem}.cohesive-lesson .kana-unlock-layout{grid-template-columns:1fr}.cohesive-lesson .kana-word-preview{padding:.75rem}.trip-plan .trip-priorities{grid-template-columns:1fr}}.sentence-bridge-hint-tools{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.75rem}.sentence-bridge-hint-tools button{min-height:44px}.sentence-bridge-hint-reveal{margin:.65rem 0 0;padding:.65rem .8rem;border-radius:10px;background:#fff7ed;color:#9a3412}.kotoba-echo-results{display:grid;gap:.45rem;margin:1rem 0;padding:0;list-style:none;text-align:left}.kotoba-echo-results li{display:flex;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;border:1px solid #dce5f1;border-radius:10px;background:#f8fafc}.kotoba-echo-results small{color:#475569;text-align:right}@media(max-width:560px){.kotoba-echo-results li{display:grid;gap:.2rem}.kotoba-echo-results small{text-align:left}}.offline-download-bubble{position:fixed;right:1rem;bottom:1rem;z-index:80;display:flex;align-items:stretch;max-width:min(92vw,22rem);border:1px solid #bfdbfe;border-radius:999px;background:#172554;color:#fff;box-shadow:0 12px 30px #17255455;overflow:hidden}.offline-download-bubble[hidden]{display:none}.offline-download-open{display:flex;align-items:center;gap:.55rem;min-height:48px;padding:.55rem .85rem;border:0;background:transparent;color:inherit;font-weight:750;text-align:left}.offline-download-icon{display:grid;place-items:center;width:1.7rem;height:1.7rem;border:2px solid #93c5fd;border-radius:50%;animation:offline-download-spin 1.2s linear infinite}.offline-download-pause{width:2.4rem;border:0;border-left:1px solid #ffffff33;background:transparent;color:#bfdbfe;font-size:1.25rem}.offline-download-bubble.is-complete{animation:offline-download-flash .55s ease-in-out 3}@keyframes offline-download-spin{to{transform:rotate(360deg)}}@keyframes offline-download-flash{50%{background:#047857;transform:scale(1.04)}}@media(prefers-reduced-motion:reduce){.offline-download-icon,.offline-download-bubble.is-complete{animation:none}}.lesson-outcome-preview{display:grid;gap:.65rem;margin-bottom:1rem;padding:1rem;border:1px solid #b9d5c7;border-radius:16px;background:linear-gradient(145deg,#f0fdf4,#f8fafc)}.lesson-outcome-preview h3,.lesson-outcome-preview p{margin:0}.lesson-outcome-preview>div:not(.communicative-evidence){display:flex;gap:.45rem;flex-wrap:wrap}.lesson-outcome-preview>div:not(.communicative-evidence) span{padding:.3rem .55rem;border-radius:999px;background:#fff;color:#334155;font-size:.8rem;font-weight:700}.communicative-card{display:grid;gap:1rem}.communicative-card h2{margin:0;line-height:1.35}.communicative-japanese{margin:.75rem 0 .25rem;font-size:clamp(1.45rem,5vw,2.25rem);line-height:1.7;color:#172554;white-space:pre-line}.communicative-reveal{display:grid;gap:.55rem;margin-top:1rem;padding:1rem;border:2px solid #d6a86b;border-radius:14px;background:#fffaf3}.communicative-reveal.correct{border-color:#67a98a;background:#f0fdf4}.communicative-reveal p,.communicative-reveal small{margin:0;white-space:pre-line}.communicative-response-choices .choice{white-space:pre-line;text-align:left}.communicative-built-response{display:flex;align-items:center;gap:.4rem;min-height:64px;padding:.75rem;border:2px dashed #94a3b8;border-radius:14px;background:#f8fafc;flex-wrap:wrap}.communicative-built-response button,.communicative-tiles button{width:auto;min-height:44px;padding:.55rem .7rem}.communicative-tiles{display:flex;gap:.5rem;flex-wrap:wrap}.communicative-type{display:grid;gap:.45rem}.communicative-type input{min-height:48px;padding:.7rem .8rem;border:1px solid #94a3b8;border-radius:10px;font-size:1.15rem}.communicative-or{margin:0;color:#64748b;text-align:center;font-weight:700}.communicative-evidence{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin:.75rem 0}.communicative-evidence span{display:grid;gap:.15rem;min-width:0;padding:.55rem;border:1px solid #dce5f1;border-radius:10px;background:#fff;color:#475569;font-size:.75rem}.communicative-evidence b{color:#172554;font-size:.78rem}.lesson-outcome-complete{margin:1rem 0;padding:1rem;border:1px solid #86c3a4;border-radius:16px;background:#f0fdf4;text-align:left}.lesson-outcome-complete h2{margin:.35rem 0;font-size:1.25rem}.learning-notebook-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.notebook-mistake-entry>div:first-child{display:grid;gap:.35rem}.notebook-mistake-entry p,.notebook-mistake-entry small{margin:0;line-height:1.45}.notebook-mistake-entry p span{display:inline-block;min-width:6.7rem;color:#7c5b38;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.notebook-mistake-kind{width:max-content;padding:.2rem .45rem;border-radius:999px;background:#ffedd5;color:#9a3412;font-size:.68rem;font-weight:850;text-transform:capitalize}@media(max-width:560px){.communicative-evidence{grid-template-columns:repeat(2,minmax(0,1fr))}.communicative-card .choices{grid-template-columns:1fr}}#senseiDesk.active{display:block!important;position:fixed;z-index:120;inset:0;width:auto!important;max-width:none!important;margin:0!important;padding:0!important;overflow:hidden;background:#090b0e}#signalPhaserHost{position:absolute;inset:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box;padding-bottom:max(8px,env(safe-area-inset-bottom));overflow:hidden;background:#090b0e}#signalPhaserHost canvas{display:block;width:100%!important;height:100%!important;touch-action:none;outline:0;box-shadow:0 0 90px #000}.signal-semantic{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.signal-semantic:focus-within{position:fixed!important;z-index:5!important;left:12px!important;bottom:12px!important;width:auto!important;height:auto!important;margin:0!important;padding:10px!important;overflow:visible!important;clip:auto!important;white-space:normal!important;border:2px solid #e3b35d!important;background:#171513!important;color:#fff1cf!important}.signal-semantic:focus-within h1,.signal-semantic:focus-within p{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.signal-semantic button{font:700 14px Inter,system-ui,sans-serif;margin:3px;padding:8px 10px;border:1px solid #d8a44d;background:#2f2923;color:#fff1cf}@media(max-width:700px){#senseiDesk.active{inset:0}.signal-semantic:focus-within{max-width:calc(100vw - 24px);display:flex;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){#signalPhaserHost canvas{scroll-behavior:auto}}.game-hub{width:min(100%,940px);margin:0 auto;padding:clamp(30px,6vw,68px) clamp(16px,4vw,34px) 132px;color:#172554}.game-hub-heading{max-width:650px;margin:0 auto 28px;text-align:center}.game-hub-heading .eyebrow{color:#a84134;font-weight:850;letter-spacing:.13em}.game-hub-heading h1{margin:.35rem 0 .55rem;font-family:Georgia,serif;font-size:clamp(2rem,6vw,3.35rem);line-height:1.03}.game-hub-heading p{margin:0;color:#536174;line-height:1.55}.game-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.game-hub-card{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:16px;min-height:248px;padding:22px;border:1px solid #d4af37;border-radius:18px;background:linear-gradient(145deg,#fffdf7,#f3ead7);color:#172554;text-align:left;box-shadow:0 14px 32px #07152a22;overflow:hidden;isolation:isolate;cursor:pointer}.game-hub-card:before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 100% 0,#f6c45345,transparent 37%),repeating-linear-gradient(135deg,#17255405 0 1px,transparent 1px 9px)}.game-hub-card--signal:after,.game-hub-card--repair:after{position:absolute;right:16px;top:13px;color:#17255412;font-family:Georgia,serif;font-size:5.5rem;font-weight:800;line-height:1}.game-hub-card--signal:after{content:"信"}.game-hub-card--repair:after{content:"工"}.game-hub-card:hover,.game-hub-card:focus-visible{border-color:#c0392b;transform:translateY(-3px);box-shadow:0 19px 36px #07152a33;outline:none}.game-hub-card:focus-visible{box-shadow:0 0 0 3px #f6c453,0 19px 36px #07152a33}.game-hub-card-icon{display:grid;place-items:center;width:46px;height:46px;border:2px solid #c0392b;border-radius:50%;background:#172554;color:#fff;font-size:1.7rem;box-shadow:0 0 0 4px #f3d8cf}.game-hub-card-copy{position:relative;z-index:1;align-self:center;display:grid;gap:8px}.game-hub-card-kicker{color:#a84134;font-size:.67rem;font-weight:850;letter-spacing:.1em}.game-hub-card strong{font-family:Georgia,serif;font-size:1.42rem;line-height:1.1}.game-hub-card-copy>small:last-child{max-width:27ch;color:#526276;font-size:.9rem;line-height:1.48}.game-hub-card-action{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding-top:13px;border-top:1px solid #d8c69e;color:#8f302c;font-size:.78rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.game-hub-card-action b{font-size:1.25rem}.game-hub-back{display:block;margin:28px auto 0;padding:10px 15px;border:1px solid #b9c8d8;border-radius:10px;background:#fff;color:#172554;font-weight:800}.game-hub-back:hover{border-color:#c0392b;color:#8f302c}.game-hub-empty{padding:22px;border:1px solid #d4af37;border-radius:16px;background:#fffdf5;color:#536174;text-align:center}@media(max-width:620px){.game-hub{padding-top:28px}.game-hub-grid{grid-template-columns:1fr}.game-hub-card{min-height:184px;padding:18px}.game-hub-card--signal:after,.game-hub-card--repair:after{font-size:4.5rem}.game-hub-card-copy>small:last-child{max-width:34ch}}.admin-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-config-grid>section{display:grid;align-content:start;gap:9px;padding:14px;border:1px solid #d7e1ed;border-radius:15px;background:#f8fafc}.admin-config-grid h4{margin:0}.admin-config-grid label{display:grid;gap:4px;color:#334155;font-size:.72rem;font-weight:800}.admin-config-grid input:not([type=checkbox]),.admin-config-grid textarea{width:100%;padding:9px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#172033;font:inherit}.admin-config-wide{grid-column:1/-1}.admin-config-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}.admin-config-toggle{grid-template-columns:auto 1fr!important;align-items:center}.admin-config-switches{display:grid;grid-template-columns:1fr 1fr;gap:7px}.admin-config-switches label{grid-template-columns:auto 1fr;align-items:center;padding:8px;border-radius:9px;background:#fff}.admin-config-file-actions,.admin-config-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-config-file-actions button,.admin-config-file-actions .file{padding:8px 10px}.admin-config-actions{justify-content:flex-end;margin-top:14px;padding-top:13px;border-top:1px solid #dbe3ed}.admin-config-history-wrap{margin-top:15px;padding:11px;border:1px solid #d6e0eb;border-radius:14px;background:#f8fafc}.admin-config-history-wrap summary{cursor:pointer;font-weight:900}.admin-config-history{display:grid;gap:7px;margin-top:9px}.admin-config-history article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border-radius:10px;background:#fff}.admin-config-history article div{display:grid}.admin-config-history small{color:#64748b}@media(max-width:720px){.admin-config-grid,.admin-config-pair,.admin-config-switches{grid-template-columns:1fr}.admin-config-wide{grid-column:auto}.admin-config-actions button{flex:1 1 100%}}.admin-config-unlocks{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.admin-config-unlocks label{padding:9px;border:1px solid #dce5ef;border-radius:10px;background:#fff}@media(max-width:720px){.admin-config-unlocks{grid-template-columns:1fr}}.runtime-announcement{position:relative;z-index:120;display:flex;align-items:center;justify-content:center;gap:18px;padding:10px max(48px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));border-bottom:1px solid #c78a2f;background:linear-gradient(90deg,#2b1b12,#53321b,#2b1b12);color:#fff3d1;box-shadow:0 5px 18px #28150d44}.runtime-announcement div{display:grid;gap:2px;text-align:center}.runtime-announcement strong{font-size:.82rem}.runtime-announcement span{font-size:.72rem;color:#e2d1ad}.runtime-announcement a{padding:7px 10px;border:1px solid #d8ad63;border-radius:8px;color:#fff0bf;font-size:.7rem;font-weight:850;text-decoration:none}.runtime-announcement button{position:absolute;right:10px;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#ffffff14;color:#fff;font-size:1.15rem;cursor:pointer}.runtime-support-link{position:fixed;z-index:70;right:15px;bottom:calc(92px + env(safe-area-inset-bottom));padding:8px 11px;border:1px solid #9f7b48;border-radius:999px;background:#fff8e7;color:#51361f;box-shadow:0 7px 22px #1b120b35;font-size:.68rem;font-weight:850;text-decoration:none}@media(max-width:620px){.runtime-announcement{align-items:flex-start;flex-direction:column;gap:7px;padding-right:50px}.runtime-announcement div{text-align:left}.runtime-support-link{right:9px;bottom:calc(82px + env(safe-area-inset-bottom))}}
