:root{--paper:#f8f7f2;--surface:#fffefa;--ink:#243e34;--muted:#59675e;--line:#d9ded4;--sage:#e7eee3;--green:#315e46;--gold:#edc56e;--red:#9a3737;--red-bg:#fcf0ed;--radius:20px;--shadow:0 12px 40px #243e3406;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;line-height:1.6}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #8c601b;outline-offset:4px}button{transition:background .16s,color .16s,box-shadow .16s}h1,h2,h3,p{margin-top:0}h1,h2,.serif{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.1;letter-spacing:-.035em}h1{font-size:clamp(2.6rem,5vw,4.7rem)}h2{font-size:clamp(1.8rem,3vw,2.7rem)}h3{font-size:1rem;line-height:1.5}p{margin-bottom:1.1rem}small,.small{font-size:.83rem}svg{width:20px;height:20px;flex:none}button svg{vertical-align:middle}strong{font-weight:650}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.7rem;font-weight:750;color:var(--green)}.shell{max-width:1160px;margin:auto;padding:0 48px}.site-header{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-size:1.05rem;font-weight:700;letter-spacing:-.025em;white-space:nowrap}.brand img{width:36px;height:40px}.nav{display:flex;gap:24px;align-items:center}.nav a{text-decoration:none;font-size:.85rem;min-height:44px;display:flex;align-items:center;border-bottom:2px solid transparent}.nav a:hover,.nav a[aria-current=page]{color:var(--green);border-color:var(--green)}main{padding:58px 0 72px}.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:72px;align-items:center;padding:24px 0 62px}.hero>div:first-child{container-type:inline-size}.hero h1{font-size:clamp(1.5rem,12cqi,4rem);margin:18px 0 24px}.hero h1 em{color:var(--green);font-weight:400}.hero-copy{font-size:1rem;max-width:380px;color:var(--muted)}.edition{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;padding:6px 11px;border:1px solid var(--line);border-radius:100px}.edition .dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.session-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow);position:relative}.session-card h2{font-size:1.85rem;margin:8px 0 12px}.card-top{display:flex;justify-content:space-between;align-items:center}.leaf-icon{height:38px;width:38px;border-radius:50%;display:grid;place-items:center;background:var(--sage)}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border:1px solid var(--line);border-radius:12px;margin:26px 0 20px}.segmented label{cursor:pointer;position:relative;border-radius:8px;padding:9px 4px;text-align:center;font-size:.85rem;font-weight:650}.segmented label:has(input:checked){background:var(--sage);color:var(--ink)}.segmented input{position:absolute;opacity:0;width:1px;height:1px}.segmented label:has(input:focus-visible){outline:3px solid #8c601b;outline-offset:2px}.segmented small{display:block;font-size:.7rem;font-weight:400}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:11px 20px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:.9rem;font-weight:600;text-decoration:none;line-height:1.5}.button:hover{background:var(--sage)}.button.primary{background:var(--ink);border-color:var(--ink);color:white}.button.primary:hover{background:var(--green)}.button.gold{background:var(--gold);border-color:var(--gold)}.button.danger{color:var(--red)}.button.full{width:100%}.text-button{background:none;border:0;color:var(--muted);font-size:.83rem;text-decoration:underline;text-underline-offset:4px;min-height:44px;padding:8px}.caption{font-size:.75rem;text-align:center;margin:13px 0 0;color:var(--muted)}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:27px 0;gap:20px}.stat{display:flex;align-items:center;gap:16px;justify-content:center}.stat+.stat{border-left:1px solid var(--line)}.stat-number{font-family:Georgia,serif;font-size:2rem;line-height:1.2}.stat small{display:block;color:var(--muted)}.below-home{display:flex;align-items:flex-start;justify-content:space-between;gap:36px;padding-top:32px}.tip{display:flex;gap:12px;max-width:520px;color:var(--muted);font-size:.84rem}.tip svg{margin-top:4px;color:var(--green)}.tip p{margin:0}.link-arrow{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:.85rem;min-height:44px;white-space:nowrap}.link-arrow:hover{text-decoration:underline}.footer{display:flex;justify-content:space-between;gap:20px;padding:24px 0 30px;border-top:1px solid var(--line);font-size:.72rem;color:var(--muted)}.notice{font-size:.85rem;padding:12px 16px;background:#fff0cb;border:1px solid #d7bb75;border-radius:10px;margin:18px 0}.notice:empty{display:none}.loading{text-align:center;padding:100px 24px}.skip-link{position:fixed;top:-100px;left:16px;padding:10px;background:white;z-index:20}.skip-link:focus{top:10px}.page-heading{max-width:650px;margin-bottom:36px}.page-heading h1{font-size:3rem;margin:12px 0 20px}.practice-shell{max-width:900px;margin:auto;padding:0 32px}.practice-header{display:flex;align-items:center;justify-content:space-between;min-height:92px;border-bottom:1px solid var(--line)}.practice-header .brand span{font-weight:600;font-size:.9rem}.practice-meta{color:var(--muted);font-size:.8rem}.practice-main{max-width:660px;margin:auto;padding-top:58px}.practice-title{font-size:2.3rem;text-align:center;margin:12px 0 24px}.word-status{text-align:center;margin-bottom:16px}.listen-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.listen-row .button{min-height:52px}.answer-form{margin-top:40px}.input-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:10px}.word-input{width:100%;min-height:92px;font-size:clamp(1.7rem,6vw,2.6rem);letter-spacing:.025em;padding:16px 22px;border:1.5px solid #758873;border-radius:12px;background:var(--surface);color:var(--ink)}.word-input:focus{border-color:var(--green);outline:3px solid #315e4620;outline-offset:2px}.word-input[readonly]{background:var(--paper)}.input-help{font-size:.72rem;color:var(--muted);margin:8px 0 22px}.submit-row{display:flex;justify-content:flex-end;align-items:center;gap:16px}.submit-row small{color:var(--muted);font-size:.75rem}.help-controls{margin-top:30px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.help-controls .button{font-size:.8rem;padding:8px 14px;min-height:44px}.hint{margin-top:18px;background:var(--sage);border-radius:12px;padding:18px 22px;font-size:.9rem}.hint:empty{display:none}.hint p:last-child{margin-bottom:0}.feedback{margin-top:24px;border:1px solid var(--line);padding:22px;border-radius:14px;background:var(--sage)}.feedback.missed{background:var(--red-bg);border-color:#e4c5bd}.feedback h2{font-family:inherit;font-size:1rem;letter-spacing:0;font-weight:700;margin-bottom:10px}.feedback p{margin-bottom:6px}.answer-word{font-size:1.6rem;font-weight:650;letter-spacing:.02em;overflow-wrap:anywhere}.pronunciations{color:var(--muted);font-size:.9rem}.feedback details{margin-top:15px}.feedback summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:.85rem;font-weight:600}.progress-track{height:3px;background:var(--line);margin-top:-1px}.progress-fill{height:100%;background:var(--green);transition:width .25s}.results-intro{text-align:center;position:relative;max-width:650px;margin:0 auto 34px}.results-intro h1{font-size:3.5rem;margin:18px 0}.results-bee{width:64px;height:64px;animation:arrival .5s ease-out}.results-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:760px;margin:0 auto 32px}.result-stat{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px 12px}.result-stat strong{display:block;font-family:Georgia,serif;font-size:2.4rem;font-weight:400}.result-stat small{color:var(--muted)}.results-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.review-list{max-width:760px;margin:40px auto 0}.review-list h2{font-size:1.7rem}.review-row{padding:17px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center}.review-row strong{font-size:1.05rem}.review-row small{display:block;color:var(--muted)}.review-row .button{font-size:.8rem;min-height:44px;padding:8px 14px}.searchbar{display:flex;gap:12px;align-items:center;margin-bottom:24px}.searchbar input{width:100%;min-height:50px;border:1px solid #758873;border-radius:10px;padding:12px 16px;background:var(--surface);color:var(--ink)}.library-list{display:grid;gap:12px}.word-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.word-card summary{padding:18px 22px;cursor:pointer;display:flex;align-items:center;gap:18px;min-height:68px;list-style:none}.word-card summary::-webkit-details-marker{display:none}.word-number{font-size:.72rem;color:var(--muted);width:30px}.word-name{font-size:1.1rem;font-weight:600;flex:1}.word-type{font-size:.75rem;color:var(--muted)}.word-card summary:after{content:'+';font-size:1.2rem;color:var(--green)}.word-card[open] summary:after{content:'−'}.word-content{padding:4px 24px 24px 70px;font-size:.9rem}.word-content .button{font-size:.8rem;min-height:44px}.word-content p{margin:12px 0}.pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:28px}.guide{max-width:740px}.guide section{border-top:1px solid var(--line);padding-top:26px;margin-top:30px}.guide h2{font-size:1.7rem}.guide li{margin-bottom:10px}.guide ul{padding-left:22px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.settings-panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px}.settings-panel h2{font-size:1.6rem}.field{margin:22px 0}.field label{display:block;font-size:.85rem;font-weight:650;margin-bottom:8px}.field select{width:100%;min-height:48px;background:var(--surface);border:1px solid #758873;border-radius:8px;padding:10px;color:var(--ink)}.button-stack{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.settings-panel p{font-size:.85rem;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:20px;padding:30px;max-width:460px;width:calc(100% - 32px);color:var(--ink);background:var(--surface);box-shadow:0 24px 100px #0003}dialog::backdrop{background:#162b2266}dialog h2{font-size:1.9rem}dialog p{font-size:.9rem}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.status-badge{background:var(--sage);padding:4px 10px;border-radius:100px;font-size:.7rem;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.results-sprig{position:absolute;color:#8aa17f;left:-35px;top:40px;transform:rotate(-20deg);width:65px;height:95px}.results-sprig.right{left:auto;right:-35px;transform:rotate(20deg) scaleX(-1)}@keyframes arrival{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(max-width:850px){.shell{padding:0 28px}.hero{gap:32px}.nav{gap:16px}.settings-grid{grid-template-columns:1fr}.session-card{padding:24px}}
@media(max-width:620px){.shell{padding:0 22px}.site-header{min-height:86px;flex-wrap:wrap;padding:18px 0 10px;gap:8px}.brand{font-size:1rem}.brand img{width:30px;height:34px}.nav{width:100%;justify-content:space-between;gap:8px}.nav a{font-size:.78rem;min-height:40px}main{padding:36px 0 48px}.hero{display:block;padding:0 0 34px}.hero h1{margin-top:20px}.hero-copy{max-width:100%;font-size:.95rem}.session-card{margin-top:30px;padding:24px}.session-card h2{font-size:1.7rem}.stats-row{gap:8px;padding:22px 0}.stat{display:block;text-align:center}.stat-number{font-size:1.7rem}.stat small{font-size:.68rem}.stat .stat-title{font-size:.75rem}.below-home{display:block;padding-top:25px}.below-home .link-arrow{margin-top:18px}.footer{display:block;padding-top:20px}.footer span{display:block;margin:5px 0}.practice-shell{padding:0 20px}.practice-header{min-height:80px;gap:8px}.practice-header .brand span{display:none}.practice-main{padding-top:36px}.practice-title{font-size:2rem}.answer-form{margin-top:30px}.word-input{min-height:82px;padding:16px}.submit-row .button{min-width:145px}.submit-row small{font-size:.68rem}.help-controls{gap:8px}.help-controls .button{font-size:.75rem;padding:8px 10px}.results-intro h1{font-size:2.7rem}.results-summary{gap:8px}.result-stat{padding:18px 6px}.result-stat strong{font-size:1.9rem}.result-stat small{font-size:.7rem}.results-sprig{display:none}.word-content{padding:4px 20px 22px}.word-card summary{padding:16px;gap:10px}.word-type{font-size:.7rem}.page-heading h1{font-size:2.5rem}.settings-panel{padding:22px}.review-row{gap:12px}.review-row strong{font-size:1rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.brand{min-height:44px;min-width:44px}.nav a{min-height:44px}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}
.metric-card,.statistics-panel,.stats-empty{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px}
.metric-card p{font-size:.85rem;margin-bottom:10px}.metric-card strong{display:block;font-family:Georgia,serif;font-size:2.3rem;font-weight:400;line-height:1.2;margin-bottom:12px}.metric-card small{display:block;color:var(--muted);font-size:.73rem}
.statistics-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px}.statistics-panel{min-width:0}.statistics-panel h2,.stats-empty h2{font-size:1.65rem}.stats-empty{margin-bottom:24px}
.activity-chart{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:5px;margin-top:28px}.activity-column{text-align:center;min-width:0}.activity-count,.activity-date{display:block;font-size:.65rem;color:var(--muted);height:24px}.activity-track{height:150px;display:flex;align-items:flex-end;background:var(--paper);border-radius:5px;overflow:hidden}.activity-bar{width:100%;background:var(--green);border-radius:5px 5px 0 0}.activity-date{margin-top:8px}.chart-range{display:flex;justify-content:space-between;margin-bottom:0}
.stage-list{display:grid;gap:12px}.stage-label{display:flex;justify-content:space-between;gap:12px;font-size:.8rem;margin-bottom:5px}.stage-track{height:7px;background:var(--sage);border-radius:8px;overflow:hidden}.stage-track div{height:100%;background:var(--green)}
.tricky-list,.recent-sessions{list-style:none;padding:0;margin:0}.tricky-list li,.recent-sessions li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.85rem}.tricky-list span,.recent-sessions span{font-size:.75rem;color:var(--muted);text-align:right}.recent-sessions small{display:block;font-size:.73rem;color:var(--muted)}.statistics-note{margin:24px 0 0}
@media(max-width:850px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-header{flex-wrap:wrap;padding:18px 0 10px;gap:8px}.nav{flex-wrap:wrap}}
@media(max-width:620px){.statistics-grid{grid-template-columns:minmax(0,1fr);gap:16px}.metric-grid{gap:10px}.metric-card{padding:18px 14px}.metric-card strong{font-size:1.8rem}.statistics-panel{padding:20px}.nav{column-gap:12px;justify-content:flex-start}.activity-chart{gap:4px}.tricky-list li{align-items:flex-start}.tricky-list strong{overflow-wrap:anywhere}}

.button.audio-playing{background-image:linear-gradient(#315e4626,#315e4626);background-size:var(--playback,0%) 100%;background-repeat:no-repeat}
.hint-setting{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;margin-top:8px;font-size:.78rem;color:var(--muted);cursor:pointer}
.hint-setting input{width:18px;height:18px;accent-color:var(--green);flex:none}
#audio-status:empty,#speech-status:empty{display:none}

@media(max-width:620px){.metric-card strong{font-size:1.6rem;white-space:nowrap}}
