@import"https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@600;700&display=swap";@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;inset:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;inset:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media(pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}:root{--font-sans: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-serif: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", "Songti SC", serif;--font-ui: var(--font-sans);--font-reading: var(--font-serif);--canvas: #eee8dc;--canvas-deep: #e5ddcf;--paper: #fbf8f0;--paper-warm: #f6f0e5;--ink: #24211d;--ink-secondary: #655f56;--ink-muted: #91897d;--action: #315f52;--action-hover: #24483f;--action-soft: #e5ece7;--action-focus: rgba(49, 95, 82, .25);--correction: #b24a3a;--correction-soft: #f3e5df;--annotation: #40536e;--paper-line: #d8d0c2;--paper-line-strong: #beb5a7;--surface: var(--paper);--surface-raised: var(--paper);--surface-subtle: var(--paper-warm);--text-primary: var(--ink);--text-secondary: var(--ink-secondary);--text-disabled: var(--ink-muted);--border-subtle: var(--paper-line);--border-strong: var(--paper-line-strong);--action-primary: var(--action);--action-primary-hover: var(--action-hover);--success: var(--action);--warning: var(--correction);--danger: var(--correction);--info: var(--annotation);--space-4: 4px;--space-8: 8px;--space-12: 12px;--space-16: 16px;--space-24: 24px;--space-32: 32px;--space-48: 48px;--space-64: 64px;--radius-8: 8px;--radius-12: 12px;--radius-16: 16px;--radius-24: 24px;--radius-pill: 999px;--shadow-paper: 0 18px 45px rgba(78, 65, 45, .1), 0 2px 5px rgba(78, 65, 45, .06);--shadow-paper-compact: 0 8px 24px rgba(78, 65, 45, .08);--shadow-action: 0 8px 20px rgba(36, 72, 63, .18);--shadow-overlay: 0 20px 48px rgba(36, 33, 29, .24);--shadow-card: var(--shadow-paper-compact);--shadow-raised: var(--shadow-paper);--shadow-dialog: var(--shadow-overlay);--control-44: 44px;--control-48: 48px;--control-56: 56px;--content-reading-max: 42rem;--content-workspace-max: 68rem;--content-browser-max: 80rem;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--sheet-mobile-top-gap: var(--space-8);--motion-fast: .12s;--motion-normal: .2s;--motion-slow: .32s;--motion-reduced: .01ms;--ease-standard: cubic-bezier(.22, 1, .36, 1);--ease-spring: var(--ease-standard);--bg-main: var(--canvas);--bg-color: var(--canvas);--card-bg: var(--surface-raised);--text-main: var(--text-primary);--text-muted: var(--text-secondary);--accent: var(--action-primary);--accent-soft: var(--action-soft);--error: var(--danger);--line: var(--border-subtle);--ring: var(--action-focus);--shadow: var(--shadow-card);--washi: var(--paper)}@media(prefers-reduced-motion:reduce){:root{--motion-fast: var(--motion-reduced);--motion-normal: var(--motion-reduced);--motion-slow: var(--motion-reduced)}}*{box-sizing:border-box;-webkit-font-smoothing:antialiased}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html,body,#root,.app-container{height:100dvh}body{margin:0;padding:0;overflow:hidden;background:radial-gradient(circle at 15% 0%,rgba(255,255,255,.44),transparent 34rem),linear-gradient(135deg,transparent 0 49.8%,rgba(105,91,67,.025) 49.8% 50.2%,transparent 50.2%) 0 0 / 17px 17px,var(--canvas);color:var(--text-primary);font-family:var(--font-ui);line-height:1.65}#root{background:inherit}.app-container{background:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--action-focus);outline-offset:1px}.app-container{width:100%;max-width:none;margin:0;padding:0;display:flex;flex-direction:column;overflow:hidden;position:relative}.app-container--practice{width:100%}.page-frame{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.page-frame--practice{overflow:hidden}.sheet-shell{display:flex;flex-direction:column;min-height:0}.sheet-header{z-index:2}.sheet-content{flex:1;min-height:0}.sheet-footer{z-index:2}.content-container{width:100%;min-width:0;margin-inline:auto;padding-left:max(var(--space-16),var(--safe-left));padding-right:max(var(--space-16),var(--safe-right))}.content-container--reading{max-width:var(--content-reading-max)}.content-container--workspace{max-width:var(--content-workspace-max)}.content-container--browser{max-width:var(--content-browser-max)}.content-container--full{max-width:none}@media(min-width:640px){.content-container{padding-left:max(var(--space-24),var(--safe-left));padding-right:max(var(--space-24),var(--safe-right))}}.setting-label{font-size:.82rem;font-weight:600;color:var(--text-secondary);margin-bottom:.35rem}.setting-hint{font-size:.72rem;color:var(--text-secondary);opacity:.7;margin-bottom:.45rem}.chip-select{display:flex;gap:.45rem;margin-bottom:1rem;flex-wrap:wrap}.chip-item{flex:1;min-width:52px;height:44px;border-radius:var(--radius-pill);border:1.5px solid var(--border-strong);background:var(--surface-raised);color:var(--text-secondary);font-size:.82rem;font-weight:600;cursor:pointer;transition:border-color .2s var(--ease-spring),background-color .2s var(--ease-spring),color .2s var(--ease-spring),box-shadow .2s var(--ease-spring),transform .2s var(--ease-spring);font-family:inherit}.chip-item.selected{border-color:var(--action-primary);background:var(--action-primary);color:var(--paper);box-shadow:var(--shadow-action)}.chip-item:active{transform:scale(.97)}@media(min-width:640px){.chip-item{height:44px;font-size:.88rem}}.primary-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:.85rem 1.1rem;background:var(--action-primary);color:var(--paper);border:none;border-radius:var(--radius-12);font-size:1rem;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:transform .12s var(--ease-spring),opacity .2s;font-family:inherit}.primary-btn:disabled{opacity:.55;cursor:not-allowed}.primary-btn:not(:disabled):active{transform:scale(.97)}.ui-icon-button{width:var(--control-44);height:var(--control-44);min-width:var(--control-44);min-height:var(--control-44);display:inline-grid;place-items:center;padding:0;border:0;border-radius:var(--radius-8);background:transparent;color:inherit;font:inherit;cursor:pointer}.adaptive-dialog-portal{position:relative;z-index:200}.adaptive-dialog-backdrop{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;padding-top:calc(var(--safe-top) + var(--space-8));background:#24211d6b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overscroll-behavior:contain}.adaptive-dialog{width:100%;max-height:calc(100dvh - var(--safe-top) - var(--space-8));border-radius:var(--radius-24) var(--radius-24) 0 0;background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-dialog);outline:none}.adaptive-dialog__title{margin:0}@media(min-width:640px){.adaptive-dialog-backdrop{align-items:center;padding:var(--space-32)}.adaptive-dialog{width:min(100%,32rem);max-height:min(90dvh,48rem);border-radius:var(--radius-24)}}.home-page{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;background:repeating-linear-gradient(0deg,transparent 0,transparent 28px,color-mix(in srgb,var(--border-subtle) 36%,transparent) 29px),color-mix(in srgb,var(--canvas) 92%,var(--surface-raised))}.home-workspace{min-height:100%;padding-top:max(var(--space-16),var(--safe-top));padding-bottom:calc(54px + 1.5rem + var(--safe-bottom))}.home-page{scroll-padding-bottom:calc(54px + 1.5rem + var(--safe-bottom))}.home-layout,.home-primary,.home-secondary{display:flex;min-width:0;flex-direction:column}.home-layout,.home-primary,.home-secondary{gap:0}.home-header{display:flex;margin-bottom:1.2rem;padding:.2rem 0 .85rem;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--border-strong)}.home-brand{display:flex;min-width:0;align-items:center;gap:.7rem}.home-logo{position:relative;display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border:1px solid var(--danger);border-radius:2px;background:transparent;color:var(--danger);font-family:var(--font-reading);font-size:1.55rem;transform:rotate(-2deg)}.home-logo:after{content:"習";position:absolute;right:-.35rem;bottom:-.3rem;padding:0 .12rem;border:1px solid var(--danger);background:var(--canvas);color:var(--danger);font-size:.52rem;pointer-events:none}.home-title{display:flex;min-width:0;margin:0;flex-direction:column;color:var(--text-primary);font-family:var(--font-reading);font-size:1.12rem;font-weight:700;letter-spacing:.05em;line-height:1.25}.home-title small{color:var(--action-primary);font-size:.68rem;font-weight:600;letter-spacing:.12em}.home-top-controls{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:.35rem}.home-help-btn{display:flex;min-width:44px;min-height:44px;padding:.3rem .55rem;align-items:center;justify-content:center;gap:.3rem;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 58%,transparent);color:var(--action-primary);font:inherit;font-size:.72rem;font-weight:600;cursor:pointer;transition:background-color var(--motion-normal),border-color var(--motion-normal),transform var(--motion-fast)}.home-lang{display:flex;align-items:center;gap:.25rem;color:var(--action-primary);font-size:.72rem}.home-lang select{min-height:44px;padding:.15rem .35rem;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:var(--surface-raised);color:var(--action-primary);font-size:.75rem;font-weight:600}.home-today{position:relative;width:min(100%,var(--content-reading-max));margin-bottom:1rem;padding:1.25rem 1.35rem;border:1px solid var(--border-strong);border-inline-start:3px solid var(--action-primary);background:color-mix(in srgb,var(--surface-raised) 72%,transparent);box-shadow:var(--shadow-card);text-align:left}.home-today:after{content:"今日";position:absolute;top:.75rem;right:.8rem;padding:.08rem .2rem;border:1px solid var(--danger);color:var(--danger);font-family:var(--font-reading);font-size:.58rem;transform:rotate(3deg);pointer-events:none}.home-today p{margin:0 0 .35rem;color:var(--action-primary);font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.home-today h2{margin:0;padding-right:2.5rem;color:var(--text-primary);font-family:var(--font-reading);font-size:clamp(1.35rem,4vw,2rem);letter-spacing:.03em}.home-today span{display:block;margin-top:.45rem;color:var(--text-secondary);font-size:.88rem}.mode-card-set{display:flex;margin-bottom:1rem;flex-direction:column;gap:.7rem}.mode-card{position:relative;display:flex;width:100%;min-height:86px;padding:.95rem 1.05rem;align-items:center;gap:.9rem;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 84%,var(--canvas));box-shadow:var(--shadow-card);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--motion-normal),background-color var(--motion-normal),box-shadow var(--motion-normal),transform var(--motion-fast)}.mode-card:after{content:"";position:absolute;top:.65rem;right:.65rem;width:.55rem;height:.55rem;border:1px solid var(--border-strong);transform:rotate(45deg);pointer-events:none}.mode-card.selected{border:2px double var(--action-primary);background:color-mix(in srgb,var(--action-primary) 8%,var(--surface-raised));box-shadow:var(--shadow-raised)}.mode-card.selected:after{content:"✓";display:grid;width:1.1rem;height:1.1rem;place-items:center;border:1px solid var(--action-primary);color:var(--action-primary);font-family:var(--font-ui);font-size:.65rem;transform:none}.mode-card:active{transform:translateY(1px)}.mode-card-icon{flex-shrink:0;width:42px;color:var(--danger);font-family:var(--font-reading);font-size:1.55rem;text-align:center}.mode-card-text{min-width:0}.mode-card-text strong{display:block;color:var(--text-primary);font-family:var(--font-reading);font-size:1rem}.mode-card-text p{margin:.25rem 0 0;color:var(--text-secondary);font-size:.82rem;line-height:1.45}.home-persistence-status{display:flex;width:100%;min-height:44px;margin:0 0 1rem;padding:.55rem .75rem;align-items:center;justify-content:space-between;gap:.65rem;border:1px solid var(--warning);border-inline-start-width:3px;border-radius:var(--radius-8);background:color-mix(in srgb,var(--warning) 7%,var(--surface-raised));color:var(--text-secondary);font-size:.8rem}.home-persistence-status button{min-height:44px;padding:0 .35rem;border:0;background:transparent;color:var(--action-primary);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.home-reading-scope{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,18rem);margin-bottom:1rem;padding:.9rem 1rem;align-items:center;gap:1rem;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 76%,transparent)}.home-reading-scope h2{margin:0;color:var(--text-primary);font-family:var(--font-reading);font-size:.92rem}.home-reading-scope p{margin:.25rem 0 0;color:var(--text-secondary);font-size:.72rem;line-height:1.4}.home-reading-scope .chip-select{margin-bottom:0}.free-settings{overflow:hidden}.free-settings-inner{padding:.75rem 1rem;border:1px solid var(--border-strong);border-inline-start:3px solid var(--info);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 82%,var(--canvas))}.custom-checkboxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.4rem}.custom-checkbox{display:flex;min-height:44px;padding:.45rem .6rem;align-items:center;gap:.4rem;border:1px solid var(--border-subtle);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 80%,transparent);color:var(--text-primary);font-size:.78rem;font-weight:600;cursor:pointer}.custom-checkbox:has(input:checked){border:2px double var(--action-primary);color:var(--action-primary)}.custom-checkbox input{width:20px;height:20px;flex:0 0 auto;accent-color:var(--action-primary)}.free-settings-warning{margin:.45rem 0 0;color:var(--danger);font-size:.75rem;font-weight:600;text-decoration:underline}.library-summary-card{display:flex;width:100%;min-width:0;min-height:44px;margin:1rem 0;padding:1rem;overflow:hidden;align-items:center;justify-content:space-between;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 84%,var(--canvas));box-shadow:var(--shadow-card);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--motion-normal),background-color var(--motion-normal),box-shadow var(--motion-normal),transform var(--motion-fast)}.library-summary-info{display:flex;flex:1;min-width:0;flex-direction:column;gap:.35rem}.library-summary-eyebrow{color:var(--action-primary);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.library-summary-names{overflow:hidden;color:var(--text-primary);font-family:var(--font-reading);font-size:clamp(1rem,3vw,1.2rem);font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.library-summary-meta{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:.35rem .75rem}.library-summary-difficulty{display:inline-flex;align-items:baseline;gap:.35rem;color:var(--text-secondary);font-size:.75rem}.library-summary-difficulty strong{color:var(--info);font-size:.88rem}.library-summary-count{color:var(--text-secondary);font-size:.75rem}.library-progress-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin-top:.45rem}.library-progress-stat{display:flex;min-width:0;padding:.5rem .35rem;flex-direction:column;gap:.1rem;border:1px solid var(--border-subtle);border-radius:2px;background:color-mix(in srgb,var(--surface-raised) 78%,transparent);text-align:center}.library-progress-stat--learning{border-style:dashed;border-color:var(--warning)}.library-progress-stat--mastered{border-style:double;border-color:var(--success)}.library-progress-stat strong{color:var(--text-primary);font-family:var(--font-reading);font-size:1rem;line-height:1}.library-progress-stat span{color:var(--text-secondary);font-size:.65rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.library-summary-chevron{flex-shrink:0;margin-left:.5rem;color:var(--info);transition:color var(--motion-normal),transform var(--motion-normal)}.library-summary-card[aria-expanded=true]{border:2px double var(--action-primary)}.library-summary-card[aria-expanded=true] .library-summary-chevron{transform:rotate(90deg)}.home-version{display:flex;max-width:100%;margin:1.3rem 0 0;padding:.8rem 0 .2rem;flex-wrap:wrap;justify-content:center;gap:.18rem .42rem;border-top:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-ui);font-size:.68rem;font-variant-numeric:tabular-nums;line-height:1.45;opacity:.7;overflow-wrap:anywhere}.home-fab{position:fixed;right:calc(.75rem + var(--safe-right));bottom:calc(.75rem + var(--safe-bottom));left:calc(.75rem + var(--safe-left));z-index:20;width:auto;min-height:54px;padding:.7rem 1rem;border:1px solid var(--action-primary);border-radius:var(--radius-8);background:var(--action-primary);box-shadow:var(--shadow-raised);color:var(--surface-raised);font:inherit;font-size:1rem;font-weight:700;letter-spacing:.06em;cursor:pointer;transition:background-color var(--motion-normal),transform var(--motion-fast),opacity var(--motion-normal)}.home-fab:not(:disabled):active{transform:translateY(1px)}.home-fab:disabled{border-style:dashed;color:var(--text-disabled);cursor:default;opacity:.66}@media(hover:hover){.home-help-btn:hover,.mode-card:hover,.library-summary-card:hover{border-color:var(--action-primary)}.home-fab:not(:disabled):hover{background:var(--action-hover)}}@media(max-width:520px){.home-reading-scope{grid-template-columns:1fr;gap:.65rem}}@media(max-width:359px){.home-help-btn span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.library-summary-card{padding-inline:.75rem}.library-summary-chevron{margin-left:.25rem}}@media(min-width:640px){.home-logo{width:48px;height:48px;font-size:1.75rem}.home-title{font-size:1.3rem}.home-title small{font-size:.74rem}.home-version{font-size:.72rem}.home-fab{position:static;display:block;width:auto;min-width:180px;margin:1.5rem auto 0;transform:none;box-shadow:var(--shadow-card)}.home-workspace{padding-top:max(var(--space-24),var(--safe-top));padding-bottom:max(var(--space-24),var(--safe-bottom))}.home-page{scroll-padding-bottom:0}}@media(min-width:960px){.home-workspace{display:flex;min-height:100%;padding-top:max(var(--space-32),var(--safe-top));padding-bottom:max(var(--space-32),var(--safe-bottom));flex-direction:column;justify-content:center}.home-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(18rem,5fr);align-items:start;gap:2.5rem}.home-primary,.home-secondary{min-width:0}.home-secondary{padding-top:1.25rem}.home-fab{grid-column:1;grid-row:2;justify-self:start;margin:1.5rem 0 0}.library-summary-card{margin:0}}@media(prefers-reduced-motion:reduce){.home-help-btn,.mode-card,.library-summary-card,.library-summary-chevron,.home-fab{transition-duration:var(--motion-reduced)}}.library-modal-overlay{z-index:100;align-items:flex-end;padding:calc(var(--safe-top) + var(--space-8)) 0 0;background:color-mix(in srgb,var(--text-primary) 48%,transparent);-webkit-backdrop-filter:blur(5px) saturate(.78);backdrop-filter:blur(5px) saturate(.78)}.library-modal{position:relative;width:100%;max-height:min(88dvh,calc(100dvh - var(--safe-top) - var(--space-8)));overflow:hidden;border:1px solid color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle));border-bottom:0;border-radius:var(--radius-16) var(--radius-16) 0 0;background:linear-gradient(color-mix(in srgb,var(--text-secondary) 4%,transparent) 1px,transparent 1px) 0 0 / 100% 29px,color-mix(in srgb,var(--surface) 96%,var(--canvas));box-shadow:var(--shadow-dialog);isolation:isolate}.library-modal:before{content:"";position:absolute;z-index:3;inset:var(--space-8);border:1px solid color-mix(in srgb,var(--text-secondary) 10%,transparent);border-radius:var(--radius-8);pointer-events:none}.tour-library-preview-portal{position:relative;z-index:199}.tour-library-preview{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:calc(var(--safe-top) + var(--space-8)) 0 0;pointer-events:none}.library-modal--tour-preview{pointer-events:none;-webkit-user-select:none;user-select:none}.library-modal-header{position:relative;z-index:4;display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;min-height:66px;padding:var(--space-12) var(--space-16) var(--space-8);border-bottom:1px solid color-mix(in srgb,var(--text-secondary) 22%,var(--border-subtle));background:color-mix(in srgb,var(--surface) 94%,var(--canvas))}.library-modal-header h2{display:flex;align-items:center;gap:var(--space-12);margin:0;color:var(--text-primary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:1.12rem;letter-spacing:.08em}.library-modal-header h2:before{content:"録";width:30px;height:30px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--danger) 72%,transparent);color:var(--danger);font-size:.72rem;line-height:1;letter-spacing:0;opacity:.78;transform:rotate(-3deg);pointer-events:none}.library-modal-close{position:relative;z-index:1;flex:0 0 var(--control-44);border-radius:var(--radius-8);color:var(--text-secondary);transition:color var(--motion-fast),background-color var(--motion-fast)}.library-modal-close:hover{color:var(--action-primary);background:color-mix(in srgb,var(--action-primary) 7%,transparent)}.library-modal-summary{position:relative;z-index:4;flex:0 0 auto;padding:var(--space-8) var(--space-16);border-bottom:1px solid color-mix(in srgb,var(--action-primary) 18%,var(--border-subtle));background:color-mix(in srgb,var(--action-primary) 6%,var(--surface));color:var(--action-primary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.76rem;font-weight:650;letter-spacing:.04em}.library-modal-dedup{margin-left:var(--space-4);color:var(--text-secondary);font-family:inherit;font-weight:450}.library-modal-tabs{position:relative;z-index:4;flex:0 0 auto;padding:var(--space-12) var(--space-16) var(--space-8);border-bottom:1px solid color-mix(in srgb,var(--text-secondary) 22%,var(--border-subtle));background:color-mix(in srgb,var(--surface) 95%,var(--canvas))}.library-tabs{display:flex;align-items:flex-end;gap:var(--space-4);min-height:var(--control-44);padding:0 var(--space-4);border-bottom:1px solid color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle))}.library-tab{position:relative;flex:1 1 0;min-width:0;min-height:var(--control-44);margin-bottom:-1px;padding:0 var(--space-8);border:1px solid transparent;border-bottom-color:color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle));border-radius:var(--radius-8) var(--radius-8) 0 0;background:transparent;color:var(--text-secondary);font:inherit;font-size:.78rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:color var(--motion-normal),border-color var(--motion-normal),background-color var(--motion-normal)}.library-tab:after{content:"";position:absolute;right:18%;bottom:-1px;left:18%;height:2px;background:transparent;pointer-events:none}.library-tab:hover{color:var(--action-primary);background:color-mix(in srgb,var(--action-primary) 5%,transparent)}.library-tab.active,.library-tab[aria-selected=true]{border-color:color-mix(in srgb,var(--text-secondary) 22%,var(--border-subtle));border-bottom-color:color-mix(in srgb,var(--surface) 96%,var(--canvas));background:color-mix(in srgb,var(--surface) 96%,var(--canvas));color:var(--action-primary)}.library-tab.active:after,.library-tab[aria-selected=true]:after{background:var(--danger)}.library-modal-body{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding:var(--space-16);background:linear-gradient(90deg,transparent 0 23px,color-mix(in srgb,var(--danger) 11%,transparent) 23px 24px,transparent 24px),linear-gradient(color-mix(in srgb,var(--text-secondary) 4%,transparent) 1px,transparent 1px) 0 0 / 100% 29px,color-mix(in srgb,var(--surface) 96%,var(--canvas));scrollbar-color:color-mix(in srgb,var(--action-primary) 36%,transparent) transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.library-tab-panel,.library-group,.practice-settings{display:flex;min-height:0;flex-direction:column}.library-tab-panel{gap:var(--space-16)}.library-group,.practice-settings{gap:var(--space-8)}.library-section-header,.library-group-label{color:var(--text-secondary);font-size:.71rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase}.library-section-header{margin:var(--space-4) 0 var(--space-8);padding-bottom:var(--space-8);border-bottom:1px solid var(--border-subtle);color:var(--action-primary)}.library-group-label{display:flex;align-items:center;gap:var(--space-8);min-height:24px;color:var(--action-primary)}.library-group-label:before{content:"";width:16px;height:1px;background:var(--danger);pointer-events:none}.library-row-container{min-width:0}.library-row{position:relative;display:flex;align-items:center;min-width:0;min-height:58px;padding:var(--space-4);border:1px solid color-mix(in srgb,var(--text-secondary) 20%,var(--border-subtle));border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 76%,transparent);box-shadow:0 2px 7px color-mix(in srgb,var(--text-primary) 5%,transparent);transition:border-color var(--motion-normal),background-color var(--motion-normal),box-shadow var(--motion-normal)}.library-row:before{content:"";position:absolute;top:var(--space-8);bottom:var(--space-8);left:3px;width:2px;border-radius:var(--radius-pill);background:transparent;pointer-events:none}.library-row:hover{border-color:color-mix(in srgb,var(--action-primary) 42%,var(--border-strong));background:color-mix(in srgb,var(--surface-raised) 90%,var(--action-primary))}.library-row.checked{border-color:color-mix(in srgb,var(--action-primary) 58%,var(--border-subtle));background:color-mix(in srgb,var(--action-primary) 5%,var(--surface-raised))}.library-row.checked:before{background:var(--action-primary)}.library-row.highlighted{box-shadow:0 0 0 3px var(--action-focus),var(--shadow-card)}.library-row-checkbox{width:22px;height:22px;margin:0 0 0 var(--space-8);flex:0 0 auto;accent-color:var(--action-primary);cursor:pointer}.library-row-checkbox:disabled{opacity:.5;cursor:default}.library-row-label{display:flex;flex:1 1 auto;align-items:center;align-self:stretch;min-width:0;padding:var(--space-8);cursor:pointer}.library-row-main{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;line-height:1.4}.library-row-name{overflow:hidden;color:var(--text-primary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.88rem;font-weight:650;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap}.library-row.checked .library-row-name{color:var(--action-primary)}.library-row-gain{color:var(--text-secondary);font-size:.67rem}.library-row-count{margin-left:var(--space-8);color:var(--text-secondary);font-family:"Noto Serif JP",serif;font-size:.7rem}.library-row-actions{display:flex;flex:0 0 auto;align-items:center;gap:2px}.library-row-info-btn,.library-row-action-btn,.library-row-manage{min-width:var(--control-44);min-height:var(--control-44);padding:0 var(--space-8);border:0;border-radius:var(--radius-8);background:transparent;color:var(--text-secondary);font:inherit;font-size:.7rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:color var(--motion-fast),background-color var(--motion-fast),transform var(--motion-fast)}.library-row-info-btn:hover,.library-row-action-btn:hover,.library-row-manage:hover,.library-row-info-btn.active{color:var(--action-primary);background:color-mix(in srgb,var(--action-primary) 8%,transparent)}.library-row-info-btn.active{transform:rotate(180deg)}.library-row-description{overflow:hidden;margin:-5px var(--space-8) 0;border:1px solid color-mix(in srgb,var(--action-primary) 18%,var(--border-subtle));border-top:0;border-radius:0 0 var(--radius-8) var(--radius-8);background:color-mix(in srgb,var(--action-primary) 4%,var(--surface))}.library-row-description-inner{padding:var(--space-16) var(--space-12) var(--space-12);border-left:2px solid color-mix(in srgb,var(--action-primary) 55%,transparent);color:var(--text-secondary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.76rem;line-height:1.65;overflow-wrap:anywhere}.library-link{color:var(--action-primary);text-underline-offset:3px}.library-modal-footer{position:relative;z-index:4;flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(8rem,36%);align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-16) calc(var(--space-12) + var(--safe-bottom));border-top:1px solid color-mix(in srgb,var(--text-secondary) 22%,var(--border-subtle));background:color-mix(in srgb,var(--surface) 95%,var(--canvas))}.library-modal-footer p{margin:0;color:var(--text-secondary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.7rem;line-height:1.5}.library-modal-confirm{min-height:var(--control-48);border:1px solid var(--action-primary);border-radius:var(--radius-8);background:var(--action-primary);color:var(--surface);font:inherit;font-weight:750;letter-spacing:.08em;cursor:pointer;transition:background-color var(--motion-normal),transform var(--motion-fast)}.library-modal-confirm:hover{background:var(--action-hover)}.library-modal-confirm:active{transform:translateY(1px)}.library-modal-confirm:disabled{opacity:.5;cursor:default}.library-manage-dialog-backdrop{z-index:140;align-items:center;padding:max(var(--space-12),var(--safe-top)) max(var(--space-12),var(--safe-right)) max(var(--space-12),var(--safe-bottom)) max(var(--space-12),var(--safe-left));background:color-mix(in srgb,var(--text-primary) 56%,transparent)}.library-manage-popup{position:relative;width:min(100%,30rem);max-height:min(90dvh,34rem);overflow:auto;overscroll-behavior:contain;border:1px solid color-mix(in srgb,var(--text-secondary) 22%,var(--border-subtle));border-radius:var(--radius-16);background:linear-gradient(color-mix(in srgb,var(--text-secondary) 4%,transparent) 1px,transparent 1px) 0 0 / 100% 29px,var(--surface)}.library-manage-popup:before{content:"";position:absolute;inset:var(--space-8);border:1px solid color-mix(in srgb,var(--text-secondary) 10%,transparent);border-radius:var(--radius-8);pointer-events:none}.library-manage-popup>.adaptive-dialog__title{position:relative;margin:0 var(--space-8);padding:var(--space-24) var(--space-16) var(--space-12);border-bottom:1px solid var(--border-subtle);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:1.03rem;letter-spacing:.04em}.library-manage-body{position:relative;display:grid;gap:var(--space-16);padding:var(--space-16) 1.25rem calc(1.25rem + var(--safe-bottom))}.library-manage-rename,.library-delete-confirmation{display:grid;gap:var(--space-12)}.library-manage-rename label{color:var(--text-secondary);font-size:.76rem;font-weight:700;letter-spacing:.04em}.library-manage-rename>div,.library-manage-actions{display:flex;gap:var(--space-8)}@media(max-width:430px){.library-manage-rename>div,.library-manage-actions{flex-wrap:wrap}.library-manage-rename .import-name-input,.library-manage-rename .library-manage-btn{flex-basis:100%}}.import-name-input{min-width:0;min-height:var(--control-44);flex:1 1 auto;padding:0 var(--space-12);border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 82%,transparent);color:var(--text-primary);font:inherit}.library-manage-btn{min-height:var(--control-44);flex:1 1 0;padding:0 var(--space-12);border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 82%,transparent);color:var(--text-primary);font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;transition:background-color var(--motion-normal),border-color var(--motion-normal),color var(--motion-normal)}.library-manage-btn:hover{border-color:var(--action-primary)}.library-manage-btn.preview{color:var(--action-primary);background:color-mix(in srgb,var(--action-primary) 7%,var(--surface))}.library-manage-btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 34%,var(--border-subtle));background:color-mix(in srgb,var(--danger) 6%,var(--surface))}.library-manage-btn:disabled{opacity:.5;cursor:default}.library-delete-confirmation p{margin:0;color:var(--text-secondary);font-family:"Noto Serif JP",serif;line-height:1.65}.import-panel{display:grid;gap:var(--space-8);margin-top:var(--space-8);padding:var(--space-12);border:1px dashed var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface) 82%,transparent)}.import-controls{display:flex;flex-direction:column;gap:var(--space-8)}.import-btn{min-height:var(--control-44);display:inline-flex;align-items:center;justify-content:center;padding:0 var(--space-12);border:1px solid var(--action-primary);border-radius:var(--radius-8);color:var(--action-primary);background:transparent;font:inherit;cursor:pointer}.import-btn input{display:none}.import-status{margin:0;padding:var(--space-8) var(--space-12);border-left:2px solid currentColor;background:var(--surface);font-size:.76rem}.import-status.done{color:var(--success);background:color-mix(in srgb,var(--success) 8%,var(--surface))}.import-status.error{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface))}@media(min-width:640px){.library-modal-overlay,.tour-library-preview{align-items:center;padding:var(--space-32)}.library-modal{width:min(100%,42rem);max-height:min(88dvh,52rem);border:1px solid color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle));border-radius:var(--radius-8)}.library-modal-header{padding-inline:var(--space-24)}.library-modal-summary,.library-modal-tabs,.library-modal-body,.library-modal-footer{padding-left:var(--space-24);padding-right:var(--space-24)}.library-manage-popup{width:min(100%,30rem);border:1px solid color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle));border-radius:var(--radius-8)}.import-controls{flex-direction:row}}@media(max-width:430px)and (max-height:760px){.library-modal.sheet-shell--mobile-full{height:calc(100dvh - var(--safe-top) - var(--space-4));max-height:none}.library-modal.sheet-shell--mobile-full .library-modal-tabs{padding:var(--space-8) var(--space-12) var(--space-4)}.library-modal.sheet-shell--mobile-full .library-modal-body{padding:var(--space-12)}.library-modal.sheet-shell--mobile-full .library-modal-header{min-height:58px;padding-block:var(--space-8)}}@media(max-width:430px){.library-row{align-items:stretch;flex-wrap:wrap}.library-row-label{min-width:calc(100% - 34px)}.library-row-actions{width:100%;justify-content:flex-end;border-top:1px solid var(--border-subtle)}.library-row-action-btn{flex:1 1 auto}.library-modal-footer{grid-template-columns:1fr}.library-modal-footer p{text-align:center}}@media(max-height:560px)and (orientation:landscape){.library-modal-overlay{align-items:stretch;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}.library-modal{height:100%;max-height:none;border-radius:0}.library-modal-header{min-height:52px;padding-block:var(--space-4)}.library-modal-summary{padding-block:var(--space-4)}.library-modal-tabs{padding:var(--space-4) var(--space-16) var(--space-8)}.library-modal-footer{grid-template-columns:1fr minmax(8rem,28%);padding-block:var(--space-8)}}@media(prefers-reduced-motion:reduce){.library-modal-close,.library-tab,.library-row,.library-row-info-btn,.library-row-action-btn,.library-row-manage,.library-modal-confirm,.library-manage-btn{transition-duration:var(--motion-reduced)}.library-row-info-btn.active,.library-modal-confirm:active{transform:none}}.browser-page{position:fixed;inset:0;z-index:50;display:flex;min-width:0;flex-direction:column;overflow:hidden;background:radial-gradient(circle at 14% 0%,color-mix(in srgb,var(--surface) 46%,transparent),transparent 32rem),linear-gradient(135deg,transparent 0 49.8%,color-mix(in srgb,var(--text-secondary) 3%,transparent) 49.8% 50.2%,transparent 50.2%) 0 0 / 17px 17px,var(--canvas)}.browser-header,.browser-search-wrapper{position:relative;z-index:10;flex:0 0 auto;border-bottom:1px solid color-mix(in srgb,var(--text-secondary) 18%,var(--border-subtle));background:color-mix(in srgb,var(--canvas) 90%,transparent);-webkit-backdrop-filter:blur(14px) saturate(.82);backdrop-filter:blur(14px) saturate(.82)}.browser-header-content{display:flex;align-items:center;gap:var(--space-12);min-height:68px;padding-top:max(var(--space-8),var(--safe-top));padding-bottom:var(--space-8)}.browser-back{flex:0 0 var(--control-44);border-radius:var(--radius-8);color:var(--text-secondary)}.browser-back:hover{color:var(--action-primary);background:color-mix(in srgb,var(--action-primary) 7%,transparent)}.browser-title-group{min-width:0;line-height:1.35}.browser-title-group h1{overflow:hidden;margin:0;color:var(--text-primary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:1.14rem;letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap}.browser-title-group span{color:var(--text-secondary);font-family:"Noto Serif JP",serif;font-size:.7rem;letter-spacing:.08em}.browser-search-content{padding-block:var(--space-12)}.browser-search-bar{display:flex;align-items:center;min-height:var(--control-44);gap:var(--space-8);padding-left:var(--space-12);border:1px solid color-mix(in srgb,var(--text-secondary) 22%,var(--border-subtle));border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface) 84%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--surface-raised) 62%,transparent);transition:border-color var(--motion-fast),background-color var(--motion-fast),box-shadow var(--motion-fast)}.browser-search-bar:focus-within{border-color:var(--action-primary);background:var(--surface);box-shadow:0 0 0 3px var(--action-focus)}.browser-search-bar input{min-width:0;height:var(--control-44);flex:1 1 auto;border:0;outline:0;background:transparent;color:var(--text-primary);font:inherit;font-size:.88rem}.browser-search-bar input::placeholder{color:var(--text-disabled)}.search-icon,.clear-icon{color:var(--text-secondary)}.clear-icon{flex:0 0 var(--control-44);border-radius:var(--radius-8)}.browser-progress-filters{display:flex;gap:var(--space-8);margin-top:var(--space-8);padding-bottom:2px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:color-mix(in srgb,var(--action-primary) 30%,transparent) transparent;scrollbar-width:thin}.browser-progress-filter{position:relative;min-height:var(--control-44);flex:0 0 auto;padding:0 var(--space-12);border:1px solid color-mix(in srgb,var(--text-secondary) 23%,var(--border-subtle));border-radius:var(--radius-8) var(--radius-8) 2px 2px;background:color-mix(in srgb,var(--surface) 78%,transparent);color:var(--text-secondary);font:inherit;font-size:.74rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:color var(--motion-normal),border-color var(--motion-normal),background-color var(--motion-normal)}.browser-progress-filter:after{content:"";position:absolute;right:var(--space-8);bottom:3px;left:var(--space-8);height:2px;background:transparent;pointer-events:none}.browser-progress-filter:hover{color:var(--action-primary);border-color:color-mix(in srgb,var(--action-primary) 48%,var(--border-subtle))}.browser-progress-filter.active,.browser-progress-filter[aria-pressed=true]{border-color:color-mix(in srgb,var(--action-primary) 58%,var(--border-subtle));background:color-mix(in srgb,var(--action-primary) 7%,var(--surface));color:var(--action-primary)}.browser-progress-filter.active:after,.browser-progress-filter[aria-pressed=true]:after{background:var(--danger)}.browser-main{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scroll-behavior:smooth;scrollbar-color:color-mix(in srgb,var(--action-primary) 34%,transparent) transparent;scrollbar-width:thin}.browser-content-wrapper{position:relative;min-height:100%;padding-top:var(--space-24);padding-bottom:max(var(--space-64),calc(var(--safe-bottom) + var(--space-24)))}.browser-grid-content{min-width:0;padding-right:3.25rem}.browser-section{margin-bottom:var(--space-32);scroll-margin-top:var(--space-8)}.browser-section-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:var(--space-8);margin:0 0 var(--space-12);padding:var(--space-8) 0;border-bottom:1px solid color-mix(in srgb,var(--text-secondary) 19%,var(--border-subtle));background:color-mix(in srgb,var(--canvas) 92%,transparent);color:var(--action-primary);font-family:"Noto Serif JP",Yu Mincho,serif;font-size:.8rem;letter-spacing:.16em;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.browser-section-header:before{content:"";width:18px;height:1px;background:var(--danger);pointer-events:none}.browser-kanji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,72px));gap:var(--space-8)}.browser-kanji-card{position:relative;min-width:0;min-height:56px;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;overflow:hidden;border:1px solid color-mix(in srgb,var(--text-secondary) 22%,var(--border-subtle));border-radius:3px;background:linear-gradient(to right,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 13%,transparent) 50%,transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 13%,transparent) 50%,transparent calc(50% + .5px)),linear-gradient(45deg,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 7%,transparent) 50%,transparent calc(50% + .5px)),linear-gradient(-45deg,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 7%,transparent) 50%,transparent calc(50% + .5px)),color-mix(in srgb,var(--surface) 90%,transparent);color:var(--text-primary);box-shadow:0 3px 9px color-mix(in srgb,var(--text-primary) 6%,transparent);font:inherit;font-family:"Noto Serif JP",Yu Mincho,serif;font-size:1.38rem;cursor:pointer;transition:border-color var(--motion-normal),background-color var(--motion-normal),box-shadow var(--motion-normal)}.browser-kanji-card:after{content:"";position:absolute;inset:3px;border:1px solid color-mix(in srgb,var(--text-secondary) 6%,transparent);pointer-events:none}.browser-kanji-card:hover{border-color:var(--action-primary);box-shadow:0 8px 18px color-mix(in srgb,var(--action-primary) 14%,transparent)}.browser-kanji-card small{position:relative;z-index:1;color:var(--text-secondary);font-family:Noto Sans JP,sans-serif;font-size:.5rem;font-weight:800;line-height:1;letter-spacing:.04em}.browser-kanji-card--learning{border-color:color-mix(in srgb,var(--info) 48%,var(--border-subtle))}.browser-kanji-card--mastered{border-color:color-mix(in srgb,var(--action-primary) 55%,var(--border-subtle));color:var(--action-primary);background-color:color-mix(in srgb,var(--action-primary) 7%,var(--surface))}.browser-kanji-card--mastered small{color:var(--success)}.browser-empty{min-height:18rem;display:grid;place-content:center;justify-items:center;gap:var(--space-16);padding:var(--space-24);border:1px dashed color-mix(in srgb,var(--text-secondary) 28%,var(--border-subtle));background:color-mix(in srgb,var(--surface) 54%,transparent);color:var(--text-secondary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;text-align:center}.browser-empty p{margin:0}.browser-empty button{min-height:var(--control-44);padding:0 var(--space-16);border:1px solid var(--action-primary);border-radius:var(--radius-8);background:transparent;color:var(--action-primary);font:inherit;font-weight:700;cursor:pointer}.browser-index-bar{position:fixed;right:max(var(--space-8),var(--safe-right));top:50%;z-index:8;display:flex;max-height:calc(100dvh - var(--space-32));flex-direction:column;align-items:center;overflow-y:auto;transform:translateY(-50%);padding:var(--space-4);border:1px solid color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle));border-radius:var(--radius-8) 2px 2px var(--radius-8);background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:var(--shadow-raised);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);touch-action:none;-webkit-user-select:none;user-select:none;scrollbar-width:none}.index-item{width:var(--control-44);min-width:var(--control-44);height:var(--control-44);min-height:var(--control-44);flex:0 0 var(--control-44);border:0;border-bottom:1px solid color-mix(in srgb,var(--text-secondary) 9%,transparent);border-radius:2px;background:transparent;color:var(--action-primary);font:inherit;font-family:"Noto Serif JP",serif;font-size:.72rem;font-weight:750;cursor:pointer;transform-origin:center right;transition:color var(--motion-fast),background-color var(--motion-fast),transform 80ms ease-out}.index-item.current{background:var(--action-primary);color:var(--surface)}.index-item:disabled{color:var(--text-disabled);cursor:default;opacity:.42}.index-label-bubble{position:fixed;right:calc(max(var(--space-8),var(--safe-right)) + 3.75rem);top:50%;z-index:9;width:52px;height:52px;display:grid;place-items:center;transform:translateY(-50%) rotate(-2deg);border:1px solid color-mix(in srgb,var(--surface) 38%,transparent);border-radius:3px;background:var(--action-primary);color:var(--surface);box-shadow:var(--shadow-raised);font-family:"Noto Serif JP",serif;font-size:1.35rem;font-weight:800}.kanji-detail-overlay{z-index:120;padding:calc(var(--safe-top) + var(--space-8)) 0 0;background:color-mix(in srgb,var(--text-primary) 52%,transparent);-webkit-backdrop-filter:blur(5px) saturate(.78);backdrop-filter:blur(5px) saturate(.78)}.kanji-detail-card{position:relative;width:100%;max-height:calc(100dvh - var(--safe-top) - var(--space-8));display:flex;flex-direction:column;overflow:hidden;border:1px solid color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle));border-bottom:0;border-radius:var(--radius-16) var(--radius-16) 0 0;background:linear-gradient(color-mix(in srgb,var(--text-secondary) 4%,transparent) 1px,transparent 1px) 0 0 / 100% 29px,var(--surface)}.kanji-detail-card:before{content:"";position:absolute;z-index:3;inset:var(--space-8);border:1px solid color-mix(in srgb,var(--text-secondary) 10%,transparent);border-radius:var(--radius-8);pointer-events:none}.detail-header{position:relative;z-index:4;flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.25rem var(--space-12);border-bottom:1px solid color-mix(in srgb,var(--text-secondary) 20%,var(--border-subtle));background:color-mix(in srgb,var(--surface) 94%,var(--canvas))}.detail-header>div{display:flex;align-items:center;gap:var(--space-12)}.detail-close{flex:0 0 var(--control-44);border-radius:var(--radius-8);color:var(--text-secondary)}.detail-close:hover{color:var(--action-primary);background:color-mix(in srgb,var(--action-primary) 7%,transparent)}.detail-kanji{width:72px;height:72px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--danger) 40%,var(--border-subtle));background:linear-gradient(to right,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 18%,transparent) 50%,transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 18%,transparent) 50%,transparent calc(50% + .5px));color:var(--text-primary);font-family:"Noto Serif JP",serif;font-size:3.1rem;font-weight:700;line-height:1}.kanji-progress-badge{padding:var(--space-4) var(--space-8);border-left:2px solid currentColor;background:color-mix(in srgb,var(--info) 7%,transparent);color:var(--info);font-size:.68rem;font-weight:800;letter-spacing:.06em}.kanji-progress-badge--mastered{background:color-mix(in srgb,var(--success) 9%,transparent);color:var(--success)}.detail-body{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding:1.25rem;scrollbar-color:color-mix(in srgb,var(--action-primary) 34%,transparent) transparent;scrollbar-width:thin}.detail-info{display:grid;gap:1.25rem}.detail-section{padding-left:var(--space-12);border-left:1px solid color-mix(in srgb,var(--action-primary) 24%,var(--border-subtle))}.detail-section h3{margin:0 0 var(--space-4);color:var(--info);font-size:.67rem;letter-spacing:.13em;text-transform:uppercase}.detail-section p{margin:0;color:var(--text-primary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.95rem;font-weight:600}.detail-section .meanings{color:var(--text-secondary);font-weight:450;line-height:1.65}.progress-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.progress-stats-grid span{min-width:0;padding:var(--space-8) var(--space-4);border:1px solid color-mix(in srgb,var(--text-secondary) 13%,var(--border-subtle));background:color-mix(in srgb,var(--surface-raised) 64%,transparent);color:var(--text-secondary);font-size:.68rem;font-weight:700;text-align:center}.review-skill-status{display:grid}.review-skill-status>div{min-height:var(--control-44);display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto;align-items:center;gap:var(--space-8);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-size:.77rem}.review-skill-status strong{color:var(--text-primary);font-family:"Noto Serif JP",serif}.detail-meta{display:flex;gap:var(--space-8);flex-wrap:wrap}.detail-meta span{padding:var(--space-4) var(--space-8);border:1px solid var(--border-subtle);border-radius:2px;background:color-mix(in srgb,var(--surface-raised) 66%,transparent);color:var(--text-secondary);font-size:.67rem;font-weight:700}.detail-no-data{padding:var(--space-32) 0;color:var(--text-secondary);font-family:"Noto Serif JP",serif;text-align:center}.detail-footer{position:relative;z-index:4;flex:0 0 auto;padding:var(--space-12) 1.25rem calc(var(--space-12) + var(--safe-bottom));border-top:1px solid color-mix(in srgb,var(--text-secondary) 20%,var(--border-subtle));background:color-mix(in srgb,var(--surface) 94%,var(--canvas))}.detail-progress-action{width:100%;min-height:var(--control-48);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);border:1px solid var(--action-primary);border-radius:var(--radius-8);background:var(--action-primary);color:var(--surface);font:inherit;font-weight:800;letter-spacing:.06em;cursor:pointer;transition:color var(--motion-normal),background-color var(--motion-normal)}.detail-progress-action.restore{background:color-mix(in srgb,var(--action-primary) 6%,var(--surface));color:var(--action-primary)}@media(min-width:640px){.browser-grid-content{padding-right:4.25rem}.browser-kanji-grid{grid-template-columns:repeat(auto-fill,72px);gap:var(--space-12)}.browser-index-bar{right:max(var(--space-24),calc((100vw - var(--content-browser-max)) / 2 + var(--space-24)))}.kanji-detail-overlay{align-items:center;padding:var(--space-32)}.kanji-detail-card{width:min(100%,34rem);max-height:min(88dvh,46rem);border:1px solid color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle));border-radius:var(--radius-8)}}@media(max-width:430px){.browser-header-content{min-height:60px}.browser-search-content{padding-block:var(--space-8)}.browser-content-wrapper{padding-top:var(--space-16)}.browser-kanji-grid{grid-template-columns:repeat(auto-fill,minmax(54px,1fr))}}@media(max-height:640px)and (orientation:landscape){.browser-header-content{min-height:52px;padding-block:var(--space-4)}.browser-search-content{display:grid;grid-template-columns:minmax(12rem,.8fr) minmax(0,1.2fr);align-items:center;gap:var(--space-12);padding-block:var(--space-4)}.browser-progress-filters{margin-top:0}.browser-index-bar{top:auto;right:max(var(--space-8),var(--safe-right));bottom:max(var(--space-8),var(--safe-bottom));left:max(var(--space-8),var(--safe-left));max-height:none;flex-direction:row;justify-content:center;overflow-x:auto;overflow-y:hidden;transform:none}.browser-grid-content{padding-right:0;padding-bottom:3.75rem}.index-item{border-right:1px solid color-mix(in srgb,var(--text-secondary) 9%,transparent);border-bottom:0}}@media(prefers-reduced-motion:reduce){.browser-main{scroll-behavior:auto}.browser-search-bar,.browser-progress-filter,.browser-kanji-card,.index-item,.detail-progress-action{transition-duration:var(--motion-reduced)}.index-item{transform:none!important}}.ocr-panel{gap:var(--space-16)}.ocr-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);padding-bottom:var(--space-8);border-bottom:1px solid color-mix(in srgb,var(--text-secondary) 19%,var(--border-subtle))}.ocr-panel-title{display:flex;align-items:center;gap:var(--space-8);color:var(--action-primary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.86rem;font-weight:750;letter-spacing:.09em}.ocr-panel-title:before{content:"";width:18px;height:1px;background:var(--danger);pointer-events:none}.ocr-step-label{padding:var(--space-4) var(--space-8);border:1px solid color-mix(in srgb,var(--action-primary) 32%,var(--border-subtle));border-radius:2px;background:color-mix(in srgb,var(--action-primary) 5%,transparent);color:var(--action-primary);font-size:.69rem;font-weight:700;letter-spacing:.06em}.ocr-step{display:flex;min-height:0;flex-direction:column;gap:var(--space-12)}.ocr-step-scroll{min-height:0}.ocr-upload{position:relative;display:flex;min-height:17rem;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-12);overflow:hidden;padding:var(--space-24) var(--space-16);border:1px dashed color-mix(in srgb,var(--action-primary) 48%,var(--border-strong));border-radius:var(--radius-8);background:linear-gradient(to right,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 9%,transparent) 50%,transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 9%,transparent) 50%,transparent calc(50% + .5px)),linear-gradient(color-mix(in srgb,var(--text-secondary) 4%,transparent) 1px,transparent 1px) 0 0 / 100% 29px,color-mix(in srgb,var(--surface) 78%,transparent);text-align:center;transition:border-color var(--motion-normal),background-color var(--motion-normal),box-shadow var(--motion-normal)}.ocr-upload:before{content:"采";position:absolute;top:var(--space-12);right:var(--space-12);width:34px;height:34px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--danger) 66%,transparent);color:var(--danger);font-family:"Noto Serif JP",serif;font-size:.76rem;opacity:.72;transform:rotate(3deg);pointer-events:none}.ocr-upload.drag-over{border-color:var(--action-primary);background-color:color-mix(in srgb,var(--action-primary) 7%,var(--surface));box-shadow:inset 0 0 0 3px var(--action-focus)}.ocr-upload-icon{color:var(--action-primary);opacity:.78}.ocr-upload-text{color:var(--text-primary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.94rem;font-weight:700;letter-spacing:.04em}.ocr-upload-hint{max-width:28rem;color:var(--text-secondary);font-size:.72rem;line-height:1.55}.ocr-upload-button{position:relative;min-height:var(--control-48);display:inline-flex;align-items:center;justify-content:center;padding:0 1.25rem;border:1px solid var(--action-primary);border-radius:var(--radius-8);background:var(--action-primary);color:var(--surface);font-size:.84rem;font-weight:750;letter-spacing:.06em;cursor:pointer}.ocr-file-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.ocr-upload:focus-within .ocr-upload-button{box-shadow:0 0 0 3px var(--action-focus)}.ocr-upload:has(.ocr-file-input:disabled) .ocr-upload-button{opacity:.52;cursor:default}.ocr-notices{display:grid;gap:var(--space-4);margin:0;padding:var(--space-12) var(--space-12) var(--space-12) 2rem;border-left:2px solid color-mix(in srgb,var(--action-primary) 55%,transparent);background:color-mix(in srgb,var(--action-primary) 4%,var(--surface));color:var(--text-secondary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.71rem;line-height:1.55}.ocr-crop-modal-hint{min-height:88px;display:grid;place-items:center;border:1px dashed var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface) 72%,transparent);color:var(--text-secondary);font-family:"Noto Serif JP",serif}.ocr-crop-modal-overlay{z-index:220;align-items:flex-end;padding:calc(var(--safe-top) + var(--space-4)) 0 0;background:color-mix(in srgb,var(--text-primary) 60%,transparent);-webkit-backdrop-filter:blur(6px) saturate(.72);backdrop-filter:blur(6px) saturate(.72)}.ocr-crop-modal{position:relative;width:100%;max-height:calc(100dvh - var(--safe-top) - var(--space-4));display:flex;flex-direction:column;overflow:hidden;border:1px solid color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle));border-bottom:0;border-radius:var(--radius-16) var(--radius-16) 0 0;background:linear-gradient(color-mix(in srgb,var(--text-secondary) 4%,transparent) 1px,transparent 1px) 0 0 / 100% 29px,var(--surface)}.ocr-crop-modal:before{content:"";position:absolute;z-index:3;inset:var(--space-8);border:1px solid color-mix(in srgb,var(--text-secondary) 10%,transparent);border-radius:var(--radius-8);pointer-events:none}.ocr-crop-modal-header{position:relative;z-index:4;flex:0 0 auto;min-height:60px;display:flex;align-items:center;justify-content:space-between;padding:var(--space-8) var(--space-16);border-bottom:1px solid color-mix(in srgb,var(--text-secondary) 20%,var(--border-subtle));background:color-mix(in srgb,var(--surface) 94%,var(--canvas))}.ocr-crop-modal-title{margin:0;color:var(--text-primary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:1rem;letter-spacing:.08em}.ocr-crop-modal-close{flex:0 0 var(--control-44);border-radius:var(--radius-8);color:var(--text-secondary)}.ocr-crop-modal-close:hover{color:var(--action-primary);background:color-mix(in srgb,var(--action-primary) 7%,transparent)}.ocr-crop-modal-body{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding:var(--space-12) var(--space-16) calc(var(--space-16) + var(--safe-bottom));scrollbar-color:color-mix(in srgb,var(--action-primary) 34%,transparent) transparent;scrollbar-width:thin}.ocr-cropper{display:grid;min-height:0;gap:var(--space-12)}.ocr-cropper-hint{margin:0;padding-left:var(--space-12);border-left:2px solid var(--action-primary);color:var(--text-secondary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.78rem;line-height:1.6}.ocr-cropper-area{min-height:clamp(280px,52dvh,560px);display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle));border-radius:3px;background:color-mix(in srgb,var(--text-primary) 88%,var(--surface))}.ocr-cropper-area .ReactCrop{--rc-drag-handle-mobile-size: var(--control-44)}.ocr-cropper-area .ReactCrop__crop-selection{border:1px solid var(--surface);box-shadow:0 0 0 9999em color-mix(in srgb,var(--text-primary) 58%,transparent)}.ocr-step-processing{min-height:15rem}.ocr-processing{min-height:15rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-16);color:var(--text-secondary);font-family:"Noto Serif JP",serif;font-size:.88rem;font-weight:650;letter-spacing:.06em}.ocr-spinner{width:36px;height:36px;border:2px solid var(--border-subtle);border-top-color:var(--action-primary);border-radius:var(--radius-pill);animation:ocr-spin .8s linear infinite}@keyframes ocr-spin{to{transform:rotate(360deg)}}.ocr-validation{display:grid;gap:var(--space-12)}.ocr-validation-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8)}.ocr-validation-header h3{margin:0;color:var(--text-primary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:1rem;letter-spacing:.06em}.ocr-validation-count{padding:var(--space-4) var(--space-8);border-left:2px solid var(--danger);color:var(--action-primary);font-size:.75rem;font-weight:700}.ocr-validation-hint{margin:0;padding-left:var(--space-12);border-left:2px solid color-mix(in srgb,var(--action-primary) 50%,transparent);color:var(--text-secondary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.73rem;line-height:1.6}.ocr-validation-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--control-44),1fr));gap:var(--space-8);padding:var(--space-12);border:1px solid color-mix(in srgb,var(--text-secondary) 18%,var(--border-subtle));border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface) 68%,transparent)}.ocr-validation-char{position:relative;width:100%;min-width:var(--control-44);height:var(--control-44);display:grid;place-items:center;overflow:hidden;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border-subtle));border-radius:2px;background:linear-gradient(to right,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 14%,transparent) 50%,transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 14%,transparent) 50%,transparent calc(50% + .5px)),var(--surface);color:var(--text-primary);font:inherit;font-family:"Noto Serif JP",serif;font-size:1.25rem;cursor:pointer;transition:opacity var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast),background-color var(--motion-fast)}.ocr-validation-char:after{content:"";position:absolute;inset:3px;border:1px solid color-mix(in srgb,var(--text-secondary) 6%,transparent);pointer-events:none}.ocr-validation-char:hover{border-color:var(--action-primary)}.ocr-validation-char[aria-pressed=true]{color:var(--action-primary)}.ocr-validation-char.removed,.ocr-validation-char[aria-pressed=false]{border-color:var(--border-subtle);background:color-mix(in srgb,var(--surface-subtle) 72%,transparent);color:var(--text-disabled);opacity:.52;text-decoration:line-through}.ocr-add-row{display:flex;gap:var(--space-8)}.ocr-add-input,.ocr-name-input,.ocr-target-select{min-width:0;width:100%;min-height:var(--control-44);padding:0 var(--space-12);border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 82%,transparent);color:var(--text-primary);font:inherit}.ocr-add-input{flex:1 1 auto}.ocr-append-hint{margin:0;padding-left:var(--space-12);border-left:2px solid var(--action-primary);color:var(--text-secondary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.73rem;line-height:1.6}.ocr-action-btn{min-height:var(--control-44);display:inline-flex;align-items:center;justify-content:center;padding:0 var(--space-16);border:1px solid var(--action-primary);border-radius:var(--radius-8);background:color-mix(in srgb,var(--action-primary) 6%,var(--surface));color:var(--action-primary);font:inherit;font-size:.84rem;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:color var(--motion-normal),background-color var(--motion-normal),opacity var(--motion-normal)}.ocr-action-btn.primary{min-height:var(--control-48);border-color:var(--action-primary);background:var(--action-primary);color:var(--surface)}.ocr-action-btn:disabled{opacity:.45;cursor:default}.ocr-sticky-actions{display:grid;gap:var(--space-8);padding-top:var(--space-12);border-top:1px solid color-mix(in srgb,var(--text-secondary) 19%,var(--border-subtle));background:transparent}.ocr-sticky-actions label{color:var(--text-secondary);font-size:.74rem;font-weight:700;letter-spacing:.05em}.ocr-error,.ocr-api-key-notice{display:grid;justify-items:center;gap:var(--space-8);padding:var(--space-16);border:1px solid color-mix(in srgb,var(--danger) 24%,var(--border-subtle));border-left:2px solid var(--danger);background:color-mix(in srgb,var(--danger) 5%,var(--surface));color:var(--text-secondary);text-align:center}.ocr-error-text{color:var(--danger);font-size:.82rem}.ocr-api-key-notice-title{color:var(--text-primary);font-family:"Noto Serif JP",serif;font-size:.86rem;font-weight:650}.ocr-api-key-notice-hint{padding:var(--space-4) var(--space-8);background:color-mix(in srgb,var(--surface) 70%,transparent);font-size:.7rem}@media(min-width:640px){.ocr-crop-modal-overlay{align-items:center;padding:var(--space-24)}.ocr-crop-modal{width:min(100%,45rem);max-height:min(92dvh,48rem);border:1px solid color-mix(in srgb,var(--text-secondary) 24%,var(--border-subtle));border-radius:var(--radius-8)}.ocr-crop-modal-body{padding:var(--space-16) 1.25rem 1.25rem}.ocr-validation-grid{grid-template-columns:repeat(auto-fill,minmax(48px,1fr))}}@media(max-width:430px)and (max-height:760px){.ocr-upload{min-height:13rem;padding:var(--space-16) var(--space-12);gap:var(--space-8)}.ocr-cropper-area{min-height:clamp(240px,48dvh,420px)}.ocr-validation-grid{padding:var(--space-8)}}@media(max-height:560px)and (orientation:landscape){.ocr-upload{min-height:11rem;display:grid;grid-template-columns:auto minmax(10rem,1fr) minmax(12rem,auto);text-align:left}.ocr-upload-button{grid-column:3}.ocr-crop-modal-overlay{align-items:stretch;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}.ocr-crop-modal{height:100%;max-height:none;border-radius:0}.ocr-crop-modal-header{min-height:52px;padding-block:var(--space-4)}.ocr-cropper-area{min-height:65dvh}}@media(prefers-reduced-motion:reduce){.ocr-upload,.ocr-validation-char,.ocr-action-btn{transition-duration:var(--motion-reduced)}.ocr-spinner{animation:none;border-color:var(--border-strong);border-top-color:var(--action-primary)}}.tour-dialog-backdrop{z-index:1000;display:block;padding:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:auto}.tour-dialog-backdrop:before{content:"";position:fixed;inset:0;pointer-events:none}.tour-overlay--entering{background:#00000080}.tour-decoration{position:fixed;inset:0;z-index:1001;overflow:hidden;pointer-events:none}.tour-dim-panel,.tour-spotlight{position:fixed;top:0;left:0;width:1px;height:1px;transform-origin:0 0;will-change:transform;pointer-events:none}.tour-dim-panel{background:#00000080}.tour-spotlight{border-radius:var(--radius-8)}.tour-tooltip{position:fixed;z-index:1002;width:max-content;min-width:min(17rem,calc(100vw - var(--space-32)));max-height:calc(100dvh - var(--space-32) - var(--safe-top) - var(--safe-bottom));overflow-y:auto;padding:0;border:1px solid color-mix(in srgb,var(--text-secondary) 25%,var(--border-subtle));border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface) 97%,var(--canvas));box-shadow:var(--shadow-dialog);outline:none;scrollbar-color:color-mix(in srgb,var(--action-primary) 34%,transparent) transparent;scrollbar-width:thin}.tour-tooltip:before{content:"";position:absolute;inset:var(--space-8);border:1px solid color-mix(in srgb,var(--text-secondary) 10%,transparent);border-radius:3px;pointer-events:none}.tour-tooltip--entering{width:1px;min-width:1px;height:1px;overflow:hidden;opacity:0}.tour-tooltip-content{position:relative;padding:var(--space-16) 1.25rem;opacity:1}.tour-copy{opacity:1;transition:opacity var(--motion-fast)}.tour-tooltip--measuring .tour-copy{opacity:0}.tour-tooltip-content:before{content:"注";position:absolute;top:var(--space-12);right:var(--space-12);width:28px;height:28px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--danger) 66%,transparent);color:var(--danger);font-family:"Noto Serif JP",serif;font-size:.68rem;opacity:.74;transform:rotate(4deg);pointer-events:none}.tour-title{margin:0 var(--space-32) var(--space-8) 0;color:var(--action-primary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.98rem;letter-spacing:.07em}.tour-body{margin:0 0 var(--space-12);padding-left:var(--space-12);border-left:2px solid color-mix(in srgb,var(--action-primary) 68%,transparent);color:var(--text-secondary);font-family:"Noto Serif JP",Yu Mincho,Songti SC,serif;font-size:.8rem;line-height:1.7}.tour-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);padding-top:var(--space-8);border-top:1px solid color-mix(in srgb,var(--text-secondary) 17%,var(--border-subtle))}.tour-dots{display:flex;gap:var(--space-4)}.tour-dot{width:15px;height:2px;border-radius:0;background:color-mix(in srgb,var(--text-secondary) 28%,transparent);transition:background-color var(--motion-normal),width var(--motion-normal)}.tour-dot.active{width:24px;background:var(--danger)}.tour-actions{display:flex;align-items:center;gap:var(--space-8)}.tour-skip,.tour-next{min-height:var(--control-44);padding:0 var(--space-12);border-radius:var(--radius-8);font:inherit;font-size:.8rem;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:color var(--motion-fast),background-color var(--motion-fast),transform var(--motion-fast)}.tour-skip{border:1px solid transparent;background:transparent;color:var(--text-secondary)}.tour-next{border:1px solid var(--action-primary);background:var(--action-primary);color:var(--surface)}.tour-skip:hover{color:var(--action-primary);background:color-mix(in srgb,var(--action-primary) 6%,transparent)}.tour-next:hover{background:var(--action-hover)}.tour-next:active{transform:translateY(1px)}@media(max-width:359px){.tour-tooltip-content{padding:var(--space-12)}.tour-footer{align-items:stretch;flex-direction:column}.tour-dots{justify-content:center}.tour-actions>button{flex:1 1 0}}@media(max-height:520px){.tour-tooltip{max-height:calc(100dvh - var(--space-16) - var(--safe-top) - var(--safe-bottom))}.tour-tooltip-content{padding:var(--space-12) var(--space-16)}.tour-body{margin-bottom:var(--space-8);line-height:1.55}.tour-footer{padding-top:var(--space-4)}}@media(max-height:420px)and (orientation:landscape){.tour-tooltip-content{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-8) var(--space-16)}.tour-title,.tour-body{grid-column:1}.tour-footer{grid-column:2;grid-row:1 / span 2;align-self:stretch;flex-direction:column;justify-content:center;border-top:0;border-left:1px solid var(--border-subtle);padding:0 0 0 var(--space-12)}.tour-actions{flex-direction:column}.tour-actions>button{width:100%}}@media(prefers-reduced-motion:reduce){.tour-dot,.tour-skip,.tour-next{transition-duration:var(--motion-reduced)}.tour-next:active{transform:none}.tour-dim-panel,.tour-spotlight{transition:none!important}}.practice-view{position:relative;display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden;background:repeating-linear-gradient(0deg,transparent 0,transparent 28px,color-mix(in srgb,var(--border-subtle) 42%,transparent) 29px),color-mix(in srgb,var(--canvas) 92%,var(--surface-raised));color:var(--text-primary);--practice-keyboard-inset: 0px;--practice-header-offset: calc(4.85rem + var(--safe-top));--practice-content-gutter: clamp(.9rem, 3vw, 1.4rem);--practice-fab-min-height: 52px;--practice-fab-edge-gap: 1rem;--practice-fab-offset: calc(max(var(--safe-bottom), 0px) + var(--practice-keyboard-inset) + var(--practice-fab-edge-gap));--practice-fab-clearance: calc(var(--practice-fab-min-height) + var(--practice-fab-offset) + var(--practice-fab-edge-gap))}.practice-view:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--surface-raised) 28%,transparent),transparent 18%,transparent 82%,color-mix(in srgb,var(--border-subtle) 22%,transparent));pointer-events:none}.practice-floating-topbar{position:relative;z-index:18;flex:0 0 auto;padding:calc(var(--safe-top) + .35rem) 0 .55rem;border-bottom:1px solid color-mix(in srgb,var(--border-strong) 72%,transparent);background:color-mix(in srgb,var(--canvas) 90%,transparent);box-shadow:0 1px color-mix(in srgb,var(--surface-raised) 70%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.practice-scroll{position:relative;z-index:1;flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:.8rem 0 var(--practice-fab-clearance);scroll-padding-top:var(--practice-header-offset);scroll-padding-bottom:var(--practice-fab-clearance)}.practice-scroll--locked{overflow-y:hidden;overscroll-behavior-y:none;-webkit-overflow-scrolling:auto}.practice-topbar-content,.practice-scroll-status,.practice-core{padding-left:max(var(--practice-content-gutter),var(--safe-left));padding-right:max(var(--practice-content-gutter),var(--safe-right))}.practice-scroll-content{display:flex;min-height:min-content;flex-direction:column;gap:.65rem}.practice-scroll-status{display:flex;flex-direction:column;gap:.45rem}.practice-core{display:flex;min-height:min-content;flex-direction:column;gap:.8rem}.practice-action-header{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:.35rem;width:100%}.practice-action-header__spacer{display:none}.practice-action-header__actions{grid-column:3;display:grid;grid-template-columns:repeat(3,44px);gap:.2rem;min-width:0}.practice-action-button{position:relative;display:flex;min-width:0;min-height:44px;padding:.3rem .4rem;align-items:center;justify-content:center;gap:.3rem;border:1px solid transparent;border-radius:var(--radius-8);background:transparent;color:var(--text-secondary);font:inherit;font-size:.68rem;font-weight:700;line-height:1.15;text-align:center;cursor:pointer;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast),transform var(--motion-fast)}.practice-action-button:after{content:"";position:absolute;right:.28rem;bottom:.24rem;left:.28rem;height:1px;background:color-mix(in srgb,var(--action-primary) 28%,transparent);transform:scaleX(0);transform-origin:center;transition:transform var(--motion-fast);pointer-events:none}.practice-action-button__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.practice-action-button--exit{width:44px;min-height:44px;padding:0;color:var(--text-secondary)}.practice-action-button[aria-pressed=true]{border-color:color-mix(in srgb,var(--action-primary) 44%,var(--border-subtle));background:color-mix(in srgb,var(--action-primary) 9%,transparent);color:var(--action-primary)}.practice-action-button[aria-pressed=true]:after{transform:scaleX(1)}.practice-action-button:disabled{color:var(--text-disabled);cursor:default;opacity:.62;text-decoration:line-through;text-decoration-thickness:1px}.practice-action-button:active:not(:disabled){transform:translateY(1px)}.practice-action-button:focus-visible{outline:3px solid var(--action-focus);outline-offset:1px}.practice-action-progress{display:grid;justify-self:center;width:min(8.5rem,100%);gap:.3rem;color:var(--text-secondary);font-family:var(--font-reading);font-size:.76rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.1em;text-align:center}.practice-action-progress__track{width:100%;height:2px;overflow:hidden;background:color-mix(in srgb,var(--action-primary) 16%,transparent)}.practice-action-progress__track>span{display:block;height:100%;background:var(--action-primary);transition:width var(--motion-normal) var(--ease-standard)}.status-text{margin:0;padding:.55rem .75rem;border:1px solid var(--border-subtle);border-inline-start-width:3px;border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 76%,transparent);font-size:.8rem;font-weight:650;text-align:left}.status-text.error{border-inline-start-color:var(--danger);color:var(--danger)}.status-text.done{border-inline-start-color:var(--success);color:var(--success)}.status-text.loading{border-inline-start-color:var(--info);color:var(--info)}.practice-dev-panel{border:1px dashed var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 58%,transparent)}.practice-dev-panel summary{padding:.4rem .65rem;color:var(--text-secondary);font-size:.72rem;font-weight:700;list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none}.practice-dev-panel summary::-webkit-details-marker{display:none;pointer-events:none}.practice-dev-panel[open] summary{border-bottom:1px dashed var(--border-subtle)}.dev-double-check-panel{padding:.45rem .6rem;color:var(--text-secondary);font-size:.72rem}.dev-double-check-panel--stats{padding-bottom:.4rem}.practice-dev-panel[open] .dev-double-check-panel+.dev-double-check-panel{border-top:1px dashed var(--border-subtle)}.dev-stats{display:flex;flex-wrap:wrap;gap:.35rem}.dev-stats__chip{display:inline-flex;min-width:0;padding:.18rem .45rem;align-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-subtle);color:var(--text-secondary);line-height:1.3}.dev-double-check-line{line-height:1.35}.practice-primary-fab{position:fixed;right:calc(var(--practice-content-gutter) + max(var(--safe-right),0px));bottom:var(--practice-fab-offset);z-index:28;display:flex;min-height:var(--practice-fab-min-height);padding:.8rem 1.1rem;align-items:center;justify-content:center;gap:.45rem;border:1px solid var(--action-primary);border-radius:var(--radius-8);background:var(--action-primary);box-shadow:var(--shadow-raised);color:var(--surface-raised);font:inherit;font-size:.92rem;font-weight:700;letter-spacing:.06em;cursor:pointer;transition:background-color var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast),opacity var(--motion-normal)}.practice-primary-fab:active:not(:disabled){transform:translateY(1px)}.practice-primary-fab:disabled{color:var(--text-disabled);cursor:default}.practice-primary-fab--retry{background:var(--action-primary)}.practice-primary-fab:focus-visible{outline:3px solid var(--action-focus);outline-offset:2px}.practice-persistence-warning{display:flex;width:fit-content;max-width:100%;margin:0 auto .4rem;padding:.5rem .7rem;flex-wrap:wrap;align-items:center;gap:.65rem;border:1px solid var(--warning);border-inline-start-width:3px;border-radius:var(--radius-8);background:color-mix(in srgb,var(--warning) 8%,var(--surface-raised));color:var(--text-secondary);font-size:.8rem}.practice-persistence-warning button{min-height:44px;padding:0;border:0;background:transparent;color:var(--action-primary);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.practice-mastery-undo{position:fixed;left:50%;bottom:calc(5.25rem + var(--safe-bottom));z-index:25;display:flex;padding:.65rem .8rem;align-items:center;gap:.75rem;transform:translate(-50%);border:1px solid var(--action-primary);border-radius:var(--radius-8);background:var(--surface-raised);box-shadow:var(--shadow-raised);color:var(--text-primary)}.practice-mastery-undo button{min-height:44px;border:0;background:transparent;color:var(--action-primary);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}@media(hover:hover){.practice-action-button:hover:not(:disabled){border-color:var(--border-strong);background:color-mix(in srgb,var(--action-primary) 7%,transparent);color:var(--action-primary)}.practice-primary-fab:hover:not(:disabled){background:var(--action-hover)}}@media(max-width:430px){.practice-view{--practice-fab-min-height: 48px}.practice-scroll-content{gap:.45rem}.practice-scroll-status{gap:.35rem}.practice-core{gap:.65rem}.practice-dev-panel summary,.dev-double-check-panel{padding:.38rem .5rem;font-size:.68rem}.dev-stats{gap:.28rem}.dev-stats__chip{padding:.16rem .42rem}.practice-primary-fab{padding:.72rem .9rem;font-size:.86rem}}@media(max-width:359px){.practice-view{--practice-header-offset: calc(8.25rem + var(--safe-top))}.practice-action-header{grid-template-columns:44px minmax(0,1fr) 44px;gap:.45rem}.practice-action-header__spacer{display:block}.practice-action-header__actions{grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.practice-action-header__actions .practice-action-button__label{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}}@media(max-width:259px){.practice-action-header__actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:180px){.practice-action-header__actions{grid-template-columns:minmax(0,1fr)}}@media(min-width:640px){.practice-view{--practice-header-offset: calc(4.85rem + var(--safe-top))}.practice-floating-topbar{padding-top:calc(var(--safe-top) + .45rem);padding-bottom:.45rem}.practice-action-header{grid-template-columns:minmax(44px,1fr) auto minmax(0,1fr);align-items:center;gap:.65rem}.practice-action-button--exit{justify-self:start}.practice-action-progress{grid-column:2;grid-row:1;width:8.5rem}.practice-action-header__actions{grid-column:3;grid-row:1;grid-template-columns:repeat(3,minmax(46px,auto));justify-self:end;gap:.3rem}.practice-action-button{min-height:44px;padding:.28rem .48rem;font-size:.65rem}}.practice-view--keyboard-open .practice-floating-topbar{padding-top:calc(var(--safe-top) + .2rem);padding-bottom:.3rem}.practice-view--keyboard-open .practice-action-header,.practice-view--keyboard-open .practice-action-header__actions{gap:.28rem}.practice-view--keyboard-open .practice-action-button{min-height:44px;padding-block:.24rem;font-size:.64rem}.practice-view--keyboard-open .practice-dev-panel{display:none}.practice-view--keyboard-open .status-text{padding:.32rem .55rem;font-size:.74rem}.practice-view--keyboard-open{--practice-fab-edge-gap: .75rem}@media(prefers-reduced-motion:reduce){.practice-action-button,.practice-action-button:after,.practice-action-progress__track>span,.practice-primary-fab{transition-duration:.01ms}}.question-card-wrap{position:relative;scroll-margin-top:calc(var(--practice-header-offset) + .35rem);overflow:visible}.question-loading-overlay{position:absolute;inset:0 0 .8rem;z-index:3;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 45%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none}.question-loading-chip{padding:.42rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:var(--surface-raised);box-shadow:var(--shadow-card);color:var(--action-primary);font-family:var(--font-reading);font-size:.78rem;font-weight:700;letter-spacing:.08em;animation:pulse 1.1s ease-in-out infinite}.question-card{position:relative;display:flex;flex-direction:column;gap:1rem;margin-bottom:.8rem;padding:1.25rem 1.1rem;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:repeating-linear-gradient(0deg,transparent 0,transparent 28px,color-mix(in srgb,var(--border-subtle) 32%,transparent) 29px),color-mix(in srgb,var(--surface-raised) 86%,var(--canvas));box-shadow:var(--shadow-raised);text-align:center}.question-card:before{content:"";position:absolute;inset:.55rem;border:1px solid color-mix(in srgb,var(--border-subtle) 64%,transparent);border-radius:calc(var(--radius-8) - 2px);pointer-events:none}.question-card__hero,.question-card__meta,.question-card__answer{position:relative;width:100%;min-width:0}.question-card__hero{display:flex;flex-direction:column;gap:.75rem;padding:1.05rem .45rem .85rem;border-bottom:1px solid var(--border-subtle)}.question-card__meta{display:grid;gap:.7rem}.question-answer-card{display:flex;width:100%;min-width:0;padding:1rem;flex-direction:column;gap:.85rem;border:1px solid var(--border-strong);border-inline-start:3px solid var(--action-primary);border-radius:var(--radius-8);background:color-mix(in srgb,var(--info) 5%,var(--surface-raised));text-align:left}.question-answer-card--combined{background:linear-gradient(90deg,color-mix(in srgb,var(--action-primary) 6%,transparent),transparent 52%),var(--surface-raised)}.question-answer-card__value{color:var(--text-primary);font-family:var(--font-reading);font-size:clamp(1.55rem,4.8vw,2rem);font-weight:700;letter-spacing:.04em;line-height:1.2;overflow-wrap:anywhere;word-break:break-word}.question-answer-card__subtitle{color:var(--info);font-family:var(--font-reading);font-size:.98rem;font-weight:700;line-height:1.45;overflow-wrap:anywhere}.question-answer-card__hero-summary,.question-answer-card__hero-main{display:grid;min-width:0;gap:.25rem;align-items:start}.target-kanji-highlight{padding:0 .12rem;border-bottom:2px solid var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent);color:var(--danger)}.question-answer-card__details{display:grid;gap:.36rem .75rem}.question-answer-card__details--grid{grid-template-columns:minmax(0,1fr)}.question-answer-card__row{display:grid;grid-template-columns:minmax(3.4rem,auto) minmax(0,1fr);min-width:0;padding:0;align-items:start;gap:.34rem .5rem}.question-answer-card__label,.question-answer-card__detail{min-width:0}.question-answer-card__label{display:inline-flex;padding-top:.06rem;align-items:flex-start}.question-answer-card__detail{width:100%;color:var(--text-secondary);font-size:.92rem;line-height:1.55;overflow-wrap:anywhere;word-break:break-word}.question-answer-card__row--meaning .question-answer-card__detail{color:var(--text-primary)}.question-card__meta-status{display:flex;flex-direction:column;gap:.5rem}.question-card__meta-status>*{width:100%}.question-card__meta:empty,.question-card__meta-status:empty,.question-card__hero:empty{display:none}.question-answer-card__knowledge .question-answer-card__details{padding-top:.2rem}.word-display{display:flex;width:100%;min-width:0;flex-direction:column;gap:.45rem}.sentence-display{color:var(--text-primary);font-family:var(--font-reading);font-size:clamp(1.15rem,4vw,1.4rem);font-weight:600;letter-spacing:.035em;line-height:1.9;text-align:left;word-break:break-word}.underlined-target{position:relative;display:inline-block;margin:0 .15rem;padding:1.15rem .3rem 0;border-bottom:2px solid var(--action-primary);color:var(--action-primary);font-weight:700}.type-badge{position:absolute;top:0;left:50%;padding:.08rem .28rem;transform:translate(-50%);border:1px solid var(--info);border-radius:2px;background:var(--surface-raised);color:var(--info);font-family:var(--font-ui);font-size:.55rem;font-weight:700;letter-spacing:.05em;white-space:nowrap;pointer-events:none}.underlined-target ruby{ruby-position:over}.underlined-target ruby rt{color:var(--info);font-size:.52rem;font-weight:600;text-align:center}.feedback-inline{position:relative;display:flex;width:100%;min-height:44px;padding:.55rem 2.2rem .55rem .7rem;align-items:flex-start;justify-content:flex-start;gap:.4rem;border-inline-start:3px solid var(--border-strong);background:color-mix(in srgb,var(--surface-raised) 78%,transparent);font-family:var(--font-reading);font-size:.82rem;font-weight:700;text-align:left;word-break:break-word}.feedback-inline:after{position:absolute;top:50%;right:.7rem;transform:translateY(-50%) rotate(-7deg);font-size:1rem;pointer-events:none}.feedback-inline span{overflow-wrap:anywhere}.feedback-inline.success{border-inline-start:3px solid var(--success);color:var(--success)}.feedback-inline.success:after{content:"✓"}.feedback-inline.error{border-inline-start:3px solid var(--danger);color:var(--danger)}.feedback-inline.error:after{content:"×"}.reading-info-label{display:inline-block;flex-shrink:0;padding:.12rem .38rem;border:1px solid currentColor;border-radius:2px;background:var(--paper);font-size:.64rem;font-weight:700;letter-spacing:.05em;white-space:nowrap}.reading-info-label.onyomi{color:var(--info)}.reading-info-label.kunyomi{color:var(--action-primary)}.reading-info-label.meaning{color:var(--warning)}.reading-info-values{display:block;width:100%;color:inherit;line-height:1.45;overflow-wrap:anywhere;word-break:break-word}.reading-highlighted{color:var(--action-primary);font-weight:800;text-decoration:underline double;text-decoration-thickness:1px;text-underline-offset:.16em;white-space:nowrap}.question-answer-card__row--onyomi .reading-highlighted{color:var(--info)}.question-answer-card__row--kunyomi .reading-highlighted{color:var(--action-primary)}.question-answer-card__row--meaning .reading-highlighted{color:var(--warning)}.sentence-meaning-inline{position:relative;display:flex;width:100%;padding:.5rem .65rem .5rem 1rem;align-items:flex-start;gap:.42rem;background:color-mix(in srgb,var(--info) 5%,transparent);color:var(--text-secondary);font-family:var(--font-reading);font-size:.8rem;font-weight:500;line-height:1.6;text-align:left;white-space:normal;word-break:normal;overflow-wrap:break-word}.sentence-meaning-inline:before{content:"译";flex-shrink:0;color:var(--info);font-size:.68rem;font-weight:700;pointer-events:none}.sentence-meaning-inline__content{display:block;flex:1;min-width:0}.sentence-meaning-inline:empty{display:none}.sentence-meaning-inline:empty:before{display:none}.meaning-highlight{padding:0 .12rem;border-bottom:1px solid var(--info);background:color-mix(in srgb,var(--info) 9%,transparent);color:var(--info);font-weight:700}.hint-inline-motion{display:grid;width:100%;grid-template-rows:0fr;overflow:hidden;opacity:0;transform:translateY(-4px);transition:grid-template-rows var(--motion-normal) var(--ease-standard),opacity var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard)}.hint-inline-motion--open{grid-template-rows:1fr;opacity:1;transform:translateY(0)}.hint-inline-motion--inactive{display:none}.hint-inline{width:100%;min-height:0;overflow:hidden;padding:.55rem .75rem;border-inline-start:2px solid var(--action-primary);background:color-mix(in srgb,var(--action-primary) 5%,transparent);color:var(--action-primary);font-family:var(--font-reading);font-size:.82rem;font-weight:500;line-height:1.65;text-align:left;word-break:break-word}.question-card.skeleton{width:100%;min-height:160px}.skeleton-line{height:.9rem;border-radius:2px;background:color-mix(in srgb,var(--action-primary) 10%,transparent);animation:pulse 1.4s ease-in-out infinite}.skeleton-line.w60{width:60%}.skeleton-line.w80{width:80%}.skeleton-line.w40{width:40%}@keyframes pulse{0%,to{opacity:1}50%{opacity:.42}}.skeleton-loading-caption{margin:.15rem 0 0;color:var(--text-secondary);font-size:.78rem;animation:pulse 1.4s ease-in-out infinite}.skeleton-center{display:flex;flex:1;padding:0 var(--practice-content-gutter);align-items:center;justify-content:center}@media(min-width:640px){.question-card{padding:1.65rem 1.5rem;margin-bottom:1.2rem;gap:1.1rem}.question-card__hero{padding-inline:.8rem}.question-card__meta{gap:.8rem}.question-answer-card{padding:1.1rem 1.2rem;gap:.9rem}.question-answer-card__details--grid{grid-template-columns:repeat(2,minmax(0,1fr))}.question-answer-card__row--word-meaning{grid-column:1 / -1}.sentence-display{font-size:1.4rem}}@media(max-width:430px){.question-card{padding:.85rem;gap:.55rem;margin-bottom:.55rem}.question-card:before{inset:.35rem}.question-card__hero{gap:.55rem;padding:.75rem .3rem .65rem}.question-card__meta{gap:.5rem}.question-answer-card{padding:.78rem .82rem;gap:.6rem}.question-answer-card__details{gap:.3rem .56rem}.question-answer-card__row{grid-template-columns:minmax(2.9rem,auto) minmax(0,1fr);gap:.24rem .42rem}.sentence-display{font-size:1.04rem;line-height:1.72}.hint-inline,.feedback-inline{padding-block:.46rem;font-size:.76rem}}.practice-view--keyboard-open .question-card{padding:.78rem .82rem;gap:.55rem;margin-bottom:.55rem}.practice-view--keyboard-open .question-card__hero,.practice-view--keyboard-open .question-card__meta{gap:.48rem}.practice-view--keyboard-open .sentence-display{font-size:1rem;line-height:1.62}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media(prefers-reduced-motion:reduce){.hint-inline-motion{transition-duration:.01ms;transform:none}.question-loading-chip,.skeleton-line,.skeleton-loading-caption{animation-duration:.01ms}}.hw-char-progress{display:flex;width:100%;padding:.4rem;align-items:center;justify-content:center;gap:.5rem}.hw-char{position:relative;display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:2px;background:color-mix(in srgb,var(--surface-raised) 78%,transparent);font-family:var(--font-reading);font-size:1.2rem;transition:border-color var(--motion-normal),background-color var(--motion-normal),color var(--motion-normal),opacity var(--motion-normal),transform var(--motion-normal)}.hw-char.done{border-color:var(--success);color:var(--success);font-weight:700}.hw-char.done:after{content:"✓";position:absolute;right:1px;bottom:-2px;font-family:var(--font-ui);font-size:.58rem;pointer-events:none}.hw-char.active{border:2px double var(--action-primary);color:var(--action-primary);font-weight:700}.hw-char.pending{border-style:dashed;color:var(--text-disabled)}.hw-tip{margin-bottom:.5rem;padding:.4rem .65rem;border-inline-start:2px solid var(--action-primary);background:color-mix(in srgb,var(--action-primary) 5%,transparent);color:var(--action-primary);font-family:var(--font-reading);font-size:.8rem;font-weight:600;text-align:left}.handwriting-section{padding:.7rem;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 86%,var(--canvas));box-shadow:var(--shadow-card);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.handwriting-section.hw-error{border-inline-start:3px solid var(--danger)}.handwriting-section.hw-error .canvas-wrapper{border-color:var(--danger);border-style:double;animation:shake .4s ease-in-out}.handwriting-section.hw-error .hw-tip{border-inline-start-color:var(--danger);background:color-mix(in srgb,var(--danger) 7%,transparent);color:var(--danger)}.input-container{display:grid;min-height:0;grid-template-rows:0fr;scroll-margin-top:calc(var(--practice-header-offset) + .5rem);opacity:0;transform:translateY(10px);transition:grid-template-rows var(--motion-normal) var(--ease-standard),opacity var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard)}.input-container--open{grid-template-rows:1fr;opacity:1;transform:translateY(0)}.input-container--closed{pointer-events:none}.input-container__viewport{min-height:0;overflow:hidden}.input-container__content{min-height:0;container-type:inline-size}.input-stack{display:flex;flex-direction:column;gap:.6rem}.input-mode-toggle,.kana-type-toggle{display:inline-flex;width:fit-content;padding:.18rem;align-items:center;gap:.25rem;border-bottom:1px solid var(--border-strong)}.input-mode-toggle button,.kana-type-toggle button{position:relative;min-width:44px;min-height:44px;padding:.35rem .65rem;border:0;border-radius:var(--radius-8);background:transparent;color:var(--text-secondary);font:inherit;font-size:.72rem;font-weight:600;cursor:pointer;transition:background-color var(--motion-normal),color var(--motion-normal),transform var(--motion-fast)}.input-mode-toggle button.active,.kana-type-toggle button.active{background:color-mix(in srgb,var(--action-primary) 8%,transparent);color:var(--action-primary);font-weight:800;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}.input-area{display:flex;padding:.35rem;gap:.5rem;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:var(--surface-raised);box-shadow:var(--shadow-card)}.input-area:focus-within{border-color:var(--action-primary);box-shadow:0 0 0 3px var(--action-focus)}.input-area input,.kana-display{flex:1 1 auto;width:100%;min-width:44px;min-height:44px;padding:.75rem;border:0;outline:0;background:transparent;color:var(--text-primary);font-family:var(--font-reading);font-size:1rem}.kana-display{display:flex;align-items:center}.submit-btn{display:flex;width:48px;min-width:48px;min-height:48px;padding:0;align-items:center;justify-content:center;border:1px solid var(--action-primary);border-radius:var(--radius-8);background:var(--action-primary);color:var(--surface-raised);cursor:pointer;transition:background-color var(--motion-fast),transform var(--motion-fast)}.submit-btn:active:not(:disabled){transform:translateY(1px)}.submit-btn:disabled{border-style:dashed;color:var(--text-disabled);cursor:default;opacity:.65}.kana-input-area{display:flex;flex-direction:column;gap:.5rem}.handwriting-toolbar{display:grid;margin-bottom:.55rem;grid-template-columns:repeat(3,var(--control-44)) minmax(0,1fr);align-items:start;gap:.45rem .35rem;container:handwriting-toolbar / inline-size}.handwriting-toolbar-actions{display:grid;grid-row:1;grid-column:1 / span 3;grid-template-columns:repeat(3,var(--control-44));gap:.35rem}.handwriting-toolbar-actions .ui-icon-button{border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text-secondary);box-shadow:var(--shadow-card)}.handwriting-toolbar-actions .ui-icon-button:disabled{border-style:dashed;color:var(--text-disabled);cursor:default;opacity:.62}.handwriting-strictness{display:grid;min-width:0;grid-row:1;grid-column:1 / -1;grid-template-columns:subgrid;grid-template-rows:var(--control-44) auto;pointer-events:none}.handwriting-strictness summary{display:grid;min-width:0;min-height:var(--control-44);margin:0;padding:0 .55rem;grid-row:1;grid-column:4;pointer-events:auto;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.3rem;overflow:hidden;border:1px solid var(--action-primary);border-radius:var(--radius-8);background:color-mix(in srgb,var(--action-primary) 5%,var(--paper-warm));box-shadow:var(--shadow-card);color:var(--text-secondary);font-size:.68rem;font-weight:700;cursor:pointer;transition:background-color var(--motion-normal),border-color var(--motion-normal),box-shadow var(--motion-normal),transform var(--motion-fast)}.handwriting-strictness summary::-webkit-details-marker{display:none}.handwriting-strictness summary::marker{content:""}.handwriting-strictness summary:after{content:"⌄";color:var(--action-primary);font-size:1rem}.handwriting-strictness summary:active{transform:translateY(1px)}.handwriting-strictness[open] summary{background:color-mix(in srgb,var(--action-primary) 10%,var(--paper-warm));box-shadow:0 0 0 2px color-mix(in srgb,var(--action-primary) 18%,transparent)}.handwriting-strictness[open] summary:after{content:"⌃"}.handwriting-strictness-label,.handwriting-strictness-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.handwriting-strictness-value{color:var(--action-primary);font-weight:800}.handwriting-strictness::details-content{display:grid;min-width:0;grid-row:2;grid-column:1 / -1;grid-template-columns:subgrid;pointer-events:auto}.handwriting-strictness .chip-select{display:grid;width:100%;min-width:0;margin:.45rem 0 0;grid-column:1 / -1;grid-template-columns:repeat(3,minmax(var(--control-44),1fr));gap:.35rem}.handwriting-strictness .chip-item{width:100%;min-width:0;min-height:var(--control-44);padding:0 .45rem;font-size:.72rem}@container handwriting-toolbar (max-width: 250px){.handwriting-strictness{grid-template-rows:var(--control-44) var(--control-44) auto}.handwriting-strictness summary{margin-top:.45rem;grid-row:2;grid-column:1 / -1}.handwriting-strictness::details-content{grid-row:3}}.handwriting-container,.handwriting-container *,.practice-view--hw .question-card,.practice-view--hw .question-card *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.handwriting-container{position:relative;width:100%;max-width:450px;margin-inline:auto}@media(max-width:639px),(max-height:560px){.handwriting-section>.handwriting-container{width:min(100%,max(6rem,calc(100svh - var(--practice-header-offset) - 7rem)))}}.canvas-wrapper{position:relative;width:100%;overflow:hidden;aspect-ratio:1 / 1;border:1px solid color-mix(in srgb,var(--danger) 55%,var(--border-strong));border-radius:2px;background:color-mix(in srgb,var(--surface-raised) 58%,var(--canvas));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--surface-raised) 60%,transparent);cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.canvas-wrapper:before,.canvas-wrapper:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none}.canvas-wrapper:before{background:linear-gradient(to right,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 30%,transparent) 50%,transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 30%,transparent) 50%,transparent calc(50% + .5px)),linear-gradient(45deg,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 14%,transparent) 50%,transparent calc(50% + .5px)),linear-gradient(-45deg,transparent calc(50% - .5px),color-mix(in srgb,var(--danger) 14%,transparent) 50%,transparent calc(50% + .5px))}.canvas-wrapper:after{inset:7px;border:1px solid color-mix(in srgb,var(--danger) 18%,transparent)}.canvas-wrapper canvas{position:relative;z-index:1;display:block;width:100%;height:100%;aspect-ratio:1 / 1;background:transparent;cursor:crosshair;touch-action:none}.recognize-hint{position:absolute;left:8px;bottom:10px;z-index:2;padding:2px 6px;border:1px solid var(--border-subtle);border-radius:2px;background:color-mix(in srgb,var(--surface-raised) 78%,transparent);color:var(--text-secondary);font-size:.7rem;pointer-events:none}.recognize-hint.active{border-style:double;border-color:var(--info);color:var(--info);font-weight:700}.handwriting-dialog-backdrop{align-items:center;padding:max(var(--space-12),var(--safe-top)) max(var(--space-12),var(--safe-right)) max(var(--space-12),var(--safe-bottom)) max(var(--space-12),var(--safe-left));overflow:auto;background:#24211d7a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-overflow-scrolling:touch}.handwriting-dialog{display:grid;width:min(100%,36rem);max-height:calc(100dvh - max(var(--space-24),var(--safe-top)) - max(var(--space-24),var(--safe-bottom)));padding:clamp(.65rem,2vw,1rem);border:1px solid var(--border-strong);border-radius:var(--radius-16);background:var(--surface);box-shadow:var(--shadow-dialog);overflow:auto}.handwriting-dialog-body{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr);gap:.5rem;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.handwriting-dialog-body .handwriting-toolbar{width:100%;margin:0}.handwriting-dialog-canvas{display:grid;min-width:0;min-height:0;place-items:center}.handwriting-dialog-canvas .handwriting-container{width:min(100%,30rem,calc(100dvh - 10rem));max-width:100%}@media(max-height:560px)and (orientation:landscape){.handwriting-dialog{width:min(100%,42rem)}.handwriting-dialog-body{grid-template-columns:minmax(12rem,1fr) minmax(0,1.35fr);grid-template-rows:minmax(0,1fr)}.handwriting-dialog-canvas .handwriting-container{width:min(100%,calc(100dvh - 2rem))}}.kana-pad{display:flex;padding:.55rem;flex-direction:column;gap:.5rem;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 90%,var(--canvas));box-shadow:var(--shadow-card)}.kana-type-toggle button{font-size:.7rem;padding-inline:.55rem}.kana-flick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.kana-flick-key{position:relative;height:52px;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 86%,var(--canvas));color:var(--text-primary);font-family:var(--font-reading);font-size:.95rem;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;transition:background-color var(--motion-normal),border-color var(--motion-normal),transform var(--motion-fast)}.kana-flick-key:active:not(:disabled){border-color:var(--action-primary);transform:translateY(1px)}.kana-flick-key:disabled{border-style:dashed;color:var(--text-disabled);cursor:default}.kana-center{font-size:1rem;font-weight:700}.kana-hint{position:absolute;color:var(--text-secondary);font-size:.55rem;opacity:.72;pointer-events:none}.kana-hint.up{top:4px;left:50%;transform:translate(-50%)}.kana-hint.down{bottom:4px;left:50%;transform:translate(-50%)}.kana-hint.left{left:5px;top:50%;transform:translateY(-50%)}.kana-hint.right{right:5px;top:50%;transform:translateY(-50%)}.kana-flick-overlay{position:absolute;top:-8px;left:50%;z-index:2;display:none;width:120px;height:120px;transform:translate(-50%,-100%) scale(.95);border:2px solid var(--info);border-radius:50%;background:var(--surface-raised);box-shadow:var(--shadow-raised);pointer-events:none}.kana-flick-overlay.active{display:block;transform:translate(-50%,-100%) scale(1)}.kana-overlay{position:absolute;color:var(--action-primary);font-size:.8rem;font-weight:700;pointer-events:none}.kana-overlay.active{padding:.1rem .35rem;border:1px solid var(--action-primary);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--action-primary);text-decoration:underline}.kana-overlay.up{top:10px;left:50%;transform:translate(-50%)}.kana-overlay.down{bottom:10px;left:50%;transform:translate(-50%)}.kana-overlay.left{left:12px;top:50%;transform:translateY(-50%)}.kana-overlay.right{right:12px;top:50%;transform:translateY(-50%)}.kana-overlay.center{top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-primary);font-size:.95rem}.kana-actions{display:flex;gap:.4rem}.kana-action-btn{flex:1;height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:var(--surface-raised);color:var(--action-primary);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.kana-action-btn:disabled{border-style:dashed;color:var(--text-disabled);cursor:default}.candidates-bar{display:flex;min-height:48px;margin-bottom:8px;padding:4px;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border-subtle);background:color-mix(in srgb,var(--surface-raised) 52%,transparent)}.candidate-btn{display:flex;min-width:44px;height:44px;padding:0 10px;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:var(--surface-raised);box-shadow:var(--shadow-card);color:var(--text-primary);font-family:var(--font-reading);font-size:1.1rem;cursor:pointer;transition:border-color var(--motion-normal),background-color var(--motion-normal),color var(--motion-normal),transform var(--motion-fast)}.candidate-btn:active{border-color:var(--action-primary);color:var(--action-primary);transform:translateY(1px)}.mcq-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;padding:.2rem}.mcq-choice{position:relative;display:flex;min-height:56px;padding:.65rem 2rem .65rem .65rem;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:var(--radius-8);background:color-mix(in srgb,var(--surface-raised) 88%,var(--canvas));box-shadow:var(--shadow-card);color:var(--text-primary);font-family:var(--font-reading);font-size:1.05rem;font-weight:600;cursor:pointer;transition:border-color var(--motion-normal),background-color var(--motion-normal),color var(--motion-normal),transform var(--motion-fast),opacity var(--motion-normal)}.mcq-choice:after{position:absolute;right:.65rem;font-family:var(--font-ui);font-size:1rem;pointer-events:none}.mcq-choice:active:not(:disabled){border-color:var(--action-primary);transform:translateY(1px)}.mcq-choice.correct{border:2px double var(--success);color:var(--success)}.mcq-choice.correct:after{content:"✓"}.mcq-choice.wrong{border:2px solid var(--danger);color:var(--danger);text-decoration:line-through}.mcq-choice.wrong:after{content:"×"}.mcq-choice:disabled{cursor:default;opacity:.72}.mcq-choice:disabled:not(.correct):not(.wrong){border-style:dashed;color:var(--text-disabled);opacity:.58}@container (max-width: 360px){.mcq-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:360px){.mcq-grid{grid-template-columns:minmax(0,1fr)}}@media(min-width:640px){.kana-flick-key{height:64px;font-size:1.05rem}.kana-hint{font-size:.62rem}.kana-center{font-size:1.1rem}.mcq-choice{min-height:64px;font-size:1.15rem}}@media(prefers-reduced-motion:reduce){.hw-char,.input-container,.input-mode-toggle button,.kana-type-toggle button,.submit-btn,.handwriting-toolbar-actions .ui-icon-button,.handwriting-strictness summary,.kana-flick-key,.candidate-btn,.mcq-choice{transition-duration:var(--motion-reduced)}.handwriting-section.hw-error .canvas-wrapper{animation-duration:var(--motion-reduced)}}.page-frame:has(>.practice-summary){overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.practice-summary{width:100%;min-height:100%;flex:0 0 auto;background:repeating-linear-gradient(0deg,transparent 0,transparent 28px,color-mix(in srgb,var(--border-subtle) 38%,transparent) 29px),color-mix(in srgb,var(--canvas) 92%,var(--surface-raised));color:var(--text-primary)}.practice-summary__content{container-type:inline-size;display:flex;min-height:100%;padding-top:max(var(--space-32),var(--safe-top));padding-bottom:max(var(--space-32),var(--safe-bottom));flex-direction:column;align-items:center;justify-content:center;gap:1rem}.practice-summary__mark{position:relative;display:grid;width:3.4rem;height:3.4rem;place-items:center;border:2px solid var(--danger);border-radius:50%;color:var(--danger);transform:rotate(-6deg)}.practice-summary__mark:after{content:"結";position:absolute;right:-.65rem;bottom:-.35rem;padding:.05rem .18rem;border:1px solid var(--danger);background:var(--canvas);color:var(--danger);font-family:var(--font-reading);font-size:.62rem;pointer-events:none}.practice-summary__eyebrow{margin:.5rem 0 -.4rem;color:var(--action-primary);font-size:.68rem;font-weight:800;letter-spacing:.18em}.practice-summary h1{margin:0;color:var(--text-primary);font-family:var(--font-reading);font-size:clamp(1.8rem,7vw,3rem);font-weight:700;letter-spacing:.04em}.practice-summary__metrics{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));margin:1.25rem 0;padding:0;border-top:1px solid var(--border-strong);border-left:1px solid var(--border-strong);background:color-mix(in srgb,var(--surface-raised) 72%,transparent);box-shadow:var(--shadow-card)}.practice-summary__metrics>div{display:flex;min-height:7rem;padding:1.1rem;flex-direction:column;justify-content:space-between;border-right:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong)}.practice-summary__metrics dt{margin:0;color:var(--text-secondary);font-size:.76rem;letter-spacing:.06em}.practice-summary__metrics dd{order:-1;margin:0 0 .45rem;color:var(--action-primary);font-family:var(--font-reading);font-size:clamp(1.7rem,8vw,2.6rem);font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.practice-summary__detail{display:flex;width:100%;margin:0;padding:.85rem 0;align-items:baseline;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border-subtle)}.practice-summary__detail span,.practice-summary__note{color:var(--text-secondary);font-size:.78rem}.practice-summary__detail strong{color:var(--info);font-family:var(--font-reading);text-align:right}.practice-summary__note{margin:.25rem 0 .75rem}.practice-summary__tail-retry-note,.practice-summary__delivery-note{width:100%;margin:.25rem 0;padding:.8rem 1rem;border-inline-start:3px solid var(--warning);background:color-mix(in srgb,var(--warning) 7%,var(--surface-raised));color:var(--text-secondary);font-size:.82rem;line-height:1.55}.practice-summary__delivery-note{border-inline-start-color:var(--danger)}.practice-summary__delivery-note p{margin:.35rem 0 0}.practice-summary__content>.practice-persistence-warning{width:100%;margin:.25rem 0;justify-content:space-between}.practice-summary__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem}.practice-summary__retry,.practice-summary__continue,.practice-summary__home{display:inline-flex;min-height:44px;padding:0 1.25rem;align-items:center;justify-content:center;gap:.55rem;border-radius:var(--radius-8);font:inherit;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast),transform var(--motion-fast)}.practice-summary__retry{border:1px solid var(--border-strong);background:transparent;color:var(--text-primary)}.practice-summary__home{border:1px solid transparent;background:transparent;color:var(--action-primary);text-decoration:underline;text-underline-offset:.18em}.practice-summary__continue,.practice-summary__retry--primary{border:1px solid var(--action-primary);background:var(--action-primary);color:var(--surface-raised)}.practice-summary__retry:active,.practice-summary__continue:active,.practice-summary__home:active{transform:translateY(1px)}@media(min-width:640px){.practice-summary__metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (max-width: 320px){.practice-summary__metrics{grid-template-columns:minmax(0,1fr)}.practice-summary__actions{width:100%;flex-direction:column}.practice-summary__actions>button{width:100%}}@media(max-width:320px){.practice-summary__metrics{grid-template-columns:minmax(0,1fr)}}@media(max-width:430px)and (max-height:760px){.practice-summary__content{gap:.7rem}.practice-summary__mark{width:2.75rem;height:2.75rem}.practice-summary h1{font-size:1.65rem}.practice-summary__metrics{margin:.6rem 0}.practice-summary__metrics>div{min-height:5.25rem;padding:.8rem}}@media(prefers-reduced-motion:reduce){.practice-summary__retry,.practice-summary__continue,.practice-summary__home{transition-duration:var(--motion-reduced)}}
