:root{--ink:#52786d;--forest:#54796e;--lime:#e9f0d7;--paper:#fbfbf7;--white:#fff;--mist:#edf0e6;--line:#ced8cb;--muted:#668176}.app-shell{background:linear-gradient(115deg,#fcfcf8 0%,#fafbf4 57%,#f0f2dc 100%)}.site-header{padding-top:2rem}.brand{color:var(--forest);font-family:Georgia,"Yu Mincho",serif;font-size:1.36rem;font-weight:700;letter-spacing:-.05em}.brand-mark{width:3rem;height:3rem;background:#f4f5e8;color:var(--forest);border:2px solid var(--forest);font-family:ui-rounded,"Hiragino Sans",sans-serif;font-size:.9rem}.header-status{color:#82958c}.intro{margin-top:3rem;align-items:center}.intro h1{font-family:"Yu Gothic",ui-rounded,sans-serif;color:var(--forest);font-size:clamp(2.1rem,4.3vw,3.8rem);font-weight:700;letter-spacing:.02em;line-height:1.4}.wordmark{font-family:Georgia,serif;font-size:clamp(3.2rem,7vw,6.1rem);font-weight:800;letter-spacing:-.055em;color:var(--forest);line-height:1;margin:1.05rem 0 .75rem}.lead{color:#61796f}.streak-card{background:#f4f5e8;color:var(--forest);border:2px solid var(--forest);box-shadow:none}.streak-card p{color:#71877c}.streak-card strong{color:var(--forest)}.week-dots i{background:#d7e0d1}.week-dots i:first-child{background:var(--forest)}.mode-card{border-radius:1.1rem;border-color:#d3ddd3;background:#fff}.mode-card.active{background:#f0f3e3;border-color:var(--forest);box-shadow:0 4px 0 #cedcc8}.mode-icon{background:#e8eee0;color:var(--forest)}.quiz-panel{border:1px solid #e2e7df;box-shadow:0 12px 32px #55776d0d}.filters,.profile-card{background:#f9faf5}.level-picker{display:flex;gap:.5rem;margin-bottom:1rem}.level-button{border:1px solid var(--line);background:#fff;color:var(--forest);border-radius:99px;padding:.48rem .8rem;font-weight:700;cursor:pointer}.level-button.active{background:var(--forest);color:white}.level-button small{font-size:.65rem;opacity:.75}.level-button:not(.active):has(small){opacity:.58;cursor:not-allowed}.tag{background:#eef2e6;color:var(--forest)}.primary-button{background:var(--forest)}.primary-button:hover{background:#41665b}.progress-track span{background:var(--forest)}
