:root {
    --bg:#fffaf0; --surface:#fff; --ink:#253147; --muted:#6d7688;
    --yellow:#ffd85a; --mint:#a9ebd2; --blue:#b7ddff; --pink:#ffd1dc; --purple:#d8ccff;
    --green:#65c98e; --danger:#e96767; --line:#ebe7dc;
    --shadow:0 16px 38px rgba(62,72,95,.12); --radius:26px;
}
*{box-sizing:border-box} html{background:var(--bg)} body{margin:0;min-height:100vh;color:var(--ink);font-family:Pretendard,"Noto Sans KR",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;position:relative;isolation:isolate;overflow-x:hidden;background:var(--bg);transition:background .35s ease}body.theme-neutral{background:radial-gradient(circle at 15% 8%,#fff0ad 0,transparent 24%),radial-gradient(circle at 90% 20%,#dff7ed 0,transparent 22%),#fffaf0}body.theme-bori{background:radial-gradient(circle at 12% 10%,rgba(255,216,90,.48) 0,transparent 26%),radial-gradient(circle at 88% 18%,rgba(255,196,168,.32) 0,transparent 25%),linear-gradient(180deg,#fff9df 0,#fff4e8 52%,#fffaf2 100%)}body.theme-luna{background:radial-gradient(circle at 14% 8%,rgba(216,204,255,.55) 0,transparent 25%),radial-gradient(circle at 88% 18%,rgba(183,221,255,.38) 0,transparent 24%),linear-gradient(180deg,#f8f5ff 0,#eef5ff 54%,#fff9fd 100%)}body.theme-coco{background:radial-gradient(circle at 13% 9%,rgba(255,231,107,.5) 0,transparent 24%),radial-gradient(circle at 90% 20%,rgba(169,235,210,.48) 0,transparent 25%),linear-gradient(180deg,#fffbe7 0,#eafbf5 54%,#f7fcff 100%)}.theme-decor{position:fixed;pointer-events:none;z-index:0;user-select:none;filter:saturate(.9)}.decor-one{left:3vw;top:11vh}.decor-two{right:3vw;bottom:8vh}.theme-bori .decor-one:before{content:"🐾  ⭐  🦴";font-size:46px;opacity:.09;letter-spacing:18px}.theme-bori .decor-two:before{content:"🌼  🐾  🍪";font-size:54px;opacity:.08;letter-spacing:16px}.theme-luna .decor-one:before{content:"🌙  ✨  🐾";font-size:48px;opacity:.10;letter-spacing:18px}.theme-luna .decor-two:before{content:"⭐  ☁️  ✨";font-size:56px;opacity:.08;letter-spacing:16px}.theme-coco .decor-one:before{content:"🎵  ☀️  🪶";font-size:48px;opacity:.10;letter-spacing:18px}.theme-coco .decor-two:before{content:"🌼  🎶  🪶";font-size:54px;opacity:.08;letter-spacing:16px}
a{color:inherit;text-decoration:none} button,input,select{font:inherit} button{color:inherit}.page-shell{width:min(100%,980px);margin:0 auto;min-height:100vh;position:relative;z-index:1}.home-page,.content-page,.admin-page{padding:28px 24px 48px}
.topbar,.page-header,.quiz-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.topbar h1,.page-header h1{margin:2px 0 0;font-size:clamp(28px,5vw,38px);line-height:1.1}.eyebrow{display:block;color:#8d6a05;font-size:14px;font-weight:800;letter-spacing:.04em}.star-pill{flex:0 0 auto;border:2px solid #ffd359;background:#fff8d8;border-radius:999px;padding:10px 15px;font-size:18px;box-shadow:0 5px 0 #f0c64a}.back-button{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#fff;box-shadow:0 6px 16px rgba(66,74,90,.1);font-size:25px;font-weight:900}.page-header{margin-bottom:24px}
.hero-card,.next-lesson-card,.section-block,.game-card,.travel-banner,.reward-summary,.admin-panel,.discover-hero,.selected-friend-card{background:var(--surface);border:2px solid rgba(40,49,70,.06);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-card{margin-top:26px;padding:28px;overflow:visible;position:relative}.hero-card:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:#dff6ec;right:18px;top:18px;z-index:0;opacity:.55}.character-scene{display:flex;align-items:center;gap:24px;position:relative;z-index:1}
.guide-photo{position:relative;flex:0 0 230px}.character-stage{display:grid;place-items:center;position:relative;overflow:visible;background:rgba(255,255,255,.55);border:3px solid rgba(255,255,255,.82);box-shadow:0 10px 28px rgba(54,66,86,.10)}.character-stage-hero{width:220px;height:205px;border-radius:34px}.character-stage-thumb{width:72px;height:72px;border-radius:22px;flex:0 0 72px}.character-stage-intro{width:92px;height:84px;border-radius:24px;flex:0 0 92px}.character-stage-quiz{width:118px;height:104px;border-radius:30px}.character-stage-strip{width:76px;height:72px;border-radius:22px;flex:0 0 76px}.character-stage-banner{width:106px;height:96px;border-radius:27px;flex:0 0 106px}.character-stage-discover{width:132px;height:118px;border-radius:30px;flex:0 0 132px}.character-stage-closet{width:205px;height:188px;border-radius:36px}.character-art{display:block;max-width:96%;max-height:96%;width:auto;height:auto;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 9px 9px rgba(50,58,70,.14));transform-origin:50% 92%;will-change:transform}.character-art-hero{max-width:94%;max-height:96%}.character-art-thumb,.character-art-intro,.character-art-strip,.character-art-banner{max-width:94%;max-height:94%}.character-art-quiz{max-width:92%;max-height:94%}.character-art-discover,.character-art-closet{max-width:95%;max-height:96%}.theme-bori .character-art{animation:bori-idle 3.2s ease-in-out infinite}.theme-luna .character-art{animation:luna-idle 4.1s ease-in-out infinite}.theme-coco .character-art{animation:coco-idle 2.8s ease-in-out infinite}.character-art.is-speaking{animation:talk-bounce .32s ease-in-out infinite alternate!important}.character-art.is-celebrating{animation:celebrate .72s cubic-bezier(.2,.9,.25,1.2) 1!important}.character-stage.has-speech-bubble{z-index:40}.character-speech-bubble{position:fixed;z-index:1600;width:max-content;max-width:min(360px,calc(100vw - 24px));padding:12px 15px;border:3px solid #f3ce50;border-radius:20px 20px 20px 7px;background:rgba(255,255,255,.99);box-shadow:0 12px 28px rgba(46,56,77,.18);color:#344055;font-size:14px;font-weight:850;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere;opacity:0;pointer-events:none;transform:translateY(10px) scale(.96);transform-origin:50% 100%;transition:opacity .18s ease,transform .18s ease}.character-speech-bubble:after{content:"";position:absolute;left:var(--bubble-arrow-x,50%);bottom:-11px;width:18px;height:18px;background:#fff;border-right:3px solid #f3ce50;border-bottom:3px solid #f3ce50;transform:translateX(-50%) rotate(45deg)}.character-speech-bubble.bubble-below{transform-origin:50% 0}.character-speech-bubble.bubble-below:after{top:-11px;bottom:auto;border-right:0;border-bottom:0;border-left:3px solid #f3ce50;border-top:3px solid #f3ce50}.character-speech-bubble.show{opacity:1;transform:translateY(0) scale(1)}.theme-luna .character-speech-bubble{border-color:#c8b8f4}.theme-luna .character-speech-bubble:after{border-color:#c8b8f4}.theme-coco .character-speech-bubble{border-color:#9ddfce}.theme-coco .character-speech-bubble:after{border-color:#9ddfce}@keyframes bori-idle{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-6px) rotate(.8deg)}}@keyframes luna-idle{0%,100%{transform:translateY(0) rotate(.4deg)}50%{transform:translateY(-4px) rotate(-1.1deg)}}@keyframes coco-idle{0%,100%{transform:translateY(0) rotate(-1deg)}45%{transform:translateY(-7px) rotate(1.4deg)}70%{transform:translateY(-2px) rotate(-.5deg)}}@keyframes talk-bounce{from{transform:translateY(0) scale(1)}to{transform:translateY(-5px) scale(1.035)}}@keyframes celebrate{0%{transform:translateY(0) scale(1) rotate(0)}32%{transform:translateY(-13px) scale(1.08) rotate(-4deg)}58%{transform:translateY(-5px) scale(1.04) rotate(4deg)}100%{transform:translateY(0) scale(1) rotate(0)}}.guide-name{position:absolute;left:50%;bottom:-12px;transform:translateX(-50%);min-width:110px;text-align:center;background:#fff;border-radius:16px;padding:8px 14px;font-weight:900;box-shadow:0 8px 20px rgba(51,58,78,.12)}.guide-name small{display:block;color:var(--muted);font-size:11px;margin-top:2px;white-space:nowrap}.speech-card{background:rgba(255,255,255,.87);border:3px solid #f7d55a;padding:22px;border-radius:24px 24px 24px 8px;flex:1;backdrop-filter:blur(5px)}.theme-luna .speech-card{border-color:#cfc0f6}.theme-coco .speech-card{border-color:#9edfd0}.speech-card strong{display:block;font-size:25px;margin-bottom:8px}.speech-card span{font-size:18px;color:#4f5868}.home-narration-replay{margin-top:14px}.closet-narration-replay{margin-top:12px}
.primary-cta{display:flex;align-items:center;justify-content:center;min-height:62px;margin-top:24px;border:0;border-radius:20px;background:linear-gradient(180deg,#ffd95b,#ffc83d);color:#44350a;font-size:21px;font-weight:900;box-shadow:0 8px 0 #dfa72f;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.primary-cta:hover{transform:translateY(-2px)}.primary-cta:active{transform:translateY(4px);box-shadow:0 4px 0 #dfa72f}.primary-cta.compact{min-height:50px;font-size:17px;padding:0 22px}.progress-line{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-top:25px;font-size:14px;color:var(--muted)}.progress-track,.quiz-progress,.challenge-progress{height:12px;background:#edf0f3;border-radius:99px;overflow:hidden}.progress-track span,.quiz-progress span,.challenge-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#78d5a2,#4cc5bc)}
.japan-teaser{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin:18px 0;background:linear-gradient(135deg,#e8f7ff,#fff1da);border:2px solid #e0e9ed;border-radius:24px;padding:18px}.teaser-icons{font-size:32px;white-space:nowrap}.japan-teaser strong,.japan-teaser span{display:block}.japan-teaser span{color:var(--muted);font-size:14px;margin-top:4px}.japan-teaser a{background:#fff;border-radius:14px;padding:10px 13px;font-weight:900;white-space:nowrap}.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.menu-card{min-height:130px;border-radius:24px;background:#fff;padding:20px;box-shadow:0 9px 24px rgba(55,67,89,.08);border:2px solid #f0ede6}.menu-card>span{font-size:35px;display:block;margin-bottom:10px}.menu-card strong,.menu-card small{display:block}.menu-card strong{font-size:20px}.menu-card small{color:var(--muted);margin-top:4px}.home-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin-top:25px;padding:0 5px}
.next-lesson-card{padding:24px}.guide-row{display:flex;align-items:center;gap:15px}.guide-row p{margin:5px 0 0;color:var(--muted)}.jp-display{position:relative;display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:10px 16px 4px 4px}.jp-main{font-weight:900;line-height:1.08}.pron-badge{position:absolute;right:0;top:0;transform:translate(44%,-34%);z-index:2;display:inline-flex;align-items:center;justify-content:center;min-height:24px;max-width:120px;padding:3px 7px;border-radius:999px;background:#fff2ad;border:1px solid #f0d45e;color:#66520d;font-size:11px!important;font-weight:900!important;line-height:1.1;white-space:nowrap;box-shadow:0 3px 8px rgba(81,68,31,.12);font-style:normal!important}.theme-luna .pron-badge{background:#eee8ff;border-color:#c9b9f1;color:#594a84}.theme-coco .pron-badge{background:#e5fbf4;border-color:#a9dfcf;color:#356e62}.jp-display-large{display:flex;width:max-content;max-width:92%;margin:28px auto 8px}.jp-display-large .jp-main{font-size:clamp(52px,11vw,88px);letter-spacing:.08em}.pron-badge-mini{font-size:9px!important;min-height:20px;padding:2px 6px;transform:translate(55%,-42%)}.section-block{padding:22px;margin-top:22px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:15px}.section-heading h2{margin:0;font-size:23px}.section-heading span{color:var(--muted);font-size:13px}.course-heading>div{display:grid;gap:4px}.course-heading>span{background:#f4f1e7;border-radius:999px;padding:7px 10px;font-weight:800}.lesson-list{display:grid;gap:12px}.lesson-row{display:grid;grid-template-columns:50px 1fr auto;gap:13px;align-items:center;padding:14px;border-radius:18px;background:#fbfaf6;border:2px solid #f1eee4}.lesson-row.done{background:#eefbf3;border-color:#caeed7}.lesson-status{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#ffe7a0;font-weight:900}.done .lesson-status{background:#85d9a7;color:#fff}.lesson-info>span{display:block;color:var(--muted);font-size:13px;margin-top:5px}.lesson-jp-wrap{position:relative;display:inline-flex;width:max-content;max-width:90%;padding-right:14px}.lesson-jp-wrap>strong{font-size:18px}.lesson-reward{font-size:14px;color:#916f08}
.character-intro{display:flex;align-items:center;gap:16px;background:rgba(238,232,255,.78);border-radius:24px;padding:16px 18px}.theme-bori .character-intro{background:rgba(255,243,196,.74)}.theme-coco .character-intro{background:rgba(220,249,240,.78)}.character-intro strong{font-size:20px}.character-intro p{color:var(--muted);margin:4px 0 0}.learning-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:20px 0}.learning-card{border:2px solid #eee8dc;background:rgba(255,255,255,.94);border-radius:24px;padding:18px 10px;min-height:238px;cursor:pointer;box-shadow:0 8px 20px rgba(63,72,92,.07)}.item-emoji{display:block;font-size:34px}.jp-display-card{display:flex;width:max-content;max-width:92%;margin:15px auto 6px}.jp-display-card .jp-main{font-size:64px}.learning-card small{display:block;font-size:18px;color:var(--muted)}.listen-tag{display:inline-flex;margin-top:14px;padding:7px 10px;border-radius:999px;background:#ecf8ff;color:#3a7795;font-weight:800;font-size:12px}
.quiz-page{min-height:100vh;padding:22px 24px 44px}.quiz-header{display:grid;grid-template-columns:48px 1fr auto}.quiz-stage{max-width:720px;margin:22px auto 0}.character-focus{display:flex;flex-direction:column;align-items:center}.character-focus>span{margin-top:6px;font-weight:900}.question-card{text-align:center;margin-top:13px}.question-card h1{margin:10px 0 18px;font-size:clamp(25px,5vw,34px)}.question-count{color:var(--muted);font-weight:700}.audio-main{border:2px solid #b8dfef;background:#e9f8ff;border-radius:18px;min-height:54px;padding:0 22px;font-weight:900;cursor:pointer}.answer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}.answer-option{min-height:150px;border:3px solid #ece7da;background:rgba(255,255,255,.96);border-radius:26px;box-shadow:0 8px 0 #e0dbcf;cursor:pointer;padding:16px}.jp-display-answer{display:flex;width:max-content;max-width:92%;margin:auto}.jp-display-answer .jp-main{font-size:52px}.answer-option.correct{border-color:#62c789;background:#ecfbf2;box-shadow:0 8px 0 #61b780}.answer-option.wrong{border-color:#e97a7a;background:#fff0f0;box-shadow:0 8px 0 #d76d6d}.feedback-panel{margin-top:24px;background:#fff;border-radius:24px;padding:20px;text-align:center;box-shadow:var(--shadow)}.feedback-icon{font-size:44px}.feedback-panel>strong{font-size:22px}.feedback-panel p{color:var(--muted)}
.mini-guide-strip{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.78);border-radius:22px;padding:12px 14px;margin-bottom:18px;box-shadow:0 8px 20px rgba(60,68,87,.06)}.mini-guide-strip strong,.mini-guide-strip span{display:block}.mini-guide-strip span{color:var(--muted);font-size:13px;margin-top:3px}.word-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.word-card{min-height:210px;background:rgba(255,255,255,.95);border:2px solid #eee9de;border-radius:24px;padding:16px;cursor:pointer}.word-emoji{font-size:34px}.jp-display-word{display:flex;width:max-content;max-width:92%;margin:13px auto 6px}.jp-display-word .jp-main{font-size:42px}.word-card small{font-size:16px;color:var(--muted);display:block}.word-card em{display:inline-block;margin-top:10px;font-style:normal;font-size:11px;background:#edf8ff;padding:6px 8px;border-radius:99px}.word-card.not-yet{opacity:.42}
.game-card{padding:22px}.game-gap{margin-top:18px}.challenge-game{background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(255,249,216,.95))}.challenge-hud{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:20px 0 12px}.challenge-hud span{background:#fff;border:2px solid #eee3b9;border-radius:999px;padding:8px 12px;font-weight:900}.challenge-progress{margin-bottom:18px}.challenge-question{text-align:center}.challenge-question>span{font-size:48px;display:block}.jp-display-game{display:flex;width:max-content;max-width:90%;margin:10px auto 4px}.jp-display-game .jp-main{font-size:48px}.challenge-question p{color:var(--muted)}.challenge-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.challenge-option{min-height:66px;border:2px solid #e8dfc6;border-radius:18px;background:#fff;font-size:18px;font-weight:900;cursor:pointer}.balloon-field{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:30px 0 20px}.balloon{position:relative;min-height:170px;border:0;border-radius:50% 50% 48% 48%;background:#ffdba4;box-shadow:inset -12px -12px rgba(205,138,40,.08),0 12px 25px rgba(64,72,90,.12);cursor:pointer}.balloon:nth-child(2){background:#cbe8ff}.balloon:nth-child(3){background:#e0d3ff}.jp-display-balloon{display:flex;width:max-content;margin:auto}.jp-display-balloon .jp-main{font-size:56px}.game-feedback{text-align:center;font-weight:800;color:var(--muted);min-height:24px}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.memory-card{min-height:86px;border:2px solid #ded8ca;border-radius:18px;background:#fff6c8;font-size:24px;font-weight:900;cursor:pointer;padding:10px}.memory-card .jp-display{display:flex;width:max-content;margin:auto}.memory-card .jp-main{font-size:25px}.memory-card.open{background:#eef8ff}.memory-card.matched{background:#e8f8ef;border-color:#6bc98f}.train-question{display:flex;flex-direction:column;align-items:center;margin:22px 0}.train-question span{font-size:52px}.train-question strong{font-size:24px;margin-top:6px}.train-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.train-option{min-height:78px;border:2px solid #e3ded2;border-radius:18px;background:#fff;cursor:pointer;padding:10px}.train-option .jp-display{display:flex;width:max-content;margin:auto}.train-option .jp-main{font-size:25px}
.travel-banner{display:flex;align-items:center;gap:18px;padding:16px 18px;margin-bottom:22px}.travel-banner strong,.travel-banner span{display:block}.travel-banner strong{font-size:20px}.travel-banner span{color:var(--muted);margin-top:4px}.travel-path{display:grid}.travel-stop{display:grid;grid-template-columns:75px 1fr;position:relative;min-height:125px}.travel-line{position:absolute;left:34px;top:64px;bottom:-10px;width:5px;background:#a6dcc0;border-radius:99px}.travel-stop:last-child .travel-line{display:none}.travel-pin{width:68px;height:68px;border-radius:24px;display:grid;place-items:center;background:#ddf6e7;font-size:35px;z-index:1}.travel-stop.locked .travel-pin{background:#eee}.travel-card{background:rgba(255,255,255,.94);border-radius:22px;padding:15px 18px;margin-bottom:15px;box-shadow:0 8px 20px rgba(60,68,87,.07)}.travel-card strong,.travel-card span,.travel-card small{display:block}.travel-card strong{font-size:18px}.travel-card span{color:var(--muted);margin:5px 0}.travel-card small{color:#5b9974;font-weight:800}.travel-stop.locked .travel-card{opacity:.55}
.reward-summary{text-align:center;padding:24px}.reward-summary div{font-size:45px;font-weight:900;margin:7px 0}.reward-summary span{color:var(--muted)}.sticker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.sticker-card{background:#fff;border-radius:24px;padding:20px 12px;text-align:center;min-height:150px;box-shadow:0 8px 22px rgba(61,69,88,.07)}.sticker-card.locked{filter:grayscale(.45);opacity:.6}.sticker-emoji{font-size:50px}.sticker-card strong,.sticker-card span{display:block}.sticker-card strong{margin-top:7px}.sticker-card span{color:#9c7713;margin-top:5px;font-size:13px}.badge-grid,.outfit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.badge-card,.outfit-card{background:#fff;border:2px solid #eee9de;border-radius:22px;padding:18px 12px;text-align:center}.badge-card>span,.outfit-card>span{font-size:42px;display:block}.badge-card strong,.badge-card small,.outfit-card strong,.outfit-card small{display:block}.badge-card small,.outfit-card small{color:var(--muted);margin-top:5px}.badge-card.locked,.outfit-card.locked{opacity:.5;filter:grayscale(.5)}.outfit-card{cursor:pointer}.outfit-card.equipped{border-color:#68ca90;background:#effbf4}.selected-friend-card{display:grid;grid-template-columns:215px 1fr;align-items:center;gap:24px;padding:22px}.selected-friend-card span,.selected-friend-card strong,.selected-friend-card p{display:block}.selected-friend-card strong{font-size:30px}.selected-friend-card p{color:var(--muted)}.inline-link{display:inline-flex;align-items:center;justify-content:center}
.speak-card{background:rgba(255,255,255,.95);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px;text-align:center}.speak-prompt{display:grid;gap:5px;margin:20px 0}.speak-prompt>span{font-size:42px}.jp-display-speak{display:flex;width:max-content;max-width:92%;margin:8px auto}.jp-display-speak .jp-main{font-size:clamp(36px,9vw,64px)}.speak-prompt small{color:var(--muted);font-size:18px}.speak-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}.speak-actions .primary-cta{margin-top:0}.speech-result{margin:18px 0;padding:14px;border-radius:16px;background:#f4f8fb;font-weight:800;color:#4d6375}
.discover-hero{display:flex;align-items:center;gap:20px;padding:18px 22px;margin-bottom:20px}.discover-hero strong{font-size:22px}.discover-hero p{color:var(--muted);margin:7px 0}.stamp-progress{display:inline-flex;background:#fff4c8;border-radius:999px;padding:8px 12px;font-weight:900}.discover-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.discover-card{display:block;text-align:left;background:rgba(255,255,255,.95);border:2px solid #eee8dc;border-radius:24px;padding:18px;cursor:pointer;box-shadow:0 8px 20px rgba(63,72,92,.07)}.discover-card.seen{border-color:#7ed5a1;background:#f3fff7}.discover-category{display:inline-block;background:#eef3ff;color:#56617d;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:900}.discover-emoji{display:block;font-size:42px;margin-top:10px}.discover-card>strong{display:block;font-size:21px;margin:5px 0}.jp-display-discover{width:max-content;max-width:92%;margin:9px 0 6px}.jp-display-discover .jp-main{font-size:32px}.discover-card small{color:var(--muted)}.discover-card p{font-size:13px;line-height:1.6;color:#586172}.stamp-mark{display:block;margin-top:12px;font-style:normal;color:#8c6d10;font-weight:900;font-size:12px}.discover-enter{display:inline-flex;margin-top:10px;padding:7px 10px;border-radius:999px;background:#edf8ff;color:#416c8a;font-size:12px;font-weight:900}
.character-select-page{padding:34px 24px 50px}.selection-heading{text-align:center;max-width:680px;margin:0 auto 26px}.selection-heading h1{font-size:clamp(30px,6vw,44px);margin:8px 0}.selection-heading p{color:var(--muted);font-size:18px}.character-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.character-choice-card{border:3px solid #ede7dc;border-radius:28px;background:#fff;padding:14px;cursor:pointer;text-align:center;box-shadow:var(--shadow)}.choice-image-frame{height:235px;border-radius:22px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(180deg,#fffefa,#f4f5ef)}.choice-image-frame.bori{background:linear-gradient(180deg,#fff9d9,#fff0e4)}.choice-image-frame.luna{background:linear-gradient(180deg,#f0ebff,#eaf5ff)}.choice-image-frame.coco{background:linear-gradient(180deg,#fff8c7,#e3faf0)}.character-choice-art{display:block;max-width:92%;max-height:92%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 10px 9px rgba(53,61,72,.15));transition:transform .2s ease}.character-choice-card:hover .character-choice-art{transform:translateY(-5px) rotate(-1deg)}.choice-check{display:inline-block;margin-top:12px;background:#fff3c1;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.character-choice-card strong,.character-choice-card small{display:block}.character-choice-card strong{font-size:25px;margin-top:6px}.character-choice-card small{color:var(--muted)}.character-choice-card p{font-size:13px;color:#576174;min-height:42px}.character-choice-card.yellow:hover{border-color:#e8c44f}.character-choice-card.purple:hover{border-color:#9b7bd9}.character-choice-card.blue:hover{border-color:#63bce8}.selection-note{text-align:center;margin-top:22px;color:var(--muted)}
.auth-page{min-height:100vh;padding:24px;display:grid;place-items:center;position:relative}.auth-page>.back-button{position:absolute;top:24px;left:24px}.auth-card{width:min(100%,430px);background:#fff;border-radius:28px;box-shadow:var(--shadow);padding:30px;text-align:center}.auth-icon{font-size:48px}.auth-card h1{margin-bottom:8px}.auth-card p{color:var(--muted)}.stack-form{display:grid;gap:14px;text-align:left;margin-top:20px}.stack-form label,.settings-form label{display:grid;gap:7px;font-size:13px;font-weight:800;color:#555f70}input,select{min-height:48px;border:2px solid #e6e2d8;border-radius:15px;padding:0 13px;background:#fff;color:var(--ink)}.form-error{color:var(--danger);background:#fff0f0;padding:10px;border-radius:12px}.mock-note{display:block;color:var(--muted);margin-top:18px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stats-grid article{background:#fff;border-radius:22px;padding:18px;text-align:center;box-shadow:0 8px 20px rgba(60,68,87,.07)}.stats-grid span{font-size:28px}.stats-grid strong{display:block;font-size:29px;margin:4px 0}.stats-grid small{color:var(--muted)}.attendance-row{display:flex;flex-wrap:wrap;gap:9px}.attendance-row span{padding:8px 11px;background:#eef9f2;border-radius:12px;font-size:13px}.settings-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.toggle-row{display:flex;align-items:center;gap:8px}.toggle-row input{min-height:auto;width:20px;height:20px}.ghost-button{min-height:42px;border:2px solid #e5e1d7;background:#fff;border-radius:14px;padding:0 14px;cursor:pointer}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-panel{padding:20px}.admin-panel h2{margin-top:0}.admin-panel.wide{margin-top:18px}.admin-table{display:grid;gap:8px}.admin-table>div{padding:11px;background:#f8f7f2;border-radius:12px}.admin-table strong,.admin-table span,.admin-table em{display:block}.admin-table span{margin-top:3px}.admin-table em{font-style:normal;color:var(--muted);font-size:12px;margin-top:3px}
@media(max-width:700px){.home-page,.content-page,.admin-page,.quiz-page{padding:18px 14px 34px}.topbar h1,.page-header h1{font-size:25px}.star-pill{font-size:15px;padding:8px 11px}.hero-card{padding:20px 16px}.character-scene{flex-direction:column;gap:28px}.guide-photo{flex-basis:auto}.character-stage-hero{width:190px;height:176px}.speech-card{width:100%;padding:17px}.speech-card strong{font-size:21px}.speech-card span{font-size:15px}.japan-teaser{grid-template-columns:1fr;text-align:center}.menu-grid{gap:11px}.menu-card{min-height:112px;padding:15px}.menu-card>span{font-size:29px}.menu-card strong{font-size:17px}.learning-card-grid,.word-grid,.sticker-grid,.discover-grid{grid-template-columns:repeat(2,1fr)}.learning-card{min-height:190px}.jp-display-card .jp-main{font-size:48px}.answer-grid{grid-template-columns:1fr;gap:12px}.answer-option{min-height:92px}.jp-display-answer .jp-main{font-size:40px}.character-stage-quiz{width:104px;height:92px}.stats-grid{grid-template-columns:repeat(2,1fr)}.settings-form,.admin-columns{grid-template-columns:1fr}.balloon{min-height:120px}.jp-display-balloon .jp-main{font-size:44px}.travel-stop{grid-template-columns:62px 1fr}.travel-pin{width:56px;height:56px;font-size:29px}.travel-line{left:28px;top:54px}.badge-grid,.outfit-grid{grid-template-columns:1fr}.speak-actions{grid-template-columns:1fr}.memory-grid,.train-options,.challenge-options{grid-template-columns:repeat(3,1fr)}.selected-friend-card{grid-template-columns:145px 1fr}.character-stage-closet{width:145px;height:134px}.character-choice-grid{grid-template-columns:1fr}.character-choice-card{max-width:430px;width:100%;margin:0 auto}.choice-image-frame{height:260px}.discover-hero{align-items:center}.character-stage-discover{width:100px;height:92px;flex-basis:100px}.theme-decor{display:none}}
@media(max-width:430px){.lesson-row{grid-template-columns:45px 1fr}.lesson-reward{grid-column:2}.learning-card-grid,.sticker-grid,.discover-grid{gap:10px}.home-footer{flex-direction:column;gap:9px}.challenge-options,.memory-grid,.train-options{grid-template-columns:1fr}.selected-friend-card{grid-template-columns:1fr;text-align:center}.character-stage-closet{margin:auto}.travel-banner{align-items:flex-start}.character-stage-banner{width:82px;height:76px;flex-basis:82px}.pron-badge{font-size:9px!important;min-height:20px;padding:2px 5px;transform:translate(35%,-38%)}.jp-display-large .jp-main{font-size:48px}.choice-image-frame{height:235px}}

/* ver5: 설명 TTS, 독립 게임 레벨, 문장 블록 학습 */
.narration-card{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;background:rgba(255,255,255,.94);border:2px solid rgba(40,49,70,.07);border-radius:24px;padding:16px 18px;margin-bottom:20px;box-shadow:0 10px 28px rgba(61,69,88,.08)}
.narration-card strong{display:block;font-size:19px}.narration-card p{margin:5px 0;color:var(--muted);line-height:1.55}.narration-card small{display:block;color:#657083;line-height:1.5;margin-top:4px}.narration-replay{min-height:42px;border:2px solid #bee1ed;background:#ecf9ff;border-radius:14px;padding:0 13px;font-weight:900;color:#35687c;cursor:pointer;white-space:nowrap}.narration-actions{display:flex;justify-content:flex-end;margin-top:12px}.next-lesson-title{text-align:center;font-size:clamp(34px,7vw,58px);font-weight:900;margin:25px 0 5px;line-height:1.15}.quiz-guide-replay{margin-right:8px}.plain-japanese-answer{display:block;font-size:clamp(36px,7vw,54px);line-height:1.15;font-weight:900;word-break:keep-all}.answer-option{display:grid;place-items:center}.quiz-sentence-builder{margin-top:28px;background:rgba(255,255,255,.92);border:2px solid #eee6d8;border-radius:26px;padding:20px;box-shadow:0 10px 24px rgba(58,67,87,.08)}
.sentence-answer-zone{min-height:92px;border:3px dashed #d6d0c2;border-radius:20px;background:#fffdf8;padding:14px;display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}.sentence-placeholder{color:#9a9387;font-weight:800}.sentence-tile-bank{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:20px 0}.sentence-token{border:2px solid #dcd6c9;background:#fff;border-radius:15px;padding:11px 15px;font-size:22px;font-weight:900;box-shadow:0 4px 0 #d7d1c5;cursor:pointer}.sentence-token.selected-token{background:#eaf7ff;border-color:#a7d8ed;box-shadow:0 4px 0 #91c7de}.sentence-controls{display:flex;justify-content:center;gap:10px;align-items:stretch}.sentence-controls .primary-cta{margin-top:0}.sentence-controls .ghost-button{min-height:50px}

.game-hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.game-hub-card{position:relative;display:grid;grid-template-columns:76px 1fr auto;gap:15px;align-items:center;min-height:160px;background:rgba(255,255,255,.95);border:2px solid #eee8dd;border-radius:26px;padding:20px;box-shadow:0 10px 24px rgba(56,66,86,.08);transition:transform .15s ease,box-shadow .15s ease}.game-hub-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(56,66,86,.12)}.game-hub-icon{width:68px;height:68px;border-radius:22px;background:#fff4ce;display:grid;place-items:center;font-size:36px}.game-hub-copy strong{display:block;font-size:21px}.game-hub-copy>span{display:block;margin:5px 0 12px;color:var(--muted);font-size:13px;line-height:1.5}.game-progress-row{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:12px}.game-progress-row b{color:#5b6f78}.game-progress-row em{font-style:normal;color:#8b7a49}.game-enter{font-weight:900;color:#607080;white-space:nowrap}.game-color-purple .game-hub-icon{background:#eee8ff}.game-color-mint .game-hub-icon,.game-color-green .game-hub-icon{background:#e3f8ee}.game-color-blue .game-hub-icon,.game-color-sky .game-hub-icon{background:#e7f5ff}.game-color-pink .game-hub-icon{background:#ffe8ef}.game-color-yellow .game-hub-icon{background:#fff1ad}
.stage-list{display:grid;gap:22px}.stage-section{background:rgba(255,255,255,.72);border:2px solid rgba(45,55,75,.06);border-radius:26px;padding:18px;box-shadow:0 9px 24px rgba(57,67,87,.06)}.stage-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.stage-section-head>div{display:flex;align-items:center;gap:9px}.stage-section-head strong{font-size:20px}.stage-section-head>span{color:var(--muted);font-size:13px;font-weight:800}.stage-icon{font-size:27px}.stage-1{background:linear-gradient(180deg,rgba(239,252,244,.94),rgba(255,255,255,.82))}.stage-2{background:linear-gradient(180deg,rgba(237,247,255,.95),rgba(255,255,255,.82))}.stage-3{background:linear-gradient(180deg,rgba(255,244,220,.95),rgba(255,255,255,.82))}.stage-4{background:linear-gradient(180deg,rgba(244,238,255,.95),rgba(255,255,255,.82))}.stage-5{background:linear-gradient(180deg,rgba(255,237,245,.96),rgba(255,255,255,.84))}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.level-card{min-height:135px;background:#fff;border:2px solid #eae4d8;border-radius:24px;padding:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 7px 0 #ded8ca}.level-card.completed{background:#effcf4;border-color:#8fd8aa;box-shadow:0 7px 0 #79c497}.level-card.unlocked{background:#fffaf0;border-color:#f2cd5c}.level-card.locked{opacity:.52;filter:grayscale(.25);box-shadow:none}.level-number{width:48px;height:48px;border-radius:16px;background:#fff0b4;display:grid;place-items:center;font-size:23px;font-weight:900;margin-bottom:8px}.level-card.completed .level-number{background:#72ce96;color:#fff}.level-card strong{font-size:16px}.level-card small{color:var(--muted);margin-top:6px}.game-overview-card{margin-bottom:24px}
.game-stage-card{background:rgba(255,255,255,.96);border:2px solid rgba(45,55,75,.07);border-radius:28px;padding:20px;box-shadow:var(--shadow)}.game-stage-head{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.game-stage-guide strong{display:block;font-size:19px}.game-stage-guide span{display:block;color:var(--muted);font-size:13px;line-height:1.5;margin-top:4px}.game-level-hud{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:18px 0 10px}.game-level-hud>span{background:#f8f6ef;border:2px solid #ece6d8;border-radius:999px;padding:8px 11px;font-weight:900;font-size:13px}.game-canvas{min-height:350px;display:grid;place-items:center;padding:20px 0 5px}.game-question-center{width:min(100%,650px);text-align:center}.question-emoji{font-size:54px}.game-question-center h2{font-size:clamp(22px,5vw,30px);margin:10px 0}.game-question-center>p,.meaning-hint{color:var(--muted);font-weight:800}.game-audio-button{margin:8px 0 18px}.game-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.game-choice{min-height:74px;border:3px solid #e7e1d5;background:#fff;border-radius:19px;font-size:20px;font-weight:900;cursor:pointer;box-shadow:0 6px 0 #ddd6ca;padding:10px}.game-choice.japanese-choice{font-size:30px}.game-choice.particle-choice{font-size:31px}.game-choice.correct{border-color:#62c789;background:#ebfbf1;box-shadow:0 6px 0 #5db37d}.game-choice.wrong{border-color:#e77878;background:#fff0f0;box-shadow:0 6px 0 #d56868}.game-choice:disabled{cursor:default}.plain-japanese-question{font-size:clamp(42px,9vw,66px);font-weight:900;line-height:1.1;margin:12px 0}.train-track{font-size:34px;color:#6d7584;margin:12px 0}.train-track span{letter-spacing:8px}.particle-sentence{font-size:clamp(30px,6vw,46px);font-weight:900;line-height:1.5;margin:15px auto}.particle-blank{display:inline-grid;place-items:center;min-width:55px;height:50px;border-bottom:4px solid #f0bd43;color:#d59a16}.sentence-game{width:min(100%,720px);text-align:center}.flash-category{display:inline-block;margin-bottom:4px;padding:6px 10px;border-radius:999px;background:#fff0c1;color:#8a6b18;font-size:12px;font-weight:900}.flash-word{font-size:clamp(50px,11vw,82px);font-weight:900;margin:18px 0;min-height:90px;display:grid;place-items:center}.memory-level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:min(100%,700px)}.memory-level-card{min-height:88px;border:2px solid #dfd8cb;border-radius:18px;background:#fff5bd;font-size:21px;font-weight:900;cursor:pointer;padding:8px}.memory-level-card.open{background:#edf7ff}.memory-level-card.matched{background:#e5f8ed;border-color:#75cc95}.japanese-memory{font-size:25px}.level-complete-panel{margin-top:20px;text-align:center;background:linear-gradient(180deg,#fffdf4,#effcf4);border:2px solid #cae8d5;border-radius:28px;padding:25px;box-shadow:var(--shadow)}.completion-burst{font-size:58px}.level-complete-panel h2{font-size:30px;margin:8px 0}.level-complete-panel p{color:#556577;font-weight:800}.completion-actions{display:flex;justify-content:center;gap:12px;align-items:stretch}.completion-actions .primary-cta{margin-top:0}.game-fail-box{text-align:center;background:#fff9ee;border:2px solid #f0d7a3;border-radius:24px;padding:24px;width:min(100%,560px)}.fail-icon{font-size:50px}.game-fail-box h2{margin:8px 0}.game-fail-box p{color:var(--muted);line-height:1.6}

.feedback-fx-layer{position:fixed;inset:0;z-index:999;pointer-events:none;overflow:hidden}.fx-particle{position:absolute;bottom:12vh;font-size:28px;animation:fx-rise 1.25s ease-out forwards;transform:translateX(0)}.fx-wrong-cloud{position:absolute;left:50%;top:44%;font-size:64px;animation:fx-wrong-pop .65s ease-out forwards}.fx-correct .page-shell,.fx-level .page-shell{animation:fx-page-good .38s ease-out}.fx-wrong .page-shell{animation:fx-page-wrong .34s ease-out}@keyframes fx-rise{0%{opacity:0;transform:translate(0,20px) scale(.6)}18%{opacity:1}100%{opacity:0;transform:translate(var(--drift),-58vh) scale(1.15)}}@keyframes fx-wrong-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}45%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-58%) scale(.9)}}@keyframes fx-page-good{0%,100%{transform:none}45%{transform:scale(1.008)}}@keyframes fx-page-wrong{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}65%{transform:translateX(5px)}}
@media(max-width:700px){.character-speech-bubble{max-width:min(270px,78vw);font-size:13px}.stage-section-head{align-items:flex-start;flex-direction:column}.level-grid{grid-template-columns:repeat(3,1fr)}.narration-card,.game-stage-head{grid-template-columns:auto 1fr}.narration-card .narration-replay,.game-stage-head .narration-replay{grid-column:1/-1;width:100%}.game-hub-grid{grid-template-columns:1fr}.game-hub-card{grid-template-columns:64px 1fr auto;padding:16px}.game-hub-icon{width:58px;height:58px}.level-grid{grid-template-columns:repeat(3,1fr)}.game-choice-grid{grid-template-columns:1fr 1fr}.memory-level-grid{grid-template-columns:repeat(3,1fr)}.sentence-controls{flex-direction:column}.sentence-controls .ghost-button,.sentence-controls .primary-cta{width:100%}.game-canvas{min-height:310px}.completion-actions{flex-direction:column}.completion-actions .ghost-button,.completion-actions .primary-cta{width:100%}.quiz-guide-replay{margin:0 0 8px}.question-card .audio-main{display:block;margin:8px auto}}
@media(max-width:430px){.level-grid{grid-template-columns:repeat(2,1fr)}.game-hub-card{grid-template-columns:55px 1fr}.game-enter{grid-column:2}.game-hub-icon{width:50px;height:50px;font-size:29px}.game-choice-grid{grid-template-columns:1fr}.memory-level-grid{grid-template-columns:repeat(2,1fr)}.sentence-token{font-size:19px;padding:10px 12px}.game-stage-card{padding:15px}.narration-card{padding:14px}.plain-japanese-answer{font-size:38px}}

/* ver7: 모든 게임은 문제 전에 배우기 단계를 거친다. */
.game-teaching-panel{margin-top:18px;border:2px solid #eadfc8;border-radius:24px;background:linear-gradient(180deg,rgba(255,253,244,.98),rgba(255,255,255,.98));padding:22px}.teaching-heading{text-align:center;max-width:700px;margin:0 auto}.teaching-heading>span{display:inline-block;background:#fff0b5;border-radius:999px;padding:6px 11px;font-size:12px;font-weight:900;color:#8f6e14}.teaching-heading h2{font-size:clamp(24px,5vw,32px);margin:9px 0 7px}.teaching-heading p{color:var(--muted);font-weight:750;line-height:1.65;margin:0}.teaching-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.teaching-card{min-height:150px;border:2px solid #e7dfd0;border-radius:20px;background:#fff;padding:13px;cursor:pointer;box-shadow:0 6px 0 #ddd4c4;text-align:center}.teaching-card:hover{transform:translateY(-2px)}.teaching-emoji{display:block;font-size:30px}.teaching-card strong{display:block;font-size:28px;margin:5px 0}.teaching-card small{display:block;color:#5f6977;font-weight:800;font-size:14px}.teaching-card em{display:block;margin-top:9px;color:#9b7a20;font-size:11px;font-style:normal;font-weight:800}.grammar-guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}.grammar-guide-card{border:2px solid #dfe8f3;border-radius:20px;background:#f7fbff;padding:15px}.grammar-guide-card strong{font-size:21px;display:block}.grammar-guide-card span{display:inline-block;margin:5px 0;background:#e3f2ff;border-radius:999px;padding:4px 8px;font-weight:900;color:#426983}.grammar-guide-card p{margin:4px 0 0;color:#5e6878;line-height:1.6;font-size:13px}.teaching-example{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;background:#f3f9ef;border:2px solid #d5ebca;border-radius:20px;padding:16px;margin-top:16px}.teaching-example>div>span,.teaching-example strong,.teaching-example small{display:block}.teaching-example>div>span{font-size:11px;font-weight:900;color:#5c9162}.teaching-example strong{font-size:clamp(24px,5vw,34px);margin:3px 0}.teaching-example small{color:var(--muted);font-size:14px}.teaching-start-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding-top:17px;border-top:2px dashed #e8dfcf}.teaching-start-row>span{color:#697281;font-weight:800;font-size:13px}.teaching-start-row .primary-cta{margin:0;white-space:nowrap}.game-play-page [hidden]{display:none!important}
@media(max-width:700px){.teaching-card-grid{grid-template-columns:repeat(2,1fr)}.grammar-guide-grid{grid-template-columns:1fr}.teaching-example{grid-template-columns:1fr}.teaching-start-row{flex-direction:column;align-items:stretch}.teaching-start-row .primary-cta{width:100%}.character-speech-bubble{max-width:calc(100vw - 24px)!important;font-size:13px}}
@media(max-width:430px){.teaching-card-grid{grid-template-columns:1fr 1fr;gap:9px}.teaching-card{min-height:132px;padding:10px}.teaching-card strong{font-size:24px}.game-teaching-panel{padding:15px}}
/* ver7: 문장 블록 퀴즈에서도 조사를 먼저 설명하고 문제를 푼다. */
.sentence-preteach{margin-top:22px;background:linear-gradient(180deg,#fffaf0,#f7fbff);border:2px solid #e8decd;border-radius:24px;padding:18px}.sentence-preteach-head{text-align:center}.sentence-preteach-head>span{display:block;font-size:12px;font-weight:900;color:#936f16}.sentence-preteach-head>strong{display:block;font-size:18px;margin-top:5px}.sentence-preteach-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.sentence-preteach-card{text-align:left;border:2px solid #dce9f3;background:#fff;border-radius:17px;padding:12px;cursor:pointer}.sentence-preteach-card strong{display:block;font-size:18px}.sentence-preteach-card span{display:inline-block;margin:4px 0;background:#edf7ff;border-radius:999px;padding:3px 7px;font-size:12px;font-weight:900;color:#49728c}.sentence-preteach-card small{display:block;color:#667080;line-height:1.55}.sentence-preteach-card em{display:block;margin-top:6px;font-size:11px;font-style:normal;color:#9a7923;font-weight:800}@media(max-width:600px){.sentence-preteach-grid{grid-template-columns:1fr}}

/* ver8: stage transition + per-problem teaching flow */
.stage-number-badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 10px;border-radius:999px;background:#2f435f;color:#fff;font-size:12px;font-weight:900;letter-spacing:.02em}
.stage-transition-panel{margin-top:18px;border:2px solid #d8e8f7;border-radius:28px;background:linear-gradient(180deg,#f4fbff,#fffdf7);padding:28px;text-align:center;box-shadow:0 14px 32px rgba(58,78,102,.09)}
.stage-transition-icon{font-size:68px;line-height:1}.stage-transition-kicker{display:inline-block;margin-top:10px;padding:6px 11px;border-radius:999px;background:#e7f4ff;color:#3d6d91;font-size:12px;font-weight:900}.stage-transition-panel h2{font-size:clamp(28px,6vw,40px);margin:9px 0 4px}.stage-transition-panel>strong{display:block;font-size:22px}.stage-transition-panel>p{margin:7px auto 18px;color:var(--muted);font-weight:800}.stage-transition-progress{display:flex;justify-content:center;gap:8px;margin:16px 0 20px}.stage-transition-progress span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eee9de;color:#77808e;font-weight:900}.stage-transition-progress span.done{background:#dff4e7;color:#4e9368}.stage-transition-progress span.active{background:#ffd75e;color:#5b4812;box-shadow:0 0 0 5px rgba(255,215,94,.22)}
.round-teaching-card{width:min(100%,760px);border:2px solid #dfe8f3;border-radius:26px;background:linear-gradient(180deg,#f9fcff,#fffdf8);padding:24px;text-align:center;box-shadow:0 12px 28px rgba(56,72,95,.08)}
.round-teaching-card.retry{border-color:#ecd7a4;background:linear-gradient(180deg,#fffaf0,#fff)}
.round-teaching-kicker{display:inline-block;padding:6px 11px;border-radius:999px;background:#e9f3ff;color:#3f6c8d;font-size:12px;font-weight:900}.round-teaching-card h2{font-size:clamp(24px,5vw,34px);margin:10px 0 8px}.round-teaching-summary{margin:0 auto 16px;color:#667181;font-weight:800;line-height:1.65;max-width:650px}
.round-complete-meaning{font-size:18px;font-weight:900;color:#5d6573;margin-top:12px}.round-complete-japanese{font-size:clamp(34px,8vw,58px);font-weight:950;line-height:1.35;margin:7px 0 18px;word-break:keep-all}
.round-token-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:10px;margin:16px 0}.round-token-card{border:2px solid #e8e1d6;border-radius:18px;background:#fff;padding:12px 8px;min-height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center}.round-token-card>span{font-size:22px}.round-token-card strong{font-size:25px;margin:3px 0}.round-token-card small{font-size:13px;color:#687283;font-weight:800}
.round-grammar-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:15px 0}.round-grammar-card{border:2px solid #dceaf5;border-radius:18px;background:#f7fbff;padding:13px;text-align:left}.round-grammar-card strong{display:block;font-size:19px}.round-grammar-card span{display:inline-block;margin:4px 0;padding:4px 8px;border-radius:999px;background:#e3f3ff;color:#426b86;font-size:12px;font-weight:900}.round-grammar-card p{margin:3px 0 0;color:#626d7d;line-height:1.55;font-size:13px}
.round-teaching-actions{display:flex;justify-content:center;gap:12px;align-items:stretch;margin-top:20px}.round-teaching-actions .primary-cta{margin:0}.round-teaching-actions .ghost-button{min-width:150px}
@media(max-width:700px){.stage-section-head>div{flex-wrap:wrap}.stage-number-badge{order:-1}.stage-transition-panel,.round-teaching-card{padding:18px}.round-grammar-grid{grid-template-columns:1fr}.round-teaching-actions{flex-direction:column}.round-teaching-actions .ghost-button,.round-teaching-actions .primary-cta{width:100%}.round-complete-japanese{font-size:40px}}
@media(max-width:430px){.round-token-grid{grid-template-columns:repeat(2,1fr)}.round-token-card strong{font-size:22px}.stage-transition-progress span{width:32px;height:32px}}

/* ver10: 일본 탐험은 이야기 → 단어 → 문장 → 미니문제 순서로 진행한다. */
.discovery-story-card,.discovery-learn-card,.discovery-phrase-card,.discovery-quiz-card,.discovery-complete{background:rgba(255,255,255,.97);border:2px solid rgba(45,55,75,.07);border-radius:28px;box-shadow:var(--shadow);padding:22px;margin-top:18px}.discovery-story-card{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;background:linear-gradient(145deg,#fff9dc,#fff)}.discovery-story-copy h2{font-size:clamp(24px,5vw,32px);margin:6px 0}.discovery-story-copy p{margin:8px 0 12px;color:#596474;font-size:16px;font-weight:750;line-height:1.6}.discovery-wow{display:inline-block;padding:6px 10px;border-radius:999px;background:#ffe891;color:#785f16;font-size:12px;font-weight:900}.kid-section-heading{display:flex;align-items:center;gap:10px;margin-bottom:16px}.kid-section-heading>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#ffd85a;color:#5f4a12;font-weight:950}.kid-section-heading strong,.kid-section-heading small{display:block}.kid-section-heading strong{font-size:21px}.kid-section-heading small{margin-top:2px;color:var(--muted);font-size:12px}.discovery-word-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.discovery-word-card{min-height:150px;border:2px solid #e8e0d3;border-radius:20px;background:#fff;padding:13px;cursor:pointer;text-align:center;box-shadow:0 6px 0 #ddd5c9}.discovery-word-card>span{display:block;font-size:31px}.discovery-word-card .jp-main{font-size:30px}.discovery-word-card small{display:block;margin-top:6px;color:#606b7c;font-size:14px;font-weight:850}.discovery-word-card em{display:block;margin-top:8px;color:#94711d;font-size:11px;font-style:normal;font-weight:850}.discovery-phrase{width:100%;border:2px solid #dfeaf4;border-radius:22px;background:#f7fbff;padding:18px;cursor:pointer;text-align:center}.discovery-phrase-jp{width:max-content;max-width:90%;margin:0 auto}.discovery-phrase-jp .jp-main{font-size:clamp(30px,6vw,46px)}.discovery-phrase>span{display:block;margin-top:8px;color:#566274;font-size:17px;font-weight:850}.discovery-phrase em{display:block;margin-top:9px;color:#467390;font-size:12px;font-style:normal;font-weight:850}.discovery-quiz-card h2{text-align:center;font-size:clamp(22px,5vw,30px);margin:14px 0}.discovery-quiz-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.discovery-quiz-option{min-height:78px;border:3px solid #e7e1d5;border-radius:19px;background:#fff;font-size:29px;font-weight:950;cursor:pointer;box-shadow:0 6px 0 #ddd6ca}.discovery-quiz-option.correct{border-color:#62c789;background:#ebfbf1;box-shadow:0 6px 0 #5db37d}.discovery-quiz-option.wrong{border-color:#e77878;background:#fff0f0;box-shadow:0 6px 0 #d56868}.discovery-complete{text-align:center;background:linear-gradient(180deg,#fffdf1,#effcf4)}.discovery-complete>div:first-child{font-size:58px}.discovery-complete h2{margin:5px 0}.discovery-complete p{color:var(--muted);font-weight:800}
@media(max-width:700px){.discovery-story-card{grid-template-columns:1fr;text-align:center}.discovery-story-card .character-stage{margin:0 auto}.discovery-word-grid{grid-template-columns:repeat(3,1fr)}.discovery-quiz-options{grid-template-columns:1fr}.discovery-quiz-option{min-height:68px}.discovery-story-copy p{font-size:15px}}
@media(max-width:480px){.discovery-word-grid{grid-template-columns:1fr}.discovery-word-card{min-height:120px}.discovery-word-card .jp-main{font-size:28px}}

/* ver11: kid-friendly practice, quests, stories and category discovery */
.home-status-pills{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.home-status-pills span{background:#fff;border:2px solid #eee7d8;border-radius:999px;padding:8px 11px;font-weight:900;box-shadow:0 5px 12px rgba(50,60,80,.06)}
.daily-quest-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(135deg,#fff7c8,#e7fff1);border:2px solid #f1df9e;border-radius:22px;padding:15px 18px;margin:16px 0}.daily-quest-strip div{display:grid;gap:3px}.daily-quest-strip strong{font-size:18px}.daily-quest-strip span{color:var(--muted);font-size:14px}.daily-quest-strip a{font-weight:900;color:#286c52}
.practice-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.practice-summary article{background:#fff;border-radius:22px;padding:17px;text-align:center;box-shadow:0 8px 20px rgba(60,68,87,.07)}.practice-summary article>span{font-size:28px}.practice-summary strong,.practice-summary small{display:block}.practice-summary strong{font-size:21px;margin:4px 0}.practice-summary small{color:var(--muted)}
.practice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.practice-card{background:#fff;border:2px solid #eee8db;border-radius:24px;padding:20px;min-height:130px;box-shadow:0 8px 20px rgba(60,68,87,.06)}.practice-card>span{font-size:34px}.practice-card strong,.practice-card small{display:block}.practice-card strong{font-size:20px;margin:8px 0 4px}.practice-card small{color:var(--muted)}
.quest-list{display:grid;gap:12px}.quest-card{display:grid;grid-template-columns:54px 1fr 34px;gap:12px;align-items:center;background:#fff;border:2px solid #eee8db;border-radius:22px;padding:16px}.quest-card>span{font-size:34px}.quest-card strong,.quest-card small{display:block}.quest-card small{color:var(--muted);margin-top:4px}.quest-card>b{font-size:24px}.quest-card.done{background:#effbf4;border-color:#80d6a1}.league-card{margin-top:18px;background:#fff6cf;border-radius:24px;padding:20px;display:flex;align-items:center;gap:15px}.league-card>span{font-size:42px}.league-card strong,.league-card small{display:block}.league-card small{margin-top:5px;color:var(--muted)}
.mistake-list{display:grid;gap:12px}.mistake-card{background:#fff;border:2px solid #eee8db;border-radius:20px;padding:15px;display:grid;grid-template-columns:45px 1fr auto;gap:10px;align-items:center}.mistake-card>span{font-size:30px}.mistake-card strong,.mistake-card small{display:block}.mistake-card small{color:var(--muted);margin-top:4px}.empty-kid-card{background:#fff;border-radius:24px;padding:30px;text-align:center;font-size:18px;font-weight:800}
.character-tabs{background:#fff;border-radius:26px;padding:18px;margin-bottom:16px}.character-tabs h2{margin-top:0}.kana-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.kana-practice{border:2px solid #eee8db;background:#fffdf8;border-radius:18px;min-height:100px;padding:10px;cursor:pointer}.kana-emoji{display:block;font-size:20px}.kana-practice .jp-main{font-size:36px}.trace-board{background:#fff;border-radius:26px;padding:20px}.trace-board p{color:var(--muted)}#traceCanvas{width:100%;height:260px;background:#f7fbff;border:3px dashed #c9d9e8;border-radius:20px;touch-action:none}
.story-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.story-card{background:#fff;border:2px solid #eee8db;border-radius:24px;padding:22px;min-height:150px}.story-card>span{font-size:42px}.story-card strong,.story-card small{display:block}.story-card strong{font-size:20px;margin:10px 0 5px}.story-card small{color:var(--muted)}.story-lines{display:grid;gap:12px}.story-line{width:100%;border:2px solid #eee8db;background:#fff;border-radius:22px;padding:16px;display:grid;grid-template-columns:34px 1fr 34px;align-items:center;text-align:left}.story-line>span{width:30px;height:30px;border-radius:50%;background:#fff1ac;display:grid;place-items:center;font-weight:900}.story-line .jp-main{font-size:30px}.story-line small{font-size:16px;color:var(--muted)}.story-line em{font-style:normal}.story-quiz{background:#fff;border-radius:26px;padding:20px;margin-top:18px}.story-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.story-options button{min-height:70px;border:2px solid #e7e0d3;background:#fff;border-radius:18px;font-size:22px;font-weight:900}.story-options button.correct{background:#e6f8ed;border-color:#65c98e}.story-options button.wrong{background:#fff0f0;border-color:#e96767}
.discovery-category-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 0}.discovery-category-nav a{background:#fff;border-radius:18px;padding:12px;text-align:center;border:2px solid #eee8db}.discovery-category-nav span,.discovery-category-nav strong{display:block}.discovery-category-nav span{font-size:27px}.discovery-category-nav strong{font-size:14px;margin-top:4px}.discovery-category-section{margin:26px 0}.discovery-category-section>header{display:flex;justify-content:space-between;gap:15px;align-items:end;margin-bottom:12px}.discovery-category-section>header>div{display:flex;align-items:center;gap:8px}.discovery-category-section>header span{font-size:30px}.discovery-category-section h2{margin:0}.discovery-category-section p{margin:0;color:var(--muted);font-size:14px}
@media(max-width:700px){.practice-summary{grid-template-columns:1fr 1fr 1fr}.practice-grid,.story-grid{grid-template-columns:1fr}.kana-grid{grid-template-columns:repeat(4,1fr)}.story-options{grid-template-columns:1fr}.discovery-category-nav{grid-template-columns:repeat(2,1fr)}.discovery-category-section>header{align-items:flex-start;flex-direction:column}.home-status-pills{justify-content:flex-start}}
