@charset "UTF-8";:root{font-family:Helvetica Neue,-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;color:#222921;background:#dcded6;font-synthesis:none;--paper: #f4f1e8;--ink: #222921;--accent: #bd4229;--rule: #cccfc2;--muted: #596354}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{cursor:default}.site-frame{min-height:100%}.app-shell{width:min(100%,480px);height:100dvh;margin:auto;background:var(--paper);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 0 1px #bfc5b9}.topbar{flex:none;height:calc(62px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 22px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule)}.brand{display:flex;gap:10px;align-items:center;border:0;padding:0;background:none;text-align:left;font-size:13px;font-weight:800;letter-spacing:.04em}.brand small{display:block;font-size:7px;font-weight:600;letter-spacing:.14em;margin-top:3px}.brand-mark{position:relative;width:31px;height:31px;font-family:Georgia,serif;font-size:18px;line-height:1}.brand-mark>span{position:absolute;right:-2px;bottom:-1px;font-family:serif;font-size:21px;color:var(--accent)}.vocabulary-count{display:flex;gap:7px;align-items:baseline;border:0;padding:8px 0 8px 8px;background:none}.vocabulary-count b{font-size:22px;font-weight:500;letter-spacing:-.06em}.vocabulary-count span{font-size:8px;color:var(--muted)}.main-content{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}.eyebrow{display:block;font-size:9px;letter-spacing:.12em;font-weight:600;color:var(--muted)}h1,h2,p{margin:0}em{font-style:normal;color:var(--accent)}.home-page{min-height:480px;height:100%;display:flex;flex-direction:column;gap:12px;padding:20px 22px 16px}.home-heading{display:flex;align-items:end;justify-content:space-between;flex:none}.home-heading h1{font-size:clamp(30px,5.1dvh,42px);line-height:1.25;letter-spacing:-.055em;font-weight:800;margin-top:7px}.heading-note{writing-mode:vertical-rl;font-size:9px;letter-spacing:.17em;line-height:1.9;color:var(--muted);padding-bottom:3px}.district-picker{flex:none;display:grid;grid-template-columns:repeat(5,1fr);border-block:1px solid var(--rule)}.district-picker button{min-height:38px;border:0;position:relative;background:none;padding:0 2px;font-size:11px;color:var(--muted)}.district-picker button.active{color:var(--ink);font-weight:800}.district-picker button.active:after{position:absolute;content:"";height:3px;left:18%;right:18%;bottom:-1px;background:var(--accent)}.specimen-card{flex:1;min-height:170px;display:flex;flex-direction:column}.specimen-image{flex:1;min-height:120px;position:relative;isolation:isolate;overflow:hidden;background:#163332;color:#fffaf0;touch-action:pan-y}.specimen-image>img,.photo-shade{position:absolute;width:100%;height:100%;top:0;right:0;bottom:0;left:0;z-index:-1}.specimen-image>img{object-fit:cover;animation:photo-enter .45s ease-out}.photo-shade{background:linear-gradient(180deg,#0a20163d,#071e181a 25%,#09251a6b 65%,#061d16b3)}.photo-caption{position:absolute;top:15px;left:16px;right:16px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.09em;text-shadow:0 1px 5px #122115}.photo-caption>span:first-child{padding-left:9px;border-left:2px solid #fffaf0}.specimen-word{position:absolute;top:20%;right:12px;bottom:23%;left:12px;display:flex;align-items:center;justify-content:center;animation:word-enter .3s ease-out}.specimen-word h2{font-family:Hiragino Mincho ProN,Yu Mincho,"Noto Serif CJK JP",serif;font-size:clamp(34px,7dvh,54px);line-height:1.4;letter-spacing:-.07em;font-weight:600;white-space:nowrap;text-shadow:0 2px 18px #10291770}.word-bracket{align-self:start;margin-top:7px;font-size:26px;font-family:serif;opacity:.8}.word-bracket.closing{align-self:end;margin-bottom:9px}.photo-controls{position:absolute;left:16px;right:7px;bottom:3px;display:flex;justify-content:space-between;align-items:center}.photo-controls>span{font-size:8px;letter-spacing:.025em}.photo-controls>div{display:flex}.photo-controls button{width:40px;height:40px;background:transparent;border:0;color:#fff;font-size:20px}.specimen-definition{flex:none;display:flex;justify-content:space-between;align-items:center;min-height:58px;padding:4px 5px 4px 15px;border:1px solid var(--rule);border-top:0;background:#ebe9df}.specimen-definition>div{display:flex;align-items:baseline;gap:13px}.specimen-definition>div>span{font-size:9px;color:var(--muted);white-space:nowrap}.specimen-definition p{font-size:15px;font-weight:600}.bookmark{flex:none;display:grid;place-items:center;width:42px;height:42px;border:0;background:transparent;color:#65705f}.bookmark[aria-pressed=true]{color:var(--accent)}.home-action{flex:none}.learning-caption{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin:0 0 9px}.learning-caption b{font-weight:500;color:var(--ink)}.button{width:100%;min-height:52px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;font-size:14px;font-weight:700;letter-spacing:.025em}.button>span[aria-hidden]{font-size:23px;line-height:1;font-weight:400}.primary{background:var(--accent);color:#fffaf0}.primary:active{background:#9b321e}.outline{border:1px solid var(--ink);background:none}.review-link{display:flex;align-items:center;width:100%;gap:8px;padding:9px 0 0;border:0;background:none;text-align:left;font-size:10px}.review-link>span{margin-left:auto}.bottom-nav{flex:none;height:calc(60px + env(safe-area-inset-bottom));padding:0 10px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule)}.bottom-nav button{display:flex;justify-content:center;align-items:center;gap:8px;position:relative;border:0;background:none;font-size:10px;color:#65705f}.bottom-nav button.active{color:var(--accent);font-weight:700}.bottom-nav button.active:before{content:"";position:absolute;top:-1px;left:25%;right:25%;height:2px;background:var(--accent)}.nav-glyph{font-family:Georgia,Hiragino Mincho ProN,serif;font-size:22px;line-height:1}.nav-badge{position:absolute;top:3px;right:8px;min-width:13px;font-size:8px;line-height:13px;padding-inline:3px;background:var(--accent);color:var(--paper);border-radius:8px}.review-page{height:100%;min-height:410px;padding:20px 22px 16px;display:flex;flex-direction:column;gap:15px}.review-page>:not(.review-list):not(.review-empty){flex:none}.review-page h1{font-size:clamp(25px,4dvh,32px)}.review-page h1 em{display:block}.review-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--rule)}.review-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:43px;border:0;border-bottom:2px solid transparent;padding:5px 0;background:none;color:var(--muted);font-size:10px}.review-tabs button[aria-pressed=true]{border-bottom-color:var(--accent);color:var(--accent)}.review-tabs b{font-size:14px;font-weight:500}.review-summary>div{display:flex;align-items:baseline;gap:13px}.review-summary strong{font-size:clamp(42px,8dvh,63px);line-height:1;letter-spacing:-.07em;font-weight:400}.review-summary span{font-size:12px}.review-summary p{margin-top:9px;font-size:10px;color:var(--muted);line-height:1.5}.review-list-caption{padding-bottom:4px}.review-list-caption button{border:0;background:none;padding:8px 0 8px 8px;font-size:10px;color:var(--accent)}.review-list{flex:1;min-height:55px;overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}.review-list article{display:flex;gap:14px;padding:13px 0;border-bottom:1px solid var(--rule)}.review-list article>span{flex:none;width:20px;padding-top:6px;font-size:9px;color:var(--muted)}.review-list h2{font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-size:23px;font-weight:600;overflow-wrap:anywhere}.review-list p{margin-top:5px;font-size:11px;color:var(--muted);line-height:1.6}.review-start p{color:var(--muted);font-size:9px;margin-bottom:9px}.review-empty{flex:1;min-height:140px;display:flex;flex-direction:column;justify-content:center}.empty-glyph{font-family:serif;font-size:42px;color:var(--accent);line-height:1;margin-bottom:15px}.review-empty h2{font-size:16px;letter-spacing:-.03em}.review-empty p{font-size:11px;color:var(--muted);line-height:1.7;margin-block:9px 20px}.review-empty .button{margin-top:auto}.page-heading h1{font-size:clamp(24px,3.8dvh,30px);letter-spacing:-.045em;margin-top:8px;line-height:1.3}.heading-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.dictionary-page{height:100%;min-height:300px;padding:20px 22px 0;display:flex;flex-direction:column}.dictionary-page>:not(.word-list){flex:none}.saved-toggle{display:flex;align-items:center;gap:3px;min-width:44px;height:44px;border:0;background:none;color:var(--muted);font-size:11px;padding:0}.saved-toggle.active{color:var(--accent)}.search-box{display:flex;align-items:center;gap:9px;margin-top:17px;border-bottom:1px solid var(--ink);padding:0 0 9px;height:41px}.search-box input{width:100%;min-width:0;border:0;background:transparent;font-size:13px;color:var(--ink)}.search-box input::placeholder{color:var(--muted)}.filter-row{display:grid;grid-template-columns:repeat(6,1fr);margin-block:9px;gap:2px}.filter-row button{border:0;padding:0;background:none;font-size:10px;min-height:36px;color:var(--muted);white-space:nowrap}.filter-row button.selected{color:var(--paper);background:var(--ink)}.list-caption{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:9px;letter-spacing:.03em;color:var(--muted);padding-bottom:10px;border-bottom:1px solid var(--rule)}.list-caption span:last-child{font-size:8px;letter-spacing:.09em}.word-list{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}.word-card{display:flex;align-items:center;gap:13px;padding:17px 0;border-bottom:1px solid var(--rule)}.word-index{font-size:9px;color:var(--muted);width:20px;flex:none;align-self:start;padding-top:5px}.word-card>div{flex:1;min-width:0}.word-card h2{font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-size:23px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.word-card p{font-size:11px;color:#57624e;line-height:1.6;margin-top:4px}.word-card small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.empty{text-align:center;font-size:12px;line-height:1.9;padding:40px 0;color:var(--muted)}.record-page{min-height:450px;height:100%;padding:20px 22px 14px;display:flex;flex-direction:column;gap:17px}.record-total strong{font-size:clamp(66px,12dvh,96px);font-weight:400;line-height:1;letter-spacing:-.075em}.record-total>div:first-child>span{font-size:12px;color:var(--muted)}.record-total p{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-block:9px}.progress-track{height:3px;background:#d8dbce;overflow:hidden}.progress-track>span{display:block;height:100%;background:var(--accent);transition:width .25s ease}.record-stats{display:grid;grid-template-columns:repeat(3,1fr);padding-bottom:13px;border-bottom:1px solid var(--rule)}.record-stats>*{display:flex;flex-direction:column;align-items:start;padding:0;border:0;background:none;gap:4px}.record-stats b{font-size:22px;font-weight:500}.record-stats span{font-size:9px;color:var(--muted)}.district-records{flex:1;min-height:170px;display:flex;flex-direction:column}.district-records .list-caption{border:0;padding-bottom:5px}.district-record{flex:1;min-height:30px;display:grid;grid-template-columns:50px 1fr 67px;align-items:center;gap:14px;border:0;border-bottom:1px solid #d9dccf;background:transparent;padding:0;text-align:left;font-size:11px}.district-record>span:last-child{text-align:right;font-size:10px;color:var(--muted)}.district-record b{color:var(--ink);font-weight:500}.district-record .progress-track{height:2px}.data-note{font-size:8px;line-height:1.6;color:var(--muted)}.quiz-page{height:100%;min-height:490px;padding:12px 22px max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}.quiz-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;flex:none;color:var(--muted);min-height:30px}.quiz-topline b{color:var(--ink);font-size:17px;font-weight:500}.back-button{border:0;background:transparent;padding:8px 0;font-size:11px}.quiz-progress{display:flex;gap:5px;flex:none}.quiz-progress>span{flex:1;height:3px;background:#d4d9ca}.quiz-progress>span.current{background:var(--accent)}.quiz-progress>span.done{background:var(--ink)}.question-card{flex:1 0 auto;min-height:100px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:12px 4px}.question-card p{color:var(--muted);font-size:10px;margin-bottom:16px}.question-card h1{font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-size:clamp(28px,4.9dvh,38px);font-weight:600;line-height:1.3;letter-spacing:-.04em;overflow-wrap:anywhere;animation:word-enter .2s ease-out}.question-card small{font-size:10px;color:var(--muted);margin-top:9px}.word-note{margin-top:7px;font-size:10px;color:var(--muted)}.word-note summary{cursor:pointer;padding:5px}.word-note p{margin:4px 0 0;line-height:1.6}.options{display:grid;gap:7px;flex:none}.option{display:flex;align-items:center;gap:12px;width:100%;min-height:clamp(44px,7.2dvh,57px);padding:9px 12px;background:#eeede3;border:1px solid var(--rule);text-align:left;font-size:12px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.option-letter{flex:none;color:var(--muted);font-size:10px;font-weight:400;width:16px}.option.correct{border-color:#46664f;background:#e1e9d9;color:#2e5336}.option.incorrect{border-color:var(--accent);background:#f4e3d6;color:#98381f}.answer-symbol{margin-left:auto;flex:none}.quiz-bottom{flex:none;min-height:82px;display:flex;flex-direction:column;justify-content:end;gap:9px}.answer-hint{text-align:center;color:var(--muted);font-size:10px;margin-bottom:15px}.answer-feedback{display:flex;flex-direction:column;gap:4px;font-size:10px;color:var(--accent);line-height:1.4}.answer-feedback.good{color:#3c633f}.answer-feedback>span{color:var(--ink)}.result-page{height:100%;min-height:480px;padding:clamp(24px,5dvh,44px) 24px 22px;display:flex;flex-direction:column}.result-page h1{font-size:clamp(34px,6dvh,46px);line-height:1.3;letter-spacing:-.06em;margin-top:14px}.result-number{flex:1;min-height:125px;display:flex;align-items:center;gap:18px}.result-number strong{font-size:clamp(88px,18dvh,142px);font-weight:400;letter-spacing:-.075em;line-height:1}.result-number span{font-size:12px;color:var(--muted);padding-top:35px}.result-page>p{font-size:11px;line-height:1.8;color:var(--muted);margin-bottom:20px}.result-actions{display:grid;gap:9px}.text-button{min-height:35px;border:0;background:none;font-size:11px;color:var(--muted)}.notice{padding:8px 16px;color:#823a1d;background:#f6dfbe;font-size:11px}@keyframes photo-enter{0%{opacity:.45;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}@keyframes word-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-height:680px){.topbar{height:calc(54px + env(safe-area-inset-top))}.bottom-nav{height:calc(54px + env(safe-area-inset-bottom))}.home-page{padding-block:14px 12px;gap:10px;min-height:430px}.home-heading h1{font-size:31px}.home-heading .eyebrow{font-size:8px}.specimen-definition{min-height:48px}.record-page{gap:12px;padding-top:16px;min-height:440px}.record-total strong{font-size:66px}.record-stats{padding-bottom:10px}.record-stats b{font-size:20px}.dictionary-page{padding-top:16px}.quiz-page{gap:8px}.question-card p{margin-bottom:11px}.quiz-bottom .button{min-height:46px}}@media(max-height:590px){.home-page{min-height:410px;padding:10px 18px;gap:8px}.home-heading h1{font-size:27px;margin-top:4px}.district-picker button{min-height:34px}.specimen-card{min-height:158px}.specimen-image{min-height:110px}.specimen-word h2{font-size:34px}.photo-caption{top:11px}.photo-controls>span{font-size:7px}.home-action .button{min-height:46px}.learning-caption{margin-bottom:6px}.review-link{padding-top:6px}.record-page{gap:10px;min-height:440px;padding:12px 18px}.record-total strong{font-size:55px}.page-heading h1{font-size:24px}.record-stats b{font-size:18px}.quiz-page{min-height:490px;padding-inline:18px;gap:7px}.question-card{padding-block:9px;min-height:93px}.question-card h1{font-size:27px}.option{min-height:43px;padding-block:8px}.quiz-bottom{min-height:76px}.result-page{padding-top:20px}}@media(max-width:350px){.topbar{padding-inline:18px}.vocabulary-count span{font-size:7px}.heading-note{font-size:8px}.specimen-word h2{font-size:33px}.word-bracket{font-size:22px}.dictionary-page{padding-inline:18px}.page-heading h1{font-size:23px}.photo-controls>span{max-width:150px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-height:680px){.review-page{gap:10px;padding-block:14px 12px}.review-page h1{font-size:25px}.review-summary strong{font-size:42px}.review-empty p{margin-bottom:12px}}@media(max-height:590px){.review-page{padding:12px 18px;gap:8px}.review-page h1{font-size:23px;margin-top:5px}.review-summary strong{font-size:36px}.review-summary p{font-size:9px;margin-top:5px}.review-tabs button{min-height:36px}.review-start .button{min-height:46px}.empty-glyph{font-size:32px;margin-bottom:9px}}@media(max-width:350px){.bottom-nav button{gap:5px;font-size:9px}.nav-glyph{font-size:20px}}
