:root{--bg: #fdf4e3;--bg-deep: #f5e8c8;--surface: rgba(255, 252, 242, .92);--surface-alt: rgba(253, 246, 228, .8);--surface-strong: rgba(255, 254, 248, .98);--surface-accent: rgba(61, 158, 165, .07);--ink: #2d1e0f;--muted: #7a6552;--hint: rgba(122, 101, 82, .65);--line: rgba(61, 43, 31, .12);--line-strong: rgba(61, 43, 31, .22);--color-info: #2f8f96;--color-info-bg: rgba(47, 143, 150, .12);--color-info-border: rgba(47, 143, 150, .28);--color-success: #3d8a3a;--color-success-bg: rgba(61, 138, 58, .13);--color-success-border: rgba(61, 138, 58, .26);--color-attention: #c97a1a;--color-attention-bg: rgba(201, 122, 26, .13);--color-attention-border: rgba(201, 122, 26, .28);--color-error: #c04e36;--color-error-bg: rgba(192, 78, 54, .12);--color-error-border: rgba(192, 78, 54, .26);--fox-orange: #e8841a;--fox-orange-light: rgba(232, 132, 26, .15);--fox-orange-border: rgba(232, 132, 26, .3);--fox-yellow: #edb832;--fox-yellow-light: rgba(237, 184, 50, .15);--fox-teal: #3d9ea5;--fox-teal-light: rgba(61, 158, 165, .15);--blue: var(--color-info);--blue-soft: var(--color-info-bg);--green: var(--color-success);--green-soft: var(--color-success-bg);--amber: var(--color-attention);--amber-soft: var(--color-attention-bg);--coral: var(--color-error);--coral-soft: var(--color-error-bg);--shadow: 0 20px 52px rgba(61, 43, 31, .14);--shadow-soft: 0 10px 28px rgba(61, 43, 31, .09);--radius-xl: 28px;--radius-lg: 20px;--radius-md: 16px;--radius-sm: 12px;--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--font-ui: "Avenir Next", "Trebuchet MS", "Gill Sans", sans-serif;--font-display: "Georgia", "Palatino", "Times New Roman", serif;--focus-ring: 0 0 0 3px rgba(47, 143, 150, .18);--select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.25L6 6.25L11 1.25' stroke='%237a6552' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}*{box-sizing:border-box}html,body{margin:0;min-height:100%}html{color-scheme:light}body{color:var(--ink);background:radial-gradient(circle at top left,rgba(232,132,26,.2),transparent 30%),radial-gradient(circle at top right,rgba(61,158,165,.18),transparent 28%),radial-gradient(circle at bottom right,rgba(237,184,50,.12),transparent 34%),linear-gradient(180deg,var(--bg) 0%,#f5ead0 100%);font-family:var(--font-ui)}.page-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 18% 24%,rgba(255,255,255,.5),transparent 18%),radial-gradient(circle at 84% 18%,rgba(253,240,195,.4),transparent 16%),radial-gradient(circle at 75% 80%,rgba(61,158,165,.1),transparent 22%)}.app-shell{position:relative;max-width:1380px;margin:0 auto;padding:28px 18px 54px}.loading-shell,.empty-state{display:grid;place-items:center;min-height:58vh}.loading-card,.empty-card,.app-frame{border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow)}.loading-card,.empty-card{max-width:560px;padding:var(--space-xl)}.app-frame{overflow:hidden}.hero{display:flex;align-items:stretch;gap:0;padding:0;background:radial-gradient(circle at 20% 55%,rgba(255,255,255,.14),transparent 40%),radial-gradient(circle at 85% 20%,rgba(237,184,50,.22),transparent 30%),radial-gradient(circle at 70% 80%,rgba(255,255,255,.08),transparent 22%),linear-gradient(135deg,#2b7e85,#3d9ea5 45%,#4fb3ba);color:#f7f7f3;overflow:hidden;position:relative}.hero-brand{flex-shrink:0;display:flex;align-items:flex-end;justify-content:center;width:260px;padding:0 0 0 8px;position:relative}.hero-logo{display:block;width:260px;height:auto;-o-object-fit:contain;object-fit:contain;-o-object-position:bottom center;object-position:bottom center;filter:drop-shadow(0 6px 18px rgba(0,0,0,.2))}.hero-body{flex:1 1 0;display:grid;gap:18px;padding:28px 28px 28px 16px;min-width:0}.hero-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.hero-copy h1{margin:8px 0 10px;font-family:var(--font-display);font-size:clamp(1.8rem,3.5vw,3rem);line-height:1.02;letter-spacing:-.01em}.hero-copy p{max-width:760px;margin:0;color:#f7f7f3d6;font-size:1.02rem}.hero-badges,.nav-pills,.chip-row,.option-stack,.question-mode-list,.stage-check-list,.tile-row,.action-row,.toggle-row,.micro-stats,.meta-row,.review-actions{display:flex;gap:10px;flex-wrap:wrap}.eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0;color:#f7f7f3d1;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}.hero-badge,.nav-pill,.badge,.count-pill,.pill,.mode-chip{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:9px 14px;font-size:.92rem;line-height:1}.hero-badge{border:1px solid rgba(255,255,255,.16);background:#ffffff1f;color:#fff}.hero-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.hero-stat{position:relative;padding:16px 18px;border-radius:18px;background:#ffffff1a;border:1px solid rgba(255,255,255,.12)}.hero-stat:after{content:"";position:absolute;top:18px;right:-6px;width:1px;height:calc(100% - 36px);background:#ffffff29}.hero-stat:last-child:after{display:none}.hero-stat strong{display:block;font-size:1.82rem;margin-bottom:6px}.hero-stat span{color:#f7f7f3d1;font-size:.9rem}.nav-row{padding:18px 22px 0}.nav-pills{position:relative;padding-bottom:12px}.nav-pill{border:1px solid var(--line);background:var(--surface-strong);color:var(--ink);cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease}.nav-pill:hover,.button:hover,.option-button:hover,.tile:hover,.quick-card:hover{transform:translateY(-1px)}.nav-pill.is-active{background:linear-gradient(135deg,#fdf4e3,#fff8ec);border-color:var(--fox-orange-border);box-shadow:inset 0 -3px 0 var(--fox-orange),inset 0 0 0 1px #e8841a1a;color:var(--ink);font-weight:600}.content{padding:20px 22px 36px}.section-stack{display:grid;gap:24px}.section-card,.quick-card,.vocab-card,.session-card,.question-shell,.builder-shell,.passage-shell,.review-card,.summary-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-strong);box-shadow:var(--shadow-soft)}.section-card,.session-card,.question-shell,.builder-shell,.passage-shell,.review-card,.summary-card{padding:22px}.section-card.lead,.session-card.lead,.question-shell.lead,.builder-shell.lead,.passage-shell.lead,.review-card.lead,.summary-card.lead{position:relative;padding:28px;border-left:4px solid var(--color-info)}.section-card h2,.session-card h2,.question-shell h2,.builder-shell h2,.passage-shell h2,.review-card h2,.summary-card h2,.section-card h3,.session-card h3,.review-card h3{margin:0 0 10px;font-family:var(--font-display);font-weight:700}.section-card p,.session-card p,.question-shell p,.builder-shell p,.passage-shell p,.review-card p,.summary-card p{margin:0}.muted{color:var(--muted)}.hint{color:var(--hint)}.tiny{font-size:.88rem}.stat-grid,.quick-grid,.vocab-grid,.review-grid,.dashboard-grid{display:grid;gap:14px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.dashboard-grid{grid-template-columns:1.25fr .95fr}.quick-grid,.vocab-grid,.review-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.quick-card{padding:20px;cursor:pointer}.quick-card h3,.vocab-card h3{margin:0 0 8px}.quick-card p,.vocab-card p{color:var(--muted)}.about-page{max-width:1120px;margin:0 auto}.about-layout{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}.about-copy,.about-prose{display:grid;gap:14px}.about-copy p,.about-prose p{max-width:760px;color:var(--muted);line-height:1.62}.about-question,.about-callout{padding:16px 18px;border:1px solid var(--color-info-border);border-left:4px solid var(--color-info);border-radius:var(--radius-md);background:var(--surface-accent);color:var(--ink)!important;font-size:1.05rem;font-weight:700}.about-visual{order:-1;margin:0;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-alt);box-shadow:var(--shadow-soft)}.about-visual a{display:block}.about-visual img{display:block;width:100%;height:auto}.metric{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#fffffff0,#f6f8fac7)}.metric strong{font-size:1.45rem}.metric span{color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.field{display:grid;gap:8px}.field-wide{grid-column:span 2;min-width:min(100%,420px)}.field label,.fieldset-title{font-size:.88rem;font-weight:700;color:var(--muted);letter-spacing:.02em}.input,.select,.textarea{width:100%;border:1px solid rgba(24,34,45,.18);border-radius:16px;padding:12px 14px;background:#fff;color:var(--ink);font:inherit;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-image:var(--select-chevron);background-repeat:no-repeat;background-position:right 14px center;padding-right:42px}.textarea{min-height:108px;resize:vertical}.input::-moz-placeholder,.textarea::-moz-placeholder{color:var(--hint)}.input::placeholder,.textarea::placeholder{color:var(--hint)}.input:focus,.select:focus,.textarea:focus{outline:none;box-shadow:var(--focus-ring);border-color:#1566a86b}.button,.option-button,.tile{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:14px;cursor:pointer;font:inherit;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#2b8a91,#3d9ea5);color:#fff;border-color:#2b8a9140}.button.secondary{background:linear-gradient(135deg,#fdf4e3,#fff9ee);color:var(--ink);border-color:#3d2b1f1f}.button.ghost{background:#fffcf2cc;color:var(--ink);border-color:#3d2b1f1f}.button.success{background:linear-gradient(135deg,#2e7a2b,#3d8a3a)}.button.warn{background:linear-gradient(135deg,#c97a1a,#e08820)}.button:disabled,.option-button:disabled,.tile:disabled{cursor:not-allowed;opacity:.56;transform:none}.badge,.count-pill,.pill,.mode-chip{font-size:.8rem;border:1px solid transparent}.badge.blue,.count-pill.blue,.pill.blue,.mode-chip.blue{background:var(--color-info-bg);color:var(--color-info);border-color:var(--color-info-border)}.badge.green,.count-pill.green,.pill.green,.mode-chip.green{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.badge.amber,.count-pill.amber,.pill.amber,.mode-chip.amber{background:var(--color-attention-bg);color:var(--color-attention);border-color:var(--color-attention-border)}.badge.coral,.count-pill.coral,.pill.coral,.mode-chip.coral{background:var(--color-error-bg);color:var(--color-error);border-color:var(--color-error-border)}.option-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.option-button{padding:14px 16px;text-align:left;background:#fff;border-color:#18222d24}.option-button.is-selected{border-color:var(--color-info-border);background:#1566a814}.option-button.is-correct{border-color:var(--color-success-border);background:#26744b1c}.option-button.is-wrong{border-color:var(--color-error-border);background:#b5533f1f}.question-shell{display:grid;gap:18px}.question-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.question-box{position:relative;display:grid;gap:12px;padding:24px 28px;border-radius:18px;background:linear-gradient(180deg,#1566a81a,#ffffffe6);border:1px solid rgba(21,102,168,.12);border-left:4px solid var(--color-info)}.question-box-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.question-box-copy{display:grid;gap:10px}.question-prompt{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.15;letter-spacing:-.01em}.passage-question-copy{display:grid;gap:8px;margin-bottom:14px}.passage-question-label{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-info)}.passage-question-prompt{font-family:var(--font-display);font-size:1.18rem;line-height:1.4;color:var(--ink)}.stimulus-block{display:grid;gap:8px;padding:16px 20px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0}.stimulus-title{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-info, #1566a8);margin:0}.diagram-block{white-space:pre;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;line-height:1.4;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:12px 14px;margin:0}.stimulus-key{margin:0;padding:0 0 0 1.1em;font-size:.78rem;color:#555;line-height:1.6}.source-extract-block{border-left:3px solid var(--color-info, #1566a8);margin:0;padding:10px 14px;font-style:italic;color:#444;background:#fff;border-radius:0 8px 8px 0;white-space:pre-wrap}.data-table-wrap{overflow-x:auto}.data-table-block{width:100%;border-collapse:collapse;font-size:.82rem}.data-table-block th,.data-table-block td{padding:6px 10px;border:1px solid #e2e8f0;text-align:left}.data-table-block th{background:#eef4fb;font-weight:700}.data-table-block tr:nth-child(2n) td{background:#f8fafc}.feedback{display:grid;gap:6px;padding:16px 18px;border-radius:16px;border:1px solid transparent;animation:feedback-enter .18s ease-out}.feedback-header{display:inline-flex;align-items:center;gap:8px}.feedback-icon{width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.86rem;font-weight:700;background:#ffffffc7}.feedback.correct{background:#26744b1a;border-color:#26744b38}.feedback.wrong{background:#b5533f1a;border-color:#b5533f38}.feedback.info{background:#1566a81a;border-color:#1566a838}.feedback.correct .feedback-icon{color:var(--color-success)}.feedback.wrong .feedback-icon{color:var(--color-error)}.feedback.info .feedback-icon{color:var(--color-info)}.tile-area{min-height:82px;padding:14px;border:1px dashed rgba(24,34,45,.18);border-radius:16px;background:#ffffffbd;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.tile-area.answer-correct{border-color:var(--color-success-border);box-shadow:0 0 0 3px #26744b33}.tile-area.answer-wrong{border-color:var(--color-error-border);animation:answer-shake .3s ease}.tile{padding:10px 14px;background:linear-gradient(135deg,#fffaf0,#fff);border-color:#18222d24}.tile:hover{transform:scale(1.05)}.tile.answer{background:linear-gradient(135deg,#dff0ff,#f1f8ff);border-color:#1566a838}.mode-check{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#ffffffb3}.mode-check input{margin-top:3px}.stage-check{min-width:120px}.vocab-card{display:grid;gap:12px;padding:18px}.vocab-card h3{font-size:1.32rem;font-family:var(--font-display)}.vocab-card .translation{font-size:1.02rem;color:var(--ink)}.status-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.session-list,.review-list,.meta-list{display:grid;gap:10px}.session-item,.review-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#fffc}.review-item-main{display:grid;gap:4px}.passage-shell blockquote{margin:0;padding:16px 18px;border-left:4px solid rgba(21,102,168,.28);background:#1566a80f;border-radius:0 14px 14px 0}.divider{height:1px;background:var(--line);margin:4px 0}.two-up{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.summary-score{font-size:clamp(2rem,4vw,3rem);font-family:var(--font-display);letter-spacing:-.01em}.inline-icon{font-size:.95rem}.empty-state-card{display:grid;justify-items:center;gap:14px;max-width:480px;margin:0 auto;padding:26px 24px;border-radius:20px;border:1px dashed var(--line-strong);background:linear-gradient(180deg,var(--surface-alt),rgba(255,255,255,.82));text-align:center}.empty-state-card h2,.empty-state-card h3{margin:0;font-family:var(--font-display)}.empty-state-card p{color:var(--muted)}.empty-state-illustration{width:64px;height:64px}.empty-state-illustration svg{width:100%;height:100%}@keyframes answer-shake{0%{transform:translate(0)}25%{transform:translate(-6px)}60%{transform:translate(6px)}to{transform:translate(0)}}@keyframes feedback-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-stat:nth-child(2):after{display:none}.dashboard-grid,.two-up{grid-template-columns:1fr}}@media(max-width:720px){.app-shell{padding:14px 12px 28px}.hero,.content,.nav-row{padding-left:16px;padding-right:16px}.content{padding-bottom:30px}.section-stack{gap:18px}.section-card,.session-card,.question-shell,.builder-shell,.passage-shell,.review-card,.summary-card{padding:18px}.section-card.lead,.session-card.lead,.question-shell.lead,.builder-shell.lead,.passage-shell.lead,.review-card.lead,.summary-card.lead{padding:22px}.question-box{padding:20px}.about-layout{gap:18px}.field-wide{grid-column:auto;min-width:0}}@media(max-width:640px){.nav-pills{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%)}.nav-pills::-webkit-scrollbar{display:none}.nav-pill{flex:0 0 auto}}@media(max-width:560px){.hero-stats{grid-template-columns:1fr 1fr}.hero-stat:after{display:none}.question-box-top,.question-meta{flex-direction:column}.question-box-top .chip-row,.question-meta .chip-row,.question-meta .micro-stats{width:100%}}@media(max-width:400px){.hero-stats{grid-template-columns:1fr}}@media(prefers-color-scheme:dark){:root{--bg: #221f1b;--bg-deep: #2a322f;--surface: rgba(48, 42, 36, .88);--surface-alt: rgba(61, 53, 46, .72);--surface-strong: rgba(56, 48, 41, .95);--surface-accent: rgba(21, 102, 168, .14);--ink: #f2ebe0;--muted: #c7bfb2;--hint: rgba(199, 191, 178, .72);--line: rgba(242, 235, 224, .12);--line-strong: rgba(242, 235, 224, .22);--shadow: 0 24px 58px rgba(0, 0, 0, .36);--shadow-soft: 0 14px 30px rgba(0, 0, 0, .28);--select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.25L6 6.25L11 1.25' stroke='%23c7bfb2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}html{color-scheme:dark}body{background:radial-gradient(circle at top left,rgba(109,77,34,.35),transparent 28%),radial-gradient(circle at top right,rgba(58,94,133,.28),transparent 24%),linear-gradient(180deg,#1d1a17,#242925)}.loading-card,.empty-card,.app-frame,.section-card,.quick-card,.vocab-card,.session-card,.question-shell,.builder-shell,.passage-shell,.review-card,.summary-card{background:var(--surface-strong)}.nav-pill,.button.ghost,.mode-check,.session-item,.review-item,.tile-area,.metric,.empty-state-card{background:var(--surface-alt)}.nav-pill.is-active{background:linear-gradient(135deg,#70582f57,#5246397a)}.input,.select,.textarea,.option-button{background:#25201cf0;color:var(--ink);border-color:#f2ebe024}.tile{background:linear-gradient(135deg,#423930f5,#373029f5);color:var(--ink);border-color:#f2ebe024}.tile.answer{background:linear-gradient(135deg,#1c415ceb,#273a54f5)}.passage-shell blockquote,.question-box{background:linear-gradient(180deg,#1566a82e,#383029eb)}.button.secondary{background:linear-gradient(135deg,#53463af5,#3d352ef5);color:var(--ink);border-color:#f2ebe01f}.button.ghost{color:var(--ink)}}.sequence-arena{display:flex;flex-direction:column;gap:10px;margin-top:16px}.sequence-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;border:1.5px solid var(--line);background:var(--panel-strong);cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.sequence-item:hover{transform:translateY(-1px);border-color:#1566a84d}.sequence-item.is-selected{border-color:var(--blue);background:var(--blue-soft);transform:scale(1.02)}.sequence-item.correct{border-color:var(--green);background:var(--green-soft)}.sequence-item.wrong{border-color:var(--coral);background:var(--coral-soft)}.sequence-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-size:.85rem;font-weight:700;flex-shrink:0}.sequence-text{font-size:1rem;color:var(--ink);flex:1}.seq-move-hint{font-size:.8rem;opacity:.7;flex-shrink:0}.sort-arena{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.sort-item-pool{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border-radius:14px;border:1.5px dashed rgba(24,34,45,.2);background:#fff9;margin-bottom:0;grid-column:1 / -1}.sort-item{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1.5px solid var(--blue);background:var(--blue-soft);color:var(--blue);font-size:.88rem;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}.sort-item:hover{transform:translateY(-1px)}.sort-item.is-selected{background:var(--blue);color:#fff;border-color:var(--blue)}.sort-category-zone{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:16px;border:1.5px solid var(--line);background:var(--panel-strong);min-height:120px;transition:border-color .2s ease,box-shadow .2s ease}.sort-category-zone h4{margin:0 0 8px;font-size:.9rem;color:var(--muted);font-weight:600}.sort-category-zone.is-selected{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.sort-placed-list{display:flex;flex-direction:column;gap:6px;flex:1}.sort-placed-item{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 12px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:.88rem;border:1px solid rgba(38,116,75,.3)}.sort-remove-btn{background:none;border:none;cursor:pointer;font-size:.85rem;color:var(--green);padding:0 2px;line-height:1;flex-shrink:0}.gap-sentence{font-size:1.2rem;line-height:1.6;padding:20px;border-radius:16px;background:var(--blue-soft);border:1.5px solid rgba(21,102,168,.2);margin-bottom:16px;color:var(--ink)}.gap-blank-marker{display:inline-block;min-width:100px;border-bottom:2.5px solid var(--blue);color:var(--blue);font-weight:700;margin:0 4px}.match-arena{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:16px}.match-col{display:flex;flex-direction:column;gap:10px}.match-col-label{font-size:.8rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;padding-bottom:6px;border-bottom:1px solid var(--line)}.match-term,.match-def{padding:12px 16px;border-radius:14px;border:1.5px solid var(--line);background:var(--panel-strong);font-size:.95rem;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.match-term:hover,.match-def:hover{transform:translateY(-1px)}.match-term.is-selected{border-color:var(--blue);background:var(--blue-soft);color:var(--blue);font-weight:600}.match-term.is-paired-correct,.match-def.is-paired-correct{border-color:var(--green);background:var(--green-soft);color:var(--green);cursor:default}.match-term.is-paired-wrong,.match-def.is-paired-wrong{border-color:var(--coral);background:var(--coral-soft);color:var(--coral)}.match-def.is-matched{border-color:var(--green);background:var(--green-soft);cursor:default}.question-box{border-radius:18px;border:1.5px solid rgba(21,102,168,.15);background:var(--blue-soft);padding:22px 26px;margin-bottom:0}.question-box-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.question-box-copy{flex:1}.mode-chip{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}.mode-chip.blue{background:var(--blue-soft);color:var(--blue)}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.shake{animation:shake .35s ease-in-out}@keyframes pulse-green{0%{box-shadow:0 0 #26744b66}70%{box-shadow:0 0 0 8px #26744b00}to{box-shadow:0 0 #26744b00}}.pulse-correct{animation:pulse-green .5s ease-out}.section-card.lead{border-left:4px solid var(--blue);border-radius:0 20px 20px 0;padding:26px 28px}.feedback-header{display:flex;align-items:center;gap:10px;margin-bottom:4px}.feedback-icon{font-size:1.1rem;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.feedback.correct .feedback-icon{background:var(--green-soft);color:var(--green)}.feedback.wrong .feedback-icon{background:var(--coral-soft);color:var(--coral)}.feedback.info .feedback-icon{background:var(--blue-soft);color:var(--blue)}.subject-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:8px}.subject-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 14px;border:1.5px solid var(--line);background:var(--surface-strong);border-radius:var(--radius-md);cursor:pointer;transition:border-color .12s ease,background .12s ease,transform .12s ease,box-shadow .12s ease;font:inherit;color:inherit;text-align:center}.subject-card:hover:not(:disabled){border-color:var(--fox-orange-border);background:var(--fox-orange-light);transform:translateY(-2px);box-shadow:0 4px 14px #e8841a24}.subject-card.is-active{border-color:var(--fox-orange);background:var(--fox-orange-light);box-shadow:0 0 0 3px #e8841a1a}.subject-card.is-empty,.subject-card:disabled{opacity:.5;cursor:not-allowed;background:var(--surface-alt)}.subject-card .subject-icon{font-size:28px;line-height:1}.subject-card .subject-label{font-weight:600;font-size:15px}.subject-card .subject-meta{font-size:12px;color:var(--muted)}.pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.pill-button{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 18px;border:1.5px solid var(--line);background:#fff;border-radius:var(--radius-sm);cursor:pointer;font:inherit;color:inherit;text-align:left;transition:border-color .12s ease,background .12s ease}.pill-button:hover{border-color:var(--fox-orange-border);background:var(--fox-orange-light)}.pill-button.is-active{border-color:var(--fox-orange);background:var(--fox-orange-light)}.mode-pill{flex:1 1 0;min-width:160px}.mode-pill strong{font-size:15px;font-weight:600}@media(max-width:720px){.subject-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-pill{flex-basis:100%}}.admin-drop-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:36px 24px;margin-top:20px;border:2px dashed var(--line);border-radius:var(--radius);background:var(--surface-alt);text-align:center;cursor:pointer;transition:border-color .16s ease,background .16s ease}.admin-drop-zone:hover{border-color:var(--fox-teal);background:var(--fox-teal-light)}.admin-drop-icon{font-size:2.4rem;line-height:1}.admin-drop-label{font-size:.95rem;font-weight:500;color:var(--ink);margin:0}.admin-status{display:flex;align-items:flex-start;gap:12px;margin-top:14px;padding:14px 16px;border-radius:var(--radius-sm);font-size:.88rem}.admin-status-ok{background:var(--color-success-bg);border:1.5px solid var(--color-success-border);color:var(--color-success)}.admin-status-error{background:var(--color-error-bg);border:1.5px solid var(--color-error-border);color:var(--color-error)}.admin-status-icon{font-size:1.1rem;font-weight:700;flex-shrink:0;margin-top:1px}.admin-status p{margin:4px 0 0}.admin-pack-list{display:flex;flex-direction:column;gap:12px}.admin-pack-card{padding:14px 16px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.admin-pack-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-pack-name{font-weight:600;font-size:.97rem;color:var(--ink)}.admin-pack-id{margin-top:2px;font-family:monospace;font-size:.76rem}.admin-pack-chips{display:flex;flex-wrap:wrap;gap:6px}.admin-pack-meta{color:var(--muted)}.button-danger{color:#b91c1c;border-color:#fca5a5}.button-danger:hover{background:#fff1f2;border-color:#f87171}.admin-format-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:14px 0}.admin-format-card{padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-alt)}.admin-format-label{font-weight:600;font-size:.88rem;color:var(--ink);margin-bottom:4px}.admin-schema-preview{margin:0;padding:14px 16px;background:var(--surface-alt);border:1.5px solid var(--line);border-radius:var(--radius-sm);font-size:.8rem;line-height:1.6;overflow-x:auto;white-space:pre;color:var(--ink)}.admin-schema-preview code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.admin-schema-preview .muted{color:var(--muted)}.crossword-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.crossword-actions{justify-content:flex-end}.crossword-layout{display:grid;grid-template-columns:minmax(300px,1fr) minmax(280px,380px);gap:18px;align-items:start}.crossword-board-wrap{overflow:auto;padding:16px}.crossword-board{display:grid;width:-moz-max-content;width:max-content;margin:0 auto;border:2px solid var(--ink);background:var(--ink);gap:1px}.crossword-cell{position:relative;width:min(42px,7.2vw);height:min(42px,7.2vw);min-width:30px;min-height:30px;background:var(--surface)}.crossword-cell.is-block{background:var(--ink)}.crossword-cell.is-correct{background:#3c965e2e}.crossword-cell.is-wrong{background:#cc633f2e}.crossword-number{position:absolute;top:2px;left:3px;z-index:1;color:var(--muted);font-size:clamp(.5rem,1.8vw,.66rem);font-weight:800;line-height:1}.crossword-input{width:100%;height:100%;border:0;outline:none;background:transparent;color:var(--ink);font-family:var(--font-ui);font-size:clamp(1rem,3.5vw,1.35rem);font-weight:800;text-align:center;text-transform:uppercase}.crossword-input:focus{box-shadow:inset 0 0 0 3px #1566a859}.crossword-clues{display:flex;flex-direction:column;gap:18px}.crossword-message{min-height:24px;font-weight:700}.crossword-message.is-good{color:var(--green)}.crossword-message.is-bad{color:var(--coral)}.crossword-clue-section h3{margin-bottom:8px;font-size:1rem}.crossword-clue-list{display:grid;gap:9px;margin:0;padding-left:24px}.crossword-clue-list li{line-height:1.42}.crossword-answer-meta{color:var(--muted);font-size:.82rem;font-weight:700}@media(max-width:600px){.admin-format-grid{grid-template-columns:1fr}}@media(max-width:820px){.crossword-header{display:block}.crossword-actions{justify-content:flex-start;margin-top:14px}.crossword-layout{grid-template-columns:1fr}}@media(max-width:520px){.crossword-cell{width:min(34px,8vw);height:min(34px,8vw)}}.fox-mascot{display:block;width:64px;height:64px;-o-object-fit:contain;object-fit:contain;image-rendering:auto}.empty-state-illustration .fox-mascot{width:96px;height:96px;margin:0 auto}.feedback-icon{width:64px!important;height:64px!important;border-radius:50%;overflow:hidden;flex-shrink:0;background:transparent!important;display:flex;align-items:center;justify-content:center}.feedback-icon .fox-mascot{width:64px;height:64px}@media(max-width:860px){.hero{flex-direction:column}.hero-brand{width:100%;justify-content:center;padding:20px 0 0;order:-1}.hero-logo{width:200px}.hero-body{padding:12px 20px 24px}.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.hero-logo{width:160px}.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.study-book-drawer{position:fixed;top:0;right:0;width:420px;max-width:92vw;height:100vh;background:var(--surface-strong);box-shadow:-6px 0 32px #0000002e;display:flex;flex-direction:column;z-index:900;transform:translate(110%);transition:transform .28s cubic-bezier(.4,0,.2,1);will-change:transform;overflow:hidden}.study-book-drawer[data-open=true]{transform:translate(0)}.sb-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000061;z-index:899;display:none;cursor:pointer}body.sb-split-mode #app{margin-right:420px;transition:margin-right .28s cubic-bezier(.4,0,.2,1)}.sb-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 12px 18px;border-bottom:1px solid var(--line);background:var(--surface-alt);flex-shrink:0;gap:10px}.sb-title{font-weight:700;font-size:.95rem;color:var(--teal, #3d9ea5);white-space:nowrap}.sb-header-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sb-close,.sb-split-btn{background:none;border:none;cursor:pointer;font-size:1rem;line-height:1;color:var(--muted);padding:4px 7px;border-radius:6px;transition:background .14s ease,color .14s ease}.sb-close:hover,.sb-split-btn:hover{background:var(--surface-accent);color:var(--teal, #3d9ea5)}.sb-file-tabs{display:flex;gap:4px;flex-wrap:wrap}.sb-file-tab{background:none;border:1px solid var(--line);border-radius:6px;padding:3px 9px;font-size:.78rem;cursor:pointer;color:var(--muted);transition:background .14s ease,border-color .14s ease,color .14s ease}.sb-file-tab:hover{background:var(--surface-accent);border-color:var(--teal, #3d9ea5)}.sb-file-tab.active{background:var(--surface-accent);border-color:var(--teal, #3d9ea5);color:var(--teal, #3d9ea5);font-weight:600}.sb-search-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--line);flex-shrink:0;background:var(--surface)}.sb-search-input{flex:1;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface-strong);font-size:.88rem;color:inherit;transition:border-color .15s ease,box-shadow .15s ease;min-width:0}.sb-search-input:focus{outline:none;border-color:var(--teal, #3d9ea5);box-shadow:0 0 0 3px #3d9ea526}.sb-search-count{font-size:.78rem;color:var(--muted);white-space:nowrap;flex-shrink:0}.sb-inner{display:flex;flex:1;overflow:hidden}.sb-toc{width:158px;flex-shrink:0;overflow-y:auto;padding:14px 8px 14px 12px;border-right:1px solid var(--line);font-size:.8rem;background:var(--surface-alt)}.sb-toc-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}.sb-toc-list{list-style:none;margin:0;padding:0}.sb-toc-h1>a,.sb-toc-h2>a,.sb-toc-h3>a{display:block;padding:3px 6px;border-radius:5px;text-decoration:none;color:var(--muted);transition:background .12s ease,color .12s ease;line-height:1.4}.sb-toc-h1>a{font-weight:600}.sb-toc-h2>a{padding-left:14px}.sb-toc-h3>a{padding-left:22px;font-size:.76rem}.sb-toc-h1>a:hover,.sb-toc-h2>a:hover,.sb-toc-h3>a:hover{background:var(--surface-accent);color:var(--teal, #3d9ea5)}.sb-toc-active>a{color:var(--teal, #3d9ea5);font-weight:700;background:var(--surface-accent)}.sb-content{flex:1;overflow-y:auto;padding:20px 22px 40px;scroll-behavior:smooth;line-height:1.75;font-size:.93rem}.sb-content h1,.sb-content h2,.sb-content h3,.sb-content h4{font-family:var(--font-display, Georgia, serif);color:var(--text-heading, #2a2219);margin:1.4em 0 .5em;line-height:1.3}.sb-content h1{font-size:1.4rem}.sb-content h2{font-size:1.15rem;border-bottom:1px solid var(--line);padding-bottom:4px}.sb-content h3{font-size:1.02rem}.sb-content h4{font-size:.95rem}.sb-content p{margin:0 0 .9em;color:var(--text, #2a2219)}.sb-content ul,.sb-content ol{padding-left:1.4em;margin:0 0 .9em}.sb-content li{margin-bottom:.3em}.sb-content blockquote{border-left:3px solid var(--teal, #3d9ea5);margin:0 0 .9em;padding:6px 12px;color:var(--muted);background:var(--surface-accent);border-radius:0 6px 6px 0}.sb-content table{border-collapse:collapse;width:100%;overflow-x:auto;display:block;font-size:.88rem;margin-bottom:1em}.sb-content th,.sb-content td{border:1px solid var(--line);padding:6px 10px;text-align:left}.sb-content th{background:var(--surface-alt);font-weight:600}.sb-content tr:nth-child(2n) td{background:var(--surface-accent)}.sb-content code{background:var(--surface-alt);padding:1px 5px;border-radius:4px;font-size:.88em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sb-content pre{background:var(--surface-alt);border:1px solid var(--line);border-radius:8px;padding:14px 16px;overflow-x:auto;margin-bottom:1em}.sb-content pre code{background:none;padding:0;font-size:.87rem;display:block}.sb-content hr{border:none;border-top:1px solid var(--line);margin:1.5em 0}.sb-content a{color:var(--teal, #3d9ea5);text-decoration:underline}.sb-anchor-flash{animation:sb-flash 1.6s ease-out;border-radius:4px}@keyframes sb-flash{0%{background:#3d9ea540}to{background:transparent}}mark.sb-highlight{background:#f7b61466;color:inherit;border-radius:2px;padding:0 1px}mark.sb-highlight-active{background:#e8841ab3;outline:2px solid rgba(232,132,26,.9);border-radius:2px}.sb-search-nav{background:none;border:1px solid var(--line);border-radius:5px;padding:2px 7px;cursor:pointer;font-size:.85rem;color:var(--muted);line-height:1;transition:background .12s ease,border-color .12s ease,color .12s ease;flex-shrink:0}.sb-search-nav:hover{background:var(--surface-accent);border-color:var(--teal, #3d9ea5);color:var(--teal, #3d9ea5)}.sb-search-none{color:var(--color-error, #c04e36);font-size:.78rem}.sb-resize-handle{position:absolute;left:0;top:0;width:5px;height:100%;cursor:ew-resize;background:transparent;transition:background .14s ease;z-index:1}.sb-resize-handle:hover{background:#3d9ea54d}.sb-trigger{font-size:.85rem}.sb-trigger-sm{font-size:.78rem;padding:3px 9px}@media(max-width:720px){.study-book-drawer{top:auto;bottom:0;right:0;left:0;width:100%;max-width:100%;height:82vh;border-radius:16px 16px 0 0;transform:translateY(110%);box-shadow:0 -6px 32px #00000038}.study-book-drawer[data-open=true]{transform:translateY(0)}.study-book-drawer[data-open=true]+.sb-scrim{display:block}.sb-toc,.sb-resize-handle{display:none}body.sb-split-mode #app{margin-right:0}}@media(min-width:721px){body:not(.sb-split-mode) .study-book-drawer[data-open=true]+.sb-scrim{display:block}}@media(prefers-color-scheme:dark){.study-book-drawer{box-shadow:-6px 0 32px #0000007a}.sb-content th{background:var(--surface-alt)}}
