:root{--bg:#fbf9f3;--paper:#fff;--ink:#25302b;--sub:#5d6b64;--line:#e3e0d3;--green:#2f6b57;--green-d:#245242;--green-soft:#e4efe9;--peach:#c8613f;--peach-soft:#fbece4;--sand:#f3eddc}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.85;font-size:17px}
a{color:var(--green-d);text-underline-offset:3px}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #f2b705;outline-offset:2px}
.wrap{max-width:980px;margin:0 auto;padding:0 20px}
header.site{background:var(--paper);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding-top:14px;padding-bottom:14px}
.brand{text-decoration:none;color:var(--green-d);font-family:Georgia,"Hiragino Mincho ProN","Yu Mincho",serif;font-size:1.45rem;font-weight:700;line-height:1.2}
.brand small{display:block;font-family:inherit;font-size:.78rem;font-weight:400;color:var(--sub);letter-spacing:.04em}
nav.main{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:.95rem}
nav.main a{text-decoration:none;color:var(--ink);padding:4px 0;border-bottom:2px solid transparent}
nav.main a:hover,nav.main a[aria-current]{border-bottom-color:var(--green)}
nav.main a.lang{border:1px solid var(--green);border-radius:999px;padding:2px 12px;color:var(--green-d)}
main .wrap{padding-top:28px;padding-bottom:56px}
h1{font-family:Georgia,"Hiragino Mincho ProN","Yu Mincho",serif;font-size:1.9rem;line-height:1.4;margin:.2em 0 .5em}
h2{font-size:1.3rem;margin:2em 0 .6em;padding-left:.7em;border-left:5px solid var(--green)}
h3{font-size:1.1rem;margin:1.4em 0 .4em}
.lead{color:var(--sub);font-size:1.02rem}
.hero{background:linear-gradient(120deg,var(--sand),#eaf2ec);border-radius:22px;padding:34px 28px;display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.hero .copy{flex:1 1 320px}
.hero h1{margin:0 0 .4em;font-size:2.1rem}
.hero h1 span{display:block;color:var(--green-d)}
.hero .art{flex:0 0 150px}.hero .art svg{width:150px;height:150px;border-radius:50%;display:block}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.btn{display:inline-block;background:var(--green);color:#fff;text-decoration:none;border-radius:999px;padding:9px 20px;font-size:.98rem}
.btn.ghost{background:transparent;color:var(--green-d);border:1px solid var(--green)}
.cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:18px 0}
.tile{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:18px 20px}
.tile h3{margin:.1em 0 .3em}
.tile p{margin:.2em 0 .8em;color:var(--sub);font-size:.95rem}
.meet{display:flex;gap:18px;align-items:flex-start;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin:22px 0}
.meet svg,.meet img{flex:0 0 76px;width:76px;height:76px;border-radius:50%}
.meet strong{display:block}
.today{background:var(--peach-soft);border-radius:16px;padding:16px 20px;margin:22px 0}
.today .big{font-size:1.5rem;font-weight:700;margin:.1em 0}
.today .ro{color:var(--sub)}
.audio{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin:16px 0;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-size:.9rem}
.audio label{display:flex;flex-direction:column;font-size:.8rem;color:var(--sub);gap:2px}
.audio select{font:inherit;font-size:.92rem;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;max-width:230px}
.audio button{font:inherit;font-size:.9rem;border:1px solid var(--green);background:#fff;color:var(--green-d);border-radius:999px;padding:5px 14px;cursor:pointer}
.audio .anote{margin:0;font-size:.8rem;color:var(--sub)}.audio p.anote{flex-basis:100%}.audio span.anote:empty{display:none}
.say{font:inherit;font-size:.82rem;border:1px solid var(--green);background:#fff;color:var(--green-d);border-radius:999px;padding:3px 12px;cursor:pointer;white-space:nowrap}
.say.on,.say:hover{background:var(--green);color:#fff}
.tools{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.tools input,.tools select{font:inherit;font-size:.95rem;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.tools input{flex:1 1 260px}
.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px 0;font-size:.92rem}
.pager button{font:inherit;border:1px solid var(--green);background:#fff;color:var(--green-d);border-radius:999px;padding:6px 16px;cursor:pointer}
.pager button:disabled{opacity:.4;cursor:default}
.words{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;list-style:none;padding:0;margin:0}
.word{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.word[hidden]{display:none}
.w-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.78rem;color:var(--sub)}
.w-top .num{font-variant-numeric:tabular-nums}
.w-top .cat{background:var(--green-soft);color:var(--green-d);border-radius:999px;padding:1px 10px}
.word h3{font-size:1.5rem;margin:.35em 0 0;font-weight:700}
.word .kana{color:var(--sub);font-size:.95rem}
.word .ro{color:var(--peach);font-size:.95rem;font-weight:600}
.word .mean{margin:.3em 0;font-size:.95rem}
.word .mean small{color:var(--sub)}
.ex{background:var(--bg);border-radius:10px;padding:8px 12px;margin-top:8px;font-size:.92rem}
.ex .ja{font-size:1.02rem}
.ex .ro{font-size:.88rem}
.ex .tr{color:var(--sub);font-size:.88rem}
.ex-row{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.empty{color:var(--sub);text-align:center;padding:24px}
.point{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:4px 20px 12px;margin:12px 0}
.exlist{list-style:none;padding:0;margin:10px 0}
.exlist li{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--green);border-radius:10px;padding:10px 14px;margin:8px 0}
.exlist .ja{font-size:1.15rem}
.tip{background:var(--green-soft);border-radius:14px;padding:12px 18px;margin:18px 0}
.tip strong{color:var(--green-d)}
.quiz-q{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin:12px 0}
.quiz-q p.q{margin:.2em 0 .6em;font-weight:700}
.opts{display:flex;flex-direction:column;gap:8px}
.opt{font:inherit;text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 14px;cursor:pointer}
.opt:hover{border-color:var(--green)}
.opt.right{background:var(--green-soft);border-color:var(--green)}
.opt.wrong{background:var(--peach-soft);border-color:var(--peach)}
.feedback{margin-top:10px;font-size:.93rem}
.feedback[hidden]{display:none}
.dialogue{list-style:none;margin:12px 0;padding:0}
.dialogue li{display:flex;gap:12px;margin:10px 0;align-items:flex-start}
.who{flex:0 0 74px;font-size:.8rem;font-weight:700;border-radius:999px;text-align:center;padding:3px 6px;margin-top:6px}
.who.h{background:var(--green-soft);color:var(--green-d)}
.who.c{background:var(--sand);color:#6b5a2b}
.bubble{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:8px 14px;flex:1}
.bubble .ja{font-size:1.1rem}
.bubble .ro{color:var(--peach);font-size:.88rem}
.bubble .tr{color:var(--sub);font-size:.9rem}
table.t{border-collapse:collapse;width:100%;max-width:520px;margin:10px 0;background:#fff}
table.t th,table.t td{border:1px solid var(--line);padding:6px 12px;text-align:left}
table.t caption{text-align:left;font-weight:700;padding:4px 0}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0}
.chips a{display:inline-block;background:var(--green-soft);color:var(--green-d);border-radius:999px;padding:3px 14px;text-decoration:none;font-size:.95rem}
.list{list-style:none;padding:0;margin:14px 0;display:grid;gap:12px}
.list li{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px 18px}
.list a.t{font-weight:700;font-size:1.08rem}
.list .n{display:inline-block;background:var(--green);color:#fff;border-radius:999px;padding:0 10px;font-size:.78rem;margin-right:8px}
.list p{margin:.3em 0 0;color:var(--sub);font-size:.93rem}
.note{font-size:.88rem;color:var(--sub);border-top:1px solid var(--line);margin-top:26px;padding-top:12px}
.back{margin-top:30px}
footer.site{background:var(--paper);border-top:1px solid var(--line);font-size:.88rem;color:var(--sub)}
footer.site .wrap{padding-top:18px;padding-bottom:22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px}
footer.site a{color:var(--sub)}
@media(max-width:560px){body{font-size:16px}.hero{padding:24px 18px}.hero h1{font-size:1.7rem}.who{flex-basis:64px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
