.okv2 .ok-shell-loading{background:var(--bg);min-height:100vh}.okv2 .ok-shell-app{background:var(--bg);min-height:100vh;display:flex}.okv2 .ok-shell-rail{z-index:var(--z-rail);width:var(--ok-rail-w);background:var(--bg);border-right:1px solid var(--line);flex-direction:column;align-items:center;gap:2px;padding:12px 8px 14px;display:flex;position:fixed;inset:0 auto 0 0}.okv2 .ok-shell-main{min-width:0;margin-left:var(--ok-rail-w);background:var(--bg);flex:1;padding:44px 36px 48px}.okv2 .ok-shell-logo{border-radius:var(--r-md);background:var(--color-brand);width:42px;height:42px;color:var(--ink-0);font-family:var(--font-jp);font-size:22px;font-weight:var(--fw-extrabold);place-items:center;margin-bottom:14px;text-decoration:none;display:grid}.okv2 .ok-shell-item{border-radius:var(--r-md);width:58px;min-height:58px;color:var(--ink-mute);transition:background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:8px 2px;text-decoration:none;display:flex;position:relative}.okv2 .ok-shell-item:is(button){cursor:pointer;font:inherit;background:0 0;border:0}.okv2 .ok-shell-item:hover{background:var(--ink-50);color:var(--ink)}.okv2 .ok-shell-item:active{transform:scale(.96)}.okv2 .ok-shell-item.active{background:var(--color-brand-soft);color:var(--color-brand-deep)}.okv2 .ok-shell-item svg{width:22px;height:22px;transition:transform var(--dur-fast) var(--ease-standard)}.okv2 .ok-shell-item:hover svg{transform:translateY(-1px)}.okv2 .ok-shell-lang-mark{background:var(--ink-50);width:22px;height:22px;color:var(--ink);font-family:var(--font-display);font-size:14px;font-weight:var(--fw-extrabold);border-radius:8px;place-items:center;line-height:1;display:grid}.okv2 .ok-shell-lang:hover .ok-shell-lang-mark{background:var(--color-brand-soft);color:var(--color-brand-deep)}.okv2 .ok-shell-label{font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.02em;line-height:1;font-family:var(--font-display)}.okv2 .ok-shell-item.active .ok-shell-label{font-weight:var(--fw-bold)}.okv2 .ok-shell-spacer{flex:1}.okv2 .ok-shell-avatar{border:1.5px solid var(--color-warm);background:var(--color-warm-soft);width:40px;height:40px;color:var(--color-warm-deep);font-family:var(--font-jp);font-size:14px;font-weight:var(--fw-bold);transition:transform var(--dur-fast) var(--ease-standard);border-radius:50%;place-items:center;margin-top:8px;text-decoration:none;display:grid}.okv2 .ok-shell-avatar:hover{transform:scale(1.05)}@media (max-width:900px){.okv2 .ok-shell-rail{width:72px}.okv2 .ok-shell-main{margin-left:72px;padding:36px 24px 16px}}@media (max-width:720px){.okv2 .ok-shell-rail{width:100%;height:auto;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f5f5faf0;flex-direction:row;justify-content:space-between;inset:auto 0 0}.okv2 .ok-shell-logo,.okv2 .ok-shell-avatar{display:none}.okv2 .ok-shell-item{max-width:72px;min-height:52px}.okv2 .ok-shell-item.active:before{border-radius:999px 999px 0 0;width:auto;height:3px;inset:auto 14px -10px}.okv2 .ok-shell-main{margin-left:0;padding:18px 16px 96px}}
.okv2 .ok-lesson-shell{--lesson-panel-width:288px;--lesson-shell-gap:40px;gap:var(--lesson-shell-gap);align-items:flex-start;min-height:100%;display:flex}.okv2 .ok-lesson-content{flex:1;min-width:0;padding:0 12px 80px}.okv2 .ok-lesson-panel{width:var(--lesson-panel-width);max-height:calc(100vh - 48px);box-shadow:none;background:0 0;border:none;flex-direction:column;flex:none;gap:10px;display:flex;position:sticky;top:24px;overflow:hidden}.okv2 .ok-lesson-panel-head{flex:none;padding:2px 4px 6px}.okv2 .ok-lesson-panel-title{color:var(--ink);font-family:var(--font-display);font-weight:var(--fw-bold);margin:0 0 4px;font-size:14px;line-height:1.3}.okv2 .ok-lesson-panel-meta{color:var(--ink-mute);font-size:11px;font-family:var(--font-mono);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:6px;display:flex}.okv2 .ok-lesson-panel-meta .dot{opacity:.5;background:currentColor;border-radius:50%;width:3px;height:3px}.okv2 .ok-lesson-panel-progress{display:none}.okv2 .ok-lesson-panel-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;flex-direction:column;flex:1;gap:8px;padding:4px 0 14px;display:flex;overflow-y:auto}.okv2 .ok-lesson-panel-body::-webkit-scrollbar{width:6px}.okv2 .ok-lesson-panel-body::-webkit-scrollbar-track{background:0 0}.okv2 .ok-lesson-panel-body::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--r-full)}.okv2 .ok-lesson-panel-body::-webkit-scrollbar-thumb:hover{background:var(--ink-mute)}.okv2 .ok-unit-group{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-xs);transition:box-shadow var(--dur-smooth) var(--ease-standard), border-color var(--dur-smooth) var(--ease-standard);flex:none;overflow:hidden}.okv2 .ok-unit-group:hover{box-shadow:var(--sh-sm)}.okv2 .ok-unit-group.is-expanded{box-shadow:var(--sh-sm);border-color:#0000}.okv2 .ok-flat-lesson-list{box-shadow:none;background:0 0;border:none;border-radius:0;overflow:visible}.okv2 .ok-flat-lesson-list:hover{box-shadow:none}.okv2 .ok-flat-lesson-list .ok-unit-lessons{background:0 0}.okv2 .ok-flat-lesson-list .ok-unit-lessons-inner{padding:2px 10px 14px 20px}.okv2 .ok-unit-group[data-tone=lilac]{--tone-500:var(--lilac-500)}.okv2 .ok-unit-group[data-tone=peach]{--tone-500:var(--peach-500)}.okv2 .ok-unit-group[data-tone=rose]{--tone-500:var(--rose-500)}.okv2 .ok-unit-group[data-tone=mint]{--tone-500:var(--mint-500)}.okv2 .ok-unit-group[data-tone=gold]{--tone-500:var(--gold-500)}.okv2 .ok-unit-group:not([data-tone]){--tone-500:var(--color-brand)}.okv2 .ok-unit-head{cursor:pointer;text-align:left;width:100%;color:var(--ink);transition:background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);background:0 0;border:none;align-items:center;gap:12px;padding:12px 14px;font-family:inherit;display:flex}.okv2 .ok-unit-group.is-expanded .ok-unit-head{background:var(--tone-500);color:var(--ink-0)}.okv2 .ok-unit-order{border-radius:var(--r-md);background:var(--tone-500);width:42px;height:42px;color:var(--ink-0);font-family:var(--font-mono);font-weight:var(--fw-extrabold);transition:background var(--dur-fast) var(--ease-standard);flex:none;place-items:center;font-size:17px;display:grid}.okv2 .ok-unit-group.is-expanded .ok-unit-order{color:var(--ink-0);background:#ffffff2e}.okv2 .ok-unit-group.is-done:not(.is-expanded) .ok-unit-order{background:var(--color-success);color:var(--ink-0)}.okv2 .ok-unit-group.is-done:not(.is-expanded) .ok-unit-order:before{content:"✓";font-size:18px}.okv2 .ok-unit-group.is-done:not(.is-expanded) .ok-unit-order .text{display:none}.okv2 .ok-unit-info{flex:1;min-width:0}.okv2 .ok-unit-name{display:none}.okv2 .ok-unit-title{color:var(--ink);font-size:14.5px;font-weight:var(--fw-bold);text-overflow:ellipsis;white-space:nowrap;line-height:1.25;overflow:hidden}.okv2 .ok-unit-meta{color:var(--ink-soft);font-size:11px;font-family:var(--font-mono);font-weight:var(--fw-semibold);letter-spacing:.02em;align-items:center;gap:6px;margin-top:3px;display:flex}.okv2 .ok-unit-lock-pill{border-radius:var(--r-full);background:var(--color-brand-soft);color:var(--color-brand-deep);font-size:9.5px;font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;align-items:center;padding:1px 6px;line-height:1.45;display:inline-flex}.okv2 .ok-unit-group.is-expanded .ok-unit-title{color:var(--ink-0)}.okv2 .ok-unit-group.is-expanded .ok-unit-meta{color:#ffffffbf}.okv2 .ok-unit-group.is-expanded .ok-unit-lock-pill{color:var(--ink-0);background:#fff3}.okv2 .ok-unit-group.has-locked-lessons:not(.is-expanded){border-color:#a3abbe42}.okv2 .ok-unit-group.is-locked:not(.is-expanded){box-shadow:none;opacity:.64;filter:grayscale(.22);background:#f8f9fdc7;border-color:#b4bbcc52}.okv2 .ok-unit-group.is-locked:not(.is-expanded) .ok-unit-order{color:var(--ink-soft);background:#7e65e61a}.okv2 .ok-unit-group.is-locked:not(.is-expanded) .ok-unit-title{color:var(--ink-soft)}.okv2 .ok-unit-group.is-current.is-locked:not(.is-expanded){opacity:.72;background:#f7f6fdd1;border-color:#7e65e63d;box-shadow:0 8px 22px #2b255c0d}.okv2 .ok-unit-group.is-current.is-locked:not(.is-expanded) .ok-unit-title{color:var(--ink-soft)}.okv2 .ok-unit-group.is-expanded.is-locked .ok-unit-head{color:var(--ink-soft);background:#f7f6fddb}.okv2 .ok-unit-group.is-expanded.is-locked .ok-unit-order{color:var(--ink-soft);background:#7e65e61a}.okv2 .ok-unit-group.is-expanded.is-locked .ok-unit-title{color:var(--ink-soft)}.okv2 .ok-unit-group.is-expanded.is-locked .ok-unit-meta,.okv2 .ok-unit-group.is-expanded.is-locked .ok-unit-chev{color:var(--ink-mute)}.okv2 .ok-unit-group.is-locked .ok-unit-lock-pill,.okv2 .ok-unit-group.is-expanded.is-locked .ok-unit-lock-pill{color:var(--ink-soft);background:#7e65e61a}.okv2 .ok-unit-group.is-current:not(.is-expanded) .ok-unit-title{color:var(--color-brand-deep)}.okv2 .ok-unit-chev{width:14px;height:14px;color:var(--ink-mute);transition:transform var(--dur-smooth) var(--ease-standard), color var(--dur-fast) var(--ease-standard);flex:none}.okv2 .ok-unit-group.is-expanded .ok-unit-chev{color:#ffffffe6;transform:rotate(180deg)}.okv2 .ok-unit-lessons{background:var(--card);transition:grid-template-rows var(--dur-smooth) var(--ease-out-expo);grid-template-rows:minmax(0,0fr);display:grid;position:relative;overflow:hidden}.okv2 .ok-unit-group.is-expanded .ok-unit-lessons{grid-template-rows:minmax(0,1fr)}.okv2 .ok-unit-lessons:before{content:"";border-left:1.5px dashed var(--line-strong);z-index:0;position:absolute;top:20px;bottom:20px;left:28px}.okv2 .ok-unit-lessons-inner{flex-direction:column;min-height:0;padding:14px 14px 14px 20px;display:flex;overflow:hidden}.okv2 .ok-lesson-item{border-radius:var(--r-sm);color:var(--ink);transition:background var(--dur-fast) var(--ease-standard);align-items:flex-start;gap:14px;padding:10px 8px 10px 0;text-decoration:none;display:flex;position:relative}.okv2 .ok-lesson-item:hover:not(.is-active){background:var(--ink-50)}.okv2 .ok-lesson-item-check{background:var(--card);border:1.5px solid var(--line-strong);width:12px;height:12px;transition:all var(--dur-fast) var(--ease-standard);border-radius:50%;flex:none;margin-top:4px;margin-left:2px}.okv2 .ok-lesson-item.is-done .ok-lesson-item-check{background:var(--color-success);border-color:var(--color-success)}.okv2 .ok-lesson-item.is-active .ok-lesson-item-check{background:var(--color-brand);border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-soft)}.okv2 .ok-lesson-item-text{flex:1;min-width:0}.okv2 .ok-lesson-item-day{color:var(--ink-mute);font-size:10.5px;font-family:var(--font-mono);font-weight:var(--fw-semibold);margin-bottom:3px}.okv2 .ok-lesson-item-title{color:var(--ink);font-size:13.5px;font-weight:var(--fw-bold);line-height:1.35;font-family:var(--font-jp);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.okv2 .ok-lesson-item.is-done .ok-lesson-item-title{color:var(--ink-soft);font-weight:var(--fw-medium)}.okv2 .ok-lesson-item.is-active .ok-lesson-item-title{color:var(--color-brand-deep)}.okv2 .ok-lesson-item.is-active .ok-lesson-item-day{color:var(--color-brand)}.okv2 .ok-lesson-item.is-locked{color:var(--ink-soft);opacity:.72}.okv2 .ok-lesson-item.is-locked:hover:not(.is-active){opacity:.9;background:#7e65e60f}.okv2 .ok-lesson-item.is-locked .ok-lesson-item-check{background:var(--ink-50);border-color:var(--line-strong)}.okv2 .ok-lesson-item.is-locked .ok-lesson-item-day,.okv2 .ok-lesson-item.is-locked .ok-lesson-item-title{color:var(--ink-mute)}.okv2 .ok-lesson-item.is-active.is-locked{opacity:1;background:#7e65e61a}.okv2 .ok-lesson-item.is-active.is-locked .ok-lesson-item-check{background:var(--color-brand);border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-soft)}.okv2 .ok-lesson-item.is-active.is-locked .ok-lesson-item-day,.okv2 .ok-lesson-item.is-active.is-locked .ok-lesson-item-title{color:var(--color-brand-deep)}.okv2 .ok-lesson-item-lock{border-radius:var(--r-full);background:var(--color-brand-soft);color:var(--color-brand-deep);font-family:var(--font-mono);font-size:9.5px;font-weight:var(--fw-bold);letter-spacing:.04em;flex:none;align-self:flex-start;margin-left:auto;padding:2px 6px;line-height:1.4}.okv2 .ok-lesson-back{background:var(--card);border:1px solid var(--line);color:var(--ink-soft);font-size:var(--text-small-size);font-weight:var(--fw-semibold);border-radius:var(--r-full);transition:background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);align-items:center;gap:6px;margin-bottom:18px;padding:6px 12px 6px 10px;text-decoration:none;display:inline-flex}.okv2 .ok-lesson-back:hover{background:var(--color-brand-soft);color:var(--color-brand-deep);border-color:var(--color-brand)}.okv2 .ok-lesson-header{flex-direction:column;align-items:center;gap:18px;margin-bottom:20px;padding-bottom:0;display:flex}.okv2 .ok-lesson-page-title-wrap{text-align:center;width:100%;min-width:0;max-width:720px;margin:12px auto 24px}.okv2 .ok-lesson-page-title{color:var(--ink);font-family:var(--font-display);font-weight:var(--fw-bold);letter-spacing:-.015em;margin:0;font-size:30px;line-height:1.18}.okv2 .ok-lesson-page-subtitle{color:var(--ink-soft);margin:6px 0 0;font-size:14.5px;line-height:1.55}.okv2 .ok-lesson-crumb{display:none}.okv2 .ok-locked-lesson-shell{align-items:flex-start}.okv2 .ok-locked-panel{opacity:1}.okv2 .ok-locked-lesson{max-width:960px}.okv2 .ok-locked-kicker{border-radius:var(--r-full);background:var(--color-brand-soft);width:fit-content;color:var(--color-brand-deep);font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:8px;margin:4px auto 12px;padding:6px 10px;display:inline-flex}.okv2 .ok-locked-subtitle{max-width:560px;color:var(--ink-soft);margin:8px auto 0;font-size:14px;line-height:1.65}.okv2 .ok-locked-goals{padding:22px 24px}.okv2 .ok-locked-goal-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.okv2 .ok-locked-goal-list li{color:var(--ink);padding-left:20px;font-size:14.5px;line-height:1.7;position:relative}.okv2 .ok-locked-goal-list li:before{content:"";background:var(--color-brand);width:6px;height:6px;box-shadow:0 0 0 4px var(--color-brand-soft);border-radius:50%;position:absolute;top:.72em;left:0}.okv2 .ok-locked-reader{padding-bottom:260px;position:relative}.okv2 .ok-locked-preview{position:relative;overflow:hidden}.okv2 .ok-locked-preview-copy{position:relative}.okv2 .ok-locked-preview-copy p{color:var(--ink);font-size:17px;line-height:1.9;font-family:var(--font-jp);margin:0}.okv2 .ok-locked-preview-copy p+p{margin-top:10px}.okv2 .ok-locked-ghost{filter:blur(.6px);opacity:.42;min-height:210px;overflow:hidden}.okv2 .ok-locked-ghost .ok-lsn-section-head{margin-bottom:18px}.okv2 .ok-locked-ghost-lines{gap:14px;display:grid}.okv2 .ok-locked-ghost-lines span{border-radius:var(--r-full);background:linear-gradient(90deg, var(--ink-50), #7e65e61f, var(--ink-50));height:16px;display:block}.okv2 .ok-locked-ghost-lines span:first-child{width:92%}.okv2 .ok-locked-ghost-lines span:nth-child(2){width:78%}.okv2 .ok-locked-ghost-lines span:nth-child(3){width:86%}.okv2 .ok-locked-ghost-lines span:nth-child(4){width:64%}.okv2 .ok-locked-preview-fade{pointer-events:none}.okv2 .ok-locked-upgrade{border-radius:var(--r-xl);-webkit-backdrop-filter:blur(12px);text-align:center;background:linear-gradient(#fff0,#ffffffb8 26%,#f8f7fff0 100%);border:1px solid #7e65e633;justify-content:center;align-items:flex-end;min-height:330px;padding:96px 32px 28px;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -30px 70px #ffffffb8}.okv2 .ok-locked-upgrade-card{border-radius:var(--r-lg);background:#ffffffb8;border:1px solid #7e65e62e;flex-direction:column;align-items:center;gap:18px;width:min(680px,100%);padding:28px 28px 24px;display:flex;box-shadow:0 24px 70px #2b255c1f}.okv2 .ok-locked-upgrade-copy{max-width:620px}.okv2 .ok-locked-upgrade-copy h2{color:var(--ink);font-family:var(--font-display);margin:10px 0 8px;font-size:27px;line-height:1.22}.okv2 .ok-locked-upgrade-copy p{color:var(--ink-soft);margin:0;font-size:14.5px;line-height:1.7}.okv2 .ok-locked-benefits{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.okv2 .ok-locked-benefits span{border-radius:var(--r-full);border:1px solid var(--line);color:var(--ink);font-size:13px;font-weight:var(--fw-semibold);background:#ffffffc2;align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.okv2 .ok-locked-benefits span:before{content:"";background:var(--color-brand);border-radius:50%;width:6px;height:6px}.okv2 .ok-locked-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.okv2 .ok-lesson-shell.is-locked-lesson,.okv2 .ok-lesson-shell.is-locked-lesson .ok-lesson-content{position:relative}.okv2 .ok-lesson-shell.is-locked-lesson .ok-lesson-goals,.okv2 .ok-lesson-shell.is-locked-lesson .ok-lesson-topbar-right{opacity:.58}.okv2 .ok-lesson-shell.is-locked-lesson .ok-lesson-body-lock-wrap{min-height:0;position:relative;overflow:visible}.okv2 .ok-lesson-shell.is-locked-lesson .ok-lesson-body-lock-wrap .minna-content{pointer-events:none;-webkit-user-select:none;user-select:none}.okv2 .ok-lesson-shell.is-locked-lesson .minna-content>.ok-lsn-section:first-child{z-index:1;position:relative}.okv2 .ok-lesson-shell.is-locked-lesson .minna-content>.ok-lsn-section:not(:first-child),.okv2 .ok-lesson-shell.is-locked-lesson .ok-lsn-section-head,.okv2 .ok-lesson-shell.is-locked-lesson .ok-lsn-setting,.okv2 .ok-lesson-shell.is-locked-lesson .ok-lsn-chat .ok-lsn-row:first-child,.okv2 .ok-lesson-shell.is-locked-lesson .ok-lsn-chat .ok-lsn-row:nth-child(2),.okv2 .ok-lesson-shell.is-locked-lesson .ok-lsn-chat .ok-lsn-row:nth-child(3),.okv2 .ok-lesson-shell.is-locked-lesson .ok-lsn-chat .ok-lsn-row:nth-child(n+4){opacity:1;filter:none}.okv2 .ok-lesson-glass-lock{top:0;right:var(--lesson-lock-right,0px);bottom:0;left:var(--lesson-lock-left,calc(var(--lesson-panel-width) + var(--lesson-shell-gap)));-webkit-backdrop-filter:blur(12px)saturate(1.04);z-index:1000;text-align:center;overscroll-behavior:contain;pointer-events:auto;background:radial-gradient(circle at 50% 48%,#7e65e614,#0000 34%),linear-gradient(#f8f8ff47,#f9f8ff61);justify-content:center;align-items:center;min-height:100svh;padding:clamp(24px,4vw,56px);display:flex;position:fixed;overflow:hidden}.okv2 .ok-lesson-glass-lock:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffff14,#ffffff29),radial-gradient(circle at 50% 52%,#fff3,#0000 42%);position:absolute;inset:0}.okv2 .ok-lesson-glass-lock-card{border-radius:var(--r-lg);-webkit-backdrop-filter:blur(10px)saturate(1.08);background:#ffffffd1;border:1px solid #7e65e62e;flex-direction:column;align-items:center;gap:18px;width:min(660px,100%);max-height:calc(100svh - 48px);padding:30px 30px 26px;display:flex;position:relative;overflow:auto;box-shadow:0 28px 80px #2b255c2e}.okv2 .ok-lesson-glass-lock-card h2{color:var(--ink);font-family:var(--font-display);letter-spacing:-.01em;margin:2px 0 0;font-size:29px;line-height:1.22}.okv2 .ok-lesson-glass-lock-card p{max-width:560px;color:var(--ink-soft);margin:0;font-size:14.5px;line-height:1.72}.okv2 .ok-lesson-glass-benefits{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.okv2 .ok-lesson-glass-benefits span{border-radius:var(--r-full);border:1px solid var(--line);color:var(--ink);font-size:13px;font-weight:var(--fw-semibold);background:#ffffffc7;align-items:center;gap:7px;padding:8px 12px;display:inline-flex}.okv2 .ok-lesson-glass-benefits span:before{content:"";background:var(--color-brand);border-radius:999px;width:6px;height:6px}.okv2 .ok-lesson-glass-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.okv2 .ok-inline-tabs{background:var(--ink-50);border:1px solid var(--line);border-radius:var(--r-full);align-items:center;gap:2px;padding:3px;display:inline-flex}.okv2 .ok-inline-tab{cursor:pointer;color:var(--ink-soft);font-family:inherit;font-size:var(--text-small-size);font-weight:var(--fw-semibold);border-radius:var(--r-full);transition:color var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard);background:0 0;border:none;align-items:center;gap:6px;padding:6px 12px 6px 10px;display:inline-flex}.okv2 .ok-inline-tab:hover{color:var(--ink)}.okv2 .ok-inline-tab.is-active{background:var(--card);color:var(--color-brand-deep);font-weight:var(--fw-bold);box-shadow:var(--sh-xs)}.okv2 .ok-inline-tab-dot{background:var(--sand-divider);width:8px;height:8px;transition:all var(--dur-fast) var(--ease-standard);border-radius:50%;flex:none}.okv2 .ok-inline-tab.is-done .ok-inline-tab-dot{background:var(--color-success)}.okv2 .ok-inline-tab.is-active .ok-inline-tab-dot{background:var(--color-brand)}.okv2 .ok-inline-tab-count{font-family:var(--font-mono);color:var(--ink-mute);font-size:10.5px;font-weight:var(--fw-bold);margin-left:2px}.okv2 .ok-inline-tab.is-active .ok-inline-tab-count{color:var(--color-brand)}.okv2 .ok-goal-nav,.okv2 .goal-nav-sentinel{display:none}.okv2 .ok-lsn-section{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-xs);margin-bottom:16px;padding:24px}.okv2 .ok-lsn-section:last-child{margin-bottom:0}.okv2 .ok-lsn-section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.okv2 .ok-lsn-section-head h3{min-width:0;color:var(--ink);font-family:var(--font-display);font-weight:var(--fw-bold);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:10px;margin:0;font-size:20px;line-height:1.3;display:inline-flex;overflow:hidden}.okv2 .ok-lsn-section-head h2{min-width:0;color:var(--ink);font-family:var(--font-display);font-weight:var(--fw-bold);margin:0;font-size:20px;line-height:1.3}.okv2 .ok-lsn-section-head .badge-done{background:var(--color-success-soft);color:var(--color-success-deep);border-radius:var(--r-full);font-size:11px;font-weight:var(--fw-bold);letter-spacing:.03em;padding:4px 10px}.okv2 .ok-lsn-section-head-actions{align-items:center;gap:6px;display:inline-flex}.okv2.ok-review-lesson-shell .ok-review-content{background:radial-gradient(circle at 16% 0%, #7e70e814, transparent 34%), var(--bg-soft)}.okv2 .ok-review-topbar-progress,.okv2 .ok-review-question-count{border:1px solid var(--line);border-radius:var(--r-full);background:var(--card);min-width:72px;height:34px;color:var(--ink-soft);font-family:var(--font-mono);font-size:13px;font-weight:var(--fw-bold);justify-content:center;align-items:center;padding:0 12px;display:inline-flex}.okv2 .ok-review-intro,.okv2 .ok-review-result{width:min(920px,100%);margin:0 auto;padding:74px 24px 96px}.okv2 .ok-review-intro-desc{max-width:620px;color:var(--ink-soft);margin:10px 0 0;font-size:16px;line-height:1.7}.okv2 .ok-review-intro-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:28px;display:grid}.okv2 .ok-review-intro-stat,.okv2 .ok-review-section-score{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);min-height:66px;box-shadow:var(--sh-xs);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.okv2 .ok-review-intro-stat span,.okv2 .ok-review-section-score span{min-width:0;color:var(--ink-soft);font-size:13px;font-weight:var(--fw-bold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.okv2 .ok-review-intro-stat strong,.okv2 .ok-review-section-score strong{color:var(--ink);font-family:var(--font-mono);flex:none;font-size:14px}.okv2 .ok-review-intro-stat.is-total{background:linear-gradient(135deg,#7e70e81c,#ffffffeb);border-color:#7e70e852}.okv2 .ok-review-intro-actions,.okv2 .ok-review-result-actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.okv2 .ok-review-title-wrap{width:min(980px,100%);margin:0 auto 18px;padding:48px 24px 0}.okv2 .ok-review-section-tabs{width:min(980px,100%);margin:0 auto 18px}.okv2 .ok-review-section-tabs .ok-lesson-goals-bar{box-shadow:none;background:0 0;border:0;padding:0}.okv2 .ok-review-question-section{width:min(980px,100% - 48px);margin:0 auto 18px}.okv2 .ok-review-audio-script{border-radius:var(--r-sm);color:var(--ink-soft);background:#7e70e80f;border:1px solid #7e70e82e;margin:0 0 16px;padding:14px 16px}.okv2 .ok-review-audio-script span{color:var(--color-brand-deep);font-size:11px;font-weight:var(--fw-bold);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;display:block}.okv2 .ok-review-audio-script p{color:var(--ink);margin:0;font-size:15px;line-height:1.7}.okv2 .ok-review-runner-nav{z-index:8;border:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:min(980px,100% - 48px);margin:0 auto;padding:14px 16px;display:grid;position:sticky;bottom:0;box-shadow:0 -18px 36px #26314214}.okv2 .ok-review-mini-map{scrollbar-width:thin;gap:8px;min-width:0;padding:2px;display:flex;overflow-x:auto}.okv2 .ok-review-mini-map button{border:1px solid var(--line);background:var(--card);width:38px;height:34px;color:var(--ink-soft);font-family:var(--font-mono);font-size:12px;font-weight:var(--fw-bold);cursor:pointer;transition:all var(--dur-fast) var(--ease-standard);border-radius:12px;flex:none}.okv2 .ok-review-mini-map button.is-answered{color:var(--color-success-deep);background:#4eb4a61f;border-color:#4eb4a659}.okv2 .ok-review-mini-map button.is-active{border-color:var(--color-brand);color:var(--color-brand-deep);background:#7e70e81f;box-shadow:0 0 0 3px #7e70e81f}.okv2 .ok-review-score-card{border-radius:var(--r-lg);box-shadow:var(--sh-sm);background:linear-gradient(135deg,#7e70e81a,#fffffff0);border:1px solid #7e70e83d;gap:8px;margin-top:26px;padding:28px;display:grid}.okv2 .ok-review-score-card span{color:var(--ink-soft);font-size:13px;font-weight:var(--fw-bold)}.okv2 .ok-review-score-card strong{color:var(--ink);font-family:var(--font-display);font-size:56px;line-height:1}.okv2 .ok-review-score-card small{color:var(--ink-soft);font-family:var(--font-body);margin-left:6px;font-size:22px}.okv2 .ok-review-score-card p{color:var(--color-brand-deep);font-family:var(--font-mono);font-weight:var(--fw-bold);margin:0}.okv2 .ok-review-section-scores{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:14px;display:grid}.okv2 .ok-review-wrong-list{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);box-shadow:var(--sh-xs);margin-top:18px;padding:20px}.okv2 .ok-review-wrong-list h3{color:var(--ink);font-family:var(--font-display);margin:0 0 12px;font-size:18px}.okv2 .ok-review-wrong-row{border-top:1px solid var(--line);grid-template-columns:34px minmax(0,1fr);gap:12px;padding:12px 0;display:grid}.okv2 .ok-review-wrong-row:first-of-type{border-top:0}.okv2 .ok-review-wrong-row>span{background:var(--bg-soft);width:30px;height:30px;color:var(--ink-soft);font-family:var(--font-mono);font-size:12px;font-weight:var(--fw-bold);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.okv2 .ok-review-wrong-row p{color:var(--ink);margin:0 0 4px;font-size:14px;line-height:1.55}.okv2 .ok-review-wrong-row small{color:var(--ink-mute);font-size:12px;font-weight:var(--fw-bold)}.okv2 .minna-content{flex-direction:column;gap:0;display:flex}.okv2 .ok-lsn-setting{color:var(--ink-mute);background:0 0;border:none;margin:0 0 18px;padding:0;font-size:13px;line-height:1.65}.okv2 .ok-lsn-chat{flex-direction:column;gap:24px;display:flex}.okv2 .ok-lsn-row{align-items:flex-start;gap:14px;width:fit-content;max-width:78%;display:inline-flex;position:relative}.okv2 .ok-lsn-row.is-mine{flex-direction:row-reverse;align-self:flex-end}.okv2 .ok-lsn-row .ok-lsn-bub{flex:0 auto;min-width:0}.okv2 .ok-lsn-avcol{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.okv2 .ok-lsn-av{width:44px;height:44px;font-family:var(--font-jp);font-size:17px;font-weight:var(--fw-extrabold);color:var(--ink-0);background:var(--ink-700);letter-spacing:0;border-radius:50%;flex:none;place-items:center;display:grid}.okv2 .ok-lsn-av.is-a{background:var(--lilac-500)}.okv2 .ok-lsn-av.is-b{background:var(--peach-500)}.okv2 .ok-lsn-av.is-c{background:var(--mint-500)}.okv2 .ok-lsn-av.is-d{background:var(--gold-500)}.okv2 .ok-lsn-av.is-e{background:var(--ink-700)}.okv2 .ok-lsn-av.is-f{background:var(--rose-500)}.okv2 .ok-lsn-avname{display:none}.okv2 .ok-lsn-bub{background:var(--peach-50);border:1px solid var(--peach-100);border-radius:4px var(--r-lg) var(--r-lg) var(--r-lg);box-shadow:none;cursor:pointer;min-width:0;transition:border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);padding:14px 20px 16px;position:relative}.okv2 .ok-lsn-bub:hover{border-color:var(--peach-500)}.okv2 .ok-lsn-row.is-mine .ok-lsn-bub{background:var(--mint-50);border-color:var(--mint-100);border-radius:var(--r-lg) 4px var(--r-lg) var(--r-lg)}.okv2 .ok-lsn-row.is-mine .ok-lsn-bub:hover{border-color:var(--mint-500)}.okv2 .ok-lsn-bub.is-playing{box-shadow:0 0 0 3px var(--color-brand-soft), var(--sh-sm);border-color:var(--color-brand)}.okv2 .ok-lsn-sp{color:var(--peach-700);font-size:var(--text-caption-size);font-weight:var(--fw-bold);letter-spacing:.04em;margin-bottom:8px}.okv2 .ok-lsn-row.is-mine .ok-lsn-sp{display:none}.okv2 .ok-lsn-jp{color:var(--ink-900);font-family:var(--font-jp);font-size:20px;font-weight:var(--fw-bold);letter-spacing:.05em;margin:0;line-height:1.95}.okv2 .ok-lsn-word{vertical-align:bottom;flex-direction:column;align-items:center;margin:0 3px;line-height:1.1;display:inline-flex;position:relative}.okv2 .ok-lsn-word-f{font-size:11.5px;font-weight:var(--fw-semibold);color:var(--ink-soft);min-height:15px;line-height:1.3;font-family:var(--font-jp);letter-spacing:0;margin-bottom:2px}.okv2 .ok-lsn-word-f.is-hide,.okv2 .ok-lsn-jp.is-hide-furigana .ok-lsn-word-f{visibility:hidden;height:0;min-height:0;margin-bottom:0}.okv2 .ok-lsn-word-t{font-size:20px;line-height:1.35;font-weight:var(--fw-bold)}.okv2 .ok-lsn-word+.ok-lsn-word{margin-left:2px}.okv2 .ok-lsn-punct{color:var(--ink-soft);margin:0;display:inline}.okv2 .ok-lsn-tr{color:var(--ink-soft);margin:10px 0 0;font-size:13px;line-height:1.6}.okv2 .ok-lsn-row .ok-lsn-played{width:5px;height:5px;transition:background var(--dur-fast) var(--ease-standard);background:0 0;border-radius:50%;position:absolute;top:50%;right:-12px;transform:translateY(-50%)}.okv2 .ok-lsn-row.is-mine .ok-lsn-played{left:-12px;right:auto}.okv2 .ok-lsn-row .ok-lsn-played.is-played{background:var(--color-success)}@media (max-width:900px){.okv2 .ok-lesson-panel{display:none}.okv2 .ok-lesson-shell{--lesson-panel-width:0px;--lesson-shell-gap:0px;gap:0}.okv2 .ok-lesson-header{gap:12px}.okv2 .ok-lesson-page-title{font-size:24px}.okv2 .ok-lsn-section{padding:18px}.okv2 .ok-review-intro,.okv2 .ok-review-result{padding:42px 16px 74px}.okv2 .ok-review-title-wrap,.okv2 .ok-review-section-tabs,.okv2 .ok-review-question-section,.okv2 .ok-review-runner-nav{width:calc(100% - 24px)}.okv2 .ok-review-title-wrap{padding:32px 0 0}.okv2 .ok-review-runner-nav{grid-template-columns:1fr 1fr;gap:10px}.okv2 .ok-review-mini-map{order:-1;grid-column:1/-1}.okv2 .ok-review-mini-map button{width:36px;height:32px}.okv2 .ok-review-score-card strong{font-size:44px}.okv2 .ok-locked-kicker{margin-left:0;margin-right:0}.okv2 .ok-locked-lesson{max-width:none}.okv2 .ok-locked-reader{padding-bottom:330px}.okv2 .ok-locked-upgrade{min-height:380px;padding:94px 18px 20px}.okv2 .ok-locked-upgrade-card{padding:24px 18px 20px}.okv2 .ok-locked-upgrade-copy h2{font-size:22px}.okv2 .ok-locked-actions{flex-direction:column;align-items:stretch;width:100%}.okv2 .ok-locked-actions .ok-btn{justify-content:center;width:100%}.okv2 .ok-lesson-shell.is-locked-lesson .ok-lesson-body-lock-wrap{min-height:0}.okv2 .ok-lesson-glass-lock{min-height:100svh;padding:18px}.okv2 .ok-lesson-glass-lock-card{padding:24px 18px 20px}.okv2 .ok-lesson-glass-lock-card h2{font-size:22px}.okv2 .ok-lesson-glass-actions{flex-direction:column;align-items:stretch;width:100%}.okv2 .ok-lesson-glass-actions .ok-btn{justify-content:center;width:100%}}.okv2 .ok-lesson-topbar{z-index:20;-webkit-backdrop-filter:blur(12px);background:#f5f5fad9;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;min-height:52px;margin:-8px -8px 18px;padding:0 16px;display:grid;position:sticky;top:0}.okv2 .ok-lesson-topbar-left{justify-self:start;align-items:center;gap:12px;min-width:0;display:inline-flex}.okv2 .ok-lesson-topbar .ok-lesson-back{flex:none;margin:0}.okv2 .ok-lesson-topbar-title{text-align:center;font-family:var(--font-jp);font-size:16.5px;font-weight:var(--fw-bold);color:var(--ink);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;max-width:360px;opacity:var(--topbar-title-a,0);transform:translateY(calc((1 - var(--topbar-title-a,0)) * -6px));pointer-events:none;will-change:opacity, transform;justify-self:center;line-height:1.3;overflow:hidden}.okv2 .ok-lesson-topbar-right{justify-self:end;align-items:center;gap:8px;display:inline-flex}.okv2 .ok-topbar-action{background:var(--card);border:1px solid var(--line);border-radius:var(--r-full);color:var(--ink-soft);font-family:inherit;font-size:12.5px;font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);align-items:center;gap:6px;padding:6px 12px 6px 10px;display:inline-flex}.okv2 .ok-topbar-action:hover{background:var(--color-brand-soft);color:var(--color-brand-deep);border-color:var(--color-brand)}.okv2 .ok-topbar-action:disabled,.okv2 .ok-topbar-action[aria-disabled=true]{opacity:.4;cursor:not-allowed;pointer-events:none}.okv2 .ok-topbar-action svg{fill:currentColor;stroke:none;flex:none;width:13px;height:13px}.okv2 .ok-topbar-action.is-playing{background:var(--color-brand);border-color:var(--color-brand);color:var(--ink-0);animation:1.4s ease-in-out infinite ok-audio-pulse}.okv2 .ok-lesson-toc{flex-direction:column;flex:none;align-self:flex-start;align-items:flex-end;gap:14px;width:40px;max-height:calc(100vh - clamp(140px,26vh,260px) - 40px);padding:16px 8px 16px 0;display:flex;position:sticky;top:clamp(140px,26vh,260px)}.okv2 .ok-toc-item{cursor:pointer;color:inherit;background:0 0;border:none;align-items:center;padding:4px 0;font-family:inherit;display:flex;position:relative}.okv2 .ok-toc-bar{background:var(--line-strong);border-radius:var(--r-full);width:18px;height:2px;transition:width var(--dur-fast) var(--ease-standard), height var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard);flex:none}.okv2 .ok-toc-item.is-done .ok-toc-bar{background:var(--color-success)}.okv2 .ok-toc-item:hover .ok-toc-bar{background:var(--color-brand-deep);width:24px}.okv2 .ok-toc-item.is-active .ok-toc-bar{background:var(--color-brand);width:28px;height:3px}.okv2 .ok-toc-label{background:var(--ink-900);color:var(--ink-0);border-radius:var(--r-sm);font-size:11.5px;font-weight:var(--fw-semibold);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);padding:4px 10px;position:absolute;top:50%;right:calc(100% + 10px);transform:translateY(-50%)translate(4px)}.okv2 .ok-toc-item:hover .ok-toc-label{opacity:1;transform:translateY(-50%)translate(0)}@media (max-width:1100px){.okv2 .ok-lesson-toc{display:none}}.okv2 .ok-lesson-goals{justify-content:center;margin:0 auto 36px;display:flex}.okv2 .ok-lesson-goals-bar{background:var(--card);border:1px solid var(--line);border-radius:var(--r-full);box-shadow:var(--sh-xs);flex-wrap:wrap;align-items:center;gap:6px;max-width:100%;padding:7px 10px;display:inline-flex}.okv2 .ok-lesson-goals-label{font-size:11px;font-weight:var(--fw-bold);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);border-right:1px solid var(--line);flex:none;padding-right:8px}.okv2 .ok-lesson-goals-list{align-items:center;gap:4px;display:inline-flex}.okv2 .ok-goal-chip{border-radius:var(--r-full);color:var(--ink-soft);font-family:inherit;font-size:13px;font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);background:0 0;border:1px solid #0000;align-items:center;gap:7px;padding:5px 12px 5px 9px;display:inline-flex}.okv2 .ok-goal-chip:hover{background:var(--color-brand-soft);color:var(--color-brand-deep)}.okv2 .ok-goal-chip-mark{border:1.5px solid var(--ink-mute);width:14px;height:14px;font-size:9px;font-weight:var(--fw-extrabold);color:#0000;transition:all var(--dur-fast) var(--ease-standard);background:0 0;border-radius:50%;flex:none;place-items:center;line-height:1;display:grid}.okv2 .ok-goal-chip-count{font-family:var(--font-mono);color:var(--ink-mute);font-size:10.5px;font-weight:var(--fw-bold);margin-left:2px}.okv2 .ok-goal-chip.is-done{background:var(--color-success-soft);color:var(--color-success-deep)}.okv2 .ok-goal-chip.is-done .ok-goal-chip-mark{background:var(--color-success);border-color:var(--color-success);color:var(--ink-0)}.okv2 .ok-goal-chip.is-done .ok-goal-chip-mark:before{content:"✓"}.okv2 .ok-goal-chip.is-done .ok-goal-chip-count{color:var(--color-success-deep);opacity:.7}.okv2 .ok-goal-chip.is-active{background:var(--card);color:var(--color-brand-deep);box-shadow:var(--sh-xs);font-weight:var(--fw-bold)}.okv2 .ok-goal-chip.is-active .ok-goal-chip-mark{background:var(--color-brand-soft);border-color:var(--color-brand);color:var(--color-brand)}.okv2 .ok-goal-chip.is-active .ok-goal-chip-mark:before{content:"●";font-size:9px}.okv2 .ok-goal-chip.is-active .ok-goal-chip-count{color:var(--color-brand)}.okv2 .ok-lesson-goals-progress{border-left:1px solid var(--line);font-family:var(--font-mono);font-size:11.5px;font-weight:var(--fw-bold);color:var(--ink-mute);letter-spacing:.04em;flex:none;margin-left:2px;padding-left:10px}.okv2 .ok-lesson-goals-bar.is-all-done{background:var(--color-success-soft);border-color:var(--mint-100)}.okv2 .ok-lesson-goals-bar.is-all-done .ok-lesson-goals-label{color:var(--color-success-deep);border-right-color:var(--mint-100)}.okv2 .ok-lesson-goals-bar.is-all-done .ok-lesson-goals-progress{color:var(--color-success-deep);border-left-color:var(--mint-100)}.okv2 .ok-gojuon-shell{gap:36px}.okv2 .ok-gojuon-topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.okv2 .ok-gojuon-topbar .ok-lesson-back{margin-bottom:0}.okv2 .ok-gojuon-study-section{padding:28px}.okv2 .ok-gojuon-progress-pill{border-radius:var(--r-full);background:var(--color-brand-soft);min-height:30px;color:var(--color-brand-deep);font-family:var(--font-mono);font-size:12px;font-weight:var(--fw-extrabold);justify-content:center;align-items:center;padding:6px 12px;display:inline-flex}.okv2 .ok-kana-progress{color:var(--ink-soft);font-family:var(--font-mono);font-size:12px;font-weight:var(--fw-bold);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 0 22px;display:grid}.okv2 .ok-kana-progress-track{border-radius:var(--r-full);background:var(--sand-divider);height:10px;overflow:hidden}.okv2 .ok-kana-progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--color-brand), var(--lilac-500));min-width:0;height:100%;transition:width var(--dur-smooth) var(--ease-standard);display:block}.okv2 .ok-kana-section+.ok-kana-section{border-top:1px solid var(--line);margin-top:22px;padding-top:22px}.okv2 .ok-kana-section-head{margin-bottom:12px}.okv2 .ok-kana-section-head h4{color:var(--ink);font-size:15px;font-weight:var(--fw-bold);margin:0}.okv2 .ok-kana-grid{grid-template-columns:repeat(var(--ok-kana-cols,5), minmax(0, 1fr));gap:12px;display:grid}.okv2 .ok-kana-grid.is-rule,.okv2 .ok-kana-grid.is-word-grid{grid-template-columns:repeat(auto-fit,minmax(142px,1fr))}.okv2 .ok-kana-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);min-width:0;min-height:132px;color:var(--ink);box-shadow:var(--sh-xs);cursor:pointer;text-align:center;transition:transform var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard);align-content:center;place-items:center;gap:6px;padding:18px 12px;font-family:inherit;display:grid;position:relative}.okv2 .ok-kana-card:hover{border-color:var(--color-brand);box-shadow:var(--sh-sm);background:var(--color-brand-soft);transform:translateY(-2px)}.okv2 .ok-kana-card:focus-visible{outline:3px solid var(--color-brand-soft);outline-offset:2px}.okv2 .ok-kana-card.is-empty{border:1px dashed var(--line);min-height:132px;box-shadow:none;cursor:default;background:0 0}.okv2 .ok-kana-card.is-done{background:var(--color-success-soft);border-color:var(--mint-100)}.okv2 .ok-kana-card.is-playing{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-soft)}.okv2 .ok-kana-card.is-loading .ok-kana-card-rom:after{content:"";vertical-align:middle;background:currentColor;border-radius:50%;width:5px;height:5px;margin-left:6px;animation:1s ease-in-out infinite okv2-loading-pulse;display:inline-block}.okv2 .ok-kana-card-big{color:var(--ink);font-family:var(--font-jp);font-size:clamp(34px,4.6vw,56px);font-weight:var(--fw-bold);letter-spacing:0;line-height:1}.okv2 .ok-kana-card-rom{color:var(--ink-soft);font-family:var(--font-mono);font-size:12px;font-weight:var(--fw-bold);letter-spacing:.08em}.okv2 .ok-kana-card-cat{color:var(--ink-mute);font-size:11px;font-weight:var(--fw-semibold)}.okv2 .ok-kana-card-status{background:var(--color-success);width:22px;height:22px;color:var(--ink-0);font-size:12px;font-weight:var(--fw-extrabold);border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.okv2 .ok-kana-card.is-word{min-height:116px}.okv2 .ok-kana-card.is-word .ok-kana-card-big{font-size:clamp(24px,3vw,34px)}.okv2 .ok-dakuten{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;padding:6px 18px;display:flex}.okv2 .ok-dakuten-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:16px;padding:12px 0;display:grid}.okv2 .ok-dakuten-row:first-child{border-top:0}.okv2 .ok-dakuten-side{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.okv2 .ok-dakuten-cell{border-radius:var(--r-md);background:var(--sand-surface);min-width:64px;color:var(--ink);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);border:1px solid #0000;flex-direction:column;align-items:center;gap:3px;padding:10px 14px;font-family:inherit;display:flex}.okv2 .ok-dakuten-cell:hover{background:var(--sand-line);transform:translateY(-1px)}.okv2 .ok-dakuten-cell.is-on{background:var(--color-brand-soft)}.okv2 .ok-dakuten-cell.is-on:hover{border-color:var(--color-brand)}.okv2 .ok-dakuten-cell.is-done{border-color:var(--color-success)}.okv2 .ok-dakuten-kana{color:var(--ink);font-family:var(--font-jp);font-size:32px;font-weight:var(--fw-bold);letter-spacing:0;line-height:1}.okv2 .ok-dakuten-rom{color:var(--ink-mute);font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.05em}.okv2 .ok-dakuten-arrow{color:var(--ink-mute);place-items:center;display:grid}.okv2 .ok-dakuten-arrow svg{width:18px;height:18px}.okv2 .ok-youon{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px}.okv2 .ok-youon-grid{grid-template-columns:56px repeat(3,minmax(0,1fr));gap:6px;display:grid}.okv2 .ok-youon-head{border-radius:var(--r-sm);background:var(--color-brand-soft);color:var(--color-brand-deep);font-family:var(--font-mono);font-size:11.5px;font-weight:var(--fw-bold);letter-spacing:.08em;text-align:center;padding:10px 0}.okv2 .ok-youon-head:first-child{background:0 0}.okv2 .ok-youon-label{border-radius:var(--r-sm);background:var(--sand-surface);color:var(--ink);font-family:var(--font-jp);font-size:20px;font-weight:var(--fw-bold);place-items:center;display:grid}.okv2 .ok-youon-cell{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);min-height:64px;color:var(--ink);cursor:pointer;text-align:center;transition:background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:12px 6px;font-family:inherit;display:flex}.okv2 .ok-youon-cell:hover{border-color:var(--color-brand-soft);background:var(--sand-surface);transform:translateY(-1px)}.okv2 .ok-youon-cell.is-done{border-color:var(--color-success)}.okv2 .ok-youon-cell.is-empty{cursor:default;background:0 0;border-style:dashed}.okv2 .ok-youon-cell-kana{color:var(--ink);font-family:var(--font-jp);font-size:22px;font-weight:var(--fw-bold);line-height:1}.okv2 .ok-youon-cell-rom{color:var(--ink-mute);font-family:var(--font-mono);font-size:10px;font-weight:var(--fw-semibold)}.okv2 .ok-kana-footer{border-top:1px solid var(--line);color:var(--ink-soft);font-size:12.5px;font-weight:var(--fw-semibold);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;display:flex}.okv2 .ok-kana-footer span:last-child{color:var(--ink-mute);font-family:var(--font-mono);font-weight:var(--fw-bold)}.okv2 .ok-gojuon-tips ul{color:var(--ink-soft);margin:0;padding-left:20px;line-height:1.75}.okv2 .ok-gojuon-tips li+li{margin-top:8px}.okv2 .ok-gojuon-tips strong{color:var(--ink)}.okv2 .ok-gojuon-confusable .confusable-pairs{gap:10px;display:grid}.okv2 .ok-gojuon-confusable .confusable-pair{border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-50);width:100%;color:var(--ink);text-align:left;align-items:center;gap:12px;padding:14px 16px;font-family:inherit;display:flex}.okv2 .ok-gojuon-confusable button.confusable-pair{cursor:pointer}.okv2 .ok-gojuon-confusable .pair-char,.okv2 .ok-gojuon-confusable .pair-input{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--color-brand-deep);font-family:var(--font-jp);font-weight:var(--fw-bold);padding:4px 10px}.okv2 .ok-gojuon-confusable button.pair-char{cursor:pointer}.okv2 .ok-gojuon-confusable .pair-vs{color:var(--ink-mute);font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-bold)}.okv2 .ok-gojuon-confusable .pair-tip{color:var(--ink-soft);font-size:13px}.okv2 .ok-gojuon-practice .practice-button-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.okv2 .ok-gojuon-practice .practice-button{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);min-height:112px;color:var(--ink);text-align:left;cursor:pointer;box-shadow:var(--sh-xs);transition:transform var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon name""icon desc";align-items:center;gap:4px 12px;padding:18px;font-family:inherit;display:grid}.okv2 .ok-gojuon-practice .practice-button:hover:not(:disabled){border-color:var(--color-brand);box-shadow:var(--sh-sm);transform:translateY(-2px)}.okv2 .ok-gojuon-practice .practice-button:disabled{opacity:.55;cursor:not-allowed}.okv2 .ok-gojuon-practice .practice-icon{border-radius:var(--r-md);background:var(--color-brand-soft);width:42px;height:42px;color:var(--color-brand-deep);grid-area:icon;place-items:center;display:grid}.okv2 .ok-gojuon-practice .practice-icon svg{width:20px;height:20px}.okv2 .ok-gojuon-practice .practice-name{color:var(--ink);font-weight:var(--fw-bold);grid-area:name;font-size:15px}.okv2 .ok-gojuon-practice .practice-desc{color:var(--ink-soft);grid-area:desc;font-size:13px;line-height:1.45}.okv2 .ok-modal.ok-kana-stroke-modal{max-width:400px}.okv2 .ok-kana-stroke-modal .ok-modal-title{text-align:center;margin-bottom:4px}.okv2 .ok-kana-stroke-modal .ok-modal-head{text-align:center;padding:0 24px 8px}.okv2 .ok-kana-stroke-modal .ok-modal-head .sub{margin:0}.okv2 .ok-stroke-stage{border-radius:var(--r-lg);background:var(--sand-surface);place-items:center;width:240px;height:240px;margin:0 auto 14px;padding:14px;display:grid;position:relative}.okv2 .ok-stroke-target,.okv2 .ok-stroke-target svg{width:100%;height:100%}.okv2 .ok-kana-stroke-target{place-items:center;display:grid}.okv2 .ok-kana-stroke-svg{width:100%;height:100%;overflow:visible}.okv2 .ok-kana-stroke-guides path{fill:var(--sand-line);opacity:.48}.okv2 .ok-kana-stroke-draw path{fill:var(--color-brand);opacity:0;transform-box:fill-box;transform-origin:50%;animation:ok-kana-stroke-fill .46s var(--ease-emphasized) forwards;animation-delay:calc(var(--stroke-index) * .42s)}.okv2 .ok-kana-stroke-medians path{fill:none;stroke:var(--lilac-700);stroke-width:28px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:.78;animation:ok-kana-stroke-draw .52s var(--ease-standard) forwards;animation-delay:calc(var(--stroke-index) * .42s + 70ms)}.okv2 .ok-kana-stroke-numbers text{fill:var(--ink-0);stroke:var(--color-brand);stroke-width:9px;paint-order:stroke;font-family:var(--font-mono);font-size:56px;font-weight:var(--fw-extrabold);opacity:0;animation:ok-kana-stroke-number .28s var(--ease-standard) forwards;animation-delay:calc(var(--stroke-index) * .42s + .11s)}.okv2 .ok-stroke-loading{background:linear-gradient(90deg, var(--sand-surface), var(--sand-line), var(--sand-surface));background-size:240% 100%;border-radius:24px;width:72px;height:72px;animation:1.15s linear infinite ok-shimmer}.okv2 .ok-stroke-fallback{color:#2f3e4e1f;font-family:var(--font-jp);font-size:116px;font-weight:var(--fw-bold)}.okv2 .ok-stroke-stage-hint{border:1px solid var(--line);border-radius:var(--r-full);background:var(--card);color:var(--ink-mute);font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-semibold);padding:3px 8px;position:absolute;top:10px;right:12px}.okv2 .ok-stroke-meta{color:var(--ink-soft);justify-content:center;align-items:center;gap:10px;padding-top:4px;font-size:13px;display:flex}.okv2 .ok-stroke-meta .label{color:var(--ink-mute);font-family:var(--font-mono);font-size:10.5px;font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase}.okv2 .ok-stroke-meta .value{color:var(--ink);font-family:var(--font-mono);font-weight:var(--fw-bold)}.okv2 .ok-stroke-meta .dot{background:var(--line-strong);border-radius:50%;width:3px;height:3px}.okv2 .ok-stroke-error{width:100%;height:100%}.okv2 .ok-kana-modal-note{border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-50);color:var(--ink-soft);gap:5px;margin-top:14px;padding:12px 14px;font-size:13px;display:grid}.okv2 .ok-kana-modal-note strong{color:var(--ink)}.okv2 .ok-kana-modal-examples{gap:8px;margin-top:14px;display:grid}.okv2 .ok-kana-modal-examples h4{color:var(--ink);font-size:13px;font-weight:var(--fw-bold);margin:0}.okv2 .ok-kana-modal-example{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink-soft);text-align:left;cursor:pointer;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;font-family:inherit;display:grid}.okv2 .ok-kana-modal-example span:first-child{color:var(--ink);font-family:var(--font-jp);font-weight:var(--fw-bold)}@keyframes ok-kana-stroke-fill{0%{opacity:0;filter:blur(1.5px);transform:scale(.985)}to{opacity:.3;filter:blur();transform:scale(1)}}@keyframes ok-kana-stroke-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes ok-kana-stroke-number{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes ok-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media (max-width:1180px){.okv2 .ok-gojuon-shell{gap:24px}.okv2 .ok-gojuon-shell .ok-lesson-panel{display:none}.okv2 .ok-gojuon-shell .ok-lesson-content{padding-left:0;padding-right:0}}@media (max-width:720px){.okv2 .ok-gojuon-topbar{flex-direction:column;align-items:stretch}.okv2 .ok-gojuon-topbar .ok-btn{width:100%}.okv2 .ok-gojuon-study-section{padding:20px}.okv2 .ok-kana-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.okv2 .ok-kana-card{min-height:108px}.okv2 .ok-gojuon-practice .practice-button-grid{grid-template-columns:1fr}.okv2 .ok-stroke-stage{width:220px;height:220px}}.okv2 .minna-loading{color:var(--ink-mute);flex-direction:column;justify-content:center;align-items:center;padding:60px;animation:2s ease-in-out infinite okv2-loading-pulse;display:flex}.okv2 .minna-loading .spinner{border:3px solid var(--line);border-top-color:var(--color-brand);border-radius:50%;width:40px;height:40px;margin-bottom:16px;animation:.8s linear infinite okv2-spin}@keyframes okv2-spin{to{transform:rotate(360deg)}}@keyframes okv2-loading-pulse{0%,to{opacity:1}50%{opacity:.6}}.okv2 .minna-content-section{margin-bottom:40px;scroll-margin-top:60px}.okv2 .minna-content-section:last-child{margin-bottom:0}.okv2 .j-unit{margin:0}.okv2 .example-jp ::selection,.okv2 .ok-lsn-jp ::selection,.okv2 .minna-content ::selection{background:var(--color-brand-soft);color:var(--color-brand-deep)}.okv2 .minna-section-title{font-size:20px;font-weight:var(--fw-bold);color:var(--ink);align-items:center;gap:8px;margin:0;display:inline-flex}.okv2 .minna-section-title svg{width:20px;height:20px;color:var(--ink-mute)}
.okv2 .ok-lsn-section .minna-section{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;animation:none}.okv2 .ok-lsn-section .minna-section:hover{box-shadow:none}.okv2 .grammar-list{flex-direction:column;gap:14px;display:flex}.okv2 .grammar-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:none;transition:box-shadow var(--dur-smooth) var(--ease-standard);padding:20px 22px;overflow:visible}.okv2 .grammar-card:hover{box-shadow:var(--sh-xs)}.okv2 .grammar-card-top{padding:0 0 6px}.okv2 .grammar-structure-bar{background:0 0;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:10px;padding:0;display:flex}.okv2 .grammar-index-tag{background:var(--color-brand-soft);color:var(--color-brand-deep);border-radius:var(--r-full);font-size:11px;font-weight:var(--fw-bold);letter-spacing:.04em;font-family:var(--font-mono);padding:3px 10px}.okv2 .grammar-structure-text{font-family:var(--font-jp);font-size:22px;font-weight:var(--fw-bold);color:var(--ink);letter-spacing:.02em;line-height:1.3}.okv2 .grammar-explanation{color:var(--ink-soft);margin:0 0 16px;font-size:13.5px;line-height:1.75}.okv2 .grammar-examples{flex-direction:column;gap:10px;display:flex}.okv2 .example-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:none;transition:background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);justify-content:space-between;align-items:center;gap:16px;padding:14px 18px 14px 14px;display:flex}.okv2 .example-item-num{text-align:center;min-width:24px;font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-bold);color:var(--ink-mute);letter-spacing:.04em;flex:none;align-self:flex-start;padding-top:2px}.okv2 .example-item:hover{background:var(--color-brand-soft);border-color:var(--lilac-100);box-shadow:none}.okv2 .example-text{flex:1;min-width:0}.okv2 .example-jp{font-family:var(--font-jp);font-size:20px;font-weight:var(--fw-extrabold);color:var(--ink);letter-spacing:.02em;margin:0 0 6px;line-height:1.55}.okv2 .example-cn{color:var(--ink-mute);margin:0;font-size:13px;line-height:1.5}.okv2 .example-jp b,.okv2 .example-jp strong{font-weight:var(--fw-extrabold);color:var(--color-brand-deep)}.okv2 .example-jp b .j-base,.okv2 .example-jp strong .j-base{color:var(--color-brand-deep);font-weight:var(--fw-extrabold)}.okv2 .example-jp b .j-furigana,.okv2 .example-jp strong .j-furigana{color:var(--color-brand-deep)}.okv2 .grammar-explanation b,.okv2 .grammar-explanation strong{font-weight:var(--fw-bold);color:var(--ink)}.okv2 .vocab-zone{margin-bottom:22px}.okv2 .vocab-zone:last-of-type{margin-bottom:0}.okv2 .vocab-zone-header{border:none;align-items:baseline;gap:10px;margin-bottom:10px;padding:0;display:flex}.okv2 .vocab-zone-header h4{color:var(--ink-soft);font-size:13px;font-weight:var(--fw-semibold);letter-spacing:.02em;margin:0}.okv2 .vocab-zone-header span{color:var(--ink-mute);font-family:var(--font-mono);font-size:11.5px;font-weight:var(--fw-semibold);text-align:left;background:0 0;border:none;min-width:0;padding:0}.okv2 .vocab-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}@media (max-width:768px){.okv2 .vocab-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:480px){.okv2 .vocab-grid{grid-template-columns:repeat(2,1fr)}}.okv2 .vocab-card{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);min-height:150px;box-shadow:var(--sh-xs);cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard), opacity var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:22px 14px 18px;animation:none;display:flex;position:relative}.okv2 .vocab-card:hover{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-soft);background:var(--card)}.okv2 .vocab-card:active{transform:scale(.97)}.okv2 .vocab-card.vocab-speaking,.okv2 .vocab-card.vocab-playing{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-soft);background:var(--card)}.okv2 .vocab-card.mastered{opacity:1;background:var(--card)}.okv2 .vocab-card.mastered .vocab-meaning{color:var(--ink-soft)}.okv2 .vocab-furigana{font-family:var(--font-jp);font-size:12px;font-weight:var(--fw-semibold);color:var(--color-brand-deep);letter-spacing:.04em;text-align:center;line-height:1.2}.okv2 .vocab-main-kanji{font-family:var(--font-jp);font-size:24px;font-weight:var(--fw-bold);color:var(--ink);letter-spacing:.02em;text-align:center;line-height:1.2}.okv2 .vocab-meaning{color:var(--ink-soft);margin-top:2px;font-size:12.5px;line-height:1.45}.okv2 .vocab-pos-row{margin-top:4px}.okv2 .vocab-pos{background:var(--peach-50);color:var(--peach-700);border-radius:var(--r-full);font-size:10px;font-weight:var(--fw-bold);letter-spacing:.04em;padding:2px 8px;display:inline-block}.okv2 .vocab-mastery-btn{border:1px solid var(--line-strong);background:var(--card);width:22px;height:22px;color:var(--ink-mute);font-family:inherit;font-size:13px;font-weight:var(--fw-extrabold);cursor:pointer;opacity:0;transition:opacity var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard);border-radius:50%;place-items:center;padding:0;line-height:1;display:grid;position:absolute;top:8px;right:8px;transform:none}.okv2 .vocab-card:hover .vocab-mastery-btn,.okv2 .vocab-card:focus-within .vocab-mastery-btn{opacity:1;transform:none}.okv2 .vocab-mastery-btn.move-mastered:hover{border-color:var(--rose-500);color:var(--rose-700);background:var(--rose-50)}.okv2 .vocab-mastery-btn.move-unmastered{opacity:1;background:var(--color-success-soft);border-color:var(--mint-100);color:var(--color-success-deep)}.okv2 .vocab-mastery-btn.move-unmastered:hover{border-color:var(--color-success);background:var(--color-success-soft)}.okv2 .vocab-mastery-btn-symbol{line-height:1}.okv2 .vocab-mastery-rule-tip{background:var(--ink-900);color:var(--ink-0);font-size:10.5px;font-weight:var(--fw-semibold);border-radius:var(--r-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-standard);padding:4px 8px;position:absolute;bottom:calc(100% + 6px);right:0}.okv2 .vocab-mastery-btn:hover .vocab-mastery-rule-tip{opacity:1}.okv2 .vocab-mastery-meta{font-family:var(--font-mono);color:var(--ink-soft);font-size:12px;font-weight:var(--fw-semibold)}.okv2 .vocab-mastery-tip{color:var(--color-success-deep);text-align:center;margin-top:14px;padding:10px 0;font-size:13px}.okv2 .vocab-grid .vocab-card,.okv2 .grammar-list .grammar-card,.okv2 .grammar-examples .example-item{animation:none!important}
.ok-pb-bar{bottom:0;left:var(--ok-rail-w,0);z-index:900;background:var(--card);border-top:1px solid var(--line);-webkit-backdrop-filter:saturate(1.2)blur(8px);animation:okpb-slide-up .22s var(--ease-standard,cubic-bezier(.2, .8, .2, 1));position:fixed;right:0;box-shadow:0 -12px 32px #121c3414}@keyframes okpb-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}body.has-playback-bar{padding-bottom:80px}.ok-pb-prog{background:var(--line);height:2px;overflow:hidden}.ok-pb-prog-fill{background:var(--color-brand);height:100%;transition:width .25s var(--ease-standard)}.ok-pb-row{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:18px;min-height:60px;padding:10px 18px 10px 24px;display:grid}.ok-pb-meta{flex:none;align-items:center;gap:8px;display:flex}.ok-pb-count{background:var(--surface);border-radius:var(--r-full);color:var(--ink-soft);font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.04em;align-items:baseline;gap:2px;padding:3px 10px;display:inline-flex}.ok-pb-count-cur{color:var(--color-brand-deep)}.ok-pb-count-sep{opacity:.5;margin:0 2px}.ok-pb-tag{background:var(--surface);border-radius:var(--r-full);color:var(--ink-soft);font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.04em;align-items:center;gap:6px;max-width:140px;padding:3px 10px;display:inline-flex}.ok-pb-tag-dot{background:var(--color-brand);border-radius:50%;flex:none;width:6px;height:6px}.ok-pb-tag-initial{font-family:var(--font-jp);font-weight:var(--fw-bold);color:var(--color-brand-deep)}.ok-pb-tag-name{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-family:var(--font-body);font-weight:var(--fw-semibold);overflow:hidden}.ok-pb-text{text-align:center;min-width:0;padding:0 8px}.ok-pb-jp{font-family:var(--font-jp);font-size:22px;font-weight:var(--fw-bold);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(90deg, var(--color-brand-deep) 0%, var(--color-brand-deep) calc(var(--p,0%) - 3%), var(--color-brand) var(--p,0%), var(--ink-mute) calc(var(--p,0%) + 3%), var(--ink-mute) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;line-height:1.3;transition:background 80ms linear;overflow:hidden}.ok-pb-cn{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;margin:1px 0 0;font-size:12.5px;line-height:1.4;overflow:hidden}.ok-pb-ctrl{flex:none;align-items:center;gap:6px;display:flex}.ok-pb-sep{background:var(--line);width:1px;height:18px;margin:0 2px}.ok-pb-vol{position:relative}.ok-pb-vol-pop{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);z-index:920;min-width:180px;animation:okpb-pop-in .14s var(--ease-standard);align-items:center;gap:10px;padding:10px 14px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 12px 28px #121c341f}.ok-pb-vol-pop svg{fill:none;width:14px;height:14px;stroke:var(--ink-mute);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.ok-pb-vol-slider{appearance:none;background:var(--line);border-radius:var(--r-full);cursor:pointer;outline:none;flex:1;height:3px}.ok-pb-vol-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--color-brand);cursor:pointer;border:0;border-radius:50%;width:12px;height:12px}.ok-pb-vol-slider::-moz-range-thumb{background:var(--color-brand);border:0;border-radius:50%;width:12px;height:12px}.ok-pb-vol-pct{font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-semibold);color:var(--ink-mute);text-align:right;min-width:28px}@keyframes okpb-pop-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ok-pb-close svg{stroke-width:2px;stroke-linecap:round;fill:none!important;stroke:currentColor!important}@media (max-width:880px){.ok-pb-row{gap:12px;padding:10px 14px}.ok-pb-tag-name{display:none}}@media (max-width:620px){.ok-pb-meta{display:none}.ok-pb-row{grid-template-columns:minmax(0,1fr) auto auto}}
.okv2 .ok-heatmap-section{background:var(--card);border-radius:var(--r-lg);padding:24px 28px;box-shadow:0 1px 2px #0f172a0a,0 8px 24px -8px #0f172a0f}.okv2 .ok-heatmap-head{justify-content:space-between;align-items:baseline;margin:0 0 14px;display:flex}.okv2 .ok-heatmap-title{font-size:13px;font-weight:var(--fw-bold);color:var(--ink-mute);letter-spacing:.08em;text-transform:uppercase;margin:0}.okv2 .ok-heatmap-count{color:var(--ink-soft);font-size:13px}.okv2 .ok-heatmap-count b{color:var(--ink);font-weight:var(--fw-bold)}.okv2 .ok-heatmap-grid{grid-template-columns:repeat(13,1fr);gap:4px;display:grid}.okv2 .ok-heatmap-grid.is-year{grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(53,1fr);grid-auto-flow:column;gap:3px}.okv2 .ok-heatmap-grid.is-half-year{grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(26,1fr);grid-auto-flow:column;gap:3px}.okv2 .ok-heatmap-cell{aspect-ratio:1;background:var(--sand-line);transition:transform .12s var(--ease-standard);border-radius:3px}.okv2 .ok-heatmap-cell.is-l1{background:var(--lilac-100)}.okv2 .ok-heatmap-cell.is-l2{background:var(--lilac-300)}.okv2 .ok-heatmap-cell.is-l3{background:var(--lilac-500)}.okv2 .ok-heatmap-cell.is-l4{background:var(--color-brand-deep)}.okv2 .ok-heatmap-cell:hover{transform:scale(1.15)}.okv2 .ok-heatmap-legend{color:var(--ink-mute);justify-content:flex-end;align-items:center;gap:6px;margin-top:12px;font-size:11px;display:flex}.okv2 .ok-heatmap-legend-cells{gap:3px;display:flex}.okv2 .ok-heatmap-legend-cells>div{border-radius:2px;width:12px;height:12px}.okv2 .ok-bar-chart{align-items:flex-end;gap:8px;height:180px;padding:8px 0;display:flex}.okv2 .ok-bar-col{flex-direction:column;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.okv2 .ok-bar-col-track{background:var(--sand-line);border-radius:var(--r-sm);flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.okv2 .ok-bar-col-fill{background:var(--color-brand);border-radius:var(--r-sm) var(--r-sm) 0 0;width:100%;transition:height .4s var(--ease-emphasized)}.okv2 .ok-bar-col-fill.is-warm{background:var(--color-warm)}.okv2 .ok-bar-col-fill.is-mint{background:var(--color-success)}.okv2 .ok-bar-col-fill.is-gold{background:var(--gold-300)}.okv2 .ok-bar-col-label{color:var(--ink-mute);white-space:nowrap;font-size:11px;font-family:var(--font-mono)}.okv2 .ok-bar-col-value{color:var(--ink);font-size:13px;font-weight:var(--fw-semibold);font-family:var(--font-display)}.okv2 .ok-line-chart{width:100%;height:200px;position:relative}.okv2 .ok-line-chart svg{width:100%;height:100%;overflow:visible}.okv2 .ok-line-chart-grid{stroke:var(--line);stroke-width:1px;stroke-dasharray:2 4;opacity:.6}.okv2 .ok-line-chart-fill{fill:var(--color-brand-soft);opacity:.4}.okv2 .ok-line-chart-stroke{fill:none;stroke:var(--color-brand);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.okv2 .ok-line-chart-dot{fill:var(--color-brand);stroke:var(--card);stroke-width:2px;transition:r .15s var(--ease-standard)}.okv2 .ok-line-chart-dot:hover{r:5}.okv2 .ok-line-chart-axis{font-family:var(--font-mono);fill:var(--ink-mute);font-size:10.5px}.okv2 .ok-progress-ring{display:inline-block;position:relative}.okv2 .ok-progress-ring svg{display:block;transform:rotate(-90deg)}.okv2 .ok-progress-ring-track{fill:none;stroke:var(--sand-line);stroke-width:8px}.okv2 .ok-progress-ring-fill{fill:none;stroke:var(--color-brand);stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset .6s var(--ease-emphasized)}.okv2 .ok-progress-ring-fill.is-warm{stroke:var(--color-warm)}.okv2 .ok-progress-ring-fill.is-mint{stroke:var(--color-success)}.okv2 .ok-progress-ring-fill.is-gold{stroke:var(--gold-300)}.okv2 .ok-progress-ring-label{font-family:var(--font-display);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.okv2 .ok-progress-ring-num{font-size:22px;font-weight:var(--fw-extrabold);color:var(--ink);letter-spacing:-.02em;line-height:1}.okv2 .ok-progress-ring-num small{font-size:13px;font-weight:var(--fw-semibold);color:var(--ink-mute);margin-left:1px}.okv2 .ok-progress-ring-tag{color:var(--ink-mute);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:var(--fw-bold);margin-top:4px}