@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');
:root{font-family:'Noto Sans KR',sans-serif;color:#17213d;background:#f6f8fc;font-synthesis:none;--blue:#2747de;--muted:#778096;--line:#e2e7f1}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;transition:background .15s,transform .15s}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #8c9efa;outline-offset:3px}header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:white;border-bottom:1px solid var(--line)}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;color:inherit;font-size:22px;font-weight:700}.brand b{display:grid;place-items:center;width:45px;height:45px;border-radius:13px;background:var(--blue);color:white;font-size:32px}.brand small{font-size:12px;color:var(--muted);display:block;font-weight:400;letter-spacing:1px}.header-actions{display:flex;gap:24px;align-items:center}.subtle{color:var(--muted);font-size:13px;line-height:1.8}.shell{display:grid;grid-template-columns:260px 1fr;max-width:1440px;margin:auto;min-height:calc(100vh - 94px)}aside{padding:38px 24px;display:flex;flex-direction:column;border-right:1px solid var(--line)}.aside-title{font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.icon{border:0;background:none;font-size:24px;color:var(--muted)}.deck{border:0;text-align:left;background:transparent;width:100%;padding:16px;border-radius:10px;margin-bottom:9px;color:#526079;overflow-wrap:anywhere}.deck.active{background:#e8edff;color:var(--blue)}.deck span{display:block;font-size:12px;margin-top:6px;color:var(--muted)}.full{width:100%}.aside-bottom{margin-top:auto;padding-top:70px;font-size:12px;color:var(--muted);display:flex;flex-direction:column;align-items:flex-start;gap:10px}main{max-width:1040px;width:100%;padding:44px 64px 30px;margin:auto}.toolbar{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--blue)}h1{font-size:25px;font-weight:600;margin:8px 0 26px;overflow-wrap:anywhere}h2{font-size:17px;font-weight:600;margin:0}.primary,.outline,.quiet{border-radius:8px;padding:11px 18px;font-size:14px;font-weight:500}.primary{border:1px solid var(--blue);background:var(--blue);color:white}.primary:hover{background:#1937c8}.outline{border:1px solid var(--line);background:white;color:#43516f}.outline:hover,.quiet:hover{background:#edf1fb}.quiet{background:#f3f5fa;border:0}.progress-track{height:3px;background:#e2e7f2;border-radius:4px;margin:4px 0 23px}#progressBar{background:var(--blue);height:100%;transition:width .2s}.sentence-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);letter-spacing:1px;margin:0 2px 14px}.sentence-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px 32px 17px;box-shadow:0 6px 24px #23345804}.sentence{font-family:'Noto Sans JP',sans-serif;font-size:clamp(24px,3vw,37px);line-height:1.8;letter-spacing:.015em;background:none;border:0;text-align:left;color:#17213d;width:100%;padding:0;overflow-wrap:anywhere}.sentence:after{content:' ♫';font:20px sans-serif;color:var(--blue);white-space:nowrap}.sentence-footer{display:flex;align-items:center;gap:12px;margin-top:28px;padding-top:16px;border-top:1px solid #f0f2f7;font-size:12px;color:var(--muted);flex-wrap:wrap}.sentence-footer span{margin-right:auto}.text-button{padding:4px 0;border:0;background:none;color:#677697;font-size:13px}.text-button:hover{color:var(--blue)}.words-toolbar{display:flex;justify-content:space-between;align-items:center;margin:30px 0 14px}#wordCount{color:var(--muted);font-size:13px;padding-left:5px}.words{display:grid;gap:9px}.word-row{display:grid;grid-template-columns:1fr 1.5fr auto;gap:18px;align-items:center;background:white;border:1px solid var(--line);border-radius:10px;padding:18px 20px;min-height:85px}.word-head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.word-surface{border:0;padding:0;color:#17213d;background:none;font-family:'Noto Sans JP',sans-serif;font-size:22px;font-weight:500}.reading{font-family:'Noto Sans JP',sans-serif;font-size:13px;color:#7d87a0;margin-top:4px;min-height:19px}.reading button{border:0;background:#f0f3fa;color:#78849f;font-size:12px;border-radius:4px}.pos{font-size:11px;color:#8590a5}.meaning{font-size:14px;color:#3f4b64;white-space:pre-line;line-height:1.7}.meaning button.mask{width:100%;min-height:38px;border:1px dashed #d6ddeb;border-radius:6px;background:#f7f9fc;color:#8d98ae;text-align:center;font-size:13px}.word-actions{display:flex;gap:12px}.word-actions button{border:0;background:none;color:#8a95ab;font-size:16px;padding:4px}.word-actions .known{color:var(--blue)}.origin{display:inline-block;color:#939eb0;font-size:11px;margin-right:5px}.sentence-nav{display:flex;justify-content:space-between;align-items:center;margin-top:28px}.sentence-nav span{font-size:12px;color:var(--muted)}#status{font-size:13px;min-height:23px;color:#63718d;text-align:center}.empty{padding:35px;text-align:center;font-size:14px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 100px #17213d30;width:min(520px,calc(100% - 32px));padding:28px;color:#17213d;max-height:90vh}dialog::backdrop{background:#111c3d65;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.close{border:0;background:none;font-size:26px;color:#8792a7}label{display:block;font-size:14px;margin:17px 0}input:not([type=checkbox]),textarea,select{display:block;width:100%;margin-top:8px;border:1px solid #d8dfec;border-radius:7px;padding:11px;color:#263552;background:#fcfdff}textarea{resize:vertical;line-height:1.7}.file-drop{border:1px dashed #becaf1;text-align:center;border-radius:9px;padding:23px;background:#f4f7ff;color:var(--blue);cursor:pointer}.file-drop span{display:block;font-size:12px;color:var(--muted);margin-top:7px}.file-drop input{font-size:12px}.compact{padding:10px}.check{display:flex;align-items:center;gap:12px;padding:9px 0}input[type=checkbox]{accent-color:var(--blue);width:17px;height:17px}.kanji-entry{padding:14px 0;border-bottom:1px solid var(--line);line-height:1.9}.kanji-entry b{font-size:28px;margin-right:16px}#detailContent{line-height:1.9;font-size:14px}#detailContent a{color:var(--blue)}#importError{color:#b52f4a;font-size:13px}.review-active{color:var(--blue);border-color:var(--blue)}@media(max-width:900px){main{padding:30px}aside{padding:30px 16px}.shell{grid-template-columns:210px 1fr}.word-row{gap:10px;padding:16px}.word-actions{gap:3px}}@media(max-width:800px){header{height:75px;padding:0 20px}.header-actions{gap:12px}#engineState{max-width:130px;font-size:11px}.shell{display:block}aside{padding:16px 20px;border-right:0;border-bottom:1px solid var(--line);display:block}.aside-title,.aside-bottom{display:none}#library{display:flex;overflow:auto;gap:8px}.deck{min-width:145px;width:auto;padding:10px 14px;margin:0 0 12px}.deck span{display:none}#importButton{padding:9px}main{padding:25px 20px}.sentence-card{padding:23px 21px 13px}.sentence-footer{margin-top:18px}.word-row{grid-template-columns:1fr 1.25fr auto;padding:14px 13px}.word-surface{font-size:20px}.word-actions{flex-direction:column;gap:2px}.pos{display:none}.words-toolbar{margin-top:24px}h1{font-size:22px}.sentence-nav{margin-top:23px}}

.reading{font-size:14px}.text-button{font-size:14px}.word-row{min-width:0}.meaning,.word-head{overflow-wrap:anywhere}.pos{font-size:12px}
.brand strong{display:block;font-weight:700}.brand small{letter-spacing:0}.aside-label{font-size:11px;letter-spacing:1.5px;color:#98a2b7;margin:28px 0 10px}.library-nav{display:flex;flex-direction:column;gap:5px}.menu-button strong{font-size:14px;font-weight:600}.empty-nav{font-size:12px;line-height:1.6;color:#9aa4b8;padding:6px 14px}.sentence-card-head{display:flex;align-items:flex-start;gap:14px}.sentence-card-head .sentence{flex:1}.sentence-favorite{border:0;background:none;color:#7886a5;font-size:28px;line-height:1.4;padding:0 2px}.sentence-favorite:hover,.sentence-favorite.active{color:#2747de}.home-panel{max-width:760px;margin:35px auto 0;background:white;border:1px solid var(--line);border-radius:16px;padding:38px 40px;box-shadow:0 6px 24px #23345804}.home-panel h1{margin:9px 0 14px}.home-panel>p{color:#596681;line-height:1.8;font-size:15px}.source-link{display:inline-block;color:#2747de;font-size:14px;font-weight:600;margin:6px 0 4px;text-decoration:none}.source-link:hover{text-decoration:underline}.source-note{font-size:12px!important;color:#8a95aa!important;margin:8px 0 23px}.subtitle-deck-cards{display:grid;gap:10px;margin-top:30px}.subtitle-deck-card{border:1px solid var(--line);border-radius:10px;padding:17px 18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.subtitle-deck-card strong{display:block;overflow-wrap:anywhere}.subtitle-deck-card span{display:block;margin-top:5px;font-size:12px;color:#8893a9}.favorite-group{margin-top:30px}.favorite-group h2{display:flex;align-items:center;gap:7px}.favorite-group h2 span{color:#7e8ba6;font-size:13px;font-weight:400}.favorite-item{display:grid;grid-template-columns:1fr auto;gap:4px 15px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:15px 17px;margin-top:9px}.favorite-sentence{border:0;background:none;text-align:left;color:#17213d;font-family:'Noto Sans JP',sans-serif;font-size:19px;line-height:1.65;overflow-wrap:anywhere;padding:0}.favorite-sentence:hover{color:#2747de}.favorite-item>span{grid-column:1;font-size:12px;color:#8994aa}.favorite-remove{grid-column:2;grid-row:1 / span 2;border:0;background:none;color:#2747de;font-size:21px;padding:5px}.favorite-empty{line-height:2}.meaning-revealed{display:flex;align-items:center;gap:10px;justify-content:space-between}.meaning-revealed>span:first-child{white-space:pre-line}.meaning-revealed .meaning-toggle{flex:0 0 auto;white-space:nowrap;font-size:12px}.edit-word{font-size:12px!important;white-space:nowrap!important;color:#697792!important;padding:4px!important}.edit-word:hover{color:#2747de!important}.word-actions{align-items:center}.home-panel[hidden],#sentenceWorkspace[hidden]{display:none}.aside-bottom{gap:12px}
.library-nav{gap:12px;padding:2px 4px 0}.bookmark-button{position:relative;border:1px solid #dce3f1;border-left:4px solid #cbd5ec;border-radius:5px 11px 11px 5px;background:#fff;box-shadow:0 3px 10px #2334580a;padding:14px 17px 13px 16px;overflow:visible}.bookmark-button:hover{border-color:#b8c5e7;background:#f8faff;transform:translateY(-1px)}.bookmark-button.active{border-left-color:var(--blue);border-color:#b7c4f0;background:#eef2ff;color:var(--blue);box-shadow:0 5px 14px #2747de16}.bookmark-button span{margin-top:5px}.sentence-meaning{display:flex;align-items:flex-start;gap:12px;margin-top:22px;padding:13px 15px;border:1px solid #e2e8f4;border-radius:10px;background:#f7f9fe;color:#425272;line-height:1.7}.sentence-meaning-label{flex:0 0 auto;color:#7180a0;font-size:11px;font-weight:700;letter-spacing:.08em;padding-top:2px}.sentence-meaning-text{font-size:14px;white-space:pre-line}.meaning-mask{width:100%;min-height:46px;border:1px solid #dfe5f1;border-radius:10px;background:linear-gradient(180deg,#fbfcff,#f2f5fc);color:#647392;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;box-shadow:inset 0 1px 0 #fff}.meaning-mask:hover{border-color:#b8c5e8;background:linear-gradient(180deg,#f7f9ff,#eaf0ff);color:var(--blue)}.meaning-mask-icon{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#e6ebf8;color:#6f7ea0;font-size:12px;font-weight:700}.meaning-mask:hover .meaning-mask-icon{background:#dbe4ff;color:var(--blue)}.meaning-revealed{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:10px 12px;border:1px solid #dfe5f1;border-radius:10px;background:#f7f9fd}.meaning-copy{white-space:pre-line;line-height:1.65;color:#34425f;font-size:14px}.meaning-hide{flex:0 0 auto;border:0;border-radius:6px;background:#e9eef9;color:#687898;padding:6px 8px;font-size:12px;white-space:nowrap}.meaning-hide:hover{background:#dfe7fb;color:var(--blue)}.subtitle-library-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:32px 0 9px}.subtitle-library-heading h2{font-size:17px}.subtitle-library-heading span{font-size:12px;color:#8a95aa}.subtitle-deck-card{min-height:73px}.subtitle-deck-info{min-width:0}.subtitle-deck-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}.delete-subtitle{border:0;background:#f3f5fa;color:#8893aa;border-radius:50%;width:31px;height:31px;font-size:21px;line-height:1}.delete-subtitle:hover{background:#feecef;color:#b52f4a}.home-panel h1{margin-bottom:14px}
.sentence-meaning-body{display:flex;flex-direction:column;min-width:0}.sentence-source{font-size:11px;color:#7180a0;text-decoration:underline;text-underline-offset:2px}.sentence-source[hidden]{display:none}
@media(max-width:800px){.bookmark-button{min-width:170px}.sentence-meaning{gap:8px;padding:11px 12px}.sentence-meaning-text{font-size:13px}.subtitle-library-heading{align-items:flex-start;flex-direction:column;gap:3px}.subtitle-deck-card{align-items:flex-start}.subtitle-deck-actions{margin-top:1px}.meaning-revealed{align-items:flex-start}.meaning-copy{font-size:13px}.meaning-hide{font-size:11px;padding:5px 6px}}
.menu-group{display:flex;flex-direction:column;gap:4px}.library-subitems{display:grid;gap:2px;margin:0 7px 6px 15px;padding-left:11px;border-left:1px solid #dce3f1}.library-subitem{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;border:0;border-radius:6px;background:transparent;color:#75819a;text-align:left;padding:7px 8px;font-size:12px;line-height:1.35}.library-subitem span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-subitem small{flex:0 0 auto;color:#a0a9ba;font-size:10px}.library-subitem:hover{background:#f2f5fc;color:#2747de}.library-subitem.active{background:#eef2ff;color:#2747de;font-weight:600}.library-subitem.active small{color:#7484ba}.my-folder-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:26px 0 4px;padding:15px 17px;border:1px solid #e2e7f1;border-radius:11px;background:#f8faff}.my-folder-toolbar>div{display:flex;align-items:baseline;gap:9px;min-width:0}.folder-caption{color:#8290aa;font-size:11px;letter-spacing:.08em;font-weight:700}.my-folder-toolbar strong{overflow-wrap:anywhere}.folder-count{color:#7e8ba6;font-size:12px}.my-folder-toolbar button{flex:0 0 auto;padding:8px 12px;font-size:12px}#folderError{min-height:20px;color:#b52f4a;font-size:13px;margin:0}.folder-dialog{}
.brand-badge{display:grid;place-items:center;width:45px;height:45px;border-radius:13px;background:var(--blue);color:white;flex:0 0 auto}.brand-badge svg{width:39px;height:39px;overflow:visible}.brand-badge .whale{fill:#fff}.brand-badge .wing{fill:#d9e3ff;stroke:#fff;stroke-width:1.2}.brand-badge .eye{fill:#2747de}.brand-badge .fin{fill:#c9d6ff}.brand-badge .water{fill:none;stroke:#b9c9ff;stroke-width:2;stroke-linecap:round}.free-translation-form{margin-top:24px}.free-translation-form label{margin:16px 0}.free-translation-form textarea{min-height:190px}.free-translation-form p{min-height:20px;color:#b52f4a;font-size:13px;margin:0 0 10px}
.brand-badge{position:relative;overflow:visible}.brand-badge .wing-art{position:absolute;inset:1px;width:43px;height:43px;fill:#d9e3ff;stroke:#fff;stroke-width:1.2;z-index:0}.brand-badge .whale-emoji{position:relative;z-index:1;font-size:27px;line-height:1;filter:saturate(1.05)}.optional-label{font-size:12px;color:var(--muted);font-weight:400}
@media(max-width:800px){.library-subitems{margin-left:11px;padding-left:8px}.library-subitem{padding:6px 6px}.my-folder-toolbar{align-items:flex-start;padding:13px 14px}.my-folder-toolbar>div{display:grid;gap:3px}.my-folder-toolbar button{padding:8px 10px}}
.brand strong em{display:inline-block;margin-left:8px;padding:4px 7px;border:1px solid #d8e0f0;border-radius:999px;background:#f5f7fc;color:#647291;font-size:10px;font-style:normal;font-weight:700;letter-spacing:1.1px;line-height:1;vertical-align:middle}.brand strong em:hover{border-color:#b9c6e6;color:#2747de;background:#eef2ff}.brand-mark{letter-spacing:.02em;white-space:nowrap}.brand small{line-height:1.5}@media(max-width:800px){.brand strong em{margin-left:5px;padding:3px 5px;font-size:9px;letter-spacing:.8px}}
.brand-whale{display:block;width:45px;height:45px;border-radius:13px;object-fit:cover;flex:0 0 auto}
.word-favorite{border:0;background:none;color:#8a95ab;font-size:23px;line-height:1;padding:2px 4px}.word-favorite:hover,.word-favorite.active{color:#2747de}.favorite-word-item{grid-template-columns:minmax(130px,1fr) minmax(180px,2fr) auto;gap:8px 15px}.favorite-word-main{display:flex;align-items:baseline;gap:9px;min-width:0}.favorite-word-surface{font-family:'Noto Sans JP',sans-serif;font-size:22px;font-weight:600;overflow-wrap:anywhere}.favorite-word-reading{font-family:'Noto Sans JP',sans-serif;color:#7d87a0;font-size:13px}.favorite-word-meaning{color:#3f4b64;line-height:1.7;white-space:pre-line}.favorite-word-note{grid-column:1 / span 2;width:100%;min-height:42px;resize:vertical;border:1px solid #e1e6f0;border-radius:8px;background:#f9faff;color:#3f4b64;font:inherit;font-size:13px;line-height:1.55;padding:9px 11px}.favorite-word-note::placeholder{color:#a1aabc}.favorite-word-note:focus{outline:2px solid #cbd5ff;border-color:#8ea2f4;background:#fff}.favorite-word-source{grid-column:1 / span 2;color:#8994aa;font-size:12px;overflow-wrap:anywhere}.favorite-word-item .favorite-remove{grid-column:3;grid-row:1 / span 3}.favorite-word-item .origin{margin-right:6px}.word-actions{align-items:center}@media(max-width:800px){.favorite-word-item{grid-template-columns:1fr auto}.favorite-word-meaning,.favorite-word-note{grid-column:1 / span 2}.favorite-word-source{grid-column:1}.favorite-word-item .favorite-remove{grid-column:2;grid-row:1 / span 4}}
.meaning-copy{display:block;min-height:46px;padding:10px 12px;border:1px solid #dfe5f1;border-radius:10px;background:#f7f9fd;white-space:pre-line;line-height:1.55;color:#34425f;font-size:14px}.meaning-hide{flex:0 0 auto;border:0;border-radius:6px;background:#e9eef9;color:#687898;padding:6px 8px;font-size:12px;white-space:nowrap}.meaning-hide:hover{background:#dfe7fb;color:var(--blue)}.meaning-hide[hidden]{display:none}.word-actions{display:flex;gap:8px;align-items:center;justify-content:center}.word-row .meaning-cell{min-width:0;align-self:start}
@media(max-width:800px){.sentence{line-height:1.45}.word-row{grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr) 32px;gap:8px;padding:12px 11px;align-items:start}.word-head{align-items:flex-start;gap:5px}.word-surface{display:inline-block;line-height:1.2;vertical-align:top}.reading{line-height:1.25;margin-top:2px;min-height:17px}.word-actions{flex-direction:column;justify-content:flex-start;align-items:center;gap:8px;padding-top:2px}.meaning-copy{font-size:13px;line-height:1.45;padding:9px 10px}.meaning-hide{font-size:10px;padding:5px 4px}.meaning-mask{min-height:42px}}

/* Compact sentence navigation and five-sentence study strip */
.progress-track{position:relative;height:28px;display:flex;align-items:center;margin:0 0 3px;padding:0 1px;border-radius:8px;background:linear-gradient(transparent 12px,#e2e7f2 12px 16px,transparent 16px);cursor:pointer;touch-action:manipulation;user-select:none}
#progressBar{height:4px;border-radius:4px;pointer-events:none}
.progress-track:focus-visible{outline:3px solid #8c9efa;outline-offset:2px}
.jump-panel{margin:0 0 15px;color:#687590;font-size:12px}
.jump-panel>summary{width:max-content;max-width:100%;cursor:pointer;list-style:none;padding:3px 0;color:#77839c}
.jump-panel>summary::-webkit-details-marker{display:none}
.jump-panel>summary:after{content:'＋';margin-left:7px;color:#8995ad}
.jump-panel[open]>summary:after{content:'−'}
.jump-grid,.time-range-controls{display:grid;grid-template-columns:minmax(110px,1fr) auto minmax(130px,1.3fr) auto;gap:8px;align-items:end;padding:9px 12px 11px;margin-top:5px;border:1px solid var(--line);border-radius:10px;background:#fff}
.jump-grid label,.time-range-controls label{min-width:0;margin:0;font-size:11px;color:#77839c}
.jump-grid input,.time-range-controls input{margin-top:4px!important;padding:8px 9px!important;font-size:13px}
.jump-grid .outline,.time-range-controls .outline{padding:8px 12px;font-size:12px;white-space:nowrap}
.jump-search{grid-column:3}
.time-range-controls{grid-template-columns:minmax(110px,1fr) minmax(110px,1fr) auto auto;margin-top:8px}
.study-batch-section{margin:14px 0 5px;min-width:0}
.study-batch-section[hidden],.jump-panel[hidden],.time-range-controls[hidden]{display:none!important}
.batch-heading{display:flex;align-items:center;gap:9px;min-width:0;margin-bottom:7px;color:#73809b;font-size:11px}
.batch-heading>strong{color:#465573;font-size:12px;font-weight:600;white-space:nowrap}
#batchPosition{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.batch-actions{display:flex;gap:12px;margin-left:auto;flex:0 0 auto}
.batch-actions .text-button{font-size:11px;white-space:nowrap}
.study-batch{display:flex;gap:8px;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding:1px 1px 7px;scrollbar-width:thin}
.batch-sentence{display:flex;align-items:flex-start;gap:8px;flex:0 0 clamp(120px,17vw,174px);min-width:0;min-height:66px;padding:9px 10px;border:1px solid #e4e9f3;border-radius:9px;background:#fff;color:#586680;text-align:left;scroll-snap-align:start}
.batch-sentence:hover{border-color:#bac7ed;background:#f8faff}
.batch-sentence.active{border-color:#aab9f1;background:#eef2ff;color:#2747de}
.batch-number{display:grid;place-items:center;flex:0 0 21px;width:21px;height:21px;border-radius:50%;background:#f0f2f8;color:#78849d;font-size:10px;font-weight:700}
.batch-sentence.active .batch-number{background:#dce4ff;color:#2747de}
.batch-text{min-width:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-family:'Noto Sans JP','Noto Sans KR',sans-serif;font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.word-row .meaning-cell{min-width:0}
@media(max-width:800px){
 .progress-track{margin-bottom:2px}
 .jump-grid{grid-template-columns:minmax(0,1fr) auto;gap:5px 8px}
 .jump-grid label{grid-column:1}
 .jump-grid .outline{grid-column:2;align-self:end}
 .jump-grid .jump-search{grid-column:1}
 .time-range-controls{grid-template-columns:1fr 1fr}
 .time-range-controls button{justify-self:start}
 .batch-heading{gap:6px}
 .batch-heading>strong{font-size:11px}
 .batch-actions{gap:8px}
 .batch-actions .text-button{font-size:10px}
 .batch-sentence{flex-basis:138px;min-height:62px;padding:8px}
 .batch-text{font-size:11px}
 .word-row{grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr) 59px}
 .meaning-hide{font-size:9px!important;white-space:nowrap;padding:4px 2px!important}
}
.my-folder-toolbar .folder-actions{display:flex!important;align-items:center;gap:7px;flex:0 0 auto}
@media(max-width:800px){.my-folder-toolbar .folder-actions{display:flex!important;gap:5px}.my-folder-toolbar .folder-actions button{padding:8px 9px;font-size:11px}}
.word-table-shell{margin-top:24px;min-width:0}.words.word-table-shell{border:0;background:none;overflow:visible}.word-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;border:1px solid #e1e6f0;border-radius:12px;overflow:hidden;background:#fff}.word-table .word-column{width:34%}.word-table .reading-column{width:28%}.word-table .meaning-column{width:38%}.word-table th{padding:13px 17px 12px;text-align:left;background:#f7f9fe;border-bottom:1px solid #e1e6f0;font-size:13px;font-weight:600;color:#596983;vertical-align:bottom}.word-table th>span{display:block}.column-toggle{display:block;margin:0 0 9px;padding:4px 11px;border:1px solid #dbe3f2;border-radius:6px;background:#fff;color:#6a7893;font-size:12px;line-height:1.4;cursor:pointer}.column-toggle:hover,.column-toggle[aria-pressed=true]{background:#eaf0ff;border-color:#b6c6f5;color:var(--blue)}.word-table td{padding:16px 17px;vertical-align:top;border-bottom:1px solid #edf0f6;overflow-wrap:anywhere;line-height:1.6}.word-table tbody tr:last-child td{border-bottom:0}.word-table tbody tr:hover{background:#fbfcff}.word-table-main{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;min-width:0}.word-table-main>[data-column-content]{min-width:0}.table-word{font-family:'Noto Sans JP',sans-serif;font-size:21px;font-weight:600;line-height:1.5;color:#24334f}.table-reading{font-family:'Noto Sans JP',sans-serif;font-size:15px;color:#7a869e}.table-meaning{font-size:14px;color:#34425e;white-space:pre-line}.word-table .word-favorite{flex:0 0 auto;margin-top:3px;padding:2px;font-size:20px}.column-mask{color:#b9c2d3;letter-spacing:.16em;user-select:none;line-height:1.6}.word-table [hidden]{display:none!important}.word-table-note{display:block;box-sizing:border-box;width:100%;min-height:34px;margin-top:9px;padding:6px 8px;resize:vertical;border:1px solid #e4e8f1;border-radius:6px;background:#fafbfe;color:#45516a;font:inherit;font-size:12px;line-height:1.5}.word-table-note:focus{outline:2px solid #cbd5ff;background:#fff}.word-table-note::placeholder{color:#a1aabc}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:800px){.word-table-shell{margin-top:20px}.word-table .word-column{width:34%}.word-table .reading-column{width:28%}.word-table .meaning-column{width:38%}.word-table th{padding:10px 9px;font-size:11px}.word-table td{padding:13px 9px}.column-toggle{font-size:11px;padding:4px 9px}.table-word{font-size:17px;line-height:1.5}.table-reading,.table-meaning{font-size:13px;line-height:1.6}.word-table-main{gap:3px}.word-table .word-favorite{font-size:17px;margin-top:3px}.word-table-note{padding:5px;font-size:11px}}

.sentence-hint{font-size:12px;color:#8a95aa;margin:14px 0 0}.sentence-hint:empty{display:none}

/* Sentence pages and column controls share the same compact study layout. */
.progress-track{margin-bottom:3px}
.progress-hint{margin:0 2px 17px;color:#8a95aa;font-size:11px;line-height:1.6}
#batchToggle{white-space:nowrap;font-size:12px;padding:9px 12px}
#batchToggle[aria-pressed=true]{background:#eaf0ff;border-color:#b6c6f5;color:var(--blue)}
.sentence-card-head[hidden],.batch-sentences[hidden]{display:none!important}
.sentence-card.batch-mode{padding:12px 24px}
.batch-sentences{margin:0;padding-left:27px;color:#8a95aa;font-size:12px}
.batch-sentences li{padding:10px 0 10px 7px;border-bottom:1px solid #edf0f6}
.batch-sentences li:last-child{border-bottom:0}
.batch-sentences li::marker{color:#8a95aa;font-size:11px}
.batch-sentences li.current::marker{color:var(--blue);font-weight:700}
.batch-sentence-text{width:100%;padding:0;border:0;background:none;color:#24334f;text-align:left;font-family:'Noto Sans JP',sans-serif;font-size:18px;line-height:1.7;overflow-wrap:anywhere}
.batch-sentence-text:hover{color:var(--blue)}
.words.word-table-shell{display:block}
.separated-sentences .word-table+.word-table{margin-top:12px}
.word-table-controls{display:grid;grid-template-columns:32% 26% minmax(0,1fr)44px;margin-bottom:8px;align-items:center}
.word-table-controls>div{padding:0 17px;min-width:0}
.word-table-controls .column-toggle{margin:0}
.word-table-controls>.column-with-actions{grid-column:3 / -1;display:flex;align-items:center;justify-content:space-between;gap:5px;padding-right:0}
.word-table-shuffle{flex:0 0 auto;padding:5px 10px;border-color:#d5e0ef;background:#edf3fa;color:#5c7598;font-size:11px;line-height:1.4;white-space:nowrap}
.word-table-shuffle:hover{background:#e2ebf7;border-color:#b9cce3}
.my-words-heading{display:flex;align-items:center;gap:8px;margin:9px 0 25px;min-width:0}
.my-words-heading h1{flex:0 0 auto;margin:0;font-size:24px}
.my-words-heading>strong{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7b88a1;font-size:13px;font-weight:500}
.create-folder-icon{display:grid;place-items:center;flex:0 0 auto;width:29px;height:29px;padding:0;border:1px solid #e0e6f1;border-radius:7px;background:#f8faff;color:#7b88a1;font-size:20px;line-height:1}
.create-folder-icon:hover{background:#eef2ff;border-color:#b6c6f5;color:var(--blue)}
.word-table .word-column{width:32%}
.word-table .reading-column{width:26%}
.word-table .meaning-column{width:auto}
.word-table .favorite-column{width:44px}
.word-table .favorite-cell{padding-left:2px;padding-right:8px;text-align:center}
.word-table .word-favorite{display:inline-block;min-width:30px;min-height:34px;margin:0;padding:2px;font-size:21px}
@media(max-width:800px){
 .toolbar{gap:10px;align-items:center}
 #batchToggle{font-size:11px;padding:8px 10px}
 .sentence-card.batch-mode{padding:8px 14px}
 .batch-sentences{padding-left:23px}
 .batch-sentences li{padding:9px 0 9px 3px}
 .batch-sentence-text{font-size:16px;line-height:1.65}
 .word-table-controls{grid-template-columns:32% 26% minmax(0,1fr)38px}
 .word-table-controls>div{padding:0 9px}
 .word-table .favorite-column{width:38px}
 .word-table .favorite-cell{padding-left:0;padding-right:3px}
 .word-table .word-favorite{font-size:19px}
 .my-words-heading h1{font-size:20px}
 .my-words-heading>strong{font-size:11px}
 .word-table-shuffle{font-size:10px;padding:5px 6px}
}

.tutor-nav{margin-bottom:28px}
.library-toggle{display:flex;align-items:center;gap:3px;min-height:28px;padding:3px 5px;border:0;border-radius:5px;background:none;color:#8a95aa;font-size:10px;font-weight:400}
.library-toggle:hover{background:#eef2ff;color:var(--blue)}
.library-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform 120ms}
.library-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.collapsible-library:not(.library-expanded) .library-subitems,.collapsible-library:not(.library-expanded) .folder-save-hint{display:none}
.wordbooks-title{margin-top:28px}
.subtitle-menu-button{display:flex;align-items:center;gap:5px;padding-left:10px;padding-right:9px;white-space:nowrap}
.subtitle-menu-button strong{font-size:13px;letter-spacing:-.02em}
.subtitle-menu-button small{font-size:9px;font-weight:400;color:#929cad;letter-spacing:-.02em}
.subtitle-title small{font-size:13px;font-weight:400;color:#929cad;white-space:nowrap}
@media(min-width:801px) and (max-width:900px){.subtitle-menu-button{gap:4px}.subtitle-menu-button strong{font-size:12px}.subtitle-menu-button small{font-size:8px}}
.folder-shortcut{display:flex;align-items:center;gap:3px;min-width:0}
.folder-save-hint{margin:0 10px 4px 17px;color:#8a95aa;font-size:10px;line-height:1.5}
.folder-shortcut .library-subitem{flex:1;min-width:0}
.folder-save-target{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;padding:0;border:1.5px dashed #b6c2db;border-radius:50%;background:transparent;color:transparent;font-size:14px;line-height:1}
.folder-save-target:hover{border-color:var(--blue);background:#eef2ff}
.folder-save-target[aria-pressed=true]{border:1.5px solid var(--blue);background:var(--blue);color:white}
.folder-shortcuts{max-height:300px;overflow-y:auto;scrollbar-width:thin}
.source-note .source-link{display:inline;margin:0 0 0 6px;font-size:inherit;line-height:inherit;white-space:nowrap}
.header-language{display:flex;align-items:center;gap:9px;margin:0;color:#8a95aa;font-size:11px;white-space:nowrap}
.header-language select{width:auto;min-width:92px;margin:0;padding:8px 10px;border-color:#e4e9f2;background:#f8faff;font-size:12px;color:#52647f}
@media(max-width:800px){.header-language{flex-direction:column;align-items:flex-end;gap:2px;font-size:9px}.header-language select{min-width:79px;padding:6px 7px;font-size:11px}#engineState{max-width:80px}.brand{min-width:0}.brand small{font-size:9px;letter-spacing:-.02em}}
.ai-grading-view{margin-top:0}
.love-words-view{margin-top:0}
.jlpt-words-view{margin-top:0}
.reading-words-view{margin-top:0}
.reading-heading h1{margin-top:0}
.reading-controls{display:flex;align-items:center;gap:14px;margin:22px 0 28px}
.reading-controls select{flex:1;min-width:0;max-width:360px;margin:0;background:white;font-size:13px}
.reading-cycle{margin-left:auto;flex:0 0 auto;color:#7787a2;font-size:12px}
.reading-progress-meta{display:flex;justify-content:space-between;gap:12px;color:#8c97ab;font-size:11px;font-variant-numeric:tabular-nums;margin-bottom:9px}
.reading-progress{height:3px;background:#edf1f7;border-radius:3px;overflow:hidden}
.reading-progress>span{display:block;height:100%;background:#6d98c6;border-radius:3px;transition:width 150ms}
.reading-card{display:flex;align-items:center;flex-direction:column;text-align:center;justify-content:center;min-height:280px;padding:45px 15px 40px}
.reading-word{display:flex;align-items:center;justify-content:center;gap:12px;max-width:100%;border:0;background:none;padding:0;color:#223651;font-family:'Noto Sans JP',sans-serif;font-size:clamp(28px,4vw,44px);font-weight:500;overflow-wrap:anywhere}
.reading-word svg{flex:0 0 20px;width:20px;height:20px;fill:none;stroke:#9baec4;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.reading-pronunciation{margin-top:12px;font-family:'Noto Sans JP',sans-serif;font-size:15px;color:#8a98ae;overflow-wrap:anywhere}
.reading-meaning{font-size:19px;color:#526886;line-height:1.7;margin-top:27px;overflow-wrap:anywhere}
.reading-example{max-width:100%;margin-top:25px;border:0;border-top:1px solid #edf1f7;background:none;padding:20px 10px 0;font-family:'Noto Sans JP',sans-serif;font-size:14px;line-height:1.8;color:#8593a8;overflow-wrap:anywhere}
.reading-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.reading-actions button{min-height:51px}
.reading-known{background:#5a84b3;border-color:#5a84b3}
.reading-known:hover{background:#4b749f}
.reading-again{background:#f7f9fd;color:#7a89a1}
.reading-complete{display:flex;flex-direction:column;align-items:center;gap:24px;min-height:310px;justify-content:center}
.reading-complete-mark{display:grid;place-items:center;width:58px;height:58px;background:#edf5fd;color:#5d8bbc;border-radius:50%;font-size:28px}
.reading-complete strong{font-size:32px;font-weight:500;color:#42658d}
.reading-complete .primary{margin-top:7px}

.sentence-timeline{position:relative;isolation:isolate;z-index:5}
.sentence-timeline .progress-track{background:none;padding:0;touch-action:pan-y}
.sentence-timeline .progress-track::before{content:'';position:absolute;left:0;right:0;top:12px;height:4px;border-radius:8px;background:#e1e8f3;transition:height 120ms,top 120ms}
.sentence-timeline #progressBar{position:absolute;left:0;top:12px;background:#6c92bf;transition:width 150ms}
.timeline-thumb{position:absolute;top:8px;width:12px;height:12px;margin-left:-6px;border:2px solid #6c92bf;border-radius:50%;background:#fff;pointer-events:none;transition:left 150ms,box-shadow 120ms}
.timeline-marker{position:absolute;top:4px;width:1px;height:20px;background:#496f9e;pointer-events:none;opacity:0}
.timeline-open .timeline-marker{opacity:1}
.timeline-open .timeline-thumb,.progress-track:focus-visible .timeline-thumb{box-shadow:0 0 0 4px #6c92bf18}
.timeline-open .progress-hint{visibility:hidden}
.timeline-panel{position:absolute;top:34px;left:0;right:0;padding:10px 12px 11px;border:1px solid #dae3ef;border-radius:13px;background:#fff;box-shadow:0 12px 36px #233d6820,0 2px 5px #233d6808;animation:timeline-appear 110ms ease-out}
.timeline-panel-head{display:flex;align-items:center;justify-content:space-between;min-height:26px;margin-bottom:7px;gap:10px}
.timeline-location{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#73849d;font-size:11px;font-variant-numeric:tabular-nums}
.timeline-close{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;padding:0;border:0;border-radius:6px;background:none;color:#8796ac;font-size:22px;line-height:1}
.timeline-close:hover{background:#f0f4fa;color:#496f9e}
.timeline-strip{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:thin;scrollbar-color:#b9c9dc #f0f4f9;cursor:grab;padding:2px 0 8px}
.timeline-strip::-webkit-scrollbar{height:5px}
.timeline-strip::-webkit-scrollbar-track{background:#f0f4f9;border-radius:5px}
.timeline-strip::-webkit-scrollbar-thumb{background:#b9c9dc;border-radius:5px}
.timeline-items{position:relative;height:116px;min-width:100%}
.timeline-card{position:absolute;top:0;width:var(--timeline-card-width);height:112px;display:flex;flex-direction:column;gap:10px;padding:12px;text-align:left;border:1px solid #e8edf5;border-radius:9px;background:#fafbfd;color:#4d5e78;user-select:none;cursor:pointer;transition:background 100ms,border-color 100ms}
.timeline-card:hover,.timeline-card.is-preview{background:#f0f5fc;border-color:#a6bfdc}
.timeline-card.is-current{background:#eaf2fc;border-color:#7b9ec6}
.timeline-card:focus-visible{outline:2px solid #779bc5;outline-offset:1px}
.timeline-card-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;color:#8c9bb0;font-variant-numeric:tabular-nums}
.timeline-card-meta b{font-size:11px;font-weight:500;color:#6887ac}
.timeline-card.is-current .timeline-card-meta b::before{content:'';display:inline-block;width:5px;height:5px;margin:0 5px 2px 0;border-radius:50%;background:#618bbd}
.timeline-card-meta time{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}
.timeline-card-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;overflow-wrap:anywhere;font-family:'Noto Sans JP',sans-serif;font-size:14px;line-height:1.6}
.timeline-strip.is-dragging,.timeline-strip.is-dragging .timeline-card{cursor:grabbing}
@keyframes timeline-appear{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.timeline-panel{padding:8px 9px 10px}.timeline-close{width:36px;height:36px;flex-basis:36px}.timeline-panel-head{margin-bottom:5px}.timeline-card{padding:10px}.timeline-card-text{font-size:13px}}
@media(prefers-reduced-motion:reduce){.timeline-panel{animation:none}.timeline-thumb,.sentence-timeline #progressBar{transition:none}}
.reading-error{font-size:12px;color:#b05e75;text-align:center}
.reading-exit-known{animation:reading-known-out 145ms ease-in both}
.reading-exit-again{animation:reading-again-out 145ms ease-in both}
@keyframes reading-known-out{to{transform:translateX(22px);opacity:0}}
@keyframes reading-again-out{to{transform:translateX(-22px);opacity:0}}
@media(max-width:800px){.reading-words-view{padding:24px 18px}.reading-controls{gap:10px}.reading-controls select{font-size:12px}.reading-card{min-height:250px;padding:36px 8px}.reading-meaning{font-size:17px}.reading-word{font-size:34px}}
@media(prefers-reduced-motion:reduce){.reading-exit-known,.reading-exit-again{animation:none}.reading-progress>span{transition:none}}
.jlpt-levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:25px 0 20px}
.jlpt-levels button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;border:1px solid #e0e6f1;border-radius:9px;background:white;color:#7b88a1}
.jlpt-levels button strong{font-size:16px;font-weight:600}
.jlpt-levels button small{font-size:10px;font-variant-numeric:tabular-nums}
.jlpt-levels button:hover{border-color:#b7cae4;background:#f7faff}
.jlpt-levels button[aria-pressed=true]{border-color:#a5bddc;background:#edf4fc;color:#4c739e}
.jlpt-search{display:flex;align-items:center;gap:12px}
.jlpt-search input{min-width:0;max-width:340px;margin:0;flex:1;font-size:13px}
.jlpt-result-count{margin-left:auto;flex:0 0 auto;color:#8a95aa;font-size:12px;white-space:nowrap}
.jlpt-pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:25px}
.jlpt-pagination button{padding:7px 14px;font-size:14px}
.jlpt-page-position{min-width:50px;text-align:center;color:#7b88a1;font-size:12px;font-variant-numeric:tabular-nums}
@media(max-width:800px){.jlpt-words-view{padding:24px 17px}.jlpt-levels{gap:5px}.jlpt-levels button{padding:10px 5px}.jlpt-search{gap:9px}.jlpt-result-count{font-size:11px}}
.love-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:9px 0 24px}
.love-heading h1{margin:0;font-size:24px}
.love-heading h1>span{font-family:'Segoe UI Emoji','Apple Color Emoji',sans-serif;font-size:22px;font-weight:400}
.love-heading>.love-shuffle{flex:0 0 auto;width:40px;height:40px;font-size:23px;line-height:1;padding:0}
.love-shuffle[hidden]{display:none}
.love-controls{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.love-controls select{flex:1;min-width:0;margin:0;font-size:13px;background:white;max-width:330px}
.love-pass{margin-left:auto;flex:0 0 auto;color:#8a95aa;font-size:11px;white-space:nowrap}
.love-progress{margin:0 0 0 auto;color:#8995ac;font-size:11px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.love-progress[hidden]{display:none}
.love-board{position:relative;isolation:isolate}
.love-lines{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none}
.love-lines path{fill:none;stroke-width:2.6;stroke-linecap:round;opacity:.85}
.love-line-draw{stroke-dasharray:1;animation:love-line 140ms ease-out both}
.love-lines .love-line-preview{stroke-dasharray:5 6;stroke-width:2;opacity:.4}
.love-word-grid,.love-meaning-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.love-card{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:0;width:100%;min-height:99px;padding:27px 9px 15px;border:1px solid #e0e6f1;border-radius:12px;background:#fff;color:#43526c;overflow-wrap:anywhere;box-shadow:0 3px 9px #23345804;transition:transform 90ms ease,box-shadow 90ms ease,border-color 90ms ease,background 90ms ease}
.love-card:active{transform:scale(.96)}
.love-card:hover:not(:disabled){border-color:#bac8ec;box-shadow:0 5px 12px #2747de0b}
.love-word{font-family:'Noto Sans JP',sans-serif;font-size:21px;font-weight:600;line-height:1.55}
.love-number{position:absolute;top:9px;left:11px;font:10px 'Noto Sans KR',sans-serif;color:#a2adc1}
.love-word-status{position:absolute;right:9px;top:7px;font-size:12px;line-height:1;color:#b59ccb}
.love-word.current{border:2px solid #b28ac7;padding:26px 8px 14px;background:#fdf8ff;box-shadow:0 0 0 4px #d9bfeb29;color:#6f4089;transform:translateY(-3px)}
.love-word.current .love-number{color:#a36db8}
.love-card.connected{background:#f8faff;border-color:#c5d1e8}
.love-gap{height:106px;display:grid;place-items:center;pointer-events:none}
.love-meaning{font-size:13px;line-height:1.65;min-height:106px;padding:24px 10px 17px}
.love-connection-number{position:absolute;top:7px;left:9px;color:#9c86bb;font-size:10px;font-weight:600}
.love-meaning:hover:not(:disabled),.love-meaning:focus-visible{border-color:#c18eaa;background:#fff7fb;transform:translateY(-2px)}
.love-footer{display:flex;align-items:center;justify-content:flex-end;margin-top:25px}
.love-footer[hidden]{display:none}
.love-footer>.primary{white-space:nowrap;font-size:13px;flex:0 0 auto}
.love-card:disabled{opacity:1;cursor:default}
.love-card.correct{border-color:#b2c9e2;background:#f2f7fc;color:#4c739e}
.love-card.incorrect{border-color:#e2b0bd;background:#fff6f8;color:#b25f78}
.love-word.correct .love-word-status{color:#5c84b2}
.love-word.incorrect .love-word-status{color:#c9758d}
.just-connected{animation:love-connect 180ms ease-out}
.love-result:empty{display:none}
.love-result{margin-top:29px;padding-top:25px;border-top:1px solid #edf0f6}
.love-score{display:flex;align-items:center;justify-content:center;gap:13px;margin-bottom:25px;animation:love-score 220ms ease-out}
.love-score>span:first-child{font-size:26px}
.love-score strong{font-size:37px;color:#405376;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.love-score strong small{font-size:15px;font-weight:500;margin-left:3px;letter-spacing:0}
.love-answer-list{display:grid;gap:7px}
.love-answer{display:grid;grid-template-columns:minmax(75px,1fr) minmax(0,2fr)20px;gap:15px;align-items:center;padding:12px 14px;border:1px solid #e4eaf1;border-radius:9px;background:#fcfdff;font-size:13px;overflow-wrap:anywhere}
.love-answer-word{font-family:'Noto Sans JP',sans-serif;font-size:17px;font-weight:600}
.love-answer>div{display:flex;flex-direction:column;gap:5px;line-height:1.6}
.love-answer.correct .love-answer-mark{color:#5c84b2}
.love-answer.incorrect .love-answer-mark{color:#c9758d}
.love-answer>div>span{color:#4c739e}
.love-again{display:block;margin:20px auto 0;font-size:12px}
.love-empty{padding:40px 10px;font-size:13px}
@keyframes love-line{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes love-connect{50%{transform:scale(1.045)}100%{transform:scale(1)}}
@keyframes love-score{from{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:800px){
 .love-words-view{padding:24px 17px;scroll-margin-top:15px}
 .love-heading{gap:8px;margin-bottom:20px}
 .love-heading h1{font-size:20px}
 .love-heading h1>span{font-size:22px}
 .love-controls select{font-size:12px;padding:10px;max-width:none}
 .love-word-grid,.love-meaning-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .love-card{min-height:82px;padding:23px 7px 11px;border-radius:10px}
 .love-word{font-size:18px}
 .love-word.current{padding:22px 6px 10px}
 .love-meaning{font-size:12px;min-height:90px}
 .love-gap{height:65px}
 .love-footer{gap:10px;margin-top:20px;align-items:center}
 .love-footer>.primary{padding:10px 13px;font-size:12px}
 .love-answer{grid-template-columns:minmax(65px,1fr)minmax(0,2fr)15px;gap:8px;padding:10px;font-size:12px}
 .love-answer-word{font-size:15px}
 .love-score strong{font-size:32px}
 .love-score{gap:10px}
}
@media(prefers-reduced-motion:reduce){.love-line-draw,.just-connected,.love-score{animation:none}.love-card{transition:none}}

.whale-celebration{position:fixed;inset:0;z-index:2000;overflow:hidden;pointer-events:none;contain:paint}
.whale-flight{position:absolute;left:50%;top:100%;width:clamp(220px,25vw,330px);aspect-ratio:1;transform:translate(-50%,15%);animation:whale-rise 1900ms cubic-bezier(.2,.65,.3,1) both;will-change:transform;filter:drop-shadow(0 18px 23px #467fa524)}
.whale-complete .whale-flight{width:clamp(380px,45vw,620px);animation-name:whale-rise-complete;animation-duration:4400ms}
.whale-flying-art{display:block;width:100%;height:100%;overflow:visible}
.whale-water-glow{position:absolute;left:0;right:0;bottom:0;height:42%;background:radial-gradient(ellipse at 50% 100%,#bde7fa5c,transparent 70%);animation:whale-water-fade 1500ms ease-out both}
.whale-water-rings{position:absolute;left:50%;bottom:12px;width:min(80vw,650px);height:90px;transform:translateX(-50%)}
.whale-water-rings i{position:absolute;inset:0;border:3px solid #85c6e7;border-radius:50%;background:#c5eafb22;animation:whale-ripple 1050ms ease-out both}
.whale-water-rings i:nth-child(2){animation-delay:100ms;border-color:#b5def3}
.whale-water-rings i:nth-child(3){animation-delay:200ms;border-color:#a2cfe9}
.whale-water-drops{position:absolute;left:50%;bottom:35px;width:1px;height:1px}
.whale-water-drops i{position:absolute;left:0;bottom:0;width:var(--drop-size);height:calc(var(--drop-size)*1.6);border-radius:65% 65% 65% 8%;background:linear-gradient(135deg,#d5f4ff,#88c8eb);box-shadow:0 0 0 1px #d5f1ff66;animation:whale-splash 1050ms ease-out var(--drop-delay) both}
.whale-complete .whale-water-glow{height:60%;animation-duration:3400ms}
.whale-complete .whale-water-rings{width:min(90vw,950px);height:130px}
.whale-complete .whale-water-rings i,.whale-complete .whale-water-drops i{animation-duration:1600ms}
.whale-complete .whale-water-drops{transform:scale(1.4)}
@keyframes whale-rise{0%{transform:translate(-50%,15%) scale(.72) rotate(-8deg);opacity:0}12%{opacity:1}30%{transform:translate(-52%,-60vh) scale(1.03) rotate(-5deg)}54%{transform:translate(-46%,-82vh) scale(1) rotate(4deg);opacity:1}78%{transform:translate(-52%,-105vh) scale(.9) rotate(-7deg);opacity:1}100%{transform:translate(-48%,calc(-100vh - 120%)) scale(.7) rotate(-12deg);opacity:0}}
@keyframes whale-rise-complete{0%{transform:translate(-50%,15%) scale(.72) rotate(-8deg);opacity:0}10%{opacity:1}22%{transform:translate(-52%,-62vh) scale(1) rotate(-5deg)}42%{transform:translate(-48%,-78vh) scale(1.04) rotate(4deg)}65%{transform:translate(-51%,-85vh) scale(1) rotate(-3deg);opacity:1}100%{transform:translate(-48%,calc(-100vh - 120%)) scale(.8) rotate(-12deg);opacity:0}}
@keyframes whale-ripple{0%{transform:scale(.2,.2);opacity:0}15%{opacity:.8}100%{transform:scale(1.6,.7);opacity:0}}
@keyframes whale-splash{0%{transform:translate(0,0) rotate(-35deg) scale(.3);opacity:0}15%{opacity:.9}65%{transform:translate(var(--drop-x),var(--drop-y)) rotate(20deg) scale(1);opacity:.8}100%{transform:translate(calc(var(--drop-x)*1.3),calc(var(--drop-y)*.25)) rotate(70deg) scale(.6);opacity:0}}
@keyframes whale-water-fade{0%{opacity:0}20%{opacity:1}100%{opacity:0}}
@keyframes whale-gentle{0%,100%{opacity:0}25%,75%{opacity:1}}
@media(max-width:800px){.whale-flight{width:min(65vw,270px)}.whale-complete .whale-flight{width:min(94vw,440px)}.whale-water-drops{transform:scale(.7)}.whale-complete .whale-water-drops{transform:scale(1)}.whale-water-rings,.whale-complete .whale-water-rings{height:60px}}
@media(prefers-reduced-motion:reduce){.whale-flight,.whale-complete .whale-flight{top:35%;transform:translateX(-50%);animation:whale-gentle 900ms ease both}.whale-complete .whale-flight{animation-duration:1800ms}.whale-deform{filter:none}.whale-water-glow,.whale-water-rings i,.whale-water-drops i{animation:none}.whale-water-glow,.whale-water-rings,.whale-water-drops{display:none}}
.grading-source-head,.grading-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:27px 0 13px}
.grading-source-head h2,.grading-history-head h2{font-size:14px}
.grading-categories{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.grading-categories button{font-size:12px;padding:10px 13px}
.grading-categories button[aria-pressed=true]{background:#eef2ff;border-color:#b6c6f5;color:var(--blue)}
.grading-source-panel{padding:9px 13px 5px;border:1px solid #e4e9f2;border-radius:10px}
.grading-selection-head{display:flex;justify-content:flex-end;margin:0 0 2px}
.grading-selection-head button{font-size:11px}
.grading-source-empty{padding:15px 3px;color:#8a95aa;font-size:12px;text-align:center}
.grading-sources{display:grid;grid-template-columns:1fr;gap:12px}
.grading-sources fieldset{min-width:0;margin:0;padding:0;border:0}
.grading-sources legend{padding:0 4px;font-size:11px;color:#8a95aa}
.grading-sources .grading-source{display:flex;align-items:center;gap:8px;min-width:0;margin:0;padding:7px 2px;cursor:pointer;font-size:12px;line-height:1.5}
.grading-source input{flex:0 0 auto;width:15px;height:15px;margin:0;accent-color:var(--blue)}
.grading-source span{min-width:0;overflow-wrap:anywhere}
.grading-source small{flex:0 0 auto;margin-left:auto;color:#8a95aa;font-size:10px}
.grading-pick{margin:15px 0 23px;font-size:12px}
.grading-question{padding:19px 20px;border:1px solid #e1e7f2;border-radius:12px;background:#f8faff;font-family:'Noto Sans JP',sans-serif;font-size:22px;line-height:1.7;overflow-wrap:anywhere}
.grading-question-source{margin:7px 2px 19px;font-size:11px;color:#8a95aa}
.grading-answer-form label{font-size:13px;color:#596983}
.grading-answer-form textarea{min-height:70px;resize:vertical;font-size:14px;line-height:1.7}
.grading-answer-form textarea:disabled{background:#f7f9fc}
.grading-actions{display:flex;gap:9px;margin-top:17px}
.grading-actions button{font-size:12px}
.grading-message{font-size:12px;color:#6375a6;line-height:1.6;margin:8px 0 0}
.grading-message:empty{display:none}
.grading-history-head{margin-top:31px;border-top:1px solid #edf0f6;padding-top:23px}
.grading-history-head>span{font-size:11px;color:#8a95aa}
.grading-history{display:grid;gap:8px}
.grading-history article{display:flex;align-items:center;gap:10px;border:1px solid #e4e9f2;border-radius:9px;padding:11px 12px}
.grading-history-open{flex:1;min-width:0;text-align:left;padding:0;background:none;border:0;color:#34425e}
.grading-history-open>span{display:block;font-family:'Noto Sans JP',sans-serif;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grading-history-open>small{display:block;color:#8a95aa;font-size:10px;margin-top:5px}
.grading-history-delete{flex:0 0 auto;background:#f3f5fa;border:0;border-radius:50%;width:28px;height:28px;color:#8a95aa;font-size:20px}
@media(max-width:800px){
 aside>.aside-title{display:flex;margin:0 5px 10px;font-size:12px}
 .tutor-nav{margin-bottom:17px}
 aside>.wordbooks-title{margin-top:17px}
 .ai-grading-view{padding:24px 18px}
 .grading-sources{grid-template-columns:1fr}
 .grading-question{font-size:19px;padding:15px}
 .source-note .source-link{margin-left:4px}
}
