:root{--ink:#15342e;--muted:#637269;--paper:#f6f8f3;--line:#dce5d8;--green:#c9f47e;--light:#edf4e5;--dark:#102c29;--white:#fff;--shadow:0 5px 20px #17332b05;--radius:20px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #508331;outline-offset:4px}a{color:inherit}button{border:0}h1,h2,h3,p{margin:0}h1{font-size:clamp(30px,3vw,43px);line-height:1.2;font-weight:650;letter-spacing:-1.5px;margin:9px 0 12px}h2{font-size:23px;line-height:1.35;letter-spacing:-.6px;font-weight:650}h3{font-size:18px;line-height:1.4;font-weight:650}p+p{margin-top:12px}.muted{color:var(--muted)}.small{font-size:14px}.eyebrow,.nav-label{font-size:12px;letter-spacing:1.65px;font-weight:700}.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.brand{display:flex;align-items:center;gap:12px;font-weight:750;font-size:23px;line-height:1.15;text-decoration:none}.brand-small{display:block;font-size:12px;letter-spacing:1.5px;margin-top:7px}.mark{display:grid;place-items:center;background:var(--dark);color:var(--green);border-radius:15px 15px 15px 5px;width:49px;height:53px;font-family:serif;font-size:32px}aside{padding:38px 23px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}nav{display:grid;gap:6px;margin-top:45px}.nav-label{color:var(--muted);letter-spacing:1px;font-size:12px;margin:0 10px 14px}nav button{display:flex;align-items:center;gap:14px;text-align:left;padding:13px 15px;border-radius:11px;background:transparent;color:var(--muted);font-size:15px}nav button>span{font-size:20px;width:22px;text-align:center}nav button:hover{background:#f7f9f4}nav button.active{background:#eaf3df;color:var(--ink);font-weight:650}.aside-bottom{margin-top:auto;padding:48px 12px 0}.tiny-friend{font-size:35px}.aside-bottom p[lang]{font-size:20px;margin:12px 0 9px}.aside-bottom p:not([lang]){font-size:14px;color:var(--muted)}.storage-note{display:block;margin-top:30px;font-size:12px;color:var(--muted)}main{width:100%;max-width:1320px;padding:32px 48px 22px;margin:0 auto}header{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:14px;color:var(--muted);margin-bottom:32px}.level{border:1px solid var(--line);background:#fff;border-radius:25px;padding:7px 13px;font-size:12px;color:var(--ink)}.intro{margin-bottom:26px}.intro>p{color:var(--muted);max-width:740px}.intro .eyebrow{color:#597842}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:22px}.lesson-card{background:var(--dark);color:#fff;border-radius:24px;padding:30px;min-height:390px;display:flex;flex-direction:column;position:relative}.lesson-card .eyebrow{color:var(--green)}.card-top,.section-head,.row,.practice-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.pill{border:1px solid #ffffff40;border-radius:20px;padding:4px 11px;font-size:12px;white-space:nowrap}.jp-hero{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:clamp(32px,4.2vw,61px);letter-spacing:1px;line-height:1.4;overflow-wrap:anywhere;margin:24px 0 12px}.lesson-card h2{font-size:26px}.lesson-card>p{color:#c2d2c9;margin-top:8px;max-width:490px}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:auto;padding-top:28px}.lesson-card .meta{color:#c2d2c9;font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid transparent;border-radius:11px;background:var(--green);color:var(--ink);font-size:15px;font-weight:650;padding:12px 19px;text-decoration:none;line-height:1.5}.btn:hover:not(:disabled){filter:brightness(.97);transform:translateY(-1px)}.btn.dark{background:var(--dark);color:#fff}.btn.secondary{background:#fff;border-color:var(--line)}.btn.soft{background:var(--light)}.btn.small{font-size:14px;padding:8px 13px}.text-button{background:transparent;color:var(--muted);padding:6px 0;font-size:14px;text-decoration:none}.text-button:hover{color:var(--ink);text-decoration:underline}.panel{border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:23px;box-shadow:var(--shadow)}.rhythm .topline{display:flex;align-items:center;justify-content:space-between}.stat{font-size:46px;font-weight:650;letter-spacing:-2px;margin-top:7px;line-height:1.3}.stat small{font-size:14px;font-weight:400;letter-spacing:0;color:var(--muted)}.week{display:flex;justify-content:space-between;gap:5px;margin:17px 0}.day{font-size:12px;text-align:center;color:var(--muted)}.day i{font-style:normal;width:25px;height:25px;display:grid;place-items:center;margin-top:8px;border-radius:9px;background:#f0f4e9}.day.done i{background:var(--green);color:var(--ink)}hr{border:0;border-top:1px solid var(--line);margin:20px 0}.friend-note{background:#eff5e7;border-radius:13px;padding:13px 15px;margin-top:19px;font-size:14px}.friend-note>span{font-size:22px;margin-right:8px}.section-head{margin:28px 0 16px}.practice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.practice-tile{border:1px solid var(--line);background:#fff;border-radius:18px;padding:22px;text-align:left;box-shadow:var(--shadow)}.practice-tile:hover{border-color:#a9bf95;transform:translateY(-2px)}.tile-emoji{font-size:30px;display:inline-block;margin-bottom:16px}.practice-tile p{font-size:14px;color:var(--muted);margin:7px 0 13px}.tile-link{font-size:13px;font-weight:650}.lesson-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lesson-item{display:flex;align-items:center;gap:15px;padding:19px 18px;border:1px solid var(--line);border-radius:15px;background:#fff;text-align:left}.lesson-item:hover{border-color:#a9bf95}.lesson-item .number{display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;width:35px;height:38px;font-size:13px;flex-shrink:0}.lesson-item.done .number{background:var(--light);border-color:var(--light)}.lesson-item small{display:block;color:var(--muted);font-size:13px;margin-top:5px}.lesson-item .end{margin-left:auto}.level-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:22px 0}.level-card{border:1px solid var(--line);border-radius:15px;background:#fff;padding:17px 10px;text-align:center}.level-card.selected{border:2px solid #416341;background:var(--light);padding:16px 9px}.level-card>span{display:block;font-size:23px;margin-bottom:5px}.level-card strong{font-size:21px}.level-card small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.level-summary{background:var(--dark);color:#fff;border-radius:20px;padding:25px;display:grid;grid-template-columns:1fr 1fr;gap:25px}.level-summary p{color:#cfdbd2;margin-top:10px}.level-summary ul{margin:0;padding-left:20px;font-size:14px}.level-summary li+li{margin-top:9px}.note{font-size:14px;color:var(--muted);line-height:1.65}.level-caption{font-size:13px;color:var(--muted);margin-top:16px}.filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:22px 0}.filter-bar input{flex:1;min-width:180px}.input,textarea,select{background:#fff;border:1px solid #cdd9c6;border-radius:10px;padding:11px 13px;color:var(--ink);max-width:100%}textarea{width:100%;min-height:125px;resize:vertical;font-size:18px;line-height:1.8}.search-label{font-size:14px;color:var(--muted)}.practice{max-width:850px;margin:0 auto}.practice-top{margin:14px 0 22px}.practice-top>span{font-size:13px;color:var(--muted)}.steps{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0 19px}.steps span{font-size:12px;color:var(--muted);padding:4px 9px;border-radius:20px;background:#e9ede4}.steps span.current{background:var(--dark);color:#fff}.steps span.finished{background:#e0efcc;color:var(--ink)}progress{width:100%;height:7px;accent-color:#60843a;border:0;border-radius:10px;background:#e3eadc}progress::-webkit-progress-bar{background:#e3eadc;border-radius:10px}progress::-webkit-progress-value{background:#60843a;border-radius:10px}.flash{background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;margin:20px 0;text-align:center;min-height:315px}.jp-word{font-size:clamp(29px,4vw,52px);line-height:1.5;font-family:'Yu Mincho','Hiragino Mincho ProN',serif;margin:20px 0 8px;overflow-wrap:anywhere}.romaji{font-size:17px;color:var(--muted);margin:8px 0 12px}.translation{font-size:21px;margin:17px 0}.flash .note{max-width:650px;margin:18px auto 0}.audio-row{display:flex;justify-content:center;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}.audio-row .btn{border-radius:25px}.lesson-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px}.explanation{padding:24px;border-left:4px solid #92b35e;background:#eef4e6;border-radius:4px 16px 16px 4px;margin:24px 0}.explanation h3{margin-bottom:10px}.passage{font-size:23px;line-height:2;overflow-wrap:anywhere;margin:15px 0}.reading-box{text-align:left}.reading-box summary{cursor:pointer;font-size:14px;color:var(--muted);margin-top:15px}.reading-box details p{margin-top:12px}.answers{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:25px}.answer{padding:16px;border:1px solid var(--line);background:#fff;border-radius:12px;color:var(--ink);text-align:left;font-size:15px}.answer.correct,.match-card.matched{background:#e3f3cb;border-color:#87a858}.answer.wrong,.match-card.wrong{background:#fff0e9;border-color:#c18765}.feedback{font-size:15px;min-height:30px;margin:14px 0;color:var(--ink);font-weight:550}.toggle{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}.toggle button{border:1px solid var(--line);border-radius:25px;padding:8px 15px;background:#fff;font-size:14px}.toggle button.selected{background:var(--dark);color:#fff;border-color:var(--dark)}.studio-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px}.kana-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.kana-grid.combos{grid-template-columns:repeat(3,minmax(0,1fr))}.kana{padding:12px 5px;border:1px solid var(--line);background:#fff;border-radius:12px;color:var(--ink)}.kana.selected{background:#eaf4dc;border-color:#66864b}.kana strong{font-size:28px;display:block;font-family:serif;font-weight:500}.kana small{font-size:12px;color:var(--muted)}.copy-pad{position:relative;background:#fbfcf8;border:1px solid var(--line);border-radius:15px;width:100%;aspect-ratio:1;max-width:390px;margin:18px auto;overflow:hidden;touch-action:none}.copy-pad canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.copy-guide{position:absolute;inset:0;display:grid;place-items:center;font:190px/1 serif;color:#dde6d5;user-select:none;pointer-events:none}.copy-guide.combo{font-size:115px}.copy-pad::before,.copy-pad::after{content:'';position:absolute;border-color:#dde6d5;border-style:dashed;pointer-events:none}.copy-pad::before{top:0;bottom:0;left:50%;border-width:0 0 0 1px}.copy-pad::after{left:0;right:0;top:50%;border-width:1px 0 0}.pad-panel{align-self:start;position:sticky;top:25px}.pad-panel .row{flex-wrap:wrap;gap:8px}.example{font-size:22px;margin:13px 0}.example small{display:block;color:var(--muted);font-size:14px}.kanji-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.kanji-grid button{border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px 5px;text-align:center}.kanji-grid button.selected{background:var(--light);border-color:#66864b}.kanji-grid strong{display:block;font:31px/1.5 serif}.kanji-grid small{font-size:12px;color:var(--muted)}.field-label{display:block;font-size:14px;font-weight:650;margin:18px 0 8px}.writing-model{font-size:24px;background:#f2f6ed;border-radius:12px;padding:16px;margin:16px 0;line-height:1.8;overflow-wrap:anywhere}.checklist{display:grid;gap:11px;margin:20px 0;font-size:15px}.checklist label{display:flex;gap:10px;align-items:flex-start}.checklist input{width:18px;height:18px;margin-top:4px;accent-color:#446b3a}.checklist .hint{color:var(--muted);font-size:13px}.speaking-card{background:var(--dark);color:#fff;border-radius:22px;padding:28px;margin-bottom:22px}.speaking-card p{color:#d1dfd5;margin-top:14px}.speaking-card .eyebrow{color:var(--green)}.speaking-card .jp-word{font-size:32px}.speaking-card .romaji{color:#c2d2c9}.recorder{background:#f1f6ea;border:1px solid var(--line);border-radius:17px;padding:21px;margin:20px 0}.recorder .row{flex-wrap:wrap}.recorder audio{width:100%;margin-top:18px}.record-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d0715c;margin-right:6px}.meter-label{font-size:14px;color:var(--muted);margin:12px 0}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.game-grid .panel{display:flex;flex-direction:column}.game-grid p{font-size:14px;color:var(--muted);margin:10px 0 20px}.game-grid .btn{margin-top:auto}.game-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:23px}.score-chip{background:#eaf4db;border-radius:22px;padding:6px 12px;font-size:14px}.match-board{display:grid;grid-template-columns:1fr 1fr;gap:17px}.match-column{display:grid;gap:10px}.match-card{padding:15px 10px;border:1px solid var(--line);border-radius:13px;background:#fff;min-height:70px;font-size:16px;overflow-wrap:anywhere}.match-card[lang=ja]{font-size:22px}.match-card.selected{outline:2px solid #446b3a;background:var(--light)}.match-card:disabled{opacity:.7}.token-zone{min-height:80px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:17px;border:1px dashed #a5b498;border-radius:14px;margin:18px 0}.token-bank{display:flex;flex-wrap:wrap;gap:9px;min-height:70px;align-items:center}.token{font-size:20px;background:#fff;border:1px solid #cdd9c6;border-bottom-width:3px;border-radius:10px;padding:8px 14px}.token.selected{background:var(--light)}.finish{text-align:center;padding:40px 15px}.finish .big-emoji{font-size:65px;margin-bottom:18px}.finish .panel{margin:25px 0;text-align:left}.empty{text-align:center;padding:40px 20px}.empty p{margin:12px 0 22px}.resource-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.resource-grid a{display:block;margin-top:14px;font-weight:650}.footer-note{margin-top:24px;padding:18px 0;color:var(--muted);font-size:14px}.hide{display:none!important}#notice{color:var(--muted);font-size:14px;min-height:22px;padding-top:15px}footer{border-top:1px solid var(--line);margin-top:32px;padding-top:18px;display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted);align-items:center}.skip-link{position:fixed;top:-60px;left:15px;z-index:10;background:var(--dark);color:white;padding:10px}.skip-link:focus{top:10px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.backup-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}@media(min-width:1500px){main{padding-top:40px}}@media(max-width:1150px){.shell{grid-template-columns:215px minmax(0,1fr)}aside{padding:30px 17px}main{padding:27px}.brand{font-size:21px}.dashboard{grid-template-columns:minmax(0,1fr) 245px}.lesson-card{padding:25px}.studio-grid{grid-template-columns:minmax(0,1fr) 280px}.practice-tile{padding:18px}.level-grid{grid-template-columns:repeat(3,1fr)}.level-card{display:flex;gap:10px;align-items:center;justify-content:center;padding:12px}.level-card.selected{padding:11px}.level-card>span{margin:0}.level-card small{margin:0}.game-grid{grid-template-columns:1fr}.game-grid .panel{display:block}.game-grid .tile-emoji{float:right}.game-grid p{max-width:650px}}@media(max-width:950px){.dashboard{grid-template-columns:1fr}.rhythm{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}.rhythm hr{display:none}.rhythm .friend-note{grid-column:1/-1;margin-top:0}.rhythm>.small{grid-column:1/-1}.rhythm .week{margin:4px 0}.rhythm .progress-block{grid-column:1/-1}.studio-grid{grid-template-columns:1fr}.pad-panel{position:static}.pad-panel .copy-pad{max-width:310px}.copy-guide{font-size:210px}.practice-grid{grid-template-columns:1fr 1fr}.practice-grid>:last-child{grid-column:1/-1}.lesson-list{grid-template-columns:1fr}.level-summary{grid-template-columns:1fr;gap:20px}}@media(max-width:700px){.shell{display:block}aside{padding:17px 18px 10px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:20px}.mark{width:42px;height:44px;font-size:27px}.brand-small{font-size:12px}nav{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:18px}.nav-label,.aside-bottom{display:none}nav button{font-size:13px;padding:9px 6px;gap:7px;justify-content:center}nav button>span{font-size:17px;width:18px}main{padding:22px 18px}header{margin-bottom:22px;font-size:12px}.level{font-size:12px;padding:6px 9px}.intro{margin-bottom:22px}.intro p{font-size:15px}h1{letter-spacing:-1px}.lesson-card{padding:24px;min-height:360px}.jp-hero{font-size:41px}.card-bottom{gap:12px}.meta{max-width:120px}.practice-grid{grid-template-columns:1fr;gap:11px}.practice-grid>:last-child{grid-column:auto}.practice-tile{display:grid;grid-template-columns:48px 1fr;gap:0 15px;padding:18px}.practice-tile .tile-emoji{grid-row:1/4;margin:0}.practice-tile p{margin:4px 0 7px}.practice-tile .tile-link{grid-column:2}.level-card{display:block;padding:12px 6px}.level-card.selected{padding:11px 5px}.level-card small{font-size:12px;margin-top:4px}.level-card>span{font-size:20px}.level-card strong{font-size:19px}.level-summary{padding:22px}.flash{padding:24px 17px}.answers{grid-template-columns:1fr}.practice-top{align-items:flex-start}.steps{gap:5px}.steps span{font-size:12px;padding:4px 7px}.section-head h2{font-size:21px}.studio-grid{gap:17px}.resource-grid{grid-template-columns:1fr}.match-board{gap:10px}.match-card{font-size:14px;min-height:80px;padding:12px 8px}.match-card[lang=ja]{font-size:19px}.passage{font-size:21px}.recorder{padding:17px}.token{font-size:18px;padding:7px 10px}.field-label{font-size:14px}footer{align-items:flex-start}footer button{font-size:12px!important}.speaking-card{padding:23px}.speaking-card .jp-word{font-size:27px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.btn:hover,.practice-tile:hover{transform:none}}

/* VEX Japanese identity */
.brand-name{min-width:0}.brand-title{display:block;font-size:21px;line-height:1.5;letter-spacing:.025em}.brand-title [lang="ja"]{font-size:.93em;font-weight:600;letter-spacing:.06em}.brand .mark{flex-shrink:0}.brand .brand-small{font-size:12px;letter-spacing:.35px;line-height:1.5;margin-top:3px;font-weight:550}.footer-brand{font-size:14px;color:var(--ink);font-weight:650;letter-spacing:.04em}.footer-tagline{display:block;font-size:12px;letter-spacing:0;font-weight:400;color:var(--muted);margin-top:3px}
