:root{--ground:#eaeae8;--glass:#ffffff6b;--glass-hover:#fff9;--glass-strong:#ffffffb8;--solid:#fff;--blur:blur(30px) saturate(118%) brightness(1.05);--edge:inset 0 0 0 1px #ffffff8c, inset 0 1px 0 #ffffffeb;--edge-hover:inset 0 0 0 1px #ffffffb3, inset 0 1px 0 #fff;--ink:#17191c;--ink-2:#5a6166;--ink-3:#6b7176;--ink-4:#a2a8ad;--ink-5:#9aa1a6;--sh-sm:0 1px 3px #16201b12, 0 5px 14px #16201b14;--sh-md:0 2px 4px #16201b0a, 0 14px 38px #16201b1a;--sh-lg:0 4px 12px #16201b12, 0 22px 48px #16201b26;--again:#b2604a;--again-tint:#f8ebe6;--hard:#9b7736;--hard-tint:#f8f1e2;--good:#4f8f76;--good-tint:#e6f3ee;--easy:#6f6795;--easy-tint:#eeecf6;--tint-mint:#e9f6f1;--tint-cream:#fbf3e4;--tint-blue:#eaf0f7;--r-lg:40px;--r-md:24px;--r-sm:16px;--r-pill:999px;--spring:cubic-bezier(.34, 1.6, .5, 1);--ease:cubic-bezier(.22, 1, .36, 1);--f-ui:"Plus Jakarta Sans", "Noto Sans JP", "Hiragino Sans", "Helvetica Neue", Arial, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#191a1d;--glass:#ffffff12;--glass-hover:#ffffff1c;--glass-strong:#ffffff24;--solid:#24262a;--edge:inset 0 0 0 1px #ffffff1a, inset 0 1px 0 #ffffff29;--edge-hover:inset 0 0 0 1px #ffffff2e, inset 0 1px 0 #ffffff42;--ink:#f0f1f2;--ink-2:#b3b9be;--ink-3:#aab0b5;--ink-4:#949a9f;--ink-5:#8b9297;--sh-sm:0 1px 3px #0006, 0 5px 14px #0000004d;--sh-md:0 2px 4px #00000052, 0 14px 38px #0000006b;--sh-lg:0 4px 12px #00000061, 0 22px 48px #00000080;--again:#e0907a;--again-tint:#e0907a24;--hard:#d8b06a;--hard-tint:#d8b06a24;--good:#7fc7aa;--good-tint:#7fc7aa24;--easy:#a9a3cc;--easy-tint:#a9a3cc29;--tint-mint:#8fc4b029;--tint-cream:#d4b26a24;--tint-blue:#9aa8c829}}:root[data-theme=dark]{--ground:#191a1d;--glass:#ffffff12;--glass-hover:#ffffff1c;--glass-strong:#ffffff24;--solid:#24262a;--edge:inset 0 0 0 1px #ffffff1a, inset 0 1px 0 #ffffff29;--edge-hover:inset 0 0 0 1px #ffffff2e, inset 0 1px 0 #ffffff42;--ink:#f0f1f2;--ink-2:#b3b9be;--ink-3:#aab0b5;--ink-4:#949a9f;--ink-5:#8b9297;--sh-sm:0 1px 3px #0006, 0 5px 14px #0000004d;--sh-md:0 2px 4px #00000052, 0 14px 38px #0000006b;--sh-lg:0 4px 12px #00000061, 0 22px 48px #00000080;--again:#e0907a;--again-tint:#e0907a24;--hard:#d8b06a;--hard-tint:#d8b06a24;--good:#7fc7aa;--good-tint:#7fc7aa24;--easy:#a9a3cc;--easy-tint:#a9a3cc29;--tint-mint:#8fc4b029;--tint-cream:#d4b26a24;--tint-blue:#9aa8c829}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--ground);color:var(--ink);font-family:var(--f-ui);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.8}.sq-shape{corner-shape:superellipse(2.4)}h1,h2,h3{letter-spacing:-.028em;text-wrap:balance;margin:0;font-weight:700}h1{font-size:1.7rem;font-weight:800;line-height:1.2}h2{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-5);margin:34px 0 14px;font-size:.66rem;font-weight:800}h3{letter-spacing:-.02em;font-size:1rem}p{margin:0 0 8px}ul{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}.mono{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.bgfx{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.blob{will-change:transform, border-radius;position:absolute}.b1{opacity:.66;filter:blur(56px);background:radial-gradient(circle at 42% 42%,#a9a3cc,#a9a3cc00 70%);border-radius:58% 42% 47% 53%/44% 51% 49% 56%;width:620px;height:560px;animation:26s ease-in-out infinite alternate drift1,19s ease-in-out infinite alternate morphA;top:2%;left:12%}.b2{opacity:.62;filter:blur(50px);background:radial-gradient(circle at 46% 40%,#8e9a86,#8e9a8600 70%);border-radius:46% 54% 61% 39%/55% 41% 59% 45%;width:520px;height:480px;animation:34s ease-in-out infinite alternate drift2,23s ease-in-out infinite alternate morphB;top:34%;left:42%}.b3{opacity:.58;filter:blur(52px);background:radial-gradient(circle at 44% 44%,#d4876a,#d4876a00 70%);border-radius:52% 48% 40% 60%/48% 58% 42% 52%;width:460px;height:430px;animation:29s ease-in-out infinite alternate drift3,21s ease-in-out infinite alternate morphA;top:12%;right:2%}.b4{opacity:.54;filter:blur(48px);background:radial-gradient(circle at 48% 46%,#8fc4b0,#8fc4b000 70%);border-radius:43% 57% 55% 45%/57% 44% 56% 43%;width:430px;height:400px;animation:21s ease-in-out infinite alternate drift4,17s ease-in-out infinite alternate morphB;top:52%;right:14%}.b5{opacity:.34;filter:blur(64px);background:radial-gradient(circle at 44% 46%,#d3b3b0,#d3b3b000 72%);border-radius:55% 45% 50% 50%/42% 56% 44% 58%;width:440px;height:400px;animation:38s ease-in-out infinite alternate drift2,25s ease-in-out infinite alternate morphA;top:46%;left:6%}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .blob{opacity:.3}}:root[data-theme=dark] .blob{opacity:.3}@keyframes drift1{0%{transform:translate(0,0)scale(1)}to{transform:translate(-70px,60px)scale(1.1)}}@keyframes drift2{0%{transform:translate(0,0)scale(1.05)}to{transform:translate(60px,-70px)scale(.94)}}@keyframes drift3{0%{transform:translate(0,0)scale(.96)}to{transform:translate(-80px,-50px)scale(1.12)}}@keyframes drift4{0%{transform:translate(0,0)scale(1)}to{transform:translate(50px,-60px)scale(1.14)}}@keyframes morphA{0%{border-radius:58% 42% 47% 53%/44% 51% 49% 56%}to{border-radius:44% 56% 58% 42%/56% 44% 52% 48%}}@keyframes morphB{0%{border-radius:46% 54% 61% 39%/55% 41% 59% 45%}to{border-radius:60% 40% 42% 58%/41% 57% 43% 59%}}.grain{z-index:0;pointer-events:none;opacity:.2;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='200'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.85'%20numOctaves='4'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20type='saturate'%20values='0'/%3E%3C/filter%3E%3Crect%20width='200'%20height='200'%20filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px;position:fixed;inset:0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .grain{mix-blend-mode:overlay;opacity:.1}}:root[data-theme=dark] .grain{mix-blend-mode:overlay;opacity:.1}@media (prefers-reduced-motion:reduce){.blob{animation:none!important}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app{z-index:1;min-height:100vh;position:relative}.glass{background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-md), var(--edge)}.app-header{z-index:20;border-radius:var(--r-pill);background:var(--glass);width:min(1000px,100% - 32px);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);flex-wrap:wrap;align-items:center;gap:20px;margin:14px auto 0;padding:11px 14px 11px 22px;display:flex;position:sticky;top:14px}.app-title{letter-spacing:-.03em;white-space:nowrap;font-size:.95rem;font-weight:800}.app-nav{flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}.nav-button{color:var(--ink-3);letter-spacing:-.01em;border-radius:var(--r-pill);cursor:pointer;transition:transform .16s var(--spring), background-color .18s ease, color .18s ease;background:0 0;border:0;padding:7px 15px;font-family:inherit;font-size:.78rem;font-weight:700}.nav-button:hover{color:var(--ink);transform:scale(1.05)}.nav-button:active{transition-duration:60ms;transform:scale(.96)}.nav-button.is-active{background:var(--ink);color:var(--ground);box-shadow:0 2px 9px #16201b2e}.page{z-index:1;max-width:800px;margin:0 auto;padding:40px 24px 110px;position:relative}.lead{color:var(--ink-2);margin:10px 0 0;font-size:.9rem;line-height:1.9}.button{border-radius:var(--r-pill);background:var(--solid);color:var(--ink-2);letter-spacing:-.012em;cursor:pointer;box-shadow:var(--sh-sm);transition:transform .18s var(--spring), box-shadow .2s ease, color .16s ease, background-color .16s ease;border:0;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-family:inherit;font-size:.82rem;font-weight:700;line-height:1.5;display:inline-flex;position:relative}.button:hover:not(:disabled){color:var(--ink);box-shadow:var(--sh-md);transform:translateY(-2px)scale(1.03)}.button:active:not(:disabled){transition-duration:70ms;transform:translateY(0)scale(.955)}.button:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}.button.primary{background:var(--ink);color:var(--ground);box-shadow:0 2px 9px #16201b2e}.button.primary:hover:not(:disabled){color:var(--ground);box-shadow:0 5px 18px #16201b42}.button.ghost{color:var(--ink-3);box-shadow:none;background:0 0}.button.ghost:hover:not(:disabled){background:var(--glass-strong);color:var(--ink);box-shadow:var(--sh-sm)}.button.danger:hover:not(:disabled){color:var(--again)}.button.compact{padding:7px 14px;font-size:.75rem}.button.block{border-radius:var(--r-md);corner-shape:superellipse(2.4);width:100%;padding:16px 20px;font-size:.92rem;display:flex}.button-row{flex-wrap:wrap;gap:9px;margin-top:18px;display:flex}.key-hint{letter-spacing:.02em;opacity:.6;border-radius:var(--r-pill);color:inherit;background:color-mix(in srgb, currentColor 15%, transparent);padding:2px 9px;font-size:.62rem;font-weight:800}.rip{border-radius:inherit;corner-shape:superellipse(2.4);pointer-events:none;border:2px solid color-mix(in srgb, currentColor 42%, transparent);animation:.66s cubic-bezier(.22,1,.36,1) forwards rip;position:absolute;inset:-9px}@keyframes rip{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.17)}}.field{flex-direction:column;gap:6px;min-width:0;margin-bottom:16px;display:flex}.field>span,.field>label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-5);font-size:.68rem;font-weight:800}.field-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 20px;display:grid}.field-wide{grid-column:1/-1}.input,.select{color:var(--ink);background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-radius:var(--r-sm);corner-shape:superellipse(2.4);width:100%;box-shadow:var(--edge), 0 1px 2px #16201b0d;border:0;padding:11px 14px;font-family:inherit;font-size:.86rem;transition:box-shadow .2s,background-color .2s}.input:hover,.select:hover{background:var(--solid)}.input:focus,.select:focus{background:var(--solid);box-shadow:var(--sh-sm), inset 0 0 0 2px var(--ink);outline:none}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.inline-form .field{flex:200px;margin-bottom:0}.field.compact{flex-direction:row;flex:none;align-items:center;gap:9px;margin-bottom:0}.field.compact .input{width:88px}.notice,.warning,.empty-state{border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);color:var(--ink-2);padding:20px 22px;font-size:.86rem}.warning{color:var(--hard);background:var(--hard-tint)}.toast{background:var(--ink);color:var(--ground);border-radius:var(--r-pill);z-index:60;box-shadow:var(--sh-lg);animation:toast-in .4s var(--spring);padding:12px 22px;font-size:.84rem;font-weight:700;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,14px)scale(.94)}to{opacity:1;transform:translate(-50%)scale(1)}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.dashboard{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:26px 0;display:grid}.stat-tile{border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);padding:20px 20px 18px}.stat-value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800;line-height:1;display:block}.stat-label{letter-spacing:.11em;text-transform:uppercase;color:var(--ink-5);margin-top:10px;font-size:.65rem;font-weight:800;display:block}.deck-list{flex-direction:column;gap:22px;margin-top:26px;display:flex}.deck-card,.deck-row{border-radius:var(--r-lg);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-md), var(--edge);transition:transform .2s var(--spring), box-shadow .2s ease, background-color .2s ease;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:22px 24px;display:flex;position:relative}.deck-card:hover,.deck-row:hover{background:var(--glass-hover);box-shadow:var(--sh-lg), var(--edge-hover);transform:translateY(-5px)scale(1.012)}.deck-row:after,.deck-card:after{content:"";border-radius:calc(var(--r-lg) + 8px);corner-shape:superellipse(2.4);border:2.5px solid var(--ink);pointer-events:none;opacity:0;transition:opacity .14s,transform .44s cubic-bezier(.32,1.44,.48,1);position:absolute;inset:-8px;transform:scale(.9)}.deck-row:hover:after,.deck-card:hover:after{opacity:1;animation:2.2s ease-in-out .44s infinite breathe;transform:scale(1)}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.016)}}.deck-card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;width:100%;display:flex}.deck-name{letter-spacing:-.028em;font-size:1.02rem;font-weight:700}.deck-name-button{cursor:pointer;color:var(--ink);letter-spacing:-.028em;text-align:left;background:0 0;border:0;padding:0;font-family:inherit;font-size:1.02rem;font-weight:700}.deck-meta{letter-spacing:.02em;color:var(--ink-4);font-size:.7rem;font-weight:700}.deck-counts{flex-wrap:wrap;gap:7px;display:flex}.deck-card .deck-counts{margin-top:10px}.deck-actions{flex-wrap:wrap;gap:6px;display:flex}.deck-open{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:9px;min-width:0;margin:0;padding:0;display:flex}.deck-settings{border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);margin-top:28px;padding:22px 24px}.mastery-bar{border-radius:var(--r-pill);background:#17191c14;width:100%;height:5px;margin-top:14px;display:flex;overflow:hidden}.mastery-bar>span{transition:width .5s var(--ease);display:block}.mastery-new{background:var(--ink-4)}.mastery-learning{background:var(--hard)}.mastery-mastered{background:var(--good)}.legend{flex-wrap:wrap;gap:8px 18px;margin-top:14px;display:flex}.legend-item{color:var(--ink-4);align-items:center;gap:7px;font-size:.68rem;font-weight:700;display:flex}.legend-swatch{border-radius:var(--r-pill);width:10px;height:4px}.badge{letter-spacing:.06em;border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:6px;padding:4px 11px;font-size:.62rem;font-weight:800;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.badge-due{color:var(--good);background:var(--good-tint)}.badge-new{color:var(--easy);background:var(--easy-tint)}.badge-overdue{color:var(--again);background:var(--again-tint)}.card-list{flex-direction:column;gap:10px;margin-top:18px;display:flex}.card-row{border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);transition:transform .18s var(--spring), box-shadow .18s ease, background-color .18s ease;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.card-row:hover{background:var(--glass-hover);box-shadow:var(--sh-md), var(--edge-hover);transform:translateY(-2px)}.card-row-main{flex:1;min-width:0}.card-row-actions{flex-wrap:wrap;flex-shrink:0;gap:5px;display:flex}.card-texts,.card-text-line{flex-wrap:wrap;align-items:baseline;gap:10px;min-width:0;display:flex}.card-texts{flex-direction:column;gap:3px}.card-back{color:var(--ink-2);font-size:.88rem}.card-example{color:var(--ink-4);font-size:.82rem}.card-status{color:var(--ink-4);font-variant-numeric:tabular-nums;margin-top:8px;font-size:.66rem;font-weight:700}.mastery-chip{letter-spacing:.06em;border-radius:var(--r-pill);padding:3px 10px;font-size:.6rem;font-weight:800}.mastery-chip-new{color:var(--ink-4);background:#17191c0f}.mastery-chip-learning{color:var(--hard);background:var(--hard-tint)}.mastery-chip-mastered{color:var(--good);background:var(--good-tint)}.card-form{border-radius:var(--r-lg);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-md), var(--edge);margin-bottom:24px;padding:26px 26px 24px}.tag-list{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.tag{color:var(--ink-3);background:var(--glass-strong);border-radius:var(--r-pill);box-shadow:var(--edge);padding:4px 12px;font-size:.66rem;font-weight:700}.study{flex-direction:column;max-width:660px;min-height:calc(100vh - 40px);padding:26px 24px 34px;display:flex}.study-header{border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);flex-shrink:0;padding:18px 22px}.study-header-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.study-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.study-deck-name{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-5);font-size:.7rem;font-weight:800}.phase-tag{letter-spacing:.14em;color:var(--ink-4);flex-direction:column;gap:1px;font-size:.66rem;font-weight:800;display:flex}.phase-tag small{letter-spacing:0;color:var(--ink-4);font-size:.68rem;font-weight:700}.phase-climb{color:var(--easy)}.phase-summit{color:var(--hard)}.phase-repair{color:var(--again)}.progress{border-radius:var(--r-pill);background:#17191c14;height:5px;margin:14px 0 4px;overflow:hidden}.progress-bar{border-radius:var(--r-pill);background:var(--ink);height:100%;transition:width .45s var(--ease)}.study-remaining{color:var(--ink-4);font-variant-numeric:tabular-nums;margin:0;font-size:.7rem;font-weight:700}.round-meters{align-items:flex-end;gap:22px;margin-top:12px;display:flex}.meter{flex-direction:column;line-height:1.05;display:flex}.meter b{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:800}.meter small{letter-spacing:.11em;text-transform:uppercase;color:var(--ink-5);margin-top:4px;font-size:.58rem;font-weight:800}.meter.chain b{color:var(--good)}.meter.best{text-align:right;opacity:.6;margin-left:auto}.combo-pop{animation:combo-pop .4s var(--spring)}@keyframes combo-pop{0%{transform:scale(1)}38%{transform:scale(1.3)}to{transform:scale(1)}}.gain{color:var(--good);animation:gain-rise .75s var(--ease) forwards;font-size:.85rem;font-weight:800}@keyframes gain-rise{0%{opacity:0;transform:translateY(6px)}25%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.speed-note{animation:answer-in .3s var(--ease) both;align-items:center;gap:10px;margin-top:12px;display:flex}.tag-swift,.tag-slow{letter-spacing:.05em;border-radius:var(--r-pill);padding:3px 12px;font-size:.62rem;font-weight:800}.tag-swift{color:var(--good);background:var(--good-tint)}.tag-slow{color:var(--ink-4);background:#17191c0f}.elapsed{color:var(--ink-4);font-size:.68rem;font-weight:700}.study-card-stage{perspective:1400px;flex:1;align-items:center;margin:24px 0;display:flex}.study-card{corner-shape:superellipse(2.4);background:var(--glass-hover);width:100%;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-lg), var(--edge);transform-origin:50%;backface-visibility:hidden;border-radius:48px;padding:44px 36px}.study-card.is-turning{transition:transform .17s cubic-bezier(.5,0,.9,.5);transform:rotateY(90deg)}.study-card.is-landing{animation:card-land .44s var(--spring)}@keyframes card-land{0%{transform:rotateY(-90deg)}to{transform:rotateY(0)}}.study-card.is-entering{animation:card-enter .4s var(--spring)}@keyframes card-enter{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.study-line{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.study-front-line{align-items:center}.study-front{letter-spacing:-.04em;word-break:break-word;margin:0;font-size:clamp(2.1rem,7vw,3.3rem);font-weight:800;line-height:1.1}.study-divider{border:0;border-top:1.5px solid #17191c1a;margin:26px 0 22px}.study-back{letter-spacing:-.03em;word-break:break-word;margin:0;font-size:clamp(1.4rem,4.4vw,1.95rem);font-weight:700;line-height:1.35}.study-pronunciation{color:var(--ink-4);margin:9px 0 0;font-size:.82rem;font-weight:600}.study-example{color:var(--ink-2);margin:16px 0 0;font-size:.95rem;line-height:1.75}.study-note{color:var(--ink-2);border-radius:var(--r-sm);corner-shape:superellipse(2.4);background:#17191c0b;margin:16px 0 0;padding:12px 16px;font-size:.85rem}.study-card .study-divider,.study-card .study-line:not(.study-front-line),.study-card .study-pronunciation,.study-card .study-note,.study-card .tag-list{animation:answer-in .42s var(--ease) both}.study-card .study-line:not(.study-front-line){animation-delay:40ms}.study-card .study-pronunciation{animation-delay:80ms}.study-card .study-note,.study-card .tag-list{animation-delay:.12s}@keyframes answer-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.grade-row{flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.button.grade{border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass-hover);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);flex-direction:column;gap:4px;padding:17px 8px 15px;position:relative}.button.grade:hover:not(:disabled){box-shadow:var(--sh-md), var(--edge-hover);transform:translateY(-5px)scale(1.04)}.button.grade:active:not(:disabled){transition-duration:70ms;transform:translateY(-1px)scale(.975)}.grade-again{color:var(--again);background:var(--again-tint)}.grade-hard{color:var(--hard);background:var(--hard-tint)}.grade-good{color:var(--good);background:var(--good-tint)}.grade-easy{color:var(--easy);background:var(--easy-tint)}.grade-label{letter-spacing:-.02em;font-size:.88rem;font-weight:800}.grade-interval{opacity:.72;font-variant-numeric:tabular-nums;font-size:.62rem;font-weight:700}.shortcut-hint{color:var(--ink-4);text-align:center;margin:20px 0 0;font-size:.66rem;font-weight:700}.study-done{min-height:76vh;animation:card-enter .5s var(--spring) both;flex-direction:column;justify-content:center;display:flex}.round-grade{align-items:center;gap:13px;margin-bottom:22px;display:flex}.grade-mark{letter-spacing:.18em;border-radius:var(--r-pill);box-shadow:var(--sh-sm);padding:7px 18px;font-size:.72rem;font-weight:800}.grade-note{color:var(--ink-4);font-size:.8rem;font-weight:700}.grade-mark-perfect .grade-mark{color:var(--ground);background:var(--good)}.grade-mark-clean .grade-mark{color:var(--good);background:var(--good-tint)}.grade-mark-clear .grade-mark{color:var(--ink-3);background:var(--glass-strong)}.eyebrow-ascent{letter-spacing:.18em;text-transform:uppercase;color:var(--good);margin:0 0 10px;font-size:.66rem;font-weight:800}.ascent-list{flex-direction:column;gap:10px;display:flex}.ascent-heading{letter-spacing:-.035em;text-wrap:balance;font-size:clamp(1.5rem,3.6vw,2.1rem);font-weight:800;line-height:1.22}.ascent-list:has(li:only-child) .ascent-heading{letter-spacing:-.04em;font-size:clamp(1.8rem,5vw,2.7rem);line-height:1.15}.ascent-list li+li{padding-left:20px;position:relative}.ascent-list:not(:has(li:only-child)) li{padding-left:20px;position:relative}.ascent-list:not(:has(li:only-child)) li:before{content:"";border-radius:var(--r-pill);background:var(--good);width:11px;height:2px;position:absolute;top:.62em;left:0}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:11px;margin:30px 0;display:grid}.summary-tile{border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);padding:20px 20px 18px}.unlock-card{border-radius:var(--r-lg);corner-shape:superellipse(2.4);background:var(--glass-hover);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-md), inset 0 0 0 2px var(--ink);animation:card-enter .55s var(--spring) .2s both;margin-bottom:26px;padding:22px 24px}.unlock-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin:0 0 9px;font-size:.62rem;font-weight:800}.unlock-row{flex-direction:column;gap:3px;display:flex}.unlock-row b{letter-spacing:-.025em;font-size:1rem;font-weight:800}.unlock-row span{color:var(--ink-3);font-size:.78rem;font-weight:600}.pack-list{flex-wrap:wrap;gap:7px;display:flex}.pack{border-radius:var(--r-pill);background:var(--solid);color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-sm);transition:transform .18s var(--spring), box-shadow .2s ease, background-color .16s ease, color .16s ease;border:0;flex-direction:column;align-items:center;gap:1px;padding:9px 18px;font-family:inherit;font-size:.8rem;font-weight:700;display:flex}.pack:hover:not(:disabled){color:var(--ink);box-shadow:var(--sh-md);transform:translateY(-2px)scale(1.04)}.pack:active:not(:disabled){transition-duration:60ms;transform:scale(.96)}.pack.is-active{background:var(--ink);color:var(--ground);box-shadow:0 2px 9px #16201b2e}.pack:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;background:0 0}.pack small{letter-spacing:.04em;color:var(--ink-4);font-size:.56rem;font-weight:700}.speak-button{border-radius:var(--r-pill);color:var(--ink-4);cursor:pointer;transition:color .18s ease, background-color .18s ease, transform .18s var(--spring), box-shadow .2s ease;background:0 0;border:0;flex-shrink:0;align-items:center;gap:5px;padding:8px 10px;display:inline-flex}.speak-button:hover:not(:disabled){color:var(--ink);background:var(--solid);box-shadow:var(--sh-sm);transform:translateY(-2px)scale(1.06)}.speak-button:active:not(:disabled){transition-duration:70ms;transform:scale(.92)}.speak-button:disabled{opacity:.35;cursor:not-allowed}.speak-button.is-speaking{color:var(--good)}.speak-button.is-error{color:var(--again)}.icon{border-radius:50%;flex-shrink:0;width:38px;height:38px;padding:0}.speak-waves{align-items:center;gap:2px;height:13px;display:flex}.speak-waves>span{border-radius:var(--r-pill);background:currentColor;width:2px;height:100%;animation:.9s ease-in-out infinite speak-wave}.speak-waves>span:nth-child(2){animation-delay:.15s}.speak-waves>span:nth-child(3){animation-delay:.3s}@keyframes speak-wave{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}.heatmap{grid-template-columns:repeat(auto-fill,minmax(12px,1fr));gap:4px;margin:10px 0 4px;display:grid}.heatmap-cell{aspect-ratio:1;corner-shape:superellipse(2.4);transition:transform .2s var(--spring);background:#17191c12;border-radius:4px}.heatmap-cell:hover{transform:scale(1.35)}.heatmap-cell.level-1{background:color-mix(in srgb, var(--good) 30%, transparent)}.heatmap-cell.level-2{background:color-mix(in srgb, var(--good) 55%, transparent)}.heatmap-cell.level-3{background:color-mix(in srgb, var(--good) 78%, transparent)}.heatmap-cell.level-4{background:var(--good)}.trend{align-items:flex-end;gap:4px;height:104px;margin:10px 0 4px;display:flex}.trend-column{flex:1;align-items:flex-end;height:100%;display:flex}.trend-bar{border-radius:var(--r-pill);background:var(--easy);opacity:.55;transform-origin:bottom;width:100%;transition:opacity .18s ease, transform .24s var(--spring)}.trend-column:hover .trend-bar{opacity:1;transform:scaleX(1.35)}.voice-list,.limit-list{flex-direction:column;gap:8px;display:flex}.voice-row,.limit-row,.setting-row{border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:16px 20px;display:flex}.setting-row{margin-bottom:8px}.setting-field{flex-direction:column;flex:100%;gap:6px;min-width:0;display:flex}.setting-field .input{width:100%}.setting-field .setting-desc{margin-top:2px}.voice-language{min-width:120px;font-size:.88rem;font-weight:700}.voice-row .select,.limit-row .input{flex:0 auto;width:auto;min-width:180px}.setting-label{letter-spacing:-.02em;font-size:.9rem;font-weight:700}.setting-desc{color:var(--ink-3);max-width:46ch;margin:4px 0 0;font-size:.78rem;line-height:1.8}.slider{appearance:none;border-radius:var(--r-pill);cursor:pointer;background:#17191c1f;width:100%;max-width:240px;height:5px}.slider::-webkit-slider-thumb{appearance:none;background:var(--solid);width:20px;height:20px;box-shadow:var(--sh-sm);transition:transform .2s var(--spring);border:0;border-radius:50%}.slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.slider::-moz-range-thumb{background:var(--solid);width:20px;height:20px;box-shadow:var(--sh-sm);border:0;border-radius:50%}.switch{cursor:pointer;align-items:center;gap:10px;display:inline-flex;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch-track{border-radius:var(--r-pill);background:#17191c1f;width:46px;height:27px;transition:background-color .24s;position:relative}.switch-thumb{background:var(--solid);width:21px;height:21px;box-shadow:var(--sh-sm);transition:transform .3s var(--spring);border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked+.switch-track{background:var(--ink)}.switch input:checked+.switch-track .switch-thumb{transform:translate(19px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--ink);outline-offset:3px}.segmented{border-radius:var(--r-pill);background:var(--glass-strong);box-shadow:var(--edge);gap:4px;padding:4px;display:inline-flex}.segmented button{color:var(--ink-3);border-radius:var(--r-pill);cursor:pointer;transition:background-color .2s ease, color .2s ease, transform .16s var(--spring);background:0 0;border:0;padding:7px 15px;font-family:inherit;font-size:.74rem;font-weight:700}.segmented button:hover{color:var(--ink);transform:scale(1.04)}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--ground);box-shadow:0 2px 8px #16201b2e}@media (width<=560px){.page{padding:28px 16px 90px}.grade-row{grid-template-columns:repeat(2,1fr)}.study-card{border-radius:36px;padding:32px 24px}.app-header{gap:10px;padding:10px 12px 10px 18px}.round-meters{gap:16px}}.update-bar{border-radius:var(--r-pill);background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-lg), var(--edge);z-index:60;white-space:nowrap;animation:toast-in .4s var(--spring);align-items:center;gap:10px;padding:10px 12px 10px 20px;font-size:.84rem;font-weight:700;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@media (width<=560px){.update-bar{justify-content:space-between;padding-left:16px;left:16px;right:16px;transform:none}}@media (hover:none) and (pointer:coarse){.key-hint,.shortcut-hint{display:none}}.study-card-stage[hidden]{display:none}.study-card-stage[data-tappable=yes]{cursor:pointer}.study-hint{letter-spacing:.01em;color:var(--ink-3);margin:10px 0 0;font-size:.82rem}.study-hint:before{content:"ヒント　";letter-spacing:.08em;opacity:.7;font-size:.7rem}.memo-sheet{border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);flex-direction:column;gap:12px;margin-top:14px;padding:16px 18px;display:flex}.memo-actions{justify-content:flex-end;gap:8px;display:flex}.drill{border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-sm), var(--edge);flex-direction:column;gap:12px;padding:18px 20px;display:flex}.drill-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.drill-word{letter-spacing:-.02em;font-size:1.15rem;font-weight:700}.drill-meaning{color:var(--ink-3);margin-top:2px;font-size:.8rem;display:block}.drill-count{color:var(--ink-3);font-size:.78rem}.drill-input{width:100%;font-size:1.05rem}.drill-input.is-wrong{box-shadow:inset 0 0 0 1.5px var(--again,#b4553a)}.drill-actions{justify-content:flex-end;gap:8px;display:flex}.drill-wrong{color:var(--ink-3);margin:0;font-size:.78rem}.sheet-backdrop{z-index:40;background:color-mix(in srgb, var(--ink) 26%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.sheet{border-radius:var(--r-lg);corner-shape:superellipse(2.4);background:var(--solid);width:min(520px,100%);max-height:88vh;box-shadow:var(--sh-lg), var(--edge);padding:26px 26px 22px;overflow-y:auto}.sheet-title{letter-spacing:-.02em;margin:0 0 10px;font-size:1.15rem}.sheet-lead{color:var(--ink-2);margin:0 0 18px;font-size:.85rem;line-height:1.7}.sheet-choices{flex-direction:column;gap:10px;display:flex}.choice{text-align:left;border-radius:var(--r-md);corner-shape:superellipse(2.4);background:var(--glass-strong);box-shadow:var(--sh-sm), var(--edge);cursor:pointer;font:inherit;color:inherit;border:none;flex-direction:column;gap:4px;padding:14px 16px;transition:transform .16s,box-shadow .16s;display:flex;position:relative}.choice:hover{box-shadow:var(--sh-md), var(--edge-hover);transform:translateY(-1px)}.choice.is-suggested{box-shadow:var(--sh-sm), inset 0 0 0 1.5px var(--good)}.choice-head{align-items:baseline;gap:8px;display:flex}.choice-head b{letter-spacing:-.02em;font-size:.98rem}.choice-value{color:var(--ink-3);font-size:.78rem}.choice-ratio{color:var(--ink-3);font-size:.74rem}.choice-note{color:var(--ink-2);font-size:.8rem;line-height:1.6}.choice-tag{letter-spacing:.06em;color:var(--good);font-size:.68rem;position:absolute;top:12px;right:14px}.sheet-foot{color:var(--ink-3);margin:16px 0 0;font-size:.76rem;line-height:1.7}
