@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:wght@400;500;600;700&family=Caveat:wght@500;700&display=swap');*,*::before,*::after{box-sizing:border-box}html,body,h1,h2,h3,h4,h5,h6,p,blockquote,figure,ul,ol,dl,dd{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:clamp(15px,1vw + 12px,17px);}:root{--paper-bg:#fbfbf7;--paper-bg-deep:#f4f4ef;--card:#ffffff;--card-shadow:rgba(30,27,75,0.06);--card-shadow-hover:rgba(30,27,75,0.12);--accent:#4338ca;--accent-deep:#312e81;--accent-soft:#e0e7ff;--accent-paper:#eef0fb;--accent-rgb:67,56,202;--highlight:#f59e0b;--highlight-soft:#fef3c7;--highlight-rgb:245,158,11;--ink:#1a1a2e;--ink-soft:#3f3f5e;--ink-mute:#71718d;--ink-rule:#d1d5e0;--success:#047857;--success-bg:#ecfdf5;--success-border:#86efac;--error:#b91c1c;--error-bg:#fef2f2;--error-border:#fca5a5;--warning:#ea7d3e;--warning-bg:#fff4e6;--warning-border:#ffc285;--info:#0d9488;--info-bg:#ecfeff;--info-border:#99f6e4;--tip-bg:#fef3c7;--tip-border:#fcd34d;--radius-sm:8px;--radius:12px;--radius-lg:14px;--shadow-paper:0 1px 1px var(--card-shadow),0 6px 14px var(--card-shadow);--shadow-paper-lg:0 2px 4px var(--card-shadow-hover),0 18px 36px var(--card-shadow-hover);--shadow-focus:0 0 0 3px rgba(var(--accent-rgb),.22);--font-serif:'Lora',Georgia,'Times New Roman',serif;--font-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-hand:'Caveat','Brush Script MT',cursive;}body{font-family:var(--font-sans);color:var(--ink);line-height:1.65;font-size:1rem;background:var(--paper-bg);background-image:radial-gradient(circle at 18% 22%,rgba(67,56,202,.04),transparent 60%),radial-gradient(circle at 78% 78%,rgba(67,56,202,.03),transparent 55%),linear-gradient(180deg,rgba(245,239,224,.5),transparent 200px);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;}img,svg{display:block;max-width:100%}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}a{color:var(--accent-deep);text-decoration:underline;text-decoration-color:rgba(var(--accent-rgb),.35);text-underline-offset:3px;text-decoration-thickness:1.5px;font-weight:500}a:hover{color:var(--accent);text-decoration-color:currentColor}.app-header{background:transparent;padding:22px 32px 18px;padding-left:max(32px,env(safe-area-inset-left));padding-right:max(32px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;border-bottom:1px dashed rgba(var(--accent-rgb),.3);}.brand{font-family:var(--font-serif);font-size:1.4rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;text-decoration:none;line-height:1;}.brand:hover{text-decoration:none;}.brand-dot{color:var(--accent);}.subject{font-family:var(--font-hand);font-size:1.5rem;font-weight:600;color:var(--accent-deep);padding:6px 18px;background:var(--card);border-radius:999px;border:1px solid rgba(var(--accent-rgb),.25);box-shadow:var(--shadow-paper);line-height:1.2;transform:rotate(-1deg);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}@media (max-width:768px){.app-header{padding:14px 16px 12px;gap:10px;}.brand{font-size:1.2rem;}.subject{display:none;}}@media (max-width:480px){.app-header{flex-direction:row;align-items:center;padding:10px 14px 8px;gap:8px;flex-wrap:nowrap;}.brand{font-size:1.1rem;flex-shrink:0;}.subject{font-size:clamp(.62rem,2.6vw,.88rem);padding:3px 10px;transform:none;white-space:nowrap;line-height:1.2;border-radius:999px;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:0;max-width:60vw;}}@media (max-width:360px){.app-header{gap:6px;padding:8px 12px 6px;}.brand{font-size:1rem;}.subject{font-size:clamp(.58rem,2.4vw,.78rem);padding:3px 8px;}}.tabs{display:flex;padding:0 32px;position:sticky;top:0;z-index:50;background:var(--paper-bg);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}.tabs::-webkit-scrollbar{display:none;}.tab{padding:14px 24px;font-family:var(--font-hand);font-size:1.4rem;font-weight:700;letter-spacing:0;color:var(--ink-mute);border-bottom:3px solid rgba(var(--accent-rgb),.25);transition:color .15s,border-color .15s,transform .12s;display:flex;align-items:center;gap:8px;min-height:44px;flex-shrink:0;white-space:nowrap;}@media (max-width:768px){.tabs{padding:0 12px;gap:4px;}.tab{padding:11px 14px;font-size:1.25rem;gap:6px;}.tab-icon{width:18px;height:18px;}}@media (max-width:480px){.tabs{padding:0 8px;gap:2px;}.tab{padding:11px 10px;min-height:44px;flex:1;justify-content:center;font-size:1.15rem;}.tab-icon{width:18px;height:18px;}}@media (max-width:360px){.tabs{padding:0 4px;}.tab{padding:11px 6px;font-size:1.05rem;}.tab span{font-size:0;opacity:0;width:0;}.tab-icon{width:22px;height:22px;}}.tab:hover{color:var(--accent-deep);transform:translateY(-1px);}.tab.active{color:var(--accent-deep);font-weight:700;border-bottom-color:var(--accent);}.tab-icon{width:20px;height:20px;flex-shrink:0;color:currentColor;transition:transform .2s cubic-bezier(.34,1.56,.64,1);}.tab.active .tab-icon{color:var(--accent);}.tab:hover .tab-icon{transform:scale(1.08);}.tab[data-tab="exercises"],.tab[data-tab="flashcards"]{position:relative;}.tab[data-tab="exercises"]:not(.active)::after,.tab[data-tab="flashcards"]:not(.active)::after{content:'';position:absolute;top:9px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(var(--accent-rgb),.6);animation:tab-attention 1.8s ease-in-out infinite;}@keyframes tab-attention{0%,100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.55);}50%{box-shadow:0 0 0 6px rgba(var(--accent-rgb),0);}}.tab[data-tab="flashcards"]:not(.active)::after{animation-delay:.6s;}@media (prefers-reduced-motion:reduce){.tab[data-tab="exercises"]:not(.active)::after,.tab[data-tab="flashcards"]:not(.active)::after,.tab-icon{animation:none;transition:none;}}main{max-width:760px;margin:0 auto;padding:40px 24px 80px;}.module{display:none}.module.active{display:block;animation:paperin .3s ease-out both;}@media (max-width:480px){main{padding:20px 14px 60px;}}@media (max-width:768px){.module.active{animation:none;opacity:1;transform:none;}}@media (max-width:768px){main{padding:28px 16px 72px;}body{background-attachment:scroll;background-image:none;min-height:100svh;}.card{content-visibility:auto;contain-intrinsic-size:auto 720px;}}@media (min-width:1320px){main{max-width:none;padding-left:0;padding-right:0;}#module-material.active{display:grid;grid-template-columns:1fr 760px 1fr;align-items:start;}#module-material.active>*:not(.toc){grid-column:2;padding-left:24px;padding-right:24px;}#module-material>.toc{grid-column:3;grid-row:1 / span 999;justify-self:start;position:sticky;top:80px;width:240px;max-width:calc(100% - 56px);margin:8px 0 0 32px;max-height:calc(100vh - 100px);overflow-y:auto;padding:12px 14px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 18px rgba(var(--accent-rgb),.06);}#module-material>.toc + *{margin-top:0;}#module-material>.toc::-webkit-scrollbar{width:6px;}#module-material>.toc::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}#module-material>.toc::-webkit-scrollbar-thumb:hover{background:var(--ink-rule);}#module-exercises.active{max-width:760px;margin:0 auto;padding-left:24px;padding-right:24px;}}@keyframes paperin{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}@keyframes paperfade{from{opacity:0;}to{opacity:1;}}#module-material.active{animation-name:paperfade;}.hidden{display:none!important}.toc{background:transparent;border:none;border-radius:0;padding:8px 0 12px;margin-bottom:18px;box-shadow:none;position:relative;transform:none;}.toc + .card{margin-top:0;}.toc::before{content:none;}.toc-title{display:none;}.toc-heading{display:none;}button.toc-heading.toc-toggle{background:transparent;border:none;cursor:pointer;padding:0;align-items:center;gap:8px;}.toc-toggle-icon{width:14px;height:14px;opacity:0;display:none;transition:transform .2s;}@media (max-width:768px){.toc-bookmarks{display:none !important;}.toc:not(.collapsed)>.toc-heading.toc-toggle{display:flex;justify-content:center;align-items:center;width:100%;padding:2px;margin:0 0 6px;cursor:pointer;color:var(--ink-rule);}.toc:not(.collapsed)>.toc-heading.toc-toggle:hover{color:var(--accent);}.toc-toggle-icon{display:inline-block;opacity:1;width:18px;height:18px;transform:rotate(180deg);}.toc.collapsed>.toc-heading.toc-toggle{display:none;}.toc.collapsed .toc-list{flex-direction:row;flex-wrap:wrap;gap:12px;cursor:pointer;padding:2px;}.toc.collapsed .toc-item::after{display:none;}.toc.collapsed .toc-item{flex:0 0 auto;}.toc.collapsed .toc-top{min-height:0;padding:0;width:auto;}.toc.collapsed .toc-top::before{position:static;transform:none;}.toc.collapsed .toc-item-title,.toc.collapsed .toc-lock,.toc.collapsed .toc-chevron,.toc.collapsed .toc-arrow,.toc.collapsed .toc-sub{display:none;}}.toc-list{list-style:none;counter-reset:toc;display:flex;flex-direction:column;gap:2px;padding:2px 0;margin:0;position:relative;}.toc-item:not(:last-child)::after{content:'';position:absolute;left:15px;top:29px;width:2px;height:calc(100% + 2px);background:rgba(var(--accent-rgb),.3);z-index:0;}.toc-item{counter-increment:toc;display:flex;flex-direction:column;position:relative;color:var(--ink);}.toc-top{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:58px;padding:9px 8px 9px 46px;background:none;border:none;border-radius:10px;text-align:left;cursor:pointer;color:inherit;font:inherit;transition:transform .15s,background .15s;}.toc-top:hover .toc-item-title{color:var(--accent);}.toc-top:hover .toc-arrow,.toc-top:hover .toc-chevron{color:var(--accent);}.toc-top::before{content:counter(toc);position:absolute;left:1px;top:29px;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-weight:600;font-size:.95rem;line-height:1;background:var(--accent);color:#fff;border:2px solid var(--accent);box-shadow:var(--shadow-paper);z-index:1;transition:transform .15s,box-shadow .15s;}.toc-item-title{flex:1;min-width:0;font-family:var(--font-serif);font-weight:500;color:var(--ink);letter-spacing:-.005em;transition:color .15s;line-height:1.3;font-size:.92rem;overflow-wrap:anywhere;}.toc-chevron{width:16px;height:16px;flex-shrink:0;color:var(--ink-mute);transition:transform .2s,color .15s;}.toc-item.expanded .toc-chevron{transform:rotate(180deg);color:var(--accent);}.toc-sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s ease;}.toc-item.expanded .toc-sub{grid-template-rows:1fr;}.toc-sub-list{list-style:none;margin:0;padding:0 0 6px 46px;min-height:0;overflow:hidden;}.toc-sub-item{padding:0;}.toc-sub-btn{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:5px 8px 5px 14px;border-left:2px solid var(--border);color:var(--ink-soft);font-family:var(--font-sans);font-weight:500;font-size:.8rem;line-height:1.4;letter-spacing:-.005em;transition:color .12s,border-color .12s,padding .12s;}.toc-sub-btn:hover{color:var(--accent);border-left-color:var(--accent);}.toc-sub-l3 .toc-sub-btn{padding-left:22px;}.toc-sub-l4 .toc-sub-btn{padding-left:30px;color:var(--ink-mute);}.toc-item.locked .toc-top{cursor:not-allowed;}.toc-item.locked .toc-top:hover{transform:none;background:transparent;}.toc-item.locked .toc-item-title{color:var(--ink-mute);}.toc-item.locked .toc-top:hover .toc-item-title{color:var(--ink-mute);}.toc-item.locked .toc-top::before{background:var(--card);color:var(--ink-mute);border-color:var(--border);box-shadow:var(--shadow-paper);}.toc-item.locked .toc-top:hover::before{transform:translateY(-50%);box-shadow:none;}.toc-lock{width:20px;height:20px;flex-shrink:0;color:var(--accent);}.toc-arrow{width:18px;height:18px;flex-shrink:0;color:var(--accent);opacity:0;transition:opacity .15s,transform .15s;}.toc-top:hover .toc-arrow{opacity:1;}.toc-item .icon{display:none;}.toc-weight{display:none;}.card{background:var(--card);border-radius:var(--radius-lg);padding:40px 40px 32px;margin-bottom:28px;box-shadow:var(--shadow-paper);scroll-margin-top:90px;position:relative;border:1px solid rgba(0,0,0,.04);}.card:hover{box-shadow:var(--shadow-paper-lg);}.card h2.section-h2{font-family:var(--font-serif);font-size:1.85rem;font-weight:700;margin-bottom:22px;color:var(--ink);letter-spacing:-.015em;line-height:1.25;position:relative;padding-bottom:12px;}.card h2.section-h2::after{content:'';position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(to right,var(--accent) 0,var(--accent) 40%,rgba(var(--accent-rgb),.35) 65%,rgba(var(--accent-rgb),0) 75%);border-radius:3px;}.card h2{font-family:var(--font-serif);font-size:1.55rem;font-weight:700;color:var(--ink);letter-spacing:-.012em;line-height:1.3;margin:32px 0 14px;}.card h3{font-family:var(--font-serif);font-size:1.35rem;font-weight:600;color:var(--accent-deep);margin:26px 0 12px;letter-spacing:-.005em;}.card h4{font-family:var(--font-serif);font-size:1.1rem;font-weight:600;margin:18px 0 8px;color:var(--ink-soft);}.card p{margin-bottom:14px;color:var(--ink);}.card p:last-child{margin-bottom:0;}.card strong{color:var(--ink);font-weight:600;background:linear-gradient(transparent 62%,rgba(var(--highlight-rgb),.35) 62%);padding:0 2px;}.card em{color:var(--ink-soft);}.card code,.exercise-card code{font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:.9em;background:var(--accent-paper);padding:1px 6px;border-radius:4px;color:var(--accent-deep);line-height:1;}.card ul,.card ol{margin:8px 0 14px 8px;padding-left:24px;}.card li{margin-bottom:6px;padding-left:6px;}.card>*:first-child{margin-top:0;}.card li::marker{color:var(--accent);font-weight:700;}.card .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:20px 0;border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:0 1px 2px rgba(30,27,75,.04);}.card .table-figure{margin:20px 0;}.card .table-figure .table-wrap{margin:0;}.card table{width:100%;border-collapse:separate;border-spacing:0;margin:0;font-size:.95rem;font-family:var(--font-sans);font-variant-numeric:tabular-nums;background:#fff;table-layout:auto;}@media (max-width:600px){.card table{font-size:.82rem;}.card th{padding:8px 10px;font-size:.68rem;}.card td{padding:8px 10px;}}.card th{background:var(--accent);color:#fff;padding:14px 18px;text-align:left;font-family:var(--font-sans);font-weight:600;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;border-bottom:none;word-wrap:break-word;overflow-wrap:break-word;}.card th:not(:last-child){border-right:1px solid rgba(255,255,255,.18);}.card td{padding:13px 18px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--ink);line-height:1.45;word-wrap:break-word;overflow-wrap:break-word;}.card td:not(:last-child){border-right:1px solid var(--border);}.card tr:last-child td{border-bottom:none;}.card tr:nth-child(even) td{background:var(--paper-bg);}.card tbody tr:hover td{background:var(--accent-soft);}.card table caption{caption-side:top;font-family:var(--font-serif);font-style:italic;font-size:.92rem;color:var(--ink-mute);text-align:left;padding:0 0 8px;}.locked-overlay{padding:56px 24px;text-align:center;color:var(--ink-mute);}.locked-overlay svg{width:44px;height:44px;margin:0 auto 16px;color:var(--accent);opacity:.5;}.locked-overlay p{font-family:var(--font-hand);font-size:1.3rem;max-width:380px;margin:0 auto;color:var(--accent-deep);}.material-paywall{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-deep) 100%);color:#fff;border-radius:var(--radius-lg);padding:44px 36px 40px;margin:14px 0 67px;text-align:center;box-shadow:0 8px 28px rgba(var(--accent-rgb),.25);position:relative;overflow:hidden;animation:paywall-glow 4s ease-in-out infinite;}@keyframes paywall-glow{0%,100%{box-shadow:0 8px 28px rgba(var(--accent-rgb),.25);}50%{box-shadow:0 14px 44px rgba(var(--accent-rgb),.42);}}.material-paywall::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(255,255,255,.18),transparent 60%),radial-gradient(circle at bottom left,rgba(255,255,255,.1),transparent 50%);pointer-events:none;}.material-paywall::after{content:'';position:absolute;top:-50%;left:-60%;width:50%;height:200%;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.22) 50%,transparent 100%);transform:skewX(-18deg);pointer-events:none;animation:paywall-shimmer 4.5s ease-in-out infinite;}@keyframes paywall-shimmer{0%{left:-60%;}60%{left:130%;}100%{left:130%;}}.material-paywall>*{position:relative;z-index:1;}.material-paywall-eyebrow{font-family:var(--font-sans);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:8px;}.material-paywall-title-main{font-family:var(--font-serif);font-size:1.7rem;font-weight:700;letter-spacing:-.01em;margin-bottom:24px;color:#fff;line-height:1.2;}.material-paywall-sub{font-family:var(--font-serif);font-size:1.32rem;font-weight:500;color:#fff;margin:0 auto 28px;max-width:520px;line-height:1.55;letter-spacing:-.005em;}.material-paywall-sub strong{font-weight:700;color:#fff;}.material-paywall-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:10px;vertical-align:-7px;color:#fff;animation:paywall-sparkle 2.4s ease-in-out infinite;}.material-paywall-icon svg{width:100%;height:100%;}@keyframes paywall-sparkle{0%,100%{transform:scale(1) rotate(0deg);opacity:.85;}50%{transform:scale(1.18) rotate(12deg);opacity:1;}}.material-paywall-lead{color:rgba(255,255,255,.9);}.material-paywall-cta{display:inline-block;background:#fff;color:var(--accent-deep);padding:15px 34px;border-radius:999px;font-family:var(--font-sans);font-weight:700;font-size:1.02rem;text-decoration:none;box-shadow:0 4px 12px rgba(0,0,0,.18),0 0 0 0 rgba(255,255,255,.7);transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;letter-spacing:.01em;position:relative;animation:cta-pulse 2.2s ease-in-out infinite;}@keyframes cta-pulse{0%,100%{transform:translateY(0) scale(1);box-shadow:0 4px 12px rgba(0,0,0,.18),0 0 0 0 rgba(255,255,255,.7);}50%{transform:translateY(-3px) scale(1.03);box-shadow:0 10px 22px rgba(0,0,0,.28),0 0 0 8px rgba(255,255,255,0);}}.material-paywall-cta:hover{transform:translateY(-4px) scale(1.06);box-shadow:0 14px 30px rgba(0,0,0,.32),0 0 0 4px rgba(255,255,255,.4);text-decoration:none;animation:none;}.material-paywall-cta:active{transform:translateY(-1px) scale(1.02);transition-duration:.08s;}.paywall-speed{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:540px;margin:0 auto 26px;text-align:left;}.paywall-speed-opt{position:relative;display:flex;flex-direction:column;gap:3px;padding:16px 18px 14px;background:rgba(255,255,255,.10);border:1.5px solid rgba(255,255,255,.30);border-radius:16px;color:#fff;cursor:pointer;font-family:var(--font-sans);transition:background .2s,border-color .2s,transform .2s,box-shadow .2s;}.paywall-speed-opt:hover{background:rgba(255,255,255,.17);transform:translateY(-2px);}.paywall-speed-opt.is-selected{background:#fff;border-color:#fff;color:var(--accent-deep);box-shadow:0 8px 22px rgba(0,0,0,.22);}.paywall-speed-opt::after{content:'';position:absolute;top:14px;right:14px;width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.55);transition:border-color .2s,box-shadow .2s;}.paywall-speed-opt.is-selected::after{border-color:var(--accent);box-shadow:inset 0 0 0 4px var(--accent);}.paywall-speed-name{font-family:var(--font-serif);font-size:.98rem;font-weight:700;letter-spacing:.01em;opacity:.95;}.paywall-speed-price{font-family:var(--font-serif);font-size:1.62rem;font-weight:800;letter-spacing:-.01em;line-height:1.1;}.paywall-speed-time{font-size:.8rem;line-height:1.35;opacity:.85;}.paywall-speed-badge{position:absolute;top:-12px;left:14px;background:#ffd166;color:#4a3200;font-family:var(--font-serif);font-size:.74rem;font-weight:700;letter-spacing:.015em;padding:3px 11px;border-radius:999px;box-shadow:0 3px 8px rgba(0,0,0,.25);}.paywall-speed--mini{max-width:430px;gap:10px;margin:4px auto 8px;}.paywall-speed--mini .paywall-speed-opt{flex-direction:row;align-items:baseline;justify-content:center;gap:9px;padding:11px 12px;border-radius:12px;}.paywall-speed--mini .paywall-speed-opt::after{display:none;}.paywall-speed--mini .paywall-speed-name{font-size:.8rem;}.paywall-speed--mini .paywall-speed-price{font-size:.98rem;}.paywall-speed--mini .paywall-speed-badge{display:none;}.tutor-upsell .paywall-speed--mini{flex-basis:100%;max-width:none;margin:8px 0 0;gap:8px;}.tutor-upsell .paywall-speed--mini .paywall-speed-opt{padding:8px 10px;}@media (max-width:600px){.fc-card .fc-cta-face{padding:16px 12px !important;gap:8px;justify-content:center;}.fc-cta-face .fc-cta-title{font-size:1.08rem;line-height:1.3;}.fc-cta-face .fc-cta-btn{padding:9px 20px;font-size:.9rem;}.fc-cta-face .paywall-speed--mini{margin:2px auto 2px;gap:8px;width:100%;max-width:290px;}.fc-cta-face .paywall-speed--mini .paywall-speed-opt{padding:7px 6px;}}@media (max-width:600px){.paywall-speed{grid-template-columns:1fr;gap:14px;}.paywall-speed-opt{flex-direction:row;align-items:baseline;flex-wrap:wrap;column-gap:10px;}.paywall-speed-time{flex-basis:100%;}.paywall-speed--mini{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}.paywall-speed--mini .paywall-speed-opt{flex-direction:column;align-items:center;gap:1px;padding:9px 6px;}.paywall-speed--mini .paywall-speed-name{font-size:.74rem;}.paywall-speed--mini .paywall-speed-price{font-size:.92rem;}}.reviews-block{margin:30px 0 16px;}.reviews-tp{max-width:360px;margin:0 auto 24px;min-height:52px;}.reviews-tp iframe{opacity:0;animation:tp-fade-in .4s ease .05s forwards;}@keyframes tp-fade-in{to{opacity:1;}}.reviews-head{font-family:var(--font-serif);font-size:1.18rem;font-weight:700;text-align:center;letter-spacing:-.01em;color:var(--ink);margin:0 0 18px;}.reviews-viewport{overflow:hidden;}.reviews-track{display:flex;gap:20px;will-change:transform;align-items:stretch;}.review-card{flex:0 0 calc((100% - 20px) / 2);box-sizing:border-box;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-paper);padding:24px 24px 26px;height:248px;display:flex;flex-direction:column;}.review-card .stars{display:inline-flex;gap:2px;color:#f6b400;line-height:0;margin-bottom:13px;}.review-card .stars svg{width:18px;height:18px;transform-origin:center;animation:review-star-twinkle 4s ease-in-out infinite;animation-delay:calc(var(--si,0) * .16s);}@keyframes review-star-twinkle{0%,64%,100%{transform:scale(1);filter:none;}72%{transform:scale(1.3) rotate(-6deg);filter:drop-shadow(0 0 5px rgba(246,180,0,.75));}80%{transform:scale(1);}}.review-title{font-family:var(--font-serif);font-size:1.14rem;font-weight:700;color:var(--ink);margin:0 0 8px;letter-spacing:-.005em;}.review-text{font-family:var(--font-sans);font-size:.95rem;line-height:1.7;color:var(--ink-mute);margin:0;flex:1 1 auto;min-height:0;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;}.review-author{font-family:var(--font-sans);font-size:.85rem;flex-shrink:0;font-weight:600;color:var(--ink);margin:14px 0 0;}@media (max-width:600px){.reviews-track{gap:14px;}.review-card{flex-basis:100%;}.reviews-head{font-size:1.08rem;}}@media (prefers-reduced-motion:reduce){.review-card .stars svg{animation:none;}}@media (prefers-reduced-motion:reduce){.material-paywall,.material-paywall::after,.material-paywall-cta{animation:none;}}.formula-block{background:transparent;padding:14px 0;margin:24px 0;text-align:center;border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:relative;}.formula-block .formula-math,.formula-block>mjx-container{display:block;margin:0 auto;font-size:1.15em;}.formula-legend{display:block;text-align:center;font-size:.85rem;color:var(--ink-mute);margin-top:12px;font-style:italic;font-family:var(--font-serif);letter-spacing:.01em;max-width:520px;margin-left:auto;margin-right:auto;}.formula-example{position:relative;padding:12px 16px;margin:20px auto 0;font-size:.98rem;line-height:1.5;font-family:var(--font-serif);color:var(--ink);background:var(--info-bg);border:1px solid rgba(13,148,136,.22);border-radius:12px;box-shadow:var(--shadow-paper);max-width:640px;width:100%;box-sizing:border-box;text-align:left;}mjx-container{color:inherit;}mjx-container[jax="CHTML"][display="true"]{display:block !important;text-align:center;margin:16px 0 !important;overflow-x:auto;overflow-y:hidden;padding:4px 0;max-width:100%;}mjx-container[jax="CHTML"]:not([display="true"]){display:inline-block;vertical-align:-0.05ex;}.toc-item.locked mjx-container,.locked-overlay mjx-container{color:var(--ink-mute);}.diagram-wrap{text-align:center;margin:26px 0;padding:20px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;}.diagram-wrap svg{margin:0 auto;max-width:100%;height:auto;color:var(--accent);}.diagram-image{display:block;margin:0 auto;max-width:100%;height:auto;border-radius:8px;}.diagram-caption{font-family:var(--font-serif);font-style:italic;font-size:.92rem;color:var(--ink-mute);margin-top:14px;}@media (max-width:600px){.diagram-wrap{padding:12px 10px;margin:18px -4px;border-radius:var(--radius);}.diagram-caption{font-size:.85rem;}}.chart-box{position:relative;width:100%;height:320px;margin:0 auto;}@media (min-width:600px){.chart-box{height:360px;}}.mathplot-box{position:relative;width:100%;max-width:560px;margin:16px auto;}.mathplot-box[data-aspect="16:9"]{max-width:760px;}.mathplot-box[data-aspect="4:3"]{max-width:640px;}.mathplot-container{width:100%;aspect-ratio:1 / 1;background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden;}.mathplot-box[data-aspect="16:9"] .mathplot-container{aspect-ratio:16 / 9;}.mathplot-box[data-aspect="4:3"] .mathplot-container{aspect-ratio:4 / 3;}.mathplot-container.jxgbox{min-width:0 !important;}.mathplot-container svg{max-width:100% !important;height:100% !important;}@media print{.mathplot-container{height:280px;border:1px solid #000;break-inside:avoid;}mjx-container[jax="CHTML"][display="true"],.formula-block,.formula-block .formula-math,.formula-block>mjx-container,.formula-example,.diagram-wrap{overflow:visible !important;break-inside:avoid;}}.key-concepts{background:linear-gradient(135deg,var(--accent-soft),var(--accent-paper));border:1.5px solid rgba(var(--accent-rgb),.35);border-radius:var(--radius);padding:20px 24px;margin-top:24px;position:relative;}.key-concepts::before{content:'';position:absolute;top:-10px;right:24px;width:50px;height:22px;background:var(--accent);border-radius:2px;transform:rotate(3deg);box-shadow:0 1px 3px rgba(0,0,0,.1);}.key-concepts-title{font-family:var(--font-hand);font-size:1.4rem;font-weight:700;color:var(--accent-deep);margin-bottom:12px;display:flex;align-items:center;gap:8px;}.key-concepts-title::before{content:'★';font-size:1.1rem;color:var(--accent);}.key-concepts ul{list-style:none;padding:0;margin:0;}.key-concepts li{padding:5px 0 5px 24px;position:relative;margin-bottom:4px;font-size:.98rem;}.key-concepts li::before{content:'✓';position:absolute;left:4px;top:5px;color:var(--accent);font-weight:700;}.callout{display:flex;gap:10px;align-items:center;width:100%;box-sizing:border-box;padding:12px 16px;margin:20px 0;font-size:.98rem;line-height:1.5;font-family:var(--font-serif);color:var(--ink);border:1px solid transparent;border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.04);position:relative;}.callout::before{content:none;}.callout-icon{flex-shrink:0;width:28px;height:28px;}.callout-body{flex:1;min-width:0;}.callout-body p{margin:0;}.callout-body p:last-child{margin-bottom:0;}.callout-body strong:first-child{font-family:inherit;font-size:inherit;font-weight:700;background:none !important;padding:0 !important;margin-right:4px;}.callout-note{background:var(--accent-paper);border-color:rgba(var(--accent-rgb),.25);}.callout-note .callout-icon{color:var(--accent-deep);}.callout-warning{background:var(--warning-bg);border-color:rgba(194,65,12,.25);}.callout-warning .callout-icon{color:var(--warning);}.callout-tip{background:var(--success-bg);border-color:rgba(22,101,52,.25);}.callout-tip .callout-icon{color:var(--success);}.progress-bar{background:var(--card);border-radius:var(--radius-lg);padding:16px 24px;margin-bottom:28px;display:flex;align-items:center;gap:18px;box-shadow:var(--shadow-paper);position:sticky;top:56px;z-index:40;border:1px solid rgba(0,0,0,.04);}.progress-track{flex:1;height:10px;background:var(--accent-paper);border-radius:999px;overflow:hidden;border:1px solid rgba(var(--accent-rgb),.15);}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-deep));width:0%;transition:width .5s ease-out;border-radius:999px;}.progress-text{font-family:var(--font-hand);font-size:1.3rem;font-weight:700;color:var(--accent-deep);white-space:nowrap;}.exercise-card{background:var(--card);border-radius:var(--radius-lg);padding:28px 36px 24px;margin-bottom:20px;box-shadow:var(--shadow-paper);scroll-margin-top:90px;transition:box-shadow .2s;border:1px solid rgba(0,0,0,.04);position:relative;overflow:visible;}.exercise-card:hover{box-shadow:var(--shadow-paper-lg);}.exercise-card:focus-within{box-shadow:var(--shadow-paper-lg);}.exercise-meta,.exercise-header{display:flex;align-items:flex-start;justify-content:space-between;margin:0 0 14px;gap:16px;flex-wrap:wrap;padding-bottom:0;position:relative;}.exercise-meta::after,.exercise-header::after{content:'';position:absolute;left:0;bottom:-3px;width:100%;height:3px;background:linear-gradient(to right,var(--accent) 0,var(--accent) 30%,rgba(var(--accent-rgb),.35) 55%,rgba(var(--accent-rgb),0) 70%);border-radius:2px;}.exercise-number{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1.25;display:inline-flex;align-items:center;gap:10px;}.exercise-number::before{content:'✎';color:var(--accent);font-size:1.15rem;transform:rotate(-12deg);display:inline-block;}.exercise-points{font-family:var(--font-hand);font-size:1.35rem;font-weight:700;color:var(--accent-deep);background:var(--accent-paper);padding:6px 16px 4px;border-radius:14px 18px 12px 16px;border:1px dashed rgba(var(--accent-rgb),.35);transform:rotate(2.5deg);display:inline-block;box-shadow:0 2px 6px rgba(var(--accent-rgb),.12);white-space:nowrap;align-self:flex-start;}.exercise-scenario{background:transparent;border:none;border-radius:0;padding:0;margin:0 0 16px;font-size:1.05rem;color:var(--ink);line-height:1.6;font-family:var(--font-serif);font-style:normal;}.exercise-scenario strong{color:var(--ink);font-weight:700;background:linear-gradient(transparent 62%,rgba(var(--highlight-rgb),.35) 62%);padding:0 2px;}.exercise-question{margin:0 0 16px;font-size:1.1rem;font-weight:500;line-height:1.55;color:var(--ink);font-family:var(--font-serif);}.exercise-question strong{color:var(--accent-deep);font-weight:700;background:linear-gradient(transparent 62%,rgba(var(--highlight-rgb),.35) 62%);padding:0 2px;}.exercise-options{display:flex;flex-direction:column;gap:3px;margin:0 0 18px;}.exercise-options:has(.option .diagram-wrap){display:grid;grid-template-columns:1fr 1fr;gap:10px;}.exercise-options:has(.option .diagram-wrap) .option{flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px;text-align:left;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap{flex-basis:100%;margin:6px 0 0;max-width:100%;width:100%;color:var(--accent-deep);}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap svg,.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap .diagram-image,.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap img{max-height:130px;max-width:100%;width:auto;height:auto;margin:0 auto;display:block;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap .chart-box{width:200px !important;height:200px !important;max-width:200px !important;max-height:200px !important;margin:0 auto !important;position:relative;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap .chart-box canvas{max-width:200px !important;max-height:200px !important;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap .mathplot-box{width:230px !important;max-width:230px !important;margin:0 auto !important;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap .mathplot-container{width:230px !important;height:230px !important;aspect-ratio:auto !important;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap .mathplot-container svg{max-height:none !important;width:100% !important;height:100% !important;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap .mathplot-container,.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap .mathplot-container *{pointer-events:none !important;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap{display:flex;align-items:center;justify-content:center;min-height:70px;}.option{display:flex;align-items:center;gap:12px;padding:10px 14px;min-height:44px;border:1.5px solid var(--border);border-radius:9px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;font-family:var(--font-serif);font-size:.98rem;line-height:1.45;background:var(--card);user-select:none;position:relative;color:var(--ink);}.option:hover{border-color:var(--accent);background:var(--accent-paper);box-shadow:0 2px 8px rgba(var(--accent-rgb),.08);}.option:has(input:checked){border-color:var(--accent);background:var(--accent-paper);font-weight:600;}.option input{accent-color:var(--accent);flex-shrink:0;cursor:pointer;}.option.correct,.option.option-correct{background:var(--success-bg);border-color:var(--success);font-weight:600;}.option.correct::after,.option.option-correct::after{content:'✓';margin-left:auto;color:var(--success);font-weight:700;font-size:1.35rem;line-height:1;}.option.incorrect,.option.option-incorrect{background:var(--error-bg);border-color:var(--error);}.option.incorrect::after,.option.option-incorrect::after{content:'✗';margin-left:auto;color:var(--error);font-weight:700;font-size:1.35rem;line-height:1;}.option.option-correct-missed{border-color:var(--accent);border-style:dashed;background:var(--accent-paper);font-style:italic;}.option.option-correct-missed::after{content:'prawidlowa';margin-left:auto;font-family:var(--font-hand);color:var(--accent-deep);font-size:1.05rem;font-style:normal;transform:rotate(-2deg);}.exercise-input{margin:0 0 22px;}.exercise-input textarea,.exercise-input input:not([type=radio]):not([type=checkbox]){width:100%;padding:14px 18px;border:1.5px dashed rgba(var(--accent-rgb),.35);border-radius:var(--radius);font-family:var(--font-serif);font-size:16px;background:var(--card);transition:border-color .15s,box-shadow .15s,background .15s;color:var(--ink);}.exercise-input textarea{min-height:150px;resize:vertical;line-height:1.7;background-image:linear-gradient(to bottom,transparent 0,transparent calc(1.7em - 1px),var(--ink-rule) calc(1.7em - 1px),var(--ink-rule) 1.7em);background-size:100% 1.7em;background-position:0 14px;background-attachment:local;background-color:var(--card);}.exercise-input textarea:not(:placeholder-shown){background-image:none;}.exercise-input input:focus,.exercise-input textarea:focus{outline:none;border-color:var(--accent);background:var(--card);box-shadow:var(--shadow-focus);}.exercise-input textarea:focus:not(:placeholder-shown){background-image:none;}.input-with-unit{display:flex;align-items:center;gap:10px;max-width:min(340px,100%);}.input-with-unit input{flex:1;min-width:0;}@media (max-width:480px){.input-with-unit{max-width:100%;}}.unit-label{color:var(--accent-deep);font-family:var(--font-serif);font-size:1.05rem;font-weight:500;}.exercise-parts{display:flex;flex-direction:column;gap:0;margin:0 0 18px;}.exercise-part{padding:14px 0 14px;background:transparent;border:none;border-radius:0;position:relative;}.exercise-part:first-child{padding-top:4px;}.exercise-part:last-child{padding-bottom:4px;}.exercise-part + .exercise-part{border-top:1px dashed rgba(var(--accent-rgb),.2);}.exercise-part-label{display:inline-block;font-family:var(--font-serif);font-weight:700;color:var(--accent-deep);margin:0 0 4px;font-size:1.02rem;letter-spacing:.02em;}.exercise-part p{margin:0 0 8px;font-size:1rem;font-family:var(--font-serif);line-height:1.55;color:var(--ink);}.exercise-part p:last-of-type{margin-bottom:0;}.exercise-part p strong{color:var(--ink);font-weight:700;background:transparent;padding:0;}.exercise-part input:not([type=radio]):not([type=checkbox]),.exercise-part textarea{width:100%;padding:9px 14px;border:1.5px dashed rgba(var(--accent-rgb),.35);border-radius:8px;font-family:var(--font-serif);font-size:.98rem;background:var(--card);margin-top:8px;color:var(--ink);}.exercise-part input:focus,.exercise-part textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus);}.exercise-part textarea{min-height:72px;resize:vertical;}.exercise-part label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;margin-right:16px;margin-top:6px;font-family:var(--font-serif);}.exercise-part .exercise-options{margin:8px 0 0;}.exercise-part-feedback{margin-top:12px;padding:10px 14px;border-radius:8px;font-size:.95rem;font-weight:500;font-family:var(--font-serif);}.exercise-part-feedback.correct{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border);}.exercise-part-feedback.incorrect{background:var(--error-bg);color:var(--error);border:1px solid var(--error-border);}.exercise-ranking{display:flex;flex-direction:column;gap:0;margin:0 0 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden;}.ranking-item{display:flex;align-items:center;gap:12px;padding:8px 14px;background:transparent;border:none;border-radius:0;transition:background .12s;font-family:var(--font-serif);font-size:.98rem;line-height:1.4;}.ranking-item + .ranking-item{border-top:1px dashed rgba(var(--accent-rgb),.18);}.ranking-item:hover{background:var(--accent-paper);}.ranking-item select{padding:8px 12px;border:1.5px dashed rgba(var(--accent-rgb),.4);border-radius:6px;font-family:var(--font-hand);font-size:16px;background:var(--accent-paper);min-width:56px;min-height:44px;cursor:pointer;font-weight:700;color:var(--accent-deep);text-align:center;text-align-last:center;transform:rotate(-1deg);flex-shrink:0;}.ranking-item select:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus);transform:rotate(0);}.btn-check,.btn-reveal{padding:10px 22px;min-height:44px;border-radius:999px;font-size:.92rem;font-weight:600;cursor:pointer;transition:all .18s ease-out;font-family:var(--font-serif);letter-spacing:.015em;border:2px solid;display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:4px;}.btn-check{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 0 var(--accent-deep),0 4px 12px rgba(var(--accent-rgb),.35);}.btn-check::before{content:'✎';font-size:1.05rem;transform:rotate(-12deg);display:inline-block;}.btn-check:hover{background:var(--accent-deep);border-color:var(--accent-deep);transform:translateY(-2px);box-shadow:0 4px 0 var(--accent-deep),0 8px 18px rgba(var(--accent-rgb),.45);}.btn-check:active{transform:translateY(0);box-shadow:0 1px 0 var(--accent-deep),0 2px 6px rgba(var(--accent-rgb),.3);}.btn-check:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}.exercise-actions-right{display:inline-flex;align-items:center;gap:10px;}.ex-material-ref{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-serif);font-size:.85rem;font-style:italic;color:var(--accent-deep);text-decoration:none;border-bottom:1px dashed rgba(var(--accent-rgb),.35);padding-bottom:1px;white-space:nowrap;}.ex-material-ref:hover{color:var(--accent);border-bottom-color:var(--accent);border-bottom-style:solid;}.ex-material-ref svg{flex-shrink:0;opacity:.7;}.exercise-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;}.btn-retry-ex{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:50%;border:1.5px solid rgba(var(--accent-rgb),.25);background:var(--card);color:var(--accent-deep);cursor:pointer;transition:color .15s,border-color .15s,background .15s,box-shadow .15s,transform .25s;box-shadow:0 1px 2px rgba(0,0,0,.04);}.btn-retry-ex:hover{color:#fff;border-color:var(--accent);background:var(--accent);box-shadow:0 3px 10px rgba(var(--accent-rgb),.35);transform:rotate(-180deg);}.btn-retry-ex:active{transform:rotate(-180deg) scale(.94);}.btn-retry-ex svg{display:block;}.btn-reveal{background:var(--card);color:var(--accent-deep);border-color:var(--accent);border-style:dashed;margin-left:12px;}.btn-reveal:hover{background:var(--accent-paper);border-style:solid;transform:translateY(-1px);}.exercise-feedback{margin:22px 0 0;padding:18px 22px;border-radius:var(--radius);font-size:1rem;line-height:1.65;border:1.5px solid;border-left-width:4px;font-family:var(--font-serif);}.exercise-feedback::before{float:left;font-size:1.5rem;font-weight:700;line-height:1.3;margin-right:12px;}.exercise-feedback.correct{background:var(--success-bg);border-color:var(--success);color:var(--ink);}.exercise-feedback.correct::before{content:'✓';color:var(--success);}.exercise-feedback.incorrect{background:var(--error-bg);border-color:var(--error);color:var(--ink);}.exercise-feedback.incorrect::before{content:'✗';color:var(--error);}.exercise-feedback strong{color:var(--accent-deep);font-weight:700;background:transparent;padding:0;}body.has-exercise-paywall #module-exercises.active .material-paywall{margin-bottom:67px;}body.has-exercise-paywall #module-exercises.active{padding-bottom:12px !important;}body.has-exercise-paywall main{padding-bottom:0 !important;}body.has-exercise-paywall .app-footer{display:none !important;}.exercises-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;flex-wrap:wrap;}.exercises-toolbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0;}.exercises-restart{display:inline-flex;margin:0;}.btn-new-set{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:999px;border:1.5px dashed var(--accent);background:var(--accent-paper);color:var(--accent-deep);font-family:var(--font-hand);font-size:1.15rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;white-space:nowrap;line-height:1.2;}.btn-new-set:hover{background:var(--card);border-style:solid;border-color:var(--accent-deep);box-shadow:0 2px 8px rgba(var(--accent-rgb),.18);}.btn-new-set svg{flex-shrink:0;}.set-tabs{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap;}.set-tab{display:inline-flex;align-items:baseline;gap:5px;padding:3px 12px 3px 11px;border-radius:9px 13px 9px 11px;font-family:var(--font-hand);font-size:1.15rem;font-weight:700;color:var(--ink-mute);background:var(--card);border:1px solid var(--border);text-decoration:none;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,transform .12s;white-space:nowrap;cursor:default;line-height:1.2;}.set-tab-num{font-family:inherit;font-size:inherit;font-weight:700;color:inherit;line-height:inherit;display:inline-block;}.set-tab.active{color:var(--accent-deep);background:var(--accent-paper);border-color:rgba(var(--accent-rgb),.35);font-weight:600;box-shadow:0 2px 8px rgba(var(--accent-rgb),.12);transform:translateY(-1px);}.set-tab.active .set-tab-num{color:var(--accent-deep);}a.set-tab{cursor:pointer;}a.set-tab:hover{color:var(--accent-deep);border-color:rgba(var(--accent-rgb),.35);background:var(--accent-paper);box-shadow:0 2px 6px rgba(var(--accent-rgb),.08);transform:translateY(-1px);}.btn-restart{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:999px;border:1.5px dashed rgba(var(--accent-rgb),.35);background:transparent;color:var(--ink-mute);font-family:var(--font-hand);font-size:1.1rem;font-weight:700;cursor:pointer;transition:color .15s,border-color .15s,background .15s;line-height:1.2;}.btn-restart svg{flex-shrink:0;}.btn-restart:hover{color:var(--accent-deep);border-color:var(--accent);background:var(--accent-paper);}.btn-restart.armed{color:var(--accent-deep);border-color:var(--accent);border-style:solid;background:var(--accent-paper);font-weight:600;animation:restart-pulse .9s ease-in-out infinite;}@keyframes restart-pulse{0%,100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.25);}50%{box-shadow:0 0 0 6px rgba(var(--accent-rgb),0);}}.fill-blanks{font-family:var(--font-serif);font-size:1.08rem;line-height:1.9;color:var(--ink);margin:0 0 18px;}.fill-blanks .fb-text{white-space:pre-wrap;}.fill-blanks .fb-input{display:inline-block;min-width:80px;max-width:200px;padding:3px 10px;margin:0 3px;border:none;border-bottom:1.5px dashed var(--accent);border-radius:0;font-family:var(--font-serif);font-size:1rem;color:var(--accent-deep);background:rgba(var(--accent-rgb),.04);text-align:center;transition:background .15s,border-color .15s;width:auto;}.fill-blanks .fb-input:focus{outline:none;background:var(--accent-paper);border-bottom-color:var(--accent-deep);border-bottom-style:solid;}.fb-ok{color:var(--success) !important;border-bottom-color:var(--success) !important;background:var(--success-bg) !important;}.fb-bad{color:var(--error) !important;border-bottom-color:var(--error) !important;background:var(--error-bg) !important;}.matching{display:flex;flex-direction:column;gap:6px;margin:0 0 18px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}.matching-row{display:flex;align-items:center;gap:12px;padding:10px 16px;font-family:var(--font-serif);font-size:1rem;}.matching-row + .matching-row{border-top:1px dashed rgba(var(--accent-rgb),.18);}.matching-row:hover{background:var(--accent-paper);}.matching-left{flex:1;}.matching-row-with-graphic{display:grid !important;grid-template-columns:200px minmax(220px,320px);gap:16px;align-items:center;}.matching-row-with-graphic .matching-left{flex:none;}.matching-row-with-graphic .matching-select{min-width:0;}.matching-left .mathplot-box{max-width:180px;margin:0;}.matching-left .mathplot-container{border:none;background:transparent;}.matching-left .diagram-wrap{background:transparent;border:none;padding:0;margin:0;}.matching-select{padding:10px 12px;border:1.5px dashed rgba(var(--accent-rgb),.4);border-radius:8px;font-family:var(--font-serif);font-size:16px;background:var(--accent-paper);color:var(--accent-deep);cursor:pointer;min-width:min(200px,100%);min-height:44px;max-width:100%;}@media (max-width:600px){.matching-row{flex-direction:column;align-items:stretch;gap:8px;padding:12px 14px;}.matching-select{min-width:0;width:100%;}}.matching-select:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus);}.matching-select.fb-ok{color:var(--success) !important;border-color:var(--success) !important;background:var(--success-bg) !important;border-style:solid !important;}.matching-select.fb-bad{color:var(--error) !important;border-color:var(--error) !important;background:var(--error-bg) !important;border-style:solid !important;}.chart-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:10px;margin:0 auto 14px;max-width:480px;text-align:center;}.chart-wrap canvas{max-width:100% !important;width:100% !important;height:220px !important;display:block;}.print-answer-key,.print-answer-section{display:none;}.fc-wrap{max-width:760px;margin:0 auto;padding:0 8px;}.fc-head{display:flex;align-items:center;gap:12px;margin:0 0 24px;flex-wrap:nowrap;}.fc-head .btn-new-set,.fc-head .fc-new-set{margin-left:auto;flex-shrink:0;}.fc-head .fc-add-btn{flex-shrink:0;}.fc-modes{display:inline-flex;gap:2px;background:var(--card);border:1px solid var(--border);border-radius:999px;padding:4px;box-shadow:0 1px 3px rgba(0,0,0,.04);flex-shrink:0;}.fc-mode{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:none;background:transparent;color:var(--ink-mute);font-family:var(--font-serif);font-size:.92rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;}.fc-mode svg{flex-shrink:0;opacity:.75;width:15px;height:15px;}.fc-mode:hover{color:var(--accent-deep);background:var(--accent-paper);}.fc-mode.active{background:var(--accent);color:#fff;font-weight:600;}.fc-mode.active svg{opacity:1;}.fc-counter{flex:0 0 auto;font-family:var(--font-hand);font-size:1.3rem;color:var(--accent-deep);line-height:1;padding-left:6px;}.fc-counter strong{color:var(--accent);font-weight:700;font-size:1.7rem;}.fc-counter-sep{color:var(--ink-mute);margin:0 4px;font-weight:400;}.fc-counter:empty{display:none;}@media (max-width:600px){.fc-head{flex-wrap:wrap;}.fc-mode{padding:7px 11px;font-size:.85rem;}.fc-mode span{display:none;}.fc-counter{font-size:1.1rem;}.fc-counter strong{font-size:1.45rem;}}.fc-stage{min-height:480px;margin:0 0 28px;}.fc-list-wrap{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}.fc-list-wrap .fc-list-item{height:220px;}.fc-list-wrap .fc-list-item .fc-face{padding:28px 28px 24px;}.fc-list-wrap .fc-list-item .fc-content{font-size:1.2rem;}.fc-list-wrap .fc-list-item .fc-back .fc-content{font-size:1.3rem;}.fc-list-wrap .fc-list-item .fc-note{font-size:.9rem;margin-top:14px;padding-top:12px;}@media (max-width:600px){.fc-list-wrap{grid-template-columns:1fr;}.fc-list-wrap .fc-list-item{height:200px;}}.fc-flip-wrap{display:flex;flex-direction:column;gap:22px;}.fc-card{position:relative;width:100%;height:420px;perspective:1500px;cursor:pointer;}.fc-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.34,1.2,.64,1);}.fc-card.flipped .fc-card-inner{transform:rotateY(180deg);}.fc-face{position:absolute;inset:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);padding:56px 56px 48px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow-y:auto;}.fc-back{transform:rotateY(180deg);background:var(--accent-paper);}.fc-cat{position:absolute;top:16px;left:22px;font-family:var(--font-hand);font-size:1.2rem;color:var(--accent);transform:rotate(-2deg);font-weight:700;letter-spacing:.01em;}.fc-content{font-family:var(--font-serif);font-size:2rem;line-height:1.35;font-weight:500;color:var(--ink);max-width:100%;}.fc-back .fc-content{font-size:2.2rem;font-weight:600;color:var(--accent-deep);}.fc-content strong{color:var(--accent-deep);font-weight:700;background:linear-gradient(transparent 62%,rgba(var(--highlight-rgb),.4) 62%);padding:0 3px;}.fc-back .fc-content strong{background:transparent;padding:0;}.fc-content code{font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:.88em;background:rgba(var(--accent-rgb),.08);padding:3px 10px;border-radius:6px;color:var(--accent-deep);}.fc-hint{margin-top:22px;font-family:var(--font-hand);font-size:1.3rem;color:var(--accent);opacity:.85;max-width:80%;transform:rotate(-.5deg);}.fc-hint::before{content:'✎ ';opacity:.7;}.fc-note{margin-top:26px;padding-top:18px;border-top:1px dashed rgba(var(--accent-rgb),.25);font-family:var(--font-serif);font-size:1.05rem;line-height:1.65;color:var(--ink-soft);font-weight:400;font-style:normal;max-width:92%;}.fc-flip-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%) rotate(-.5deg);font-family:var(--font-hand);font-size:1.05rem;color:var(--ink-mute);opacity:.6;white-space:nowrap;}.fc-nav{display:flex;align-items:center;justify-content:center;gap:18px;}.fc-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--border);background:var(--card);color:var(--accent-deep);cursor:pointer;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s;}.fc-nav-btn:hover{border-color:var(--accent);background:var(--accent-paper);transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--accent-rgb),.18);}.fc-nav-flip{padding:14px 32px;border-radius:999px;border:2px solid var(--accent);background:var(--accent);color:#fff;font-family:var(--font-serif);font-weight:600;font-size:1.05rem;cursor:pointer;box-shadow:0 3px 0 var(--accent-deep),0 6px 16px rgba(var(--accent-rgb),.35);transition:background .15s,box-shadow .15s,transform .12s;}.fc-nav-flip:hover{background:var(--accent-deep);transform:translateY(-2px);box-shadow:0 5px 0 var(--accent-deep),0 10px 22px rgba(var(--accent-rgb),.45);}.fc-nav-flip:active{transform:translateY(0);}.fc-progress{width:100%;height:8px;background:var(--accent-paper);border-radius:999px;overflow:hidden;}.fc-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-deep));border-radius:999px;transition:width .4s ease-out;}.fc-learn-wrap{display:flex;flex-direction:column;gap:22px;}.fc-learn-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}@media (max-width:600px){.fc-learn-controls{grid-template-columns:1fr 1fr;gap:8px;}}.fc-rate{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 12px;min-height:70px;border:2px solid var(--border);border-radius:14px;background:var(--card);cursor:pointer;transition:all .15s;font-family:var(--font-serif);font-size:1.05rem;font-weight:600;text-align:center;}.fc-rate-key{font-family:var(--font-hand);font-size:1.7rem;font-weight:700;color:var(--ink-mute);line-height:1;margin-bottom:4px;}.fc-rate-label{font-size:1.08rem;font-weight:600;color:var(--ink);}.fc-rate-sub{font-size:.85rem;color:var(--ink-mute);font-style:normal;}.fc-rate:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,.08);}.fc-rate-bad{color:#dc2626;border-color:#fecaca;}.fc-rate-bad:hover{border-color:#dc2626;background:#fef2f2;}.fc-rate-hard{color:#b45309;border-color:#fde68a;}.fc-rate-hard:hover{border-color:#f59e0b;background:#fffbeb;}.fc-rate-good{color:#1d4ed8;border-color:#bfdbfe;}.fc-rate-good:hover{border-color:#3b82f6;background:#eff6ff;}.fc-rate-easy{color:#047857;border-color:#a7f3d0;}.fc-rate-easy:hover{border-color:#10b981;background:#ecfdf5;}.fc-learn-skip{align-self:center;display:inline-flex;align-items:center;justify-content:center;padding:18px 28px;border:2px solid var(--border);border-radius:14px;background:var(--card);color:var(--ink);font-family:var(--font-serif);font-size:1.08rem;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,transform .15s;}.fc-learn-skip:hover{border-color:var(--accent);background:var(--accent-paper);transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,.08);}.fc-done{text-align:center;padding:80px 28px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);}.fc-done-icon{color:#10b981;margin-bottom:22px;display:flex;justify-content:center;}.fc-done-icon svg{width:64px;height:64px;}.fc-done h3{font-family:var(--font-serif);font-size:1.9rem;font-weight:700;color:var(--ink);margin:0 0 14px;}.fc-done p{font-family:var(--font-serif);font-size:1.05rem;line-height:1.6;color:var(--ink-soft);max-width:480px;margin:0 auto 24px;}.fc-done-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 26px;border-radius:999px;border:1.5px dashed var(--accent);background:var(--accent-paper);color:var(--accent-deep);font-family:var(--font-serif);font-weight:600;font-size:1rem;cursor:pointer;transition:background .15s,border-style .15s,box-shadow .15s;}.fc-done-btn:hover{background:var(--card);border-style:solid;box-shadow:0 4px 12px rgba(var(--accent-rgb),.2);}.fc-test-wrap{display:flex;flex-direction:column;gap:18px;}.fc-test-intro{font-family:var(--font-serif);font-size:1.05rem;color:var(--ink-soft);font-style:normal;margin:0 0 4px;text-align:center;}.fc-test-list{display:flex;flex-direction:column;gap:14px;}.fc-test-row{display:flex;gap:12px;align-items:baseline;padding:16px 4px;background:transparent;border:none;border-bottom:1px dashed rgba(var(--accent-rgb),.2);border-radius:0;box-shadow:none;}.fc-test-row:last-child{border-bottom:none;}.fc-test-num{font-family:var(--font-hand);font-size:1.4rem;font-weight:700;color:var(--accent);min-width:26px;line-height:1;flex-shrink:0;}.fc-test-body{flex:1;min-width:0;}.fc-test-q{font-family:var(--font-serif);font-size:1.15rem;font-weight:500;color:var(--ink);margin-bottom:12px;line-height:1.4;}.fc-test-input{width:100%;padding:12px 16px;border:1.5px dashed rgba(var(--accent-rgb),.35);border-radius:10px;font-family:var(--font-serif);font-size:1.05rem;background:var(--card);}.fc-test-input:focus{outline:none;border-color:var(--accent);background:var(--accent-paper);box-shadow:var(--shadow-focus);}.fc-test-input:disabled{opacity:.9;}.fc-test-result{margin-top:10px;padding:10px 14px;border-radius:8px;font-family:var(--font-serif);font-size:1rem;}.fc-test-result.correct{background:var(--success-bg);color:var(--ink);}.fc-test-result.incorrect{background:var(--error-bg);color:var(--ink);}.fc-test-btn-row{display:flex;align-items:center;justify-content:center;gap:10px;margin:14px 0 32px;}.fc-test-reset{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--border);background:var(--card);color:var(--ink-mute);cursor:pointer;transition:color .15s,border-color .15s,background .15s,transform .25s;}.fc-test-reset:hover{color:var(--accent-deep);border-color:var(--accent);background:var(--accent-paper);transform:rotate(-180deg);}.fc-test-btn{padding:8px 20px;border-radius:999px;border:2px solid var(--accent);background:var(--accent);color:#fff;font-family:var(--font-serif);font-weight:600;font-size:.92rem;cursor:pointer;box-shadow:0 2px 0 var(--accent-deep);transition:background .15s,transform .12s;}.fc-test-btn:hover{background:var(--accent-deep);transform:translateY(-1px);}.fc-match-wrap{display:flex;flex-direction:column;gap:18px;}.fc-match-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}.fc-match-tile{display:flex;align-items:center;justify-content:center;text-align:center;padding:20px 14px;min-height:110px;border:1.5px solid var(--border);border-radius:14px;background:var(--card);color:var(--ink);font-family:var(--font-serif);font-size:1.02rem;line-height:1.35;cursor:pointer;transition:all .15s;box-shadow:0 1px 2px rgba(0,0,0,.03);position:relative;}.fc-match-tile[data-side="f"]{background:var(--card);}.fc-match-tile[data-side="b"]{background:var(--accent-paper);border-style:dashed;}.fc-match-tile[data-side="b"] strong{color:var(--accent-deep);}.fc-match-tile:hover{border-color:var(--accent);background:var(--accent-paper);transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--accent-rgb),.15);}.fc-match-tile.selected{border-color:var(--accent-deep);background:var(--accent-paper);border-width:2.5px;box-shadow:0 0 0 4px rgba(var(--accent-rgb),.18);}.fc-match-tile.matched{border-color:#10b981;background:#ecfdf5;color:#047857;pointer-events:none;opacity:.55;}.fc-match-tile.wrong{border-color:var(--error);background:var(--error-bg);animation:fc-shake .4s ease-in-out;}@keyframes fc-shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-5px);}75%{transform:translateX(5px);}}.fc-match-status{text-align:center;font-family:var(--font-hand);font-size:1.5rem;color:var(--accent-deep);margin-top:8px;}.fc-stats{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 26px;box-shadow:var(--shadow-paper);}.fc-stats-title{font-family:var(--font-serif);font-size:1.1rem;font-weight:700;color:var(--ink);margin:0 0 14px;}.fc-stats-bar{display:flex;height:16px;border-radius:999px;overflow:hidden;background:var(--accent-paper);margin-bottom:16px;}.fc-stats-seg{min-width:2px;transition:flex-grow .35s;}.fc-seg-easy{background:#10b981;}.fc-seg-good{background:#3b82f6;}.fc-seg-hard{background:#f59e0b;}.fc-seg-bad{background:#dc2626;}.fc-seg-fresh{background:var(--ink-mute);}.fc-stats-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:4px;font-family:var(--font-serif);align-items:baseline;}.fc-leg-item{display:inline-flex;align-items:baseline;gap:6px;}.fc-leg-num,.fc-leg-label{font-family:var(--font-hand);font-weight:700;line-height:1;}.fc-leg-num{font-size:1.5rem;}.fc-leg-label{font-size:1.2rem;}.fc-leg-bad .fc-leg-num,.fc-leg-bad .fc-leg-label{color:#dc2626;}.fc-leg-hard .fc-leg-num,.fc-leg-hard .fc-leg-label{color:#b45309;}.fc-leg-good .fc-leg-num,.fc-leg-good .fc-leg-label{color:#1d4ed8;}.fc-leg-easy .fc-leg-num,.fc-leg-easy .fc-leg-label{color:#047857;}.fc-leg-fresh .fc-leg-num,.fc-leg-fresh .fc-leg-label{color:var(--ink-mute);}@media (max-width:600px){.fc-stats-legend{gap:12px;}.fc-leg-num{font-size:1.3rem;}.fc-leg-label{font-size:.88rem;}}@media (max-width:768px){.fc-card{height:360px;}.fc-stage{min-height:360px;}.fc-face{padding:36px 28px 30px;}.fc-content{font-size:1.5rem;}.fc-back .fc-content{font-size:1.7rem;}.fc-learn-controls{grid-template-columns:1fr 1fr;gap:10px;}.fc-match-grid{grid-template-columns:1fr 1fr;gap:10px;}.fc-match-tile{min-height:90px;padding:16px 12px;font-size:.95rem;}.fc-mode{padding:10px 14px;font-size:.9rem;min-height:44px;}.fc-cat{font-size:1rem;top:12px;left:14px;}}@media (max-width:480px){.fc-card{height:300px;}.fc-stage{min-height:300px;margin:0 0 18px;}.fc-face{padding:28px 18px 22px;border-radius:var(--radius);}.fc-content{font-size:1.25rem;line-height:1.4;}.fc-back .fc-content{font-size:1.4rem;}.fc-rate{padding:14px 8px;font-size:.92rem;}.fc-match-tile{min-height:72px;padding:12px 8px;font-size:.9rem;}}.fc-card-cta{cursor:default;animation:paywall-glow 4s ease-in-out infinite;}.fc-card-cta .fc-card-inner{transform:none !important;}.fc-cta-face{background:linear-gradient(135deg,var(--accent),var(--accent-deep)) !important;color:#fff !important;border:none !important;padding:40px 36px !important;text-align:center;gap:18px;overflow:hidden;}.fc-cta-face>*{position:relative;z-index:1;}.fc-cta-face::before{display:none !important;}.fc-cta-face::after{content:'';display:block;position:absolute;top:-50%;left:-60%;width:50%;height:200%;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.22) 50%,transparent 100%);transform:skewX(-18deg);pointer-events:none;z-index:0;animation:paywall-shimmer 4.5s ease-in-out infinite;}.fc-cta-icon{color:#fff;opacity:.9;animation:paywall-sparkle 2.4s ease-in-out infinite;}.fc-cta-title{font-family:var(--font-serif);font-size:1.5rem;line-height:1.35;color:#fff;}.fc-cta-title strong{font-weight:700;background:none;padding:0;color:#fff;}.fc-cta-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:6px;padding:12px 28px;border-radius:999px;background:#fff;color:var(--accent-deep);font-family:var(--font-serif);font-weight:700;font-size:1rem;text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.18);transition:transform .15s,box-shadow .15s;animation:cta-pulse 2.2s ease-in-out infinite;}.fc-cta-btn:hover{animation:none;}.fc-cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.25);text-decoration:none;color:var(--accent-deep);}.fc-add-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:999px;border:1.5px dashed var(--accent);background:var(--accent-paper);color:var(--accent-deep);font-family:var(--font-hand);font-size:1.15rem;font-weight:700;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;flex-shrink:0;}.fc-add-btn:hover{background:var(--card);border-style:solid;border-color:var(--accent-deep);box-shadow:0 2px 8px rgba(var(--accent-rgb),.18);}.fc-add-btn svg{flex-shrink:0;}@media (max-width:600px){.fc-add-btn span,.fc-new-set span{display:none;}.fc-add-btn,.fc-new-set{padding:4px 10px;}}.fc-card-edit{position:absolute;top:14px;right:18px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-mute);cursor:pointer;opacity:.5;transition:opacity .15s,color .15s,border-color .15s,background .15s;z-index:10;}.fc-card:hover .fc-card-edit{opacity:1;}.fc-card-edit:hover{opacity:1 !important;color:var(--accent-deep);border-color:var(--accent);background:var(--accent-paper);}.fc-card-cta .fc-card-edit{display:none;}body:not(.tab-material) .study-btn[data-tool="pen"],body:not(.tab-material) .pen-canvas,body:not(.tab-material) .pen-bar{display:none !important;}.fc-modal{position:fixed;inset:0;background:rgba(15,14,30,.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:5000;padding:20px;animation:fc-modal-in .2s ease-out;}@keyframes fc-modal-in{from{opacity:0;}to{opacity:1;}}.fc-modal-card{background:var(--card);border-radius:var(--radius-lg);box-shadow:0 24px 60px rgba(0,0,0,.3);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;animation:fc-modal-pop .25s cubic-bezier(.34,1.4,.64,1);}@keyframes fc-modal-pop{from{opacity:0;transform:scale(.96) translateY(8px);}to{opacity:1;transform:none;}}.fc-modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;border-bottom:1px solid var(--border);}.fc-modal-head h3{margin:0;font-family:var(--font-serif);font-size:1.35rem;font-weight:700;color:var(--ink);}.fc-modal-close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:var(--ink-mute);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s;}.fc-modal-close:hover{background:var(--accent-paper);color:var(--ink);}.fc-form{padding:18px 24px 22px;}.fc-form-row{display:flex;flex-direction:column;margin-bottom:14px;}.fc-form-label{font-family:var(--font-serif);font-size:.95rem;font-weight:600;color:var(--ink);margin-bottom:6px;}.fc-form-label em{font-style:normal;font-weight:400;color:var(--ink-mute);font-size:.82rem;margin-left:4px;}.fc-form-inp,.fc-form-txt{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;background:var(--card);font-family:var(--font-serif);font-size:16px;color:var(--ink);resize:vertical;}.fc-form-inp:focus,.fc-form-txt:focus{outline:none;border-color:var(--accent);background:var(--accent-paper);box-shadow:var(--shadow-focus);}.fc-form-txt{min-height:60px;line-height:1.5;}.fc-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:16px;border-top:1px dashed rgba(var(--accent-rgb),.25);}.fc-form-del{margin-right:auto;padding:9px 18px;border-radius:999px;border:1.5px solid transparent;background:transparent;color:var(--error);font-family:var(--font-serif);font-size:.92rem;font-weight:500;cursor:pointer;}.fc-form-del:hover{border-color:var(--error);background:var(--error-bg);}.fc-form-cancel{padding:9px 18px;border-radius:999px;border:1.5px solid var(--border);background:var(--card);color:var(--ink);font-family:var(--font-serif);font-size:.95rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;}.fc-form-cancel:hover{background:var(--accent-paper);}.fc-form-save{padding:9px 22px;border-radius:999px;border:2px solid var(--accent);background:var(--accent);color:#fff;font-family:var(--font-serif);font-size:.95rem;font-weight:600;cursor:pointer;box-shadow:0 2px 0 var(--accent-deep),0 4px 10px rgba(var(--accent-rgb),.3);transition:background .15s,box-shadow .15s,transform .12s;}.fc-form-save:hover{background:var(--accent-deep);transform:translateY(-1px);box-shadow:0 4px 0 var(--accent-deep),0 8px 16px rgba(var(--accent-rgb),.4);}@media (max-width:600px){.fc-modal{padding:10px;}.fc-modal-card{max-height:95vh;}.fc-modal-head h3{font-size:1.2rem;}}.fc-print{display:none;}@media print{#module-flashcards{display:block !important;}#module-flashcards>.fc-wrap{display:none !important;}.fc-modal{display:none !important;}.fc-print{display:block !important;}.fc-print-page{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(80mm,auto);gap:4mm;page-break-after:always;break-after:page;padding:0;}.fc-print-page:last-of-type{page-break-after:always;}.fc-print-cell{border:0.5pt solid #888;border-radius:2pt;padding:6mm 7mm;position:relative;overflow:visible;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;page-break-inside:avoid;background:transparent !important;}.fc-print-empty{border-style:dashed;border-color:#ccc;}.fc-print-back{background:#fafafa !important;}.fc-print-num{position:absolute;top:3mm;left:4mm;font-family:'Lora',serif;font-size:10pt;font-weight:700;color:#444;}.fc-print-back .fc-print-num{left:auto;right:4mm;}.fc-print-content{font-family:'Lora',serif;font-size:13pt;line-height:1.35;color:#000;max-width:100%;overflow-wrap:anywhere;word-break:break-word;hyphens:auto;}.fc-print-back .fc-print-content{font-size:14pt;font-weight:600;}.fc-print-content img,.fc-print-content svg{max-width:100% !important;max-height:35mm !important;height:auto;}.fc-print-content strong{font-weight:700;}.fc-print-content code{font-family:'SF Mono',Menlo,monospace;font-size:.9em;background:#f0f0f3 !important;padding:0.5pt 2pt;border-radius:1pt;}.fc-print-test{page-break-before:always;padding:10mm 0 0;}.fc-print-heading{font-family:'Lora',serif;font-size:20pt;font-weight:700;color:#000;border-bottom:1pt solid #000;padding-bottom:3mm;margin:0 0 6mm;}.fc-print-test-list{list-style:decimal;padding-left:8mm;margin:0;}.fc-print-test-list li{margin:0 0 8mm;page-break-inside:avoid;font-family:'Lora',serif;}.fc-print-test-q{font-size:11pt;color:#000;margin-bottom:4mm;line-height:1.45;}.fc-print-test-q img,.fc-print-test-q svg{max-height:30mm !important;max-width:100% !important;}.fc-print-test-line{border-bottom:0.6pt solid #444;height:8mm;}.fc-print-key{page-break-before:always;padding:10mm 0 0;}.fc-print-key-list{list-style:decimal;padding-left:8mm;margin:0;font-family:'Lora',serif;font-size:11pt;line-height:1.6;color:#000;}.fc-print-key-list li{margin:0 0 3mm;page-break-inside:avoid;}.fc-print-key-list li strong{font-weight:700;color:#000;}.fc-print-key-note{font-size:9.5pt;color:#555;margin-top:1mm;font-style:italic;}}.ex-hint{display:inline-block;margin:8px 0 0 10px;padding:6px 12px;background:var(--accent-paper);border:1px dashed var(--accent);border-radius:8px;font-family:var(--font-hand);font-size:1.05rem;color:var(--accent-deep);line-height:1.3;transform:rotate(-1deg);transition:opacity .5s ease-out;}.ex-hint.fade-out{opacity:0;}.ex-result{margin:18px 0 0;padding:14px 18px;border-radius:var(--radius);font-size:.98rem;line-height:1.6;font-family:var(--font-serif);border:1.5px solid var(--border);border-left-width:4px;background:var(--accent-paper);}.ex-result.correct{background:var(--success-bg);border-color:var(--success);color:var(--ink);}.ex-result.incorrect{background:var(--error-bg);border-color:var(--error);color:var(--ink);}.ex-result.empty{background:var(--card);border-style:dashed;color:var(--ink-mute);font-style:italic;}.ex-result strong{color:var(--accent-deep);font-weight:700;background:transparent;padding:0;}.model-answer{margin-top:20px;padding:24px 28px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--accent-paper),var(--accent-soft));border:1.5px solid rgba(var(--accent-rgb),.35);font-size:1rem;line-height:1.7;position:relative;}.model-answer::before{content:'';position:absolute;top:-10px;left:28px;width:64px;height:22px;background:var(--accent);border-radius:2px;transform:rotate(-2deg);box-shadow:0 1px 3px rgba(0,0,0,.12);}.model-answer h4{margin:0 0 12px;color:var(--accent-deep);font-family:var(--font-hand);font-size:1.35rem;font-weight:700;}.model-answer h4::before{content:'✎ ';}.model-answer p{margin-bottom:10px;font-family:var(--font-serif);}.model-answer p:last-child{margin-bottom:0;}.model-answer ul,.model-answer ol{margin:10px 0 10px 24px;font-family:var(--font-serif);}.model-answer li{margin-bottom:6px;}.model-answer strong{color:var(--accent-deep);background:transparent;padding:0;}.solution{margin-top:14px;padding:14px 18px 14px 22px;background:var(--accent-paper);border:1.5px solid rgba(var(--accent-rgb),.25);border-left:4px solid var(--accent);border-radius:var(--radius);font-size:.98rem;color:var(--ink);font-family:var(--font-serif);line-height:1.6;}.solution.correct{background:var(--success-bg);border-color:var(--success);border-left-color:var(--success);}.solution.incorrect{background:var(--error-bg);border-color:var(--error);border-left-color:var(--error);}.solution strong{color:var(--accent-deep);font-weight:700;background:transparent;padding:0;}.score-box{background:var(--card);border:2px dashed var(--accent);border-radius:var(--radius-lg);padding:40px 36px;text-align:center;margin-top:36px;box-shadow:var(--shadow-paper-lg);transform:rotate(-.3deg);position:relative;}.score-box::before{content:'';position:absolute;top:-10px;left:50%;transform:translateX(-50%) rotate(-2deg);width:100px;height:22px;background:var(--accent);border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.12);}.score-box h3{font-family:var(--font-hand);font-size:1.6rem;margin-bottom:12px;color:var(--accent-deep);font-weight:700;}.score-value{font-family:var(--font-serif);font-size:3.4rem;font-weight:700;color:var(--accent);margin:14px 0 6px;display:block;font-variant-numeric:tabular-nums;letter-spacing:-.02em;}.paywall{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-deep) 100%);border-radius:var(--radius-lg);padding:48px 36px;text-align:center;margin:44px 0;color:#fff;box-shadow:var(--shadow-paper-lg);position:relative;overflow:hidden;transform:rotate(.2deg);}.paywall::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(255,255,255,.18),transparent 60%),radial-gradient(circle at bottom left,rgba(255,255,255,.1),transparent 50%);pointer-events:none;}.paywall h3{font-family:var(--font-serif);font-size:1.7rem;margin-bottom:14px;color:#fff;font-weight:700;letter-spacing:-.01em;}.paywall p{margin-bottom:26px;font-size:1.05rem;color:rgba(255,255,255,.95);line-height:1.6;font-family:var(--font-serif);}.paywall .btn-unlock{display:inline-block;background:#fff;color:var(--accent-deep);padding:16px 36px;border-radius:999px;font-weight:700;font-size:1.05rem;text-decoration:none;transition:transform .15s,box-shadow .2s;box-shadow:0 4px 0 rgba(0,0,0,.15),0 6px 16px rgba(0,0,0,.25);font-family:var(--font-serif);}.paywall .btn-unlock:hover{transform:translateY(-3px);box-shadow:0 7px 0 rgba(0,0,0,.15),0 10px 22px rgba(0,0,0,.3);text-decoration:none;}.app-footer{text-align:center;padding:32px 24px;color:var(--ink-mute);font-size:.92rem;border-top:1px dashed rgba(var(--accent-rgb),.3);background:transparent;margin-top:56px;font-family:var(--font-serif);font-style:italic;}.app-footer a{color:var(--accent-deep);font-weight:600;}.runtime-error{background:var(--error-bg);border:1.5px dashed var(--error);border-radius:var(--radius);padding:14px 18px;color:var(--error);font-size:.95rem;margin:10px 0;font-family:var(--font-serif);}@media (max-width:768px){body{font-size:16px;}.app-header{padding:18px 20px 14px;}.subject{font-size:1.25rem;padding:5px 14px;}main{padding:24px 16px 60px;}.card,.exercise-card{padding:22px 20px;}.toc{padding:4px 0 8px;margin-bottom:12px;}.toc-item{padding:0;}.progress-bar{padding:14px 18px;top:48px;}.score-box{padding:32px 24px;}.score-value{font-size:2.8rem;}.paywall{padding:36px 22px;}.paywall h3{font-size:1.4rem;}.option{padding:12px 16px;}.btn-check,.btn-reveal{padding:11px 24px;font-size:.95rem;}.btn-reveal{margin-left:0;margin-top:10px;display:block;width:100%;text-align:center;}.card:nth-of-type(2n),.card:nth-of-type(3n),.exercise-card:nth-of-type(odd),.exercise-card:nth-of-type(even),.toc,.score-box,.paywall{transform:none;}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}.card,.exercise-card,.toc,.score-box,.paywall,.subject{transform:none!important;}}.study-toolbar{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:200;}.study-btn{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:24px;padding:10px 14px 10px 12px;color:var(--ink);font-family:var(--font-sans);font-size:.85rem;font-weight:600;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.08);transition:transform .15s,box-shadow .15s,border-color .15s;}.study-btn svg{width:18px;height:18px;}.study-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(var(--accent-rgb),.18);border-color:var(--accent);color:var(--accent);}.study-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);}.study-btn-label{display:inline;}@media (max-width:600px){.study-toolbar{right:8px;bottom:8px;gap:6px;}.study-btn-label{display:none;}.study-btn{padding:8px;border-radius:50%;}.study-btn svg{width:16px;height:16px;}}:root{--bookmark:var(--accent);--bookmark-deep:var(--accent-deep);--bookmark-soft:var(--accent-paper);}.tutor-msg-bubble mjx-container{color:inherit !important;font-size:1em !important;}.tutor-msg-bubble mjx-container[display="true"]{margin:6px 0 !important;}.has-bookmark{position:relative;}.has-bookmark::before{content:'';position:absolute;left:-44px;top:4px;width:18px;height:18px;background:var(--bookmark);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'/></svg>") no-repeat center / contain;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'/></svg>") no-repeat center / contain;filter:drop-shadow(0 1px 2px rgba(var(--accent-rgb),.35));pointer-events:none;}.card{overflow:visible !important;}.bookmark-snap{position:fixed;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;color:var(--bookmark);border:none;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .12s,color .15s;z-index:80;padding:0;}.bookmark-snap.visible{opacity:.55;pointer-events:auto;transform:translateX(0);}.bookmark-snap:hover{opacity:1;color:var(--bookmark-deep);transform:translateX(-2px) scale(1.15);}.bookmark-snap svg{display:block;filter:drop-shadow(0 1px 2px rgba(var(--accent-rgb),.35));}.bookmark-snap-plus{position:absolute;right:-3px;top:-3px;width:15px;height:15px;border-radius:50%;background:var(--bookmark);color:#fff;font-weight:700;font-size:12px;font-family:var(--font-sans);border:1.5px solid var(--paper-bg);box-shadow:0 1px 3px rgba(6,78,59,.4);display:inline-flex;align-items:center;justify-content:center;line-height:1;padding-bottom:1px;}.bookmark-snap.added{color:var(--success);opacity:1;animation:bm-snap-pop .7s ease-out;}.bookmark-snap.added .bookmark-snap-plus{background:var(--success);}@keyframes bm-snap-pop{0%{transform:scale(1);}35%{transform:scale(1.4);}100%{transform:scale(1);}}.toc-bookmarks{margin-top:18px;padding-top:16px;border-top:1px solid var(--border);}.toc-bookmarks-head{display:flex;align-items:center;gap:8px;font-family:var(--font-hand);font-size:1.4rem;font-weight:700;letter-spacing:0;text-transform:none;color:var(--accent-deep);margin:0 0 10px 4px;line-height:1;}.toc-bookmarks-head svg{color:var(--bookmark);width:18px !important;height:18px !important;flex-shrink:0;}.toc-bookmarks-head>span{display:inline-block;line-height:1;}.toc-bookmarks-count{margin-left:auto;background:var(--bookmark-soft);color:var(--bookmark-deep);font-size:.7rem;letter-spacing:0;padding:1px 7px;border-radius:999px;font-weight:700;}.toc-bookmarks-empty{font-family:var(--font-sans);font-size:.76rem;color:var(--ink-mute);font-style:italic;padding:4px 4px 0;line-height:1.4;}.toc-bookmarks-list{list-style:none;margin:0;padding:0;}.toc-bookmarks-item{display:flex;align-items:center;gap:0;padding:0;margin:0 0 2px;border-radius:6px;transition:background .12s;}.toc-bookmarks-item:hover{background:var(--bookmark-soft);}.toc-bookmarks-item.renaming{background:var(--bookmark-soft);}.toc-bookmarks-item.renaming .toc-bookmarks-edit,.toc-bookmarks-item.renaming .toc-bookmarks-del{opacity:0;pointer-events:none;}.toc-bookmarks-rename{flex:1;min-width:0;background:var(--card);border:1.5px solid var(--bookmark);border-radius:6px;padding:6px 8px;margin:1px 2px;font-family:var(--font-sans);font-size:.8rem;color:var(--ink);outline:none;box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12);}.toc-bookmarks-rename:focus{border-color:var(--bookmark-deep);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.2);}.toc-bookmarks-go{flex:1;display:flex;align-items:center;gap:8px;background:transparent;border:none;padding:7px 4px 7px 6px;text-align:left;cursor:pointer;font-family:var(--font-sans);font-size:.8rem;color:var(--ink);overflow:hidden;min-width:0;}.toc-bookmarks-go svg{color:var(--bookmark);flex-shrink:0;}.toc-bookmarks-go span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.toc-bookmarks-go:hover{color:var(--bookmark-deep);}.toc-bookmarks-edit,.toc-bookmarks-del{width:26px;height:26px;padding:0;background:transparent;border:none;color:var(--ink-mute);cursor:pointer;opacity:.6;transition:opacity .12s,color .12s,transform .15s;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;margin:0;box-sizing:border-box;}.toc-bookmarks-edit svg,.toc-bookmarks-del svg{display:block;}.toc-bookmarks-item:hover .toc-bookmarks-edit,.toc-bookmarks-item:hover .toc-bookmarks-del{opacity:.9;}.toc-bookmarks-edit:hover{color:var(--accent-deep);opacity:1 !important;}.toc-bookmarks-del:hover{color:var(--error);opacity:1 !important;}body.focus-mode .bookmark-snap{display:none !important;}body.focus-mode .card{opacity:.25;transition:opacity .35s;}body.focus-mode .card.focus-active{opacity:1;}body.focus-mode .app-header,body.focus-mode .tabs,body.focus-mode .toc,body.focus-mode .app-footer{opacity:.4;transition:opacity .35s;}body.focus-mode .app-header:hover,body.focus-mode .tabs:hover,body.focus-mode .toc:hover{opacity:1;}.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:100;opacity:0;transition:opacity .25s;pointer-events:none;}.reading-progress.visible{opacity:1;}.reading-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--info));width:0%;transition:width .15s ease-out;}body.highlight-mode .card{cursor:text;}.user-hl{border-radius:2px;padding:0 2px;}.user-hl-yellow{background:#fef08a;}.user-hl-green{background:#bbf7d0;}.user-hl-pink{background:#fbcfe8;}.hl-bar{position:absolute;display:none;transform:translateX(-50%);background:var(--ink);border-radius:999px;padding:5px 8px;gap:6px;z-index:300;box-shadow:0 4px 16px rgba(0,0,0,.3);}.hl-bar.visible{display:inline-flex;}.hl-bar::after{content:'';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--ink);}.hl-btn{width:24px;height:24px;border:none;border-radius:50%;cursor:pointer;padding:0;font-size:.85rem;}.hl-btn.hl-yellow{background:#fef08a;}.hl-btn.hl-green{background:#bbf7d0;}.hl-btn.hl-pink{background:#fbcfe8;}.hl-btn.hl-remove{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);}.hl-btn:hover{transform:scale(1.1);}.tutor-panel{position:fixed;left:20px;bottom:20px;z-index:250;font-family:var(--font-sans);}.tutor-toggle{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border:none;border-radius:999px;padding:11px 18px 11px 12px;font-weight:700;font-size:.92rem;cursor:pointer;box-shadow:0 6px 24px rgba(var(--accent-rgb),.42);transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s;position:relative;letter-spacing:-.005em;}.tutor-toggle:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 12px 32px rgba(var(--accent-rgb),.55);}.tutor-toggle-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.tutor-toggle-icon svg{width:20px;height:20px;color:#fff;animation:tutor-sparkle 3s ease-in-out infinite;}@keyframes tutor-sparkle{0%,100%{transform:scale(1) rotate(0deg);}50%{transform:scale(1.12) rotate(6deg);}}.tutor-toggle-label{flex:1;}.tutor-toggle-badge{display:inline-block;background:rgba(255,255,255,.22);color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.12em;padding:2px 6px;border-radius:4px;margin-left:2px;}.tutor-panel:not(.collapsed) .tutor-toggle{display:none;}.tutor-window{display:flex;flex-direction:column;width:380px;max-width:calc(100vw - 40px);height:50vh;max-height:calc(100vh - 60px);min-width:320px;min-height:320px;background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.22),0 0 0 1px rgba(var(--accent-rgb),.04);overflow:hidden;position:relative;animation:tutor-pop .25s cubic-bezier(.34,1.56,.64,1);transition:width .25s cubic-bezier(.34,1.56,.64,1),height .25s cubic-bezier(.34,1.56,.64,1);}.tutor-panel.expanded .tutor-window{width:640px !important;height:min(80vh,760px) !important;max-width:calc(100vw - 40px) !important;max-height:min(80vh,760px) !important;}@media (max-width:600px){.tutor-panel{left:14px;bottom:14px;}.tutor-panel:not(.collapsed){left:0;right:0;bottom:0;top:0;}.tutor-window{width:100vw;height:100vh;max-width:100vw;max-height:100vh;min-width:0;min-height:0;border-radius:0;resize:none;}.tutor-panel.expanded .tutor-window{width:100vw;height:100vh;max-width:100vw;}}@keyframes tutor-pop{from{opacity:0;transform:translateY(20px) scale(.94);}to{opacity:1;transform:none;}}.tutor-panel.collapsed .tutor-window{display:none;}.tutor-header{display:flex;align-items:center;gap:12px;padding:14px 14px 13px;background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;position:relative;overflow:hidden;}.tutor-header::before{content:'';position:absolute;top:-30%;right:-10%;width:60%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.15),transparent 60%);pointer-events:none;}.tutor-header>*{position:relative;z-index:1;}.tutor-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.tutor-avatar svg{width:22px;height:22px;color:#fff;animation:tutor-sparkle 3s ease-in-out infinite;}.tutor-id{flex:1;min-width:0;}.tutor-name{font-weight:700;font-size:1rem;display:flex;align-items:center;gap:8px;}.tutor-name .tutor-dot{margin-left:4px;}.tutor-quota{margin-left:auto;font-weight:400;font-size:.8rem;opacity:.9;}.tutor-status{display:none;}.tutor-dot{width:7px;height:7px;border-radius:50%;background:#5eead4;box-shadow:0 0 0 0 rgba(94,234,212,.6);animation:tutor-pulse 2s ease-in-out infinite;}@keyframes tutor-pulse{0%,100%{box-shadow:0 0 0 0 rgba(94,234,212,.6);}50%{box-shadow:0 0 0 5px rgba(94,234,212,0);}}.tutor-close,.tutor-expand{background:rgba(255,255,255,.15);color:#fff;border:none;width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s,transform .15s;}.tutor-close:hover,.tutor-expand:hover{background:rgba(255,255,255,.3);transform:scale(1.08);}.tutor-close svg,.tutor-expand svg{display:block;}.tutor-panel.expanded .tutor-expand svg path{d:path("M9 3H3v6M15 3h6v6M9 21H3v-6M15 21h6v-6");}.tutor-messages{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:12px;background:var(--paper-bg);}.tutor-msg{display:flex;flex-direction:column;gap:8px;max-width:88%;}.tutor-msg-ai{align-self:flex-start;}.tutor-msg-user{align-self:flex-end;align-items:flex-end;}.tutor-msg-bubble{padding:10px 14px;border-radius:14px;font-size:.92rem;line-height:1.5;word-wrap:break-word;}.tutor-msg-ai .tutor-msg-bubble{background:var(--card);color:var(--ink);border:1px solid var(--border);border-bottom-left-radius:4px;}.tutor-msg-user .tutor-msg-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px;}.tutor-typing .tutor-msg-bubble{display:inline-flex;gap:4px;padding:14px 16px;}.tutor-dot-anim{width:7px;height:7px;border-radius:50%;background:var(--ink-mute);opacity:.5;animation:dot-bounce 1.2s ease-in-out infinite;}.tutor-dot-anim:nth-child(2){animation-delay:.15s;}.tutor-dot-anim:nth-child(3){animation-delay:.3s;}@keyframes dot-bounce{0%,60%,100%{transform:translateY(0);opacity:.4;}30%{transform:translateY(-5px);opacity:1;}}.tutor-upsell{margin-top:8px;display:flex;align-items:center;gap:clamp(8px,1.5vw,14px);padding:clamp(10px,1.5vw,14px) clamp(12px,2vw,18px);background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-radius:12px;font-size:clamp(.78rem,1vw,.9rem);line-height:1.4;position:relative;overflow:hidden;box-shadow:0 4px 14px rgba(var(--accent-rgb),.22);animation:tutor-upsell-glow 4s ease-in-out infinite;flex-wrap:wrap;}@keyframes tutor-upsell-glow{0%,100%{box-shadow:0 4px 14px rgba(var(--accent-rgb),.22);}50%{box-shadow:0 8px 24px rgba(var(--accent-rgb),.38);}}.tutor-upsell::after{content:'';position:absolute;top:-50%;left:-60%;width:50%;height:200%;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.22) 50%,transparent 100%);transform:skewX(-18deg);pointer-events:none;animation:tutor-upsell-shimmer 4.5s ease-in-out infinite;}@keyframes tutor-upsell-shimmer{0%{left:-60%;}60%{left:130%;}100%{left:130%;}}.tutor-upsell>*{position:relative;z-index:1;}.tutor-upsell-text{flex:1;color:#fff;font-weight:500;}.tutor-upsell-cta{background:#fff;color:var(--accent-deep) !important;padding:clamp(5px,.8vw,8px) clamp(12px,1.6vw,18px);border-radius:999px;font-weight:700;font-size:clamp(.72rem,.9vw,.82rem);text-decoration:none !important;flex-shrink:0;letter-spacing:.01em;box-shadow:0 2px 8px rgba(0,0,0,.15),0 0 0 0 rgba(255,255,255,.7);transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;animation:tutor-cta-pulse 2.2s ease-in-out infinite;white-space:nowrap;}@keyframes tutor-cta-pulse{0%,100%{transform:translateY(0) scale(1);box-shadow:0 2px 8px rgba(0,0,0,.15),0 0 0 0 rgba(255,255,255,.7);}50%{transform:translateY(-2px) scale(1.04);box-shadow:0 6px 16px rgba(0,0,0,.25),0 0 0 6px rgba(255,255,255,0);}}.tutor-upsell-cta:hover{transform:translateY(-3px) scale(1.08);box-shadow:0 8px 20px rgba(0,0,0,.3),0 0 0 3px rgba(255,255,255,.4);animation:none;}@media (prefers-reduced-motion:reduce){.tutor-upsell,.tutor-upsell::after,.tutor-upsell-cta{animation:none;}}.tutor-msg-bubble p{margin:0 0 10px;}.tutor-msg-bubble p:last-child{margin-bottom:0;}.tutor-msg-bubble p + p{margin-top:0;}.tutor-msg-bubble strong{font-weight:700;color:inherit;background:none;}.tutor-msg-bubble em{font-style:italic;}.tutor-msg-bubble h4,.tutor-msg-bubble h5,.tutor-msg-bubble h6{font-family:var(--font-serif);font-weight:700;line-height:1.3;color:inherit;margin:12px 0 6px;letter-spacing:-.005em;}.tutor-msg-bubble h4{font-size:1.02rem;}.tutor-msg-bubble h5{font-size:.96rem;}.tutor-msg-bubble h6{font-size:.92rem;opacity:.85;}.tutor-msg-bubble h4:first-child,.tutor-msg-bubble h5:first-child,.tutor-msg-bubble h6:first-child{margin-top:0;}.tutor-msg-bubble code{font-family:'SF Mono',Menlo,Consolas,monospace;font-size:.9em;background:rgba(var(--accent-rgb),.08);color:var(--accent-deep);padding:1px 5px;border-radius:4px;}.tutor-msg-user .tutor-msg-bubble code{background:rgba(255,255,255,.18);color:#fff;}.tutor-msg-bubble ul,.tutor-msg-bubble ol{margin:6px 0 10px;padding-left:22px;}.tutor-msg-bubble ul{list-style:disc;}.tutor-msg-bubble ol{list-style:decimal;}.tutor-msg-bubble li{margin-bottom:4px;padding-left:2px;}.tutor-msg-bubble li:last-child{margin-bottom:0;}.tutor-msg-bubble li::marker{color:var(--accent);font-weight:600;}.tutor-msg-user .tutor-msg-bubble li::marker{color:rgba(255,255,255,.85);}.tutor-msg-bubble ul ul,.tutor-msg-bubble ol ol,.tutor-msg-bubble ul ol,.tutor-msg-bubble ol ul{margin:4px 0 4px;}.tutor-form{display:flex;align-items:flex-end;gap:8px;padding:12px;background:var(--card);border-top:1px solid var(--border);}.tutor-input{flex:1;background:var(--paper-bg);border:1.5px solid var(--border);border-radius:22px;padding:11px 16px;font-family:inherit;font-size:16px;resize:none;line-height:1.4;color:var(--ink);min-height:44px;max-height:180px;overflow-y:auto;}@media (max-width:600px){.tutor-input{min-height:48px;padding:13px 16px;}}.tutor-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15);}.tutor-send{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border:none;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .15s;box-shadow:0 4px 12px rgba(var(--accent-rgb),.3);}.tutor-send:hover{transform:scale(1.08) translateX(2px);box-shadow:0 6px 18px rgba(var(--accent-rgb),.5);}.tutor-send:active{transform:scale(.95);}.tutor-send:disabled{opacity:.5;cursor:not-allowed;transform:none;}.tutor-send svg{width:18px;height:18px;transform:translateX(1px);}.tutor-bubble{position:fixed;left:20px;bottom:80px;z-index:240;max-width:280px;background:var(--card);border:1px solid rgba(var(--accent-rgb),.3);border-radius:14px;padding:14px 36px 14px 16px;box-shadow:0 10px 30px rgba(0,0,0,.12);font-size:.92rem;line-height:1.5;color:var(--ink);animation:bubble-in .4s cubic-bezier(.34,1.56,.64,1) .8s both,bubble-wiggle 2.4s ease-in-out 1.6s infinite;}.tutor-bubble::after{content:'';position:absolute;bottom:-8px;left:28px;width:14px;height:14px;background:var(--card);border-right:1px solid rgba(var(--accent-rgb),.3);border-bottom:1px solid rgba(var(--accent-rgb),.3);transform:rotate(45deg);}.tutor-bubble-inner strong{color:var(--accent-deep);}.tutor-bubble-close{position:absolute;top:6px;right:8px;background:none;border:none;font-size:1.1rem;color:var(--ink-mute);cursor:pointer;line-height:1;padding:4px;}.tutor-bubble-close:hover{color:var(--ink);}@media (max-width:768px){.tutor-bubble.tutor-bubble--low{opacity:0;visibility:hidden;transform:translateY(10px);pointer-events:none;animation:none;transition:opacity .3s ease,transform .3s ease,visibility .3s;}}@keyframes bubble-in{from{opacity:0;transform:translateY(10px) scale(.92);}to{opacity:1;transform:none;}}@keyframes bubble-wiggle{0%,90%,100%{transform:translateY(0) rotate(0deg);}93%{transform:translateY(-2px) rotate(-1deg);}96%{transform:translateY(-2px) rotate(1deg);}}@media (prefers-reduced-motion:reduce){.tutor-bubble{animation:bubble-in .3s ease-out both;}}@media (max-width:600px){.tutor-window{width:calc(100vw - 32px);height:calc(100vh - 200px);}}.print-dialog{position:fixed;inset:0;background:rgba(252,249,240,.65);backdrop-filter:blur(3px);z-index:400;display:flex;align-items:center;justify-content:center;padding:20px;}.print-box{background:var(--card);border-radius:var(--radius-lg);padding:30px;max-width:480px;width:100%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.3);}.print-box h3{font-family:var(--font-serif);font-size:1.4rem;margin-bottom:10px;}.print-options{display:flex;gap:14px;justify-content:center;margin:18px 0;}.print-opt{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 22px;border:2px solid var(--border);border-radius:var(--radius);background:var(--paper-bg);cursor:pointer;font-family:var(--font-sans);font-weight:600;color:var(--ink);transition:transform .12s,border-color .12s;}.print-opt:hover{transform:translateY(-2px);border-color:var(--accent);}.print-swatch{width:56px;height:56px;border-radius:50%;border:2px solid var(--border);}.print-color{background:linear-gradient(135deg,var(--accent),var(--info),#ea7d3e);}.print-bw{background:linear-gradient(135deg,#1a1a2e,#71718d,#ddd);}.print-hint{font-size:.85rem;color:var(--ink-mute);}.print-cancel{margin-top:8px;background:none;border:1px solid var(--border);padding:8px 18px;border-radius:999px;cursor:pointer;font-family:var(--font-sans);color:var(--ink-mute);}@page{size:A4;margin:22mm 20mm 22mm 20mm;@bottom-left{content:"egzamin.ai";font-family:'Inter',sans-serif;font-size:8pt;color:#999;letter-spacing:.04em;padding-bottom:4mm;}@bottom-center{content:var(--print-date,"");font-family:'Inter',sans-serif;font-size:8pt;color:#999;letter-spacing:.04em;padding-bottom:4mm;}@bottom-right{content:counter(page) " / " counter(pages);font-family:'Inter',sans-serif;font-size:8pt;color:#999;font-variant-numeric:tabular-nums;padding-bottom:4mm;}}.print-title{display:none;}@media print{.app-header,.tabs,.study-toolbar,.reading-progress,.reading-eta,.resume-banner,.toc,.app-footer,.material-paywall,.paywall,.hl-bar,.pen-canvas,.pen-bar,.tutor-panel,.tutor-bubble,.ai-tutor-modal,.print-dialog,.bookmark-snap,.bookmark-float,.bookmarks-panel,.heading-bookmark-btn,.study-btn,.btn-check,.btn-reveal,.btn-submit,.btn-toggle,.resume-go,.resume-close,.module:not(.active){display:none !important;}body[data-printing="module-material"] #module-exercises,body[data-printing="module-exercises"] #module-material,.module[data-print-hidden="1"]{display:none !important;}*,*::before,*::after{background-image:none !important;box-shadow:none !important;animation:none !important;transition:none !important;transform:none !important;text-shadow:none !important;position:static !important;float:none !important;}html,body{background:#fff !important;color:#111 !important;font-family:'Lora',Georgia,serif !important;font-size:11pt !important;line-height:1.55 !important;margin:0 !important;padding:0 !important;}main{max-width:none !important;width:100% !important;padding:0 !important;margin:0 !important;display:block !important;}#module-material,#module-exercises{display:block !important;grid-template-columns:none !important;width:100% !important;max-width:none !important;padding:0 !important;margin:0 !important;}#module-material>*,#module-exercises>*{max-width:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;padding-left:0 !important;padding-right:0 !important;}.print-title{display:none !important;}.card{background:transparent !important;border:none !important;padding:0 !important;margin:0 0 10mm 0 !important;page-break-before:always;page-break-inside:auto;}.card:first-of-type,#module-material>.card:first-of-type,#module-exercises>.card:first-of-type{page-break-before:auto !important;}.card h2.section-h2{font-family:'Lora',serif !important;font-size:19pt !important;font-weight:700 !important;color:#000 !important;margin:0 0 8mm !important;padding:0 0 3mm !important;line-height:1.2 !important;border-bottom:1pt solid #000 !important;page-break-after:avoid;break-after:avoid;}.card h2.section-h2::before,.card h2.section-h2::after{display:none !important;content:none !important;}.card h2:not(.section-h2){font-family:'Lora',serif !important;font-size:13.5pt !important;font-weight:700 !important;color:#000 !important;margin:6mm 0 3mm !important;line-height:1.3 !important;border:none !important;page-break-after:avoid;break-after:avoid;}.card h3{font-family:'Lora',serif !important;font-size:12pt !important;font-weight:700 !important;color:#000 !important;margin:5mm 0 2.5mm !important;page-break-after:avoid;break-after:avoid;}.card h4{font-family:'Lora',serif !important;font-size:11pt !important;font-weight:600 !important;color:#222 !important;margin:4mm 0 2mm !important;font-style:italic !important;page-break-after:avoid;break-after:avoid;}.card p{margin:0 0 3mm !important;color:#111 !important;text-align:justify;hyphens:auto;orphans:3;widows:3;}.card strong{background:none !important;color:#000 !important;font-weight:700 !important;}.card em{font-style:italic;color:#222 !important;}.card a{color:inherit !important;text-decoration:none !important;}.card code{font-family:'SF Mono',Menlo,Consolas,monospace;font-size:.88em;background:#f0f0f3 !important;padding:0.5pt 2pt;border-radius:1pt;}.card ul,.card ol{margin:1mm 0 3mm 7mm !important;padding:0 !important;}.card li{margin-bottom:1mm !important;}.card .table-wrap{display:block !important;overflow:visible !important;width:100% !important;max-width:100% !important;border:none !important;box-shadow:none !important;background:transparent !important;margin:0 !important;padding:0 !important;}.card .table-figure{margin:3mm 0 4mm !important;}.card table{border-collapse:collapse !important;width:100% !important;max-width:100% !important;margin:3mm 0 4mm !important;font-size:8.5pt !important;page-break-inside:avoid;table-layout:fixed !important;}.card thead{display:table-header-group;}.card th,.card td{padding:1.5mm 2mm !important;text-align:left !important;color:#000 !important;border-bottom:0.3pt solid #bbb !important;background:transparent !important;word-wrap:break-word !important;overflow-wrap:anywhere !important;word-break:break-word !important;white-space:normal !important;hyphens:auto;-webkit-hyphens:auto;max-width:100%;overflow:hidden;}.card td mjx-container,.card th mjx-container{font-size:90% !important;max-width:100%;display:inline-block;}.card td mjx-container[display="true"]{font-size:95% !important;margin:0 !important;}.card th{font-family:'Inter',sans-serif !important;font-weight:700 !important;font-size:8.5pt !important;text-transform:uppercase;letter-spacing:.04em;background:#f0f0f3 !important;border-bottom:0.6pt solid #444 !important;}.card tr:last-child td{border-bottom:0.6pt solid #444 !important;}.callout{border:0.6pt solid #bbb !important;padding:2mm 4mm !important;margin:3mm 0 !important;background:#f6f6f6 !important;border-radius:3pt !important;page-break-inside:avoid;font-size:10pt !important;}.callout-warning{background:#fff5ea !important;}.callout-tip{background:#fefae0 !important;}.callout::before,.callout svg{display:none !important;}.formula-block{padding:3mm 0 !important;margin:4mm 0 !important;text-align:center !important;border-top:0.3pt solid #bbb !important;border-bottom:0.3pt solid #bbb !important;background:transparent !important;page-break-inside:avoid;}.formula-legend{color:#555 !important;font-size:8.5pt !important;font-style:italic;margin-top:2mm !important;text-align:center;}.formula-example{background:#f3f3f6 !important;border-left:2pt solid #666 !important;padding:2.5mm 3.5mm !important;margin:3mm 0 4mm !important;border-radius:0 !important;page-break-inside:avoid;font-size:10pt !important;}.formula-example::before{display:none !important;}.diagram-wrap{margin:8mm auto !important;padding:0 !important;background:transparent !important;border:none !important;text-align:center;page-break-inside:avoid;break-inside:avoid;clear:both;overflow:hidden;}.diagram-image{max-width:100% !important;max-height:95mm !important;height:auto !important;border:0.3pt solid #ccc;display:block;margin:0 auto;}.diagram-wrap svg{max-height:80mm;height:auto;max-width:100%;}.chart-box{max-height:90mm !important;height:90mm !important;position:relative !important;page-break-inside:avoid;overflow:hidden !important;margin:0 auto !important;}.chart-box canvas{max-height:90mm !important;max-width:100% !important;height:auto !important;width:auto !important;}.diagram-caption,p.diagram-caption,.card p.diagram-caption{font-size:8.5pt !important;color:#555 !important;margin:3mm auto 5mm !important;font-style:italic !important;text-align:center !important;page-break-before:avoid;break-before:avoid;display:block;clear:both;max-width:90% !important;hyphens:none !important;}mjx-container{color:#000 !important;max-width:100% !important;overflow:visible !important;}mjx-container[display="true"]{margin:3mm 0 !important;display:block !important;text-align:center !important;max-width:100% !important;overflow:visible !important;transform-origin:center top;}mjx-container[jax="CHTML"]:not([display="true"]){max-width:100% !important;white-space:normal !important;}.formula-block{overflow:visible !important;max-width:100% !important;}.card td mjx-container[display="true"]{font-size:8pt !important;max-width:100% !important;}@supports (zoom:1){mjx-container[display="true"]{zoom:.92;}}.user-hl-yellow{background:#fef08a !important;padding:0 1pt;-webkit-print-color-adjust:exact;print-color-adjust:exact;}.user-hl-green{background:#bbf7d0 !important;padding:0 1pt;-webkit-print-color-adjust:exact;print-color-adjust:exact;}.user-hl-pink{background:#fbcfe8 !important;padding:0 1pt;-webkit-print-color-adjust:exact;print-color-adjust:exact;}.key-concepts{background:#f6f6f6 !important;border-left:2pt solid #888 !important;padding:2.5mm 4mm !important;margin:3mm 0 !important;border-radius:0 !important;page-break-inside:avoid;}*,*::before,*::after{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;}}@media print{body.print-bw *{filter:grayscale(100%) !important;}}@media print{.exercises-toolbar,.exercises-restart,.exercises-toolbar-left,.set-tabs,.btn-new-set,.btn-restart,.btn-retry-ex,.ex-hint,.exercise-feedback.hidden,.solution.hidden,.model-answer.hidden,.exercise-card .tutor-panel,.exercise-card .study-toolbar{display:none !important;}.exercise-actions{display:block !important;margin:0 !important;}.exercise-card{background:transparent !important;border:none !important;border-top:0.5pt solid #ddd !important;padding:5mm 0 0 !important;margin:0 0 8mm !important;box-shadow:none !important;page-break-inside:avoid;break-inside:avoid-page;}.exercise-card:first-of-type,#module-exercises>.exercise-card:first-of-type{border-top:none !important;page-break-before:auto !important;}.exercise-meta,.exercise-header{display:flex !important;align-items:baseline !important;gap:4mm !important;margin:0 0 3mm !important;padding:0 !important;border:none !important;}.exercise-meta::after,.exercise-header::after{display:none !important;content:none !important;}.exercise-number{font-family:'Lora',serif !important;font-size:12pt !important;font-weight:700 !important;color:#000 !important;letter-spacing:0 !important;}.exercise-number::before{display:none !important;content:none !important;}.exercise-points{font-family:'Lora',serif !important;font-size:10pt !important;font-weight:400 !important;color:#555 !important;background:transparent !important;border:none !important;padding:0 !important;transform:none !important;border-radius:0 !important;font-style:italic !important;}.exercise-points::before{content:'(';}.exercise-points::after{content:')';}.exercise-scenario{font-family:'Lora',serif !important;font-size:10.5pt !important;color:#222 !important;margin:0 0 3mm !important;padding:0 !important;background:transparent !important;border:none !important;line-height:1.5 !important;font-style:italic !important;}.exercise-question{font-family:'Lora',serif !important;font-size:11pt !important;color:#000 !important;font-weight:500 !important;margin:0 0 3mm !important;line-height:1.5 !important;}.exercise-question strong{background:none !important;color:#000 !important;font-weight:700 !important;padding:0 !important;}.exercise-options{margin:0 0 4mm !important;gap:0 !important;}.exercise-options:has(.option .diagram-wrap){display:grid !important;grid-template-columns:1fr 1fr !important;gap:3mm !important;margin:0 0 4mm !important;}.exercise-options:has(.option .diagram-wrap) .option{flex-direction:row !important;flex-wrap:wrap !important;padding:2mm 3mm !important;border:0.3pt solid #ccc !important;border-radius:1pt !important;page-break-inside:avoid;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap{flex-basis:100% !important;margin:2mm 0 0 !important;text-align:left !important;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap svg{max-height:30mm !important;width:auto !important;max-width:100% !important;height:auto !important;color:#000 !important;}.option{display:flex !important;align-items:baseline !important;gap:2.5mm !important;padding:1mm 0 !important;border:none !important;border-radius:0 !important;background:transparent !important;font-family:'Lora',serif !important;font-size:10.5pt !important;color:#000 !important;page-break-inside:avoid;}.option input[type="radio"],.option input[type="checkbox"]{display:none !important;}.option::before{content:'☐';font-size:12pt;color:#444;flex-shrink:0;line-height:1;margin-top:0;}.option label{margin:0 !important;padding:0 !important;color:#000 !important;font-family:inherit !important;}.option.correct::before,.option.option-correct::before,.option.incorrect::before,.option.option-incorrect::before{content:'☐' !important;color:#444 !important;}.option.correct,.option.option-correct,.option.incorrect,.option.option-incorrect{background:transparent !important;border:none !important;font-weight:400 !important;color:#000 !important;}.option.correct::after,.option.incorrect::after,.option.option-correct::after,.option.option-incorrect::after{display:none !important;}.exercise-input{margin:0 0 4mm !important;}.exercise-input input:not([type=radio]):not([type=checkbox]){width:60mm !important;height:auto !important;padding:1mm 2mm !important;border:none !important;border-bottom:0.5pt solid #444 !important;border-radius:0 !important;background:transparent !important;font-family:'Lora',serif !important;font-size:11pt !important;color:#000 !important;box-shadow:none !important;}.exercise-input input:disabled{color:#000 !important;opacity:1 !important;}.exercise-input textarea{width:100% !important;min-height:35mm !important;background:transparent !important;background-image:repeating-linear-gradient( to bottom,transparent 0,transparent 6.5mm,#999 6.5mm,#999 6.6mm ) !important;border:none !important;border-radius:0 !important;padding:0 !important;color:#000 !important;font-family:'Lora',serif !important;font-size:11pt !important;line-height:6.5mm !important;resize:none !important;}.input-with-unit{display:flex !important;align-items:baseline;gap:2mm;}.unit-label{font-family:'Lora',serif !important;font-size:10pt !important;color:#444 !important;font-style:italic !important;}.exercise-parts{margin:0 0 4mm !important;gap:0 !important;}.exercise-part{padding:3mm 0 !important;background:transparent !important;border:none !important;border-top:0.3pt dashed #aaa !important;border-radius:0 !important;page-break-inside:avoid;}.exercise-part:first-child{border-top:none !important;padding-top:1mm !important;}.exercise-part-label{font-family:'Lora',serif !important;font-weight:700 !important;color:#000 !important;font-size:11pt !important;margin:0 0 1.5mm !important;}.exercise-part p{font-family:'Lora',serif !important;font-size:10.5pt !important;color:#000 !important;margin:0 0 2mm !important;line-height:1.5 !important;}.exercise-part input:not([type=radio]):not([type=checkbox]){border:none !important;border-bottom:0.5pt solid #444 !important;background:transparent !important;width:50mm !important;padding:1mm 2mm !important;font-family:'Lora',serif !important;}.exercise-part textarea{width:100% !important;min-height:20mm !important;background-image:repeating-linear-gradient( to bottom,transparent 0,transparent 6mm,#999 6mm,#999 6.1mm ) !important;background-color:transparent !important;border:none !important;padding:0 !important;line-height:6mm !important;font-family:'Lora',serif !important;}.exercise-part-feedback{font-size:9.5pt !important;padding:1mm 3mm !important;background:#f6f6f6 !important;border:0.3pt solid #bbb !important;border-radius:0 !important;margin-top:2mm !important;}.exercise-ranking{border:0.3pt solid #bbb !important;background:transparent !important;margin:0 0 4mm !important;}.ranking-item{padding:2mm 3mm !important;border-bottom:0.3pt dashed #ccc !important;background:transparent !important;font-family:'Lora',serif !important;font-size:10.5pt !important;}.ranking-item:last-child{border-bottom:none !important;}.ranking-item select{border:0.5pt solid #444 !important;background:transparent !important;padding:0.5mm 2mm !important;font-family:'Lora',serif !important;font-size:10.5pt !important;color:#000 !important;min-width:14mm !important;transform:none !important;-webkit-appearance:none !important;appearance:none !important;}.fill-blanks{font-family:'Lora',serif !important;font-size:11pt !important;line-height:8mm !important;color:#000 !important;margin:0 0 4mm !important;}.fill-blanks .fb-input{display:inline-block !important;min-width:25mm !important;border:none !important;border-bottom:0.5pt solid #444 !important;border-radius:0 !important;background:transparent !important;font-family:'Lora',serif !important;font-size:11pt !important;color:#000 !important;padding:0 2mm !important;margin:0 1mm !important;}.matching{border:0.3pt solid #bbb !important;background:transparent !important;margin:0 0 4mm !important;}.matching-row{padding:1mm 3mm !important;border-bottom:0.3pt dashed #ccc !important;background:transparent !important;font-family:'Lora',serif !important;font-size:10.5pt !important;break-inside:avoid !important;min-height:0 !important;}.matching-row:last-child{border-bottom:none !important;}.matching-select{border:0.5pt solid #444 !important;background:transparent !important;padding:0.5mm 2mm !important;font-family:'Lora',serif !important;font-size:9.5pt !important;color:#000 !important;min-width:50mm !important;-webkit-appearance:none !important;appearance:none !important;}.matching-row-with-graphic{display:grid !important;grid-template-columns:22mm minmax(40mm,60mm) !important;gap:4mm !important;padding:0.5mm 3mm !important;align-items:center !important;}.matching-row-with-graphic .matching-select{min-width:0 !important;max-width:60mm !important;}.matching-row-with-graphic .matching-left{flex:none !important;}.matching-row-with-graphic .matching-left .mathplot-box{max-width:22mm !important;margin:0 !important;}.matching-row-with-graphic .matching-left .mathplot-container{width:22mm !important;height:22mm !important;border:none !important;background:transparent !important;aspect-ratio:auto !important;}.matching-row-with-graphic .matching-left .diagram-wrap{padding:0 !important;border:none !important;background:transparent !important;margin:0 !important;}.chart-wrap{background:transparent !important;border:0.3pt solid #bbb !important;padding:2mm !important;margin:0 0 4mm !important;page-break-inside:avoid;}.chart-wrap canvas{max-height:65mm !important;height:65mm !important;}.exercise-feedback:not(.hidden),.solution:not(.hidden),.model-answer:not(.hidden){margin:3mm 0 0 !important;padding:2mm 3mm !important;background:#f6f6f6 !important;border:0.3pt solid #999 !important;border-left:2pt solid #555 !important;border-radius:0 !important;font-size:9.5pt !important;font-family:'Lora',serif !important;color:#000 !important;page-break-inside:avoid;}.exercise-feedback.correct{border-left-color:#166534 !important;background:#f0fdf4 !important;}.exercise-feedback.incorrect{border-left-color:#7f1d1d !important;background:#fef2f2 !important;}.exercise-feedback::before{display:none !important;}.solution strong,.model-answer h4{font-family:'Lora',serif !important;font-size:9.5pt !important;font-weight:700 !important;margin:0 0 1mm !important;color:#000 !important;}.exercise-card mjx-container{color:#000 !important;max-width:100% !important;overflow:visible !important;}.exercise-card mjx-container[display="true"]{margin:2mm 0 !important;max-width:100% !important;overflow:visible !important;}.exercise-card svg{max-height:70mm !important;height:auto !important;}.exercise-card .diagram-image{max-height:70mm !important;}.exercise-scenario img{max-height:55mm !important;max-width:70mm !important;border:0.5pt solid #ccc !important;border-radius:2pt !important;page-break-inside:avoid;}.exercise-scenario>div{text-align:center !important;}.exercise-scenario p{font-style:italic !important;font-size:9pt !important;color:#555 !important;text-align:center !important;margin:2mm 0 0 !important;}.fill-blanks{line-height:1.9 !important;}.fill-blanks .fb-input{border-bottom:1pt solid #000 !important;min-width:30mm !important;font-size:11pt !important;}.exercise-card{margin-bottom:6mm !important;padding-top:4mm !important;}.exercise-card:first-of-type{padding-top:0 !important;}.exercise-part{padding:2mm 0 !important;}.exercise-part-label{font-size:10.5pt !important;margin-bottom:1mm !important;}.print-answer-section{display:block !important;page-break-before:always;break-before:page;margin:0 !important;padding:0 !important;}.print-answer-heading{font-family:'Lora',serif !important;font-size:20pt !important;font-weight:700 !important;color:#000 !important;margin:0 0 8mm !important;padding:0 0 3mm !important;border-bottom:1pt solid #000 !important;letter-spacing:-.01em;line-height:1.2;}.print-answer-list{list-style:none !important;margin:0 !important;padding:0 !important;counter-reset:ans;}.print-answer-item{display:grid !important;grid-template-columns:10mm 1fr !important;gap:2mm !important;margin:0 0 4mm !important;padding:2.5mm 0 !important;border-top:0.3pt dashed #ccc !important;page-break-inside:avoid;break-inside:avoid;}.print-answer-item:first-child{border-top:none !important;padding-top:0 !important;}.print-answer-num{font-family:'Lora',serif !important;font-weight:700 !important;font-size:11pt !important;color:#000 !important;text-align:right;}.print-answer-body{font-family:'Lora',serif !important;font-size:10pt !important;line-height:1.55 !important;color:#111 !important;}.print-answer-body strong{color:#000 !important;font-weight:700 !important;}.print-answer-body ul,.print-answer-body ol{margin:1mm 0 0 3mm !important;padding:0 !important;list-style:none !important;}.print-answer-body li{margin:0.5mm 0 !important;padding:0 !important;}.print-answer-body em{font-style:italic !important;color:#444 !important;font-size:9pt !important;}.print-answer-body code{font-family:'SF Mono',Menlo,monospace !important;font-size:9pt !important;background:#f5f5f5 !important;padding:0.3pt 2pt !important;border-radius:1pt !important;color:#111 !important;}.exercise-actions,.btn-check,.btn-reveal,.btn-retry-ex,.exercises-toolbar,.ex-hint{display:none !important;}.exercise-feedback,.solution,.model-answer{display:none !important;}}.pen-canvas{position:fixed;top:0;left:0;pointer-events:none;z-index:1;}body.pen-mode .pen-canvas{pointer-events:auto;cursor:crosshair;touch-action:none;}body.pen-mode .pen-canvas.eraser{cursor:cell;}body.pen-mode{user-select:none;}.app-header{background:var(--paper-bg);position:relative;z-index:5;}.tabs{z-index:50;}.pen-bar{position:fixed;z-index:260;left:12px;top:50%;transform:translateY(-50%);display:none;flex-direction:column;align-items:center;gap:4px;background:var(--ink);border-radius:16px;padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.32);opacity:0;transition:opacity .16s;}.pen-bar.visible{display:flex;opacity:1;}.pen-bar.dragging{transition:none;}.pen-grip{width:38px;height:18px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.45);cursor:grab;touch-action:none;}.pen-grip:active{cursor:grabbing;}.pen-grip svg{width:16px;height:16px;}.pen-bar .pen-sep{width:24px;height:1px;background:rgba(255,255,255,.16);margin:2px 0;}.pen-dbtn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:10px;color:rgba(255,255,255,.85);cursor:pointer;padding:0;transition:background .12s,color .12s;}.pen-dbtn:hover{background:rgba(255,255,255,.12);color:#fff;}.pen-dbtn:disabled{opacity:.3;cursor:default;}.pen-dbtn.on{background:rgba(255,255,255,.2);color:#fff;}.pen-dbtn.danger:hover{background:rgba(220,38,38,.3);color:#fecaca;}.pen-dbtn svg{width:20px;height:20px;}.pen-swatch{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.6);}.pen-szdot{background:#fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.12);}.pen-pop{position:fixed;z-index:270;background:var(--ink);border-radius:13px;padding:9px;box-shadow:0 12px 32px rgba(0,0,0,.38);display:none;}.pen-pop.open{display:block;}.pen-cgrid{display:grid;grid-template-columns:repeat(3,28px);gap:10px;}.pen-sw{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);}.pen-sw.on{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.35);}.pen-wheelcell{width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;padding:0;position:relative;overflow:hidden;background:#fff url("data:image/png;base64,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") center/100% 100% no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);}.pen-wheelcell:hover{transform:scale(1.08);}.pen-wheelcell input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0;}.pen-sizep{width:200px;}.pen-sizep .ctl{display:flex;align-items:center;gap:9px;}.pen-sizep input[type=range]{flex:1;-webkit-appearance:none;appearance:none;height:5px;border-radius:5px;background:rgba(255,255,255,.25);outline:none;}.pen-sizep input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.4);}.pen-sizep input[type=range]::-moz-range-thumb{width:18px;height:18px;border:none;border-radius:50%;background:#fff;cursor:pointer;}.pen-sizep .pen-val{color:#fff;font-size:.82rem;font-weight:700;min-width:26px;text-align:right;font-variant-numeric:tabular-nums;}@media (pointer:coarse){.pen-dbtn{width:40px;height:40px;}.pen-dbtn svg{width:20px;height:20px;}.pen-swatch{width:23px;height:23px;}.pen-bar{gap:2px;padding:5px;left:max(8px,env(safe-area-inset-left,0px));}.pen-grip{width:40px;height:13px;}.pen-bar .pen-sep{margin:1px 0;}.pen-cgrid{grid-template-columns:repeat(3,38px);gap:10px;}.pen-sw,.pen-wheelcell{width:38px;height:38px;}.pen-sizep{width:230px;}.pen-sizep input[type=range]{height:7px;}.pen-sizep input[type=range]::-webkit-slider-thumb{width:24px;height:24px;}}body.pen-mode .study-toolbar,body.pen-mode .pen-bar,body.pen-mode .tutor-panel{pointer-events:auto;}@media print{.pen-canvas,.pen-bar{display:none!important;}}@media (max-width:480px){.card{padding:14px 14px 24px;}.exercise-card{padding:16px 14px 14px;}.exercise-header{gap:8px;margin:0 0 10px;flex-wrap:wrap;}.exercise-number{font-size:1.05rem;}.exercise-points{font-size:1.1rem;transform:none;padding:4px 12px;}.exercise-options{gap:4px;}.option{padding:10px 12px;gap:8px;font-size:.92rem;}.exercise-options:has(.option .diagram-wrap){grid-template-columns:1fr;}.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap svg,.exercise-options:has(.option .diagram-wrap) .option>.diagram-wrap img{max-height:110px;}.exercise-input textarea{min-height:110px;max-height:40vh;resize:vertical;}.model-answer{padding:14px 16px;max-width:100%;word-wrap:break-word;}.model-answer pre,.model-answer code{white-space:pre-wrap;word-break:break-word;}.input-with-unit{flex-direction:column;align-items:stretch;gap:6px;}.unit-label{text-align:center;padding:2px 0;}input[type=number]{-moz-appearance:textfield;appearance:textfield;}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}.exercise-part{padding:12px 0 12px;}.exercise-part input:not([type=radio]):not([type=checkbox]){font-size:16px;padding:11px 14px;}.exercise-ranking{gap:2px;}.ranking-item{flex-direction:column;align-items:stretch;padding:10px 12px;gap:8px;}.ranking-item .ranking-label{font-size:.95rem;line-height:1.45;}.ranking-item select{min-width:0;width:100%;transform:none;font-family:var(--font-serif);font-size:16px;min-height:44px;}.fill-blanks{font-size:1rem;line-height:1.8;}.fill-blanks .fb-input{display:block;width:100%;max-width:100%;margin:8px 0;padding:10px 12px;min-height:44px;font-size:16px;border:1.5px dashed rgba(var(--accent-rgb),.4);border-radius:8px;background:var(--accent-paper);}.chart-wrap{max-width:100%;padding:8px;}.chart-wrap canvas{height:180px !important;}.btn-check,.btn-reveal{padding:11px 18px;font-size:.9rem;min-height:44px;}.btn-check::before{font-size:.9rem;}.toc-item-title{word-break:break-word;overflow-wrap:break-word;}.toc-chevron{width:22px;height:22px;padding:2px;flex-shrink:0;}.toc-top{min-height:56px;padding:9px 6px 9px 46px;}.formula-block{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:10px 4px;}.formula-block mjx-container{max-width:100% !important;}mjx-container[display="true"]{max-width:calc(100vw - 40px) !important;}.formula-legend{font-size:.85rem;padding:0 4px;}.formula-example{font-size:.9rem;padding:10px 12px;}.callout{gap:8px;padding:12px 14px;}.callout-icon{width:26px;height:26px;}.key-concepts{padding:14px 14px 14px;margin-left:0;margin-right:0;}.key-concepts::before{right:12px;width:40px;height:18px;font-size:.6rem;}.locked-overlay{padding:32px 16px;}.locked-overlay p{font-size:1rem;max-width:100%;}.material-paywall-cta{padding:12px 22px;font-size:.92rem;min-height:44px;display:inline-flex;align-items:center;}.paywall{padding:28px 18px;}.paywall h3{font-size:1.2rem;}.paywall p{font-size:.95rem;}.paywall .btn-unlock{padding:14px 24px;font-size:.95rem;min-height:44px;}.fc-learn-controls{gap:6px;}.fc-rate{min-height:60px;padding:14px 8px;}.fc-rate-label{font-size:1rem;}.fc-rate-sub{font-size:.8rem;}.fc-card-edit{width:40px;height:40px;top:10px;right:10px;}.fc-card-edit svg{width:16px;height:16px;}.fc-flip-hint{display:none;}.fc-cat{font-size:.95rem;top:12px;left:14px;}.tutor-window{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box;}.tutor-form{padding-bottom:max(12px,env(safe-area-inset-bottom));}.tutor-msg-bubble mjx-container[display="true"]{font-size:.9em !important;margin:4px 0 !important;}.study-toolbar{right:8px;bottom:8px;}.bookmark-snap{display:none;}.reading-progress{top:env(safe-area-inset-top,0);}.app-footer{padding-bottom:max(16px,env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));}}@media (max-width:360px){.card{padding:12px 12px 22px;}.exercise-card{padding:14px 12px 12px;}.fc-head{flex-wrap:wrap;gap:8px;}.fc-counter{width:100%;text-align:center;order:3;}.fc-card{height:280px;}.fc-stage{min-height:280px;}.fc-modal{padding:8px;}.fc-modal-card{padding:14px 16px;}.fc-form{padding:12px 16px 14px;}.fc-stats-legend{gap:8px;font-size:.8rem;}.fc-leg-num{font-size:1.1rem;}.fc-leg-label{font-size:.72rem;}.fc-add-btn{min-width:44px;padding:8px 10px;}.chart-wrap canvas{height:150px !important;}.exercise-input textarea{min-height:90px;}.tutor-msg-bubble{padding:10px 12px;font-size:.92rem;}}.tab:active,.btn-check:active,.btn-reveal:active,.fc-mode:active,.fc-add-btn:active{transform:translateY(0) scale(.98);}.option:active{background:var(--accent-paper);border-color:var(--accent);}.fc-card:active{transform:scale(.99);}.fc-cta-btn:active,.paywall .btn-unlock:active{transform:scale(.98);}.fc-rate:active{transform:translateY(-1px) scale(.98);}*{-webkit-tap-highlight-color:transparent;}input,textarea,select{font-size:max(16px,1rem);}.tabs,.toc,.card .table-wrap,.formula-block,.chart-wrap,.matching,.exercise-options,.fc-list-wrap{-webkit-overflow-scrolling:touch;}@media (prefers-reduced-motion:reduce){.fc-card-inner{transition:none !important;}.tutor-window,.tutor-bubble,.paywall,.module{animation:none !important;}*{scroll-behavior:auto !important;}}@media (max-width:768px){.card,.exercise-card{scroll-margin-top:70px;}}@media (max-width:480px){.card,.exercise-card{scroll-margin-top:100px;}}@media (max-width:480px){.paywall{transform:none;}.toc-heading{transform:none;}}@media (prefers-reduced-motion:reduce){.fc-card-inner{transform:none !important;}.fc-front{opacity:1;transition:opacity .15s;}.fc-card.flipped .fc-front{opacity:0;}.fc-back{opacity:0;transform:none !important;transition:opacity .15s;}.fc-card.flipped .fc-back{opacity:1;}}@media (max-width:360px){.matching-left{word-break:break-word;overflow-wrap:break-word;min-width:0;}.matching-row{padding:10px 12px;}}@media (max-width:360px){.chart-box{height:240px;min-height:240px;}.chart-wrap canvas{height:140px !important;}}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.exercise-scenario img{max-width:100% !important;height:auto !important;display:block;margin:10px auto;}.exercise-scenario svg{max-width:100%;height:auto;}@media (max-width:360px){.callout{padding:10px 12px;gap:6px;}.callout-icon{width:24px;height:24px;flex-shrink:0;}.callout-warning,.callout-tip{padding:10px 12px;}}.tutor-input{scroll-margin-bottom:100px;}@media (max-width:600px){.tutor-window{height:100dvh;}}@supports not (height:100dvh){@media (max-width:600px){.tutor-window{height:100vh;}}}@media (prefers-reduced-data:reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;}}@media (max-width:360px){.card,.exercise-card{scroll-margin-top:110px;}.toc-item .toc-sub-btn{scroll-margin-top:110px;}}@media (max-width:360px){.toc-sub-list{padding:0 0 4px 18px;}.toc-sub-l3 .toc-sub-btn{padding-left:14px;}.toc-sub-l4 .toc-sub-btn{padding-left:20px;}.toc-top::before{font-size:.9rem;}.toc-top{min-height:56px;padding:9px 6px 9px 46px;}}@media (max-width:380px){.matching-row{flex-direction:column;align-items:stretch;padding:12px 14px;}.matching-left{min-width:100%;}.matching-select{min-width:0;width:100%;}}@media (max-width:360px){.fc-stats-legend{flex-wrap:wrap;gap:6px;font-size:.75rem;}.fc-leg-num{font-size:1rem;}.fc-leg-label{font-size:.68rem;}}.fc-card-edit{display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,transform .15s;}.fc-card-edit:active{transform:scale(.92);}.exercise-part + .exercise-part{border-top:1px dashed rgba(var(--accent-rgb),.35);}.fc-card-inner{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;will-change:transform;}.fc-face,.fc-back{-webkit-backface-visibility:hidden;backface-visibility:hidden;}:root{--sticky-tabs-h:50px;}@media (max-width:768px){:root{--sticky-tabs-h:48px;}}@media (max-width:480px){:root{--sticky-tabs-h:44px;}}.card.section-highlight{animation:section-flash 1.6s ease-out;}@keyframes section-flash{0%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.55),var(--shadow-paper);}35%{box-shadow:0 0 0 8px rgba(var(--accent-rgb),.25),var(--shadow-paper-lg);}100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),0),var(--shadow-paper);}}.opt-letter{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent-paper);border:1.5px solid var(--accent);color:var(--accent-deep);font-family:var(--font-hand);font-weight:700;font-size:1.1rem;flex-shrink:0;}.option-with-graphic{flex-direction:column;align-items:stretch;padding:10px 14px 14px;}.option-with-graphic>input,.option-with-graphic>label{display:inline-flex;}.option-with-graphic .diagram-wrap{margin-top:8px;max-width:100%;}.option-with-graphic .diagram-wrap img{max-width:100%;height:auto;display:block;margin:0 auto;}.ranking-item-with-graphic{align-items:center;gap:14px;padding:12px 16px;}.ranking-item-with-graphic>select{flex:0 0 auto;min-width:56px;}.ranking-item-with-graphic .ranking-label:empty{display:none;}.ranking-item-with-graphic .ranking-label{flex:0 0 auto;}.ranking-item-with-graphic .diagram-wrap{margin:0;padding:6px;flex:1;max-width:220px;background:var(--paper-bg);display:flex;align-items:center;justify-content:center;}.ranking-item-with-graphic .diagram-wrap svg,.ranking-item-with-graphic .diagram-wrap img{width:100%;max-width:180px;max-height:140px;height:auto;display:block;object-fit:contain;}@media (max-width:600px){.ranking-item-with-graphic{flex-direction:column;align-items:stretch;}.ranking-item-with-graphic .diagram-wrap{max-width:100%;flex:0 0 auto;}.ranking-item-with-graphic .diagram-wrap svg,.ranking-item-with-graphic .diagram-wrap img{max-width:200px;margin:0 auto;}}.matching-row-with-graphic{align-items:center;gap:14px;padding:12px 16px;}.matching-row-with-graphic .matching-left{display:flex;align-items:center;justify-content:center;flex:0 0 180px;min-width:0;}.matching-row-with-graphic .matching-left .diagram-wrap{margin:0;padding:6px;max-width:170px;width:100%;background:var(--paper-bg);display:flex;align-items:center;justify-content:center;}.matching-row-with-graphic .matching-left .diagram-wrap svg,.matching-row-with-graphic .matching-left .diagram-wrap img{width:100%;max-width:150px;max-height:130px;height:auto;display:block;object-fit:contain;}.matching-row-with-graphic .matching-left .diagram-wrap .mathplot-container svg{max-width:none !important;max-height:none !important;width:100% !important;height:100% !important;}.matching-row-with-graphic .matching-select{flex:1;min-width:0;}@media (max-width:600px){.matching-row-with-graphic{flex-direction:column;align-items:stretch;}.matching-row-with-graphic .matching-left{flex:0 0 auto;}.matching-row-with-graphic .matching-left .diagram-wrap{max-width:100%;}.matching-row-with-graphic .matching-left .diagram-wrap svg,.matching-row-with-graphic .matching-left .diagram-wrap img{max-width:200px;}}.matching-right-legend{margin-top:14px;padding:12px 14px;background:var(--paper-bg);border:1px dashed rgba(var(--accent-rgb),.35);border-radius:12px;}.matching-legend-title{font-family:var(--font-hand);font-size:1.05rem;font-weight:700;color:var(--accent-deep);margin-bottom:8px;}.matching-legend-item{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px;line-height:1.5;}.matching-legend-letter{font-weight:700;color:var(--accent);min-width:24px;flex-shrink:0;}.matching-legend-body{flex:1;word-wrap:break-word;overflow-wrap:break-word;min-width:0;}.matching-legend-item .diagram-wrap{margin:0;flex:1;}.matching-legend-item .diagram-wrap img{max-width:200px;height:auto;display:block;}.newsletter-modal-overlay{position:fixed;inset:0;background:rgba(26,26,46,0.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:nlFadeIn .25s ease-out;}@keyframes nlFadeIn{from{opacity:0;}to{opacity:1;}}.newsletter-modal-overlay.nl-hidden{display:none;}.newsletter-modal{background:#fffdf7;border-radius:18px;max-width:460px;width:100%;padding:36px 32px 28px;position:relative;box-shadow:0 24px 64px rgba(30,27,75,.22),0 4px 12px rgba(30,27,75,.08);font-family:var(--font-sans);color:var(--ink);animation:nlSlideUp .35s cubic-bezier(.2,.8,.2,1);}@keyframes nlSlideUp{from{opacity:0;transform:translateY(20px) scale(.96);}to{opacity:1;transform:none;}}.newsletter-close{position:absolute;top:14px;right:14px;background:transparent;border:none;font-size:24px;line-height:1;color:var(--ink-mute);cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .15s;}.newsletter-close:hover{background:rgba(0,0,0,.04);color:var(--ink);}.newsletter-badge{display:inline-flex;align-items:center;gap:11px;white-space:nowrap;background:linear-gradient(135deg,#f59e0b,#ea580c);color:#fff;padding:7px 16px;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.04em;margin-bottom:16px;transform:rotate(-1deg);animation:nlGlow 2.2s ease-in-out infinite;}.newsletter-badge-code{text-transform:uppercase;letter-spacing:.05em;}.newsletter-cd{display:inline-flex;align-items:baseline;gap:5px;text-transform:none;font-weight:600;}.newsletter-cd-label{opacity:.8;font-weight:500;letter-spacing:.02em;}.newsletter-cd-time{font-variant-numeric:tabular-nums;letter-spacing:.04em;font-weight:800;}.newsletter-cd-sep{width:1px;align-self:stretch;margin:3px 0;background:rgba(255,255,255,.45);border-radius:1px;}@keyframes nlGlow{0%,100%{box-shadow:0 2px 8px rgba(234,88,12,.25);}50%{box-shadow:0 4px 16px rgba(234,88,12,.45),0 0 14px rgba(245,158,11,.5);}}.newsletter-headline{font-family:var(--font-hand);font-size:2.1rem;font-weight:700;line-height:1.15;margin:0 0 12px;color:var(--accent-deep);transform:rotate(-0.5deg);}.newsletter-sub{color:var(--ink-soft);font-size:0.95rem;line-height:1.5;margin:0 0 22px;}.newsletter-form{display:flex;flex-direction:column;gap:12px;}.newsletter-form input[type="email"]{width:100%;padding:12px 14px;border:1.5px solid var(--ink-rule);border-radius:10px;font-size:0.95rem;font-family:inherit;background:white;color:var(--ink);transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;}.newsletter-form input[type="email"]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15);}.newsletter-consent{display:flex;align-items:flex-start;gap:10px;font-size:0.82rem;color:var(--ink-soft);line-height:1.4;padding:4px 0;cursor:pointer;}.newsletter-consent input[type="checkbox"]{margin-top:3px;width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;}.newsletter-submit{background:var(--accent);color:white;padding:14px 24px;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;margin-top:4px;letter-spacing:.01em;transition:transform .12s,box-shadow .15s;box-shadow:0 4px 12px rgba(var(--accent-rgb),.22);}.newsletter-submit:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(var(--accent-rgb),.32);}.newsletter-submit:active{transform:translateY(0);}.newsletter-submit:disabled{opacity:.6;cursor:not-allowed;}.newsletter-footer{font-size:0.75rem;color:var(--ink-mute);text-align:center;margin:18px 0 0;line-height:1.5;}.newsletter-footer a{color:var(--ink-mute);text-decoration:underline;}.newsletter-success{text-align:center;padding:20px 0;}.newsletter-success-icon{display:inline-block;width:60px;height:60px;border-radius:50%;background:var(--success-bg);color:var(--success);font-size:32px;line-height:60px;margin-bottom:14px;border:2px solid var(--success-border);}.newsletter-success h3{font-family:var(--font-hand);font-size:1.8rem;color:var(--success);margin:0 0 8px;}.newsletter-error{color:var(--error);font-size:0.85rem;margin-top:8px;padding:8px 12px;background:var(--error-bg);border-radius:6px;border:1px solid var(--error-border);}.newsletter-fab{position:fixed;top:90px;right:24px;z-index:900;display:inline-flex;align-items:center;gap:9px;white-space:nowrap;background:linear-gradient(135deg,#f59e0b,#ea580c);color:white;padding:9px 18px;border-radius:999px;font-family:var(--font-sans);font-size:0.85rem;font-weight:700;letter-spacing:.02em;border:none;cursor:pointer;box-shadow:0 8px 24px rgba(234,88,12,.32),0 2px 6px rgba(0,0,0,.08);animation:nlGlow 2.4s ease-in-out infinite;transition:transform .12s,box-shadow .15s;}.newsletter-fab.nl-hidden{display:none;}.newsletter-fab:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 12px 32px rgba(234,88,12,.42),0 4px 8px rgba(0,0,0,.12);}.newsletter-fab:active{transform:translateY(0);}@keyframes nlFabPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.04);}}@media (max-width:480px){.newsletter-fab{top:auto;bottom:14px;left:133px;right:auto;padding:11px 16px;gap:8px;font-size:0.92rem;}}.newsletter-fab-close{position:absolute;top:-8px;right:-8px;width:22px;height:22px;background:#1a1a2e;color:white;border:2px solid white;border-radius:50%;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .15s;}.newsletter-fab:hover .newsletter-fab-close{opacity:1;}