.learning-intro{padding:24px 0 40px;display:grid;grid-template-columns:.9fr 1.1fr;align-items:start;gap:48px}.learning-intro h1{font-size:clamp(42px,5vw,70px);line-height:1.16;letter-spacing:-.045em}.learning-intro .lead{font-size:19px;max-width:500px}.learning-links{display:flex;gap:20px;flex-wrap:wrap;align-items:center}.learning-links a{font-size:16px;min-height:48px;display:inline-flex;align-items:center;color:var(--blue)}.learning-links .learning-primary{padding:14px 23px;border-radius:8px;background:var(--ink);color:white}.word-sample{padding:38px;background:#fff;border:1px solid #d5dacc;border-radius:18px;box-shadow:0 20px 45px #243b3410;min-width:0}.word-sample ruby{font-size:76px;line-height:1.7;letter-spacing:.05em}.word-sample rt{font-size:19px;letter-spacing:.03em;font-weight:400}.word-meaning{font-size:21px;margin:2px 0 26px;color:#486756}.word-example{font-size:22px;line-height:1.8;letter-spacing:.01em;padding-top:24px;border-top:1px solid #dfe5dc;margin-bottom:10px}.word-translation{font-size:16px;color:#526158;margin:0 0 20px}.audio-button{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;min-height:48px;border:1px solid #b7cbbd;border-radius:30px;background:#eef4ec;color:#234a3c;cursor:pointer;font-size:15px}.audio-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}.audio-button[aria-pressed=true]{background:#d9f0d1;border-color:#42704d;box-shadow:0 0 0 4px #b4d6a92b}.audio-error{font-size:14px;color:#963b2d;margin:12px 0 0}.learning-activities{background:#e6eede;padding:52px 0}.practice-section{display:grid;grid-template-columns:0.8fr 1.2fr;gap:70px;align-items:center;padding-block:76px}.practice-section h2{font-size:clamp(30px,4vw,46px)}.practice-section>div>p{font-size:17px}.writing-section{background:#f1ebdc}.writing-section .practice-section{grid-template-columns:0.8fr 1.2fr;align-items:start}.writing-demo{width:100%;height:660px;border:1px solid #d8d9cd;border-radius:18px;background:white;box-shadow:0 18px 45px #263a3610}.course-promo{background:#071a35;color:#fff;overflow:hidden}.course-promo .shell{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:32px;padding-block:48px}.course-promo h2{font-size:clamp(34px,4.5vw,61px);letter-spacing:-.04em}.course-promo p{font-size:17px;color:#dce8ed;max-width:490px}.course-promo .eyebrow{color:#87d9cc;font-size:13px}.course-promo img{width:100%;mix-blend-mode:lighten}.course-promo a{display:inline-flex;min-height:50px;align-items:center;background:#a4e2d3;color:#102d32;border-radius:8px;padding:13px 23px;font-size:17px;font-weight:600}.course-names{display:flex;gap:9px;flex-wrap:wrap;list-style:none;margin:26px 0;padding:0;color:#d0e4eb;font-size:15px}.course-names li{padding:7px 10px;border:1px solid #4d6b7e;border-radius:20px}.course-catalog{padding-block:72px}.course-catalog ol{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 70px}.course-catalog li{padding:24px 0;border-top:1px solid var(--line)}.course-catalog h3{font-size:24px;margin-bottom:12px}.course-catalog p{font-size:17px;margin:0}.try-promo{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding-block:68px}.try-promo>div>p{font-size:18px;max-width:520px}.try-promo .word-sample{padding:26px 32px}.try-promo .word-sample ruby{font-size:62px}.try-promo .word-meaning{margin-bottom:16px}.learning-outro{background:#235aca;color:#fff;padding-block:58px}.learning-outro p{font-size:18px;max-width:640px}.learning-outro .learning-links a{color:#fff}.learning-outro .learning-links .learning-primary{background:#f9f5e9;color:#263a36}
@media(max-width:950px){.learning-intro{gap:35px}.learning-intro h1{font-size:48px}.word-sample{padding:26px}.practice-section,.writing-section .practice-section{gap:35px}.course-promo .shell{gap:16px}.try-promo{gap:35px}}
@media(max-width:700px){.learning-intro{grid-template-columns:1fr;gap:32px;padding:30px 0 44px}.learning-intro h1{font-size:45px}.learning-intro .lead{font-size:17px}.word-sample{padding:27px 24px}.word-sample ruby{font-size:65px}.word-example{font-size:21px}.learning-links{gap:18px}.learning-activities{padding-block:40px}.practice-section,.writing-section .practice-section{grid-template-columns:1fr;gap:25px;padding-block:48px}.practice-section h2{font-size:32px;margin-bottom:14px}.writing-demo{height:620px;border-radius:12px}.course-promo .shell{grid-template-columns:1fr;gap:15px;padding-block:44px 24px}.course-promo h2{font-size:39px}.course-promo img{width:calc(100% + 18px);max-width:none;margin-left:-9px}.course-names{gap:7px;margin:20px 0}.course-names li{font-size:14px;padding:6px 9px}.course-catalog{padding-block:45px}.course-catalog ol{grid-template-columns:1fr;margin-top:24px}.course-catalog li{padding:22px 0}.try-promo{grid-template-columns:1fr;gap:28px;padding-block:46px}.try-promo>div>p{font-size:17px}.learning-outro{padding-block:44px}.learning-outro h2{font-size:34px}.learning-outro p{font-size:17px}}

/* Each stage shows actual curriculum content, with the next activity visible. */
.activity-list{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#9bb29b transparent;padding:0 0 18px;margin:22px 0 0;overscroll-behavior-x:contain}.activity-list>li{display:block;flex:0 0 31%;min-width:0;scroll-snap-align:start;border:0;padding:0;background:var(--paper);border-radius:14px;overflow:hidden}.activity-copy{padding:23px}.activity-copy h3{font-size:25px;margin:10px 0}.activity-copy p{font-size:16px;line-height:1.7}.activity-visual{height:270px;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}.activity-visual p{margin:0}.av-word{background:#fffdf4}.av-word ruby{font-size:68px;line-height:1.7}.av-word rt{font-size:17px}.av-word>span{font-size:18px;color:#54775c}.av-recall{background:#173f36;color:#f0f6e7}.av-recall p{font-size:19px;line-height:1.8}.av-recall strong{font-size:58px;color:#bfdfc3;line-height:1.6}.av-grammar{background:#362b43;color:#f5effa;padding:22px;align-items:flex-start}.av-grammar small{font-size:15px;color:#d7c8e1}.av-grammar p{font-size:30px;font-weight:650;line-height:1.65;margin:13px 0}.av-grammar mark{background:none;color:#f7d785;border-bottom:3px solid #f7d785}.av-grammar>span{font-size:17px;line-height:1.7}.av-sentence{background:#edf3f8;align-items:flex-start;padding:25px;gap:8px}.av-sentence p{font-size:22px;line-height:1.6}.av-sentence>span{font-size:18px;color:#6f8b9e}.av-scene{position:relative;background:#f8efe2}.av-scene img{width:100%;height:100%;object-fit:cover;object-position:center 40%}.av-scene p{position:absolute;left:15px;right:15px;bottom:18px;border-radius:16px 16px 16px 0;background:white;padding:13px 17px;box-shadow:0 4px 12px #263a3617;font-size:19px}.activity-controls{display:flex;align-items:center;justify-content:flex-end;gap:15px}.activity-controls button{width:46px;height:46px;border:1px solid #8da58f;border-radius:50%;background:transparent;color:#263a36;font-size:23px;cursor:pointer}.activity-controls button:disabled{opacity:.35;cursor:default}.activity-controls output{font-size:15px;min-width:42px;text-align:center}
@media(max-width:950px){.activity-list>li{flex-basis:44%}.activity-list{gap:18px}.activity-copy{padding:20px}}
@media(max-width:700px){.activity-list{margin-right:-19px;padding-right:19px;gap:16px}.activity-list>li{flex-basis:86%}.activity-copy{display:block;padding:22px}.activity-copy h3{font-size:25px;margin:9px 0}.activity-copy p{font-size:16px}.activity-visual{height:260px}.activity-controls{margin-top:22px}}
.av-grammar>span{color:#eadff1}.av-grammar p span{color:#d7c8e1}
.try-promo{padding-bottom:40px}.try-promo+#features{padding-top:35px}@media(max-width:700px){.try-promo{padding-bottom:30px}.try-promo+#features{padding-top:32px}}

/* Each visual has an honest action; course chips lead to the matching level. */
.av-word .audio-button{margin-top:20px;font-size:15px}.av-word .audio-error{padding:0 16px;font-size:13px;text-align:center}
.av-recall{text-decoration:none}.av-recall:hover{text-decoration:none;background:#214d41}.av-recall>span{font-size:15px;margin-top:12px;text-decoration:underline;text-underline-offset:5px}
.course-names li{padding:0;border:0}.course-promo .course-names a{min-height:44px;padding:7px 12px;font-size:15px;font-weight:400;background:transparent;border:1px solid #4d6b7e;border-radius:22px;color:#d0e4eb}.course-names a:hover{background:#13344d;text-decoration:none}.course-catalog li:target{background:#e6eede;border-radius:10px;padding-inline:18px}
.activity-list:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.audio-button,.course-names a{transition:background .15s ease,border-color .15s ease}.audio-button:active{transform:translateY(1px)}
@media(prefers-reduced-motion:reduce){.audio-button,.course-names a{transition:none}.audio-button:active{transform:none}}

/* Static rendering of Global VocabularyStudio: same samples, proportions and controls. */
.vocabulary-deck{--ink:#204a40;--accent:#bb653c;--paper:#fffefa;color:var(--ink);min-width:0;width:100%;max-width:600px;justify-self:center}
.vocabulary-deck svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.vocab-stack{position:relative;min-width:0;isolation:isolate;padding:30px 20px 20px}
.vocab-back{position:absolute;inset:20px 22px 55px;overflow:hidden;background:#ebefe3;border:1px solid #bdcebf;border-radius:24px;box-shadow:0 8px 25px -18px #2a473c70;transform:rotate(-5deg) translate(-6px,0);z-index:-1}
.vocab-back[data-depth="2"]{transform:rotate(6deg) translate(8px,1px);background:#d8e5d7;z-index:-2}
.vocab-back span{display:block;text-align:right;margin:14px 20px;font-size:18px;font-weight:700;color:#76917a}
.vocab-front{position:relative;background:var(--paper);border:1px solid #d8dfd2;border-radius:24px;box-shadow:0 24px 65px -35px #133c3b70;overflow:hidden;transform:translateX(var(--drag,0)) rotate(var(--tilt,0deg));transition:transform .22s ease-out,opacity .22s ease-out}
.vocab-front[data-dragging]{transition:none;user-select:none}
.vocab-front[data-leaving]{opacity:0;pointer-events:none}
.vocab-front[data-direction=hard]{border-color:#dc2626;box-shadow:inset 0 0 0 3px #dc262688}
.vocab-front[data-direction=easy]{border-color:#16a34a;box-shadow:inset 0 0 0 3px #16a34a88}
.vocab-header{display:flex;align-items:center;gap:9px;padding:20px 24px 14px;font-size:14px;font-weight:700}
.vocab-progress{display:flex;gap:5px;padding:0 24px}
.vocab-progress span{height:3px;flex:1;background:#e7ece4;border-radius:5px;transition:background .3s}
.vocab-progress [data-done=true]{background:#5f987e}
.vocab-progress [data-current=true]{background:var(--accent)}
.vocab-card[hidden]{display:none}
.vocab-swipe{touch-action:pan-y;cursor:grab}
.vocab-front[data-dragging] .vocab-swipe{cursor:grabbing}
.vocab-word-row{display:grid;grid-template-columns:34% minmax(0,1fr);align-items:center;gap:20px;padding:18px 24px;min-height:0}
.vocab-illustration{position:relative;aspect-ratio:1;background:#f2f3e9;border-radius:20px;overflow:hidden}
.vocab-illustration img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;pointer-events:none}
.vocab-word{min-width:0;align-self:center;container-type:inline-size}
.vocab-word-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.vocab-word-heading h3{min-width:0}


.vocab-word h3{font-size:clamp(32px,3.1vw,49px);font-weight:800;letter-spacing:-.06em;line-height:1.65;margin:0}
.vocab-word rt{font-size:12px;letter-spacing:.13em;color:#6b7e70;font-weight:400}

.vocab-word p{font-size:17px;font-weight:650;color:var(--accent);margin:6px 0 0;line-height:1.4;overflow-wrap:anywhere}
.vocab-balance{display:flex;align-items:center;justify-content:center;gap:6px;aspect-ratio:1;background:#eaf0e7;border-radius:20px;transform:rotate(-3deg)}
.vocab-balance span{font-size:22px;font-weight:750;writing-mode:vertical-rl;padding:15px 7px;background:#fffef7;border-radius:9px;box-shadow:0 5px 0 #c6d7c4}
.vocab-balance i{font-size:18px;font-style:normal}
.vocab-example{padding:17px 24px 20px;background:#f2f5ed;border-top:1px solid #e1e7da;min-height:0}
.vocab-example-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.vocab-example-top>span{display:flex;align-items:center;gap:7px;color:#6c7f65;font-size:12px;font-weight:700}
.vocab-example-line>p[lang=ja]{font-size:20px;font-weight:650;line-height:1.9;text-align:left;margin:0;overflow-wrap:break-word}
.vocab-example rt{font-size:10px;color:#829078}
.vocab-example .vocab-translation{font-size:14px;line-height:1.65;color:#657466;margin:10px 0 0}
.vocabulary-deck .vocab-audio{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;min-width:44px;padding:8px 10px;background:#e5ede1;color:#34624c;border-radius:100px;cursor:pointer;flex-shrink:0;border:0}
.vocabulary-deck .vocab-audio[aria-pressed=true]{background:#c4dfc1}
.vocab-wave{display:flex;align-items:center;gap:2px;height:18px}
.vocab-wave i{width:2px;border-radius:4px;background:currentColor;opacity:.65;height:12px}
.vocab-wave i:nth-child(2n){height:18px;animation-delay:-.3s!important}
.vocab-wave i:nth-child(3n){height:8px;animation-delay:-.5s!important}
.vocab-audio[aria-pressed=true] .vocab-wave i{animation:vocab-wave .65s ease-in-out infinite alternate}
.vocab-tools{display:flex;align-items:center;padding:14px 24px;border-top:1px solid #e2e7dc}
.vocab-tools button{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650;text-align:left;cursor:pointer;min-height:44px;line-height:1.4;border:0;background:transparent;color:inherit}
.vocab-grade-controls{display:flex;gap:9px;padding:0 24px 20px}
.vocab-grade-controls button{display:flex;justify-content:space-between;align-items:center;gap:8px;flex:1;border:0;border-radius:10px;min-height:47px;padding:10px 14px;background:#e7edf9;color:#44699b;font-weight:750;font-size:14px;cursor:pointer}
.vocab-grade-controls [data-vocab-grade=hard]{color:#a45042;background:#fae8de}
.vocab-grade-controls [data-vocab-grade=easy]{color:#236044;background:#daeddf}
.vocab-hint{text-align:center;margin:18px 0 0;font-size:12px;color:#6b7e63;line-height:1.6}
.vocab-swipe-feedback{position:absolute;top:80px;left:50%;z-index:5;transform:translateX(-50%) rotate(-8deg);pointer-events:none;background:#fffef8e8;border:3px solid;border-radius:12px;font-size:24px;font-weight:850;padding:10px 24px;opacity:0}
.vocab-front[data-direction=hard] .vocab-swipe-feedback{opacity:1;color:#dc2626}
.vocab-front[data-direction=easy] .vocab-swipe-feedback{opacity:1;color:#16a34a}
.vocab-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.vocabulary-deck button:focus-visible,.vocabulary-deck:focus-visible{outline:3px solid #b86b3e;outline-offset:3px}
.vocabulary-deck button:disabled{opacity:.6;cursor:default}
.vocab-writing-dialog{width:min(1000px,calc(100vw - 24px));height:min(900px,92svh);max-height:92svh;padding:16px;border:1px solid #d8dfd2;border-radius:20px;background:#fffefa;color:#204a40;box-sizing:border-box}
.vocab-writing-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px}
.vocab-writing-dialog::backdrop{background:#152a27b8}
.vocab-dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.vocab-dialog-header h2{font-size:21px;margin:0 0 6px}.vocab-dialog-header p{font-size:14px;margin:0;line-height:1.5;color:#657466}
.vocab-dialog-header button{width:44px;height:44px;flex-shrink:0;border:1px solid #bdcebf;border-radius:50%;background:#eaf0e7;color:#204a40;font-size:26px;cursor:pointer}
.vocab-writing-dialog iframe{width:100%;height:100%;border:0;border-radius:12px;min-height:0}
@keyframes vocab-wave{to{transform:scaleY(.35)}}
@media(max-width:900px){.learning-intro{gap:28px}.vocab-stack{padding:22px 12px 16px}.vocab-word-row{gap:14px;padding:18px}.vocab-word h3{font-size:36px}}
@media(max-width:650px){.vocab-stack{padding:20px 8px 10px}.vocab-back{inset:14px 20px 45px}.vocab-back[data-depth="2"]{transform:rotate(3deg) translate(3px,0)}.vocab-back[data-depth="1"]{transform:rotate(-3deg) translate(-3px,0)}.vocab-header{padding:18px 18px 13px}.vocab-word-row{padding:20px 18px;grid-template-columns:30% minmax(0,1fr);min-height:0;gap:15px}.vocab-word h3{font-size:36px}.vocab-word p{font-size:16px}.vocab-example{padding:14px 18px 18px}.vocab-example-line>p[lang=ja]{font-size:18px}.vocab-tools{padding:13px 18px}.vocab-grade-controls{padding:0 18px 18px;gap:7px}.vocab-grade-controls button{padding:9px;font-size:13px}.vocab-wave{display:none}}
@media(prefers-reduced-motion:reduce){.vocab-front,.vocab-progress span{transition:none}.vocab-audio[aria-pressed=true] .vocab-wave i{animation:none}}
/* Keep the single ruby phrase inside the narrow static card at 320–390px. */
@media(max-width:650px){.vocab-card[data-word="名残惜しい"] .vocab-word h3{font-size:clamp(26px,8vw,36px)}}

/* Keep the introduction and playback controls beside the content they explain. */
.learning-intro>div:first-child{padding-top:42px}.learning-intro .eyebrow{margin-bottom:16px}.learning-intro h1{margin-bottom:22px}.vocab-example-line{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:12px}.vocab-example-top{margin-bottom:7px}.vocabulary-deck .vocab-audio{width:44px;height:44px;padding:0}.learning-invitation{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:26px;border-bottom:1px solid var(--line)}.learning-invitation p{margin:0;font-size:19px}.learning-invitation a{display:inline-flex;align-items:center;gap:24px;min-height:44px;color:var(--blue);font-weight:650;white-space:nowrap}.learning-invitation a span{font-size:24px}.learning-invitation+#features{padding-top:38px}
@media(max-width:700px){.learning-intro>div:first-child{padding-top:0}.learning-intro{gap:10px}.learning-invitation{gap:12px;padding-block:20px;flex-wrap:wrap}.learning-invitation p{font-size:16px}.vocab-word-heading{gap:5px}.vocab-word h3{font-size:32px}.vocab-card[data-word="名残惜しい"] .vocab-word h3{font-size:clamp(23px,6.5vw,32px)}}

.vocab-card[data-word="名残惜しい"] .vocab-word h3{font-size:clamp(16px,calc(20cqw - 11px),42px)}
