@keyframes react-loading-skeleton{to{transform:translate(100%)}}.react-loading-skeleton{--base-color:#ebebeb;--highlight-color:#f5f5f5;--animation-duration:1.5s;--animation-direction:normal;--pseudo-element-display:block;background-color:var(--base-color);-webkit-user-select:none;user-select:none;border-radius:.25rem;width:100%;line-height:1;display:inline-flex;position:relative;overflow:hidden}.react-loading-skeleton:after{content:" ";display:var(--pseudo-element-display);background-repeat:no-repeat;background-image:var(--custom-highlight-background,linear-gradient(90deg, var(--base-color) 0%, var(--highlight-color) 50%, var(--base-color) 100%));height:100%;animation-name:react-loading-skeleton;animation-direction:var(--animation-direction);animation-duration:var(--animation-duration);animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute;top:0;left:0;right:0;transform:translate(-100%)}@media (prefers-reduced-motion){.react-loading-skeleton{--pseudo-element-display:none}}html[data-surface=landing]{scrollbar-color:oklch(56% .055 145) oklch(18% .009 145);scrollbar-width:thin;background:oklch(14.5% .008 145);height:auto;min-height:100%;overflow:hidden auto}html[data-surface=landing] body,html[data-surface=landing] #root{background:oklch(14.5% .008 145);height:auto;min-height:100%;overflow:visible}html[data-surface=landing]::-webkit-scrollbar{width:9px;height:9px}html[data-surface=landing]::-webkit-scrollbar-track{background:oklch(18% .009 145)}html[data-surface=landing]::-webkit-scrollbar-thumb{background:oklch(48% .04 145);border:2px solid oklch(18% .009 145);border-radius:999px}html[data-surface=landing]::-webkit-scrollbar-thumb:hover{background:oklch(62% .07 145)}html[data-surface=landing][data-public-theme=light],html[data-surface=landing][data-public-theme=light] body,html[data-surface=landing][data-public-theme=light] #root{background:oklch(96.5% .012 112)}html[data-surface=landing][data-public-theme=light]{scrollbar-color:oklch(52% .09 145) oklch(91% .016 118)}html[data-surface=landing][data-public-theme=light]::-webkit-scrollbar-track{background:oklch(91% .016 118)}html[data-surface=landing][data-public-theme=light]::-webkit-scrollbar-thumb{background:oklch(52% .09 145);border-color:oklch(91% .016 118)}.site-shell{--site-bg:oklch(14.5% .008 145);--site-surface:oklch(19% .012 145);--site-surface-strong:oklch(23.5% .016 145);--site-line:oklch(31% .019 145);--site-line-strong:oklch(42% .027 145);--site-ink:oklch(95.5% .008 110);--site-muted:oklch(72% .019 140);--site-dim:oklch(60% .019 140);--site-sage:oklch(77% .095 145);--site-sage-bright:oklch(84% .1 145);--site-sage-ink:oklch(20% .035 145);min-height:100dvh;color:var(--site-ink);background:radial-gradient(circle at 16% 12%, color-mix(in oklch, var(--site-sage) 7%, transparent), transparent 28%), radial-gradient(circle at 84% 58%, oklch(27% .025 145/.22), transparent 34%), var(--site-bg);font-family:var(--font-sans);line-height:1.55}.site-shell[data-theme=light]{--site-bg:oklch(96.5% .012 112);--site-surface:oklch(93.5% .016 118);--site-surface-strong:oklch(89.5% .025 125);--site-line:oklch(79% .026 130);--site-line-strong:oklch(63% .038 135);--site-ink:oklch(22% .02 145);--site-muted:oklch(43% .022 140);--site-dim:oklch(53% .02 140);--site-sage:oklch(52% .09 145);--site-sage-bright:oklch(46% .105 145);--site-sage-ink:oklch(97.5% .01 115);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:radial-gradient(circle at 16% 12%, oklch(67% .09 145/.13), transparent 28%), radial-gradient(circle at 84% 58%, oklch(66% .05 145/.14), transparent 34%), var(--site-bg)}.site-shell[data-theme=light] .interaction-showcase{background:linear-gradient(135deg, oklch(92% .026 130), var(--site-surface) 38%, oklch(95.5% .014 118))}.site-shell[data-theme=light] .showcase-stage{background:linear-gradient(145deg,oklch(98.5% .008 115),oklch(92.5% .018 125) 70%)}.site-shell[data-theme=light] .product-frame{box-shadow:0 34px 80px oklch(34% .02 145/.18)}.site-shell *,.site-shell :before,.site-shell :after{box-sizing:border-box}.site-shell a{color:inherit}.site-shell button,.site-shell input,.site-shell textarea{font:inherit}.site-shell button{color:inherit}.site-skip{z-index:100;background:var(--site-sage);padding:10px 14px;font-weight:800;transition:transform .16s cubic-bezier(.16,1,.3,1);position:fixed;top:10px;left:14px;transform:translateY(-160%);color:var(--site-sage-ink)!important}.site-skip:focus{transform:translateY(0)}.site-header{z-index:20;border-bottom:1px solid color-mix(in oklch, var(--site-line) 78%, transparent);background:color-mix(in oklch, var(--site-bg) 91%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);grid-template-columns:1fr auto 1fr;align-items:center;min-height:70px;padding:0 clamp(20px,4vw,64px);display:grid;position:sticky;top:0}.site-wordmark{align-items:center;width:max-content;text-decoration:none;display:inline-flex}.site-brand-mark{border-radius:7px;width:36px;height:36px}.site-header nav{align-items:center;gap:clamp(18px,2.4vw,32px);display:flex}.site-header nav a,.site-footer nav a{color:var(--site-muted);white-space:nowrap;font-size:13px;font-weight:650;text-decoration:none}.site-header nav a span{border-bottom:2px solid #0000;padding:25px 0 21px;transition:color .18s,border-color .18s,transform .22s cubic-bezier(.16,1,.3,1);display:block}.site-header nav a:hover span{transform:translateY(-1px)}.site-header nav a span[aria-current=page]{color:var(--site-ink);border-color:var(--site-sage)}.site-header nav a:hover,.site-header nav a:focus-visible,.site-footer nav a:hover,.site-footer nav a:focus-visible{color:var(--site-ink)}.site-demo-link{border:1px solid var(--site-line-strong);justify-self:end;align-items:center;gap:8px;min-height:40px;padding:0 13px;font-size:12px;font-weight:760;text-decoration:none;transition:border-color .18s,background .18s,transform .18s;display:inline-flex}.site-demo-link:hover,.site-demo-link:focus-visible{border-color:var(--site-sage);background:color-mix(in oklch, var(--site-sage) 11%, transparent);transform:translateY(-2px)}.site-demo-link:active{transform:translateY(0)scale(.98)}.site-header-actions{justify-self:end;align-items:center;gap:10px;display:flex}.site-theme-toggle{border:1px solid var(--site-line);cursor:pointer;background:0 0;place-items:center;width:40px;height:40px;padding:0;transition:color .18s,border-color .18s,background .18s,transform .22s cubic-bezier(.16,1,.3,1);display:inline-grid}.site-theme-toggle:hover,.site-theme-toggle:focus-visible{color:var(--site-sage-bright);border-color:var(--site-sage);background:color-mix(in oklch, var(--site-sage) 9%, transparent);transform:rotate(7deg)translateY(-1px)}.site-menu-button{border:1px solid var(--site-line);background:0 0;justify-content:center;justify-self:end;align-items:center;width:44px;height:44px;display:none}.site-shell main,.site-footer{width:min(1440px,100%);margin-inline:auto}.route-page{isolation:isolate;view-transition-name:route-content;animation:.44s cubic-bezier(.16,1,.3,1) both route-enter;position:relative;overflow:clip}.route-page:before{content:"";z-index:-2;pointer-events:none;opacity:.42;background-image:radial-gradient(circle, color-mix(in oklch, var(--site-sage) 24%, transparent) 1px, transparent 1.35px);background-size:12px 12px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(55% 24% at 88% 3%,#000,#0000 74%);mask-image:radial-gradient(55% 24% at 88% 3%,#000,#0000 74%)}.route-page:after{content:"";z-index:8;pointer-events:none;background:linear-gradient(90deg, transparent 0, var(--site-sage) 24%, var(--site-sage-bright) 52%, transparent 78%);transform-origin:0;width:100%;height:1px;animation:.62s cubic-bezier(.16,1,.3,1) both route-scan;position:absolute;top:0;left:0}@keyframes route-enter{0%{opacity:.12;filter:blur(5px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes route-scan{0%{opacity:0;transform:scaleX(.08)translate(-24%)}45%{opacity:.9}to{opacity:0;transform:scaleX(1)translate(18%)}}.site-shell h1,.site-shell h2,.site-shell h3,.site-shell p{margin-block-start:0}.site-shell h1,.site-shell h2,.site-shell h3{text-wrap:balance}.site-kicker{color:var(--site-sage);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700}.site-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.site-button{border:1px solid #0000;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:0 18px;font-size:13px;font-weight:790;text-decoration:none;transition:transform .18s cubic-bezier(.16,1,.3,1),background .18s,border-color .18s;display:inline-flex}.site-button:hover,.site-button:focus-visible{transform:translateY(-2px)}.site-button:active{transform:translateY(0)scale(.98)}.site-button svg,.site-demo-link svg,.home-route-grid svg{transition:transform .24s cubic-bezier(.16,1,.3,1)}.site-button:hover svg,.site-demo-link:hover svg,.home-route-grid a:hover svg{transform:translate(3px,-1px)}.site-button-primary{background:var(--site-sage);color:var(--site-sage-ink)!important}.site-button-primary:hover,.site-button-primary:focus-visible{background:var(--site-sage-bright)}.site-button-secondary{border-color:var(--site-line-strong);background:var(--site-surface)}.site-button-secondary:hover,.site-button-secondary:focus-visible{border-color:var(--site-sage);background:var(--site-surface-strong)}.home-hero{background-image:linear-gradient(112deg,#0000 0 58%,oklch(30% .028 145/.16) 58% 58.15%,#0000 58.15%);grid-template-columns:minmax(340px,.82fr) minmax(480px,1.18fr);align-items:center;gap:clamp(40px,6vw,96px);min-height:min(820px,100dvh - 70px);padding:clamp(44px,6vw,84px) clamp(22px,5vw,76px);display:grid}.home-copy h1,.page-intro h1{letter-spacing:-.055em;max-width:760px;margin:22px 0 26px;font-size:clamp(48px,6vw,84px);line-height:.98}.home-copy>p:not(.site-kicker),.page-intro>div>p:not(.site-kicker){max-width:61ch;color:var(--site-muted);font-size:clamp(17px,1.5vw,21px)}.product-frame{border:1px solid var(--site-line-strong);background:oklch(12% .006 145);margin:0;padding:9px;position:relative;box-shadow:0 34px 80px oklch(8% .012 145/.42)}.product-frame:before{content:"";pointer-events:none;border-top:1px solid color-mix(in oklch, var(--site-sage) 70%, transparent);clip-path:polygon(0 0,26% 0,26% 1px,0 1px);position:absolute;inset:-1px}.product-frame img,.product-frame video{aspect-ratio:16/10;object-fit:cover;border:1px solid var(--site-line);width:100%;height:auto;display:block}.product-micro-loop{position:relative;overflow:hidden}.product-micro-loop video{z-index:1;position:relative}.product-micro-loop-fallback{z-index:0;inset:0;display:none!important;position:absolute!important}.home-trust{border-block:1px solid var(--site-line);background:linear-gradient(135deg,oklch(22% .016 145/.38),#0000 48%);margin:0 clamp(22px,5vw,76px);padding:clamp(70px,8vw,112px) clamp(20px,4vw,56px);position:relative}.home-trust>h2,.section-copy h2,.public-private>h2,.engineering-invariants>h2{letter-spacing:-.045em;max-width:820px;font-size:clamp(36px,4.8vw,66px);line-height:1}.trust-points{border-top:1px solid var(--site-line);grid-template-columns:repeat(3,1fr);margin-top:56px;display:grid}.trust-points article{border-right:1px solid var(--site-line);min-height:200px;padding:28px 28px 20px 0}.trust-points article+article{padding-left:28px}.trust-points article:last-child{border-right:0}.trust-points strong{font-size:22px}.trust-points p{max-width:34ch;color:var(--site-muted);margin-top:15px}.home-route-grid{grid-template-columns:1.2fr .9fr .9fr;gap:12px;padding:clamp(56px,7vw,94px) clamp(22px,5vw,76px);display:grid}.home-route-grid a{border:1px solid var(--site-line);background:var(--site-surface);grid-template-columns:1fr auto;align-content:space-between;min-height:230px;padding:26px;text-decoration:none;transition:transform .18s cubic-bezier(.16,1,.3,1),border-color .18s,background .18s;display:grid;position:relative;overflow:hidden}.home-route-grid a:before{content:"";pointer-events:none;opacity:.34;background-image:linear-gradient(90deg, transparent 49%, var(--site-line) 50%, transparent 51%), linear-gradient(transparent 49%, var(--site-line) 50%, transparent 51%);background-size:18px 18px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 90% 12%,#000,#0000 58%);mask-image:radial-gradient(circle at 90% 12%,#000,#0000 58%)}.home-route-grid a:first-child{background:color-mix(in oklch, var(--site-sage) 13%, var(--site-surface))}.home-route-grid a:hover,.home-route-grid a:focus-visible{border-color:var(--site-sage);background:var(--site-surface-strong);transform:translateY(-4px)}.home-route-grid span{color:var(--site-sage);font-family:var(--font-mono);text-transform:uppercase;font-size:11px}.home-route-grid strong{align-self:end;max-width:18ch;font-size:clamp(22px,2.4vw,34px);line-height:1.08}.home-route-grid svg{grid-area:1/2/span 2}.page-intro{border-bottom:1px solid var(--site-line);background:radial-gradient(circle at 88% 26%,oklch(35% .04 145/.22),#0000 25%),linear-gradient(120deg,#0000 0 64%,oklch(22% .018 145/.34) 64%);align-items:flex-end;min-height:500px;padding:clamp(72px,9vw,130px) clamp(22px,8vw,118px);display:flex;position:relative}.page-intro:after{content:"";aspect-ratio:1;pointer-events:none;opacity:.32;background-image:radial-gradient(circle, var(--site-sage) 1px, transparent 1.4px);background-size:11px 11px;width:min(34vw,430px);position:absolute;top:54px;right:clamp(22px,5vw,76px);-webkit-mask-image:linear-gradient(135deg,#0000 8%,#000 48%,#0000 88%);mask-image:linear-gradient(135deg,#0000 8%,#000 48%,#0000 88%)}.page-intro>div{z-index:1;position:relative}.page-intro h1{max-width:950px}.page-intro>div>p:not(.site-kicker){max-width:68ch}.section-copy{max-width:760px}.section-copy h2{margin-bottom:20px}.section-copy p{max-width:62ch;color:var(--site-muted);font-size:17px}.mode-comparison{padding:clamp(72px,9vw,126px) clamp(22px,5vw,76px)}.mode-comparison>article{border-top:1px solid var(--site-line);grid-template-columns:minmax(260px,.62fr) minmax(500px,1.38fr);align-items:center;gap:clamp(30px,5vw,76px);margin-top:70px;padding-top:30px;display:grid}.mode-comparison>article:nth-of-type(2){grid-template-columns:minmax(500px,1.38fr) minmax(260px,.62fr)}.mode-comparison article img{border:1px solid var(--site-line-strong);width:100%;height:auto;display:block}.mode-comparison article span{color:var(--site-sage);font-family:var(--font-mono);text-transform:uppercase;font-size:11px}.mode-comparison article h3{letter-spacing:-.04em;margin:18px 0;font-size:clamp(30px,3.5vw,49px);line-height:1.02}.mode-comparison article p{color:var(--site-muted);font-size:17px}.interaction-showcase{background:linear-gradient(135deg, oklch(23.5% .017 145/.78), var(--site-surface) 38%, oklch(16.5% .01 145));border-block:1px solid var(--site-line);padding:clamp(72px,8vw,118px) clamp(22px,5vw,76px);position:relative}.interaction-showcase:before{content:"";pointer-events:none;opacity:.4;background-image:radial-gradient(circle, var(--site-line-strong) 1px, transparent 1.25px);background-size:10px 10px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(48% 32% at 96% 2%,#000,#0000 76%);mask-image:radial-gradient(48% 32% at 96% 2%,#000,#0000 76%)}.interaction-showcase>*{position:relative}.showcase-layout{grid-template-columns:250px 1fr;gap:clamp(34px,5vw,72px);margin-top:54px;display:grid}.showcase-tabs{border-top:1px solid var(--site-line);counter-reset:showcase-family;flex-direction:column;display:flex}.showcase-tabs button{counter-increment:showcase-family;border:0;border-bottom:1px solid var(--site-line);text-align:left;min-height:56px;color:var(--site-muted);cursor:pointer;background:0 0;padding:0;transition:color .18s,background-color .18s,transform .24s cubic-bezier(.16,1,.3,1)}.showcase-tabs button:hover{color:var(--site-ink);background:color-mix(in oklch, var(--site-sage) 6%, transparent);transform:translate(4px)}.showcase-tabs button:active{transform:translate(2px)scale(.985)}.showcase-tabs button:before{content:"0" counter(showcase-family);width:34px;color:var(--site-dim);font-family:var(--font-mono);font-size:10px;display:inline-block}.showcase-tabs button[aria-selected=true]{color:var(--site-ink);box-shadow:inset 2px 0 0 var(--site-sage);background:color-mix(in oklch, var(--site-sage) 7%, transparent);padding-left:10px;font-weight:760}.showcase-stage{border:1px solid var(--site-line-strong);background:linear-gradient(145deg,oklch(19.5% .018 145),oklch(15.8% .009 145) 58%);min-height:500px;padding:clamp(26px,4vw,50px);position:relative;overflow:hidden}.showcase-stage:before{content:"";pointer-events:none;opacity:.34;background-image:linear-gradient(90deg, transparent 49%, var(--site-line) 50%, transparent 51%), linear-gradient(transparent 49%, var(--site-line) 50%, transparent 51%);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 100% 0,#000,#0000 58%);mask-image:radial-gradient(circle at 100% 0,#000,#0000 58%)}.showcase-stage>*{position:relative}.showcase-stage-body{animation:.36s cubic-bezier(.16,1,.3,1) both showcase-stage-in}.showcase-stage-heading{border-bottom:1px solid var(--site-line);justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:26px;display:flex}.showcase-stage-heading span{color:var(--site-sage);font-family:var(--font-mono);text-transform:uppercase;font-size:11px}.showcase-stage-heading h3{margin:0;font-size:clamp(27px,3vw,40px)}.showcase-exercise{max-width:760px;margin-top:42px}.showcase-exercise>p{color:var(--site-muted)}.showcase-exercise>label,.showcase-exercise fieldset{margin:26px 0;display:block}.showcase-exercise input[type=text],.showcase-exercise label>input:not([type]),.showcase-exercise textarea{color:var(--site-ink);background:var(--site-bg);border:1px solid var(--site-line-strong)}.showcase-exercise label>input:not([type]){border-width:0 0 1px;width:min(190px,40vw);margin:0 8px;padding:7px 10px}.showcase-exercise textarea{resize:vertical;width:100%;margin-top:10px;padding:14px;display:block}.showcase-exercise fieldset{border:0;padding:0}.showcase-exercise legend{margin-bottom:15px;font-size:21px;font-weight:730}.showcase-exercise fieldset label{align-items:center;margin:0 10px 10px 0;display:inline-flex}.showcase-exercise fieldset label span,.showcase-tokens button,.showcase-match button{border:1px solid var(--site-line-strong);background:var(--site-bg);cursor:pointer;min-height:44px;padding:10px 14px;transition:color .17s,border-color .17s,background-color .17s,box-shadow .22s,transform .22s cubic-bezier(.16,1,.3,1)}.showcase-exercise fieldset label:hover span,.showcase-tokens button:hover:not(:disabled){border-color:var(--site-sage);background:color-mix(in oklch, var(--site-sage) 9%, var(--site-bg));transform:translateY(-2px);box-shadow:0 8px 24px oklch(8% .01 145/.25)}.showcase-exercise fieldset label:active span,.showcase-tokens button:active:not(:disabled){transform:translateY(0)scale(.97)}.showcase-exercise fieldset input{opacity:0;position:absolute}.showcase-exercise fieldset input:checked+span{border-color:var(--site-sage);background:color-mix(in oklch, var(--site-sage) 16%, var(--site-bg));animation:.28s cubic-bezier(.16,1,.3,1) interaction-confirm}.showcase-exercise>button,.showcase-actions>button,.showcase-match-actions>button{border:1px solid var(--site-sage);background:var(--site-sage);min-height:44px;color:var(--site-sage-ink);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 15px;font-weight:780;transition:filter .17s,box-shadow .22s,transform .22s cubic-bezier(.16,1,.3,1);display:inline-flex}.showcase-exercise>button:hover:not(:disabled),.showcase-actions>button:hover:not(:disabled),.showcase-match-actions>button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 9px 24px oklch(8% .02 145/.3)}.showcase-exercise>button:active:not(:disabled),.showcase-actions>button:active:not(:disabled),.showcase-match-actions>button:active:not(:disabled){box-shadow:none;transform:translateY(0)scale(.97)}.showcase-exercise button:disabled{opacity:.42;cursor:not-allowed}.showcase-status{color:var(--site-muted);border-top:1px solid var(--site-line);margin-top:20px;padding:12px 0;animation:.3s cubic-bezier(.16,1,.3,1) both status-arrive}.showcase-status[data-state=correct]{color:var(--site-sage-bright)}.showcase-status[data-state=retry]{color:oklch(76% .12 35)}.showcase-grid .grid-heading,.showcase-grid .grid-row{border-bottom:1px solid var(--site-line);grid-template-columns:1fr repeat(3,70px);align-items:center;min-height:54px;display:grid}.showcase-grid .grid-heading{color:var(--site-muted);text-align:center;font-size:13px}.showcase-grid .grid-heading span:first-child{text-align:left}.showcase-grid .grid-row label{place-items:center;display:grid}.showcase-grid .grid-row input{appearance:none;border:1px solid var(--site-line-strong);background:var(--site-bg);cursor:pointer;border-radius:50%;width:22px;height:22px;transition:border-color .17s,background-color .17s,box-shadow .22s,transform .22s cubic-bezier(.16,1,.3,1)}.showcase-grid .grid-row label:hover input{border-color:var(--site-sage);box-shadow:0 0 0 5px color-mix(in oklch, var(--site-sage) 10%, transparent);transform:scale(1.12)}.showcase-grid .grid-row input:active{transform:scale(.88)}.showcase-grid .grid-row input:checked{border-color:var(--site-sage-bright);background:var(--site-sage);box-shadow:inset 0 0 0 5px var(--site-bg), 0 0 0 4px color-mix(in oklch, var(--site-sage) 12%, transparent);animation:.28s cubic-bezier(.16,1,.3,1) interaction-confirm}.showcase-grid>button{margin-top:24px}.showcase-order-result{border-bottom:1px solid var(--site-line-strong);min-height:56px;margin:20px 0;padding:15px;font-weight:680;transition:color .18s,background-color .18s}.showcase-tokens,.showcase-actions{flex-wrap:wrap;gap:9px;display:flex}.showcase-tokens button[aria-pressed=true]{opacity:.42;transform:scale(.94)}.showcase-actions{margin-top:25px}.showcase-actions>button:first-child{color:var(--site-muted);border-color:var(--site-line-strong);background:0 0}.showcase-match-instruction{min-height:28px;margin-bottom:26px;font-size:16px;color:var(--site-ink)!important}.showcase-match{grid-template-columns:1fr 1fr;gap:30px;margin:0 0 26px;display:grid}.showcase-match-column{gap:9px;display:grid}.showcase-match-label{color:var(--site-dim);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px;font-size:10px}.showcase-match button{border:1px solid var(--site-line-strong);background:color-mix(in oklch, var(--site-bg) 82%, transparent);text-align:left;cursor:pointer;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:66px;padding:10px 12px;transition:border-color .17s,background .17s,transform .17s cubic-bezier(.16,1,.3,1);display:grid;position:relative}.showcase-match button:hover:not(:disabled),.showcase-match button:focus-visible{border-color:var(--site-sage);transform:translateY(-1px)}.showcase-match button:active:not(:disabled){transform:translateY(0)scale(.98)}.showcase-match button[data-selected=true]{border-color:var(--site-sage-bright);background:color-mix(in oklch, var(--site-sage) 19%, var(--site-bg))}.showcase-match button[data-selected=true],.showcase-match button[data-paired=true]{animation:.28s cubic-bezier(.16,1,.3,1) interaction-confirm}.showcase-match button[data-paired=true]{border-color:color-mix(in oklch, var(--site-sage) 68%, var(--site-line));background:color-mix(in oklch, var(--site-sage) 10%, var(--site-bg))}.showcase-match button:disabled{opacity:.56}.showcase-match-index{color:var(--site-sage);font-family:var(--font-mono);font-size:10px}.showcase-match-word{min-width:0;font-weight:720}.showcase-match-pair{color:var(--site-dim);font-size:11px}.showcase-match button[data-paired=true] .showcase-match-pair{color:var(--site-sage-bright)}.showcase-match-actions{flex-wrap:wrap;gap:10px;display:flex}.showcase-match-actions .showcase-reset{color:var(--site-muted);border-color:var(--site-line-strong);background:0 0}.signal-path{grid-template-columns:repeat(3,1fr);padding:clamp(68px,8vw,118px) clamp(22px,5vw,76px);display:grid}.signal-path article{border:1px solid var(--site-line);background:linear-gradient(140deg,oklch(22% .016 145/.58),#0000 62%);min-height:310px;padding:30px;position:relative;overflow:hidden}.signal-path article:before,.engineering-flow article:before{content:"";pointer-events:none;opacity:.26;background-image:radial-gradient(circle, var(--site-line-strong) 1px, transparent 1.4px);background-size:10px 10px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 92% 8%,#000,#0000 56%);mask-image:radial-gradient(circle at 92% 8%,#000,#0000 56%)}.signal-path article>*,.engineering-flow article>*{position:relative}.signal-path article+article{border-left:0}.signal-path svg{color:var(--site-sage)}.signal-path span{color:var(--site-dim);font-family:var(--font-mono);text-transform:uppercase;margin-top:60px;font-size:11px;display:block}.signal-path h2{margin:12px 0;font-size:clamp(27px,3vw,39px);line-height:1.03}.signal-path p{color:var(--site-muted)}.static-product-section{background:var(--site-surface);border-block:1px solid var(--site-line);grid-template-columns:minmax(260px,.72fr) minmax(0,1.55fr);align-items:center;gap:clamp(32px,6vw,92px);padding:clamp(72px,8vw,118px) clamp(22px,8vw,118px);display:grid}.static-product-copy>span{color:var(--site-sage);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.static-product-copy h2{letter-spacing:-.05em;max-width:12ch;margin:18px 0;font-size:clamp(38px,4.6vw,68px);line-height:.98}.static-product-copy p{max-width:48ch;color:var(--site-muted);margin-bottom:30px;font-size:17px}.static-product-preview{border:1px solid var(--site-line-strong);background:linear-gradient(145deg, color-mix(in oklch, var(--site-sage) 13%, var(--site-bg)), var(--site-bg));margin:0;padding:clamp(8px,1.1vw,14px);position:relative;box-shadow:0 34px 90px oklch(5% .01 145/.26)}.static-product-preview:before{content:"";pointer-events:none;background-image:radial-gradient(circle, var(--site-line-strong) 1px, transparent 1.2px);opacity:.18;background-size:9px 9px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(135deg,#000,#0000 38%);mask-image:linear-gradient(135deg,#000,#0000 38%)}.static-product-preview img,.static-product-preview video{border:1px solid var(--site-line);width:100%;height:auto;display:block;position:relative}.static-product-preview figcaption{color:var(--site-dim);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;gap:18px;padding:13px 4px 0;font-size:10px;display:flex;position:relative}.public-private{padding:clamp(72px,9vw,130px) clamp(22px,8vw,118px)}.public-private>div{background:var(--site-line);border:1px solid var(--site-line);grid-template-columns:1fr 1fr;gap:1px;margin-top:50px;display:grid}.public-private article{background:linear-gradient(135deg, var(--site-bg), oklch(22% .017 145));min-height:220px;padding:30px}.public-private article span{color:var(--site-sage);font-weight:750}.public-private article p{max-width:45ch;color:var(--site-muted);margin-top:52px;font-size:18px}.engineering-flow{grid-template-columns:repeat(2,1fr);padding:clamp(70px,8vw,118px) clamp(22px,8vw,118px);display:grid}.engineering-flow article{border:1px solid var(--site-line);background:linear-gradient(145deg,oklch(21% .014 145/.72),#0000 64%);min-height:270px;padding:30px;position:relative;overflow:hidden}.engineering-flow article:nth-child(2n){border-left:0}.engineering-flow article:nth-child(n+3){border-top:0}.engineering-flow span{color:var(--site-sage);font-family:var(--font-mono);font-size:11px}.engineering-flow h2{margin:72px 0 12px;font-size:clamp(28px,3vw,42px)}.engineering-flow p{color:var(--site-muted)}.engineering-invariants{color:var(--site-sage-ink);background:var(--site-sage);margin:0 clamp(22px,5vw,76px);padding:clamp(68px,8vw,112px) clamp(22px,5vw,70px)}.engineering-invariants>svg{margin-bottom:24px}.engineering-invariants ul{border-top:1px solid oklch(32% .05 145/.35);grid-template-columns:repeat(3,1fr);gap:0;margin:46px 0 0;padding:0;list-style:none;display:grid}.engineering-invariants li{border-bottom:1px solid oklch(32% .05 145/.35);padding:20px 12px 20px 0;font-weight:730}.engineering-source{justify-content:space-between;align-items:end;gap:30px;padding:clamp(72px,8vw,112px) clamp(22px,8vw,118px);display:flex}.engineering-source h2{margin-bottom:12px;font-size:clamp(34px,4vw,56px)}.engineering-source p{color:var(--site-muted)}.site-footer{border-top:1px solid var(--site-line);grid-template-columns:1fr auto 1fr;align-items:center;min-height:150px;padding:34px clamp(22px,5vw,76px);display:grid}.site-footer nav{gap:24px;display:flex}.site-footer>a:last-child{color:var(--site-muted);justify-self:end;align-items:center;font-size:13px;text-decoration:none;display:inline-flex}.site-github-link{padding:9px 2px;transition:color .18s,transform .22s cubic-bezier(.16,1,.3,1);position:relative}.site-github-link:after{content:"";background:var(--site-sage);transform-origin:100%;height:1px;transition:transform .24s cubic-bezier(.16,1,.3,1);position:absolute;bottom:4px;left:0;right:0;transform:scaleX(0)}.site-github-link:hover,.site-github-link:focus-visible{transform:translateY(-2px);color:var(--site-ink)!important}.site-github-link:hover:after,.site-github-link:focus-visible:after{transform-origin:0;transform:scaleX(1)}.site-shell :focus-visible{outline:2px solid var(--site-sage);outline-offset:3px}.site-wordmark img{transition:filter .2s,transform .26s cubic-bezier(.16,1,.3,1)}.site-wordmark:hover img,.site-wordmark:focus-visible img{filter:brightness(1.12);transform:rotate(-2deg)scale(1.06)}.mode-comparison article img,.product-frame img,.product-frame video,.static-product-preview img,.static-product-preview video{transition:filter .3s,transform .42s cubic-bezier(.16,1,.3,1)}.mode-comparison article:hover img,.product-frame:hover img,.product-frame:hover video,.static-product-preview:hover img,.static-product-preview:hover video{filter:saturate(1.05)contrast(1.02);transform:scale(1.012)}.signal-path article,.engineering-flow article,.public-private article{transition:border-color .22s,background-color .22s,transform .28s cubic-bezier(.16,1,.3,1)}.signal-path article:hover,.engineering-flow article:hover,.public-private article:hover{border-color:var(--site-line-strong);transform:translateY(-3px)}.signal-path article svg,.engineering-invariants>svg{transition:color .18s,transform .28s cubic-bezier(.16,1,.3,1)}.signal-path article:hover svg{color:var(--site-sage-bright);transform:translateY(-3px)rotate(-2deg)}.route-page[data-motion-ready=true] .scroll-reveal{transition:opacity .52s,filter .52s,transform .62s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s)}.route-page[data-motion-ready=true] .scroll-reveal:not([data-revealed=true]){opacity:0;filter:blur(7px);transform:translateY(14px)}.route-page[data-motion-ready=true] .scroll-reveal[data-revealed=true]{opacity:1;filter:blur();transform:translateY(0)}.route-page[data-motion-ready=true] .home-route-grid>a.scroll-reveal[data-revealed=true]:hover,.route-page[data-motion-ready=true] .signal-path>article.scroll-reveal[data-revealed=true]:hover,.route-page[data-motion-ready=true] .engineering-flow>article.scroll-reveal[data-revealed=true]:hover,.route-page[data-motion-ready=true] .public-private article.scroll-reveal[data-revealed=true]:hover{transform:translateY(-4px)}@keyframes showcase-stage-in{0%{opacity:0;filter:blur(8px);transform:translateY(9px)scale(.995)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes interaction-confirm{0%{transform:scale(.96)}58%{transform:scale(1.025)}to{transform:scale(1)}}@keyframes status-arrive{0%{opacity:0;filter:blur(5px);transform:translateY(7px)}to{opacity:1;filter:blur();transform:translateY(0)}}::view-transition-old(route-content){animation:.17s both view-fade-out}::view-transition-new(route-content){animation:.34s cubic-bezier(.16,1,.3,1) both view-fade-in}@keyframes view-fade-out{to{opacity:0;filter:blur(7px);transform:translateY(-4px)}}@keyframes view-fade-in{0%{opacity:0;filter:blur(8px);transform:translateY(7px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (width<=900px){.site-header{grid-template-columns:1fr auto auto;gap:8px}.site-menu-button{grid-column:3;display:inline-flex}.site-header-actions{grid-area:1/2}.site-header nav{background:var(--site-bg);border-bottom:1px solid var(--site-line);padding:10px 20px 18px;display:none;position:absolute;top:70px;left:0;right:0}.site-header nav[data-open=true]{display:grid}.site-header nav a span{padding:12px 0}.site-demo-link{display:none}.home-hero{grid-template-columns:1fr;min-height:auto;padding-top:60px}.home-copy h1,.page-intro h1{font-size:clamp(44px,9vw,68px)}.product-frame{max-width:760px}.home-route-grid{grid-template-columns:1fr 1fr}.home-route-grid a:first-child{grid-column:1/-1}.showcase-layout{grid-template-columns:1fr}.showcase-tabs{scrollbar-color:var(--site-line-strong) transparent;border:0;flex-direction:row;overflow-x:auto}.showcase-tabs button{border:1px solid var(--site-line);flex:none;min-height:44px;padding:0 14px}.showcase-tabs button[aria-selected=true]:after{display:none}.static-product-section{grid-template-columns:1fr}.static-product-copy h2{max-width:15ch}}@media (width<=700px){.site-header{min-height:64px;padding-inline:18px}.site-header nav{top:64px}.home-hero,.page-intro,.mode-comparison,.interaction-showcase,.signal-path,.static-product-section,.public-private,.engineering-flow,.engineering-source{padding-inline:20px}.home-hero{gap:42px}.home-copy h1,.page-intro h1{font-size:clamp(40px,13vw,56px)}.home-copy>p:not(.site-kicker),.page-intro>div>p:not(.site-kicker){font-size:17px}.site-actions{align-items:stretch}.site-actions .site-button{flex:100%}.home-trust,.engineering-invariants{margin-inline:0;padding-inline:20px}.trust-points{grid-template-columns:1fr}.trust-points article,.trust-points article+article{border-right:0;border-bottom:1px solid var(--site-line);min-height:auto;padding:24px 0}.home-route-grid{grid-template-columns:1fr;padding-inline:20px}.home-route-grid a:first-child{grid-column:auto}.page-intro{align-items:center;min-height:430px}.mode-comparison>article,.mode-comparison>article:nth-of-type(2){grid-template-columns:1fr;gap:30px;margin-top:48px}.mode-comparison>article:nth-of-type(2) img{order:2}.showcase-stage{min-height:520px;padding:22px 18px}.showcase-stage-heading{display:block}.showcase-exercise label>input:not([type]){width:100%;margin:8px 0;display:block}.showcase-exercise fieldset label{margin-right:0;display:flex}.showcase-exercise fieldset label span{width:100%}.showcase-grid{padding-bottom:6px;overflow-x:auto}.showcase-grid .grid-heading,.showcase-grid .grid-row{min-width:430px}.showcase-match,.signal-path{grid-template-columns:1fr}.signal-path article+article{border-left:1px solid var(--site-line);border-top:0}.signal-path article{min-height:230px}.signal-path span{margin-top:35px}.static-product-copy h2{font-size:clamp(38px,12vw,54px)}.public-private>div,.engineering-flow{grid-template-columns:1fr}.engineering-flow article,.engineering-flow article:nth-child(2n),.engineering-flow article:nth-child(n+3){border:1px solid var(--site-line);border-top:0}.engineering-flow article:first-child{border-top:1px solid var(--site-line)}.engineering-invariants ul{grid-template-columns:1fr 1fr}.engineering-source{display:block}.engineering-source .site-button{margin-top:24px}.site-footer{grid-template-columns:1fr auto;gap:24px}.site-footer nav{display:none}}@media (prefers-reduced-motion:reduce){.site-shell *,.site-shell :before,.site-shell :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.product-micro-loop video{display:none}.product-micro-loop-fallback{display:block!important;position:relative!important}::view-transition-old(route-content){animation:none!important}::view-transition-new(route-content){animation:none!important}}*,:before,:after{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--accent-primary,#6f9b7a) transparent;margin:0;padding:0}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:color-mix(in oklab, var(--accent-primary,#6f9b7a) 72%, var(--bg-surface,#18181b));background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-height:38px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary,#6f9b7a);background-clip:padding-box}:root{--font-sans:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace;--text-overlay-input:#172033}[data-design=stitch],:root:not([data-design]){--bg-app:#09090b;--bg-canvas:#121215;--bg-surface:#18181b;--bg-surface-subtle:#27272a;--bg-surface-hover:#3f3f46;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-tertiary:#90909a;--text-inverse:#09090b;--border-subtle:#27272a;--border-strong:#3f3f46;--border-focus:#82ad8d;--accent-primary:#6f9b7a;--accent-hover:#82ad8d;--accent-active:#557a60;--accent-soft:#6f9b7a1f;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000080;--shadow-page:0 12px 40px #000000b3;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--toolbar-glass-backdrop:none;--toolbar-bg:#18181b;--correction-ok:#6f9b7a;--correction-ok-strong:#82ad8d;--correction-ok-soft:#6f9b7a24;--correction-err:#c76655;--correction-err-strong:#d98273;--correction-err-soft:#c7665524;--correction-neutral:var(--text-tertiary);--correction-neutral-soft:var(--bg-surface-subtle)}.app[data-design=stitch] .left-rail{background:#09090b;border-right:1px solid #27272a;padding:12px 0}.app[data-design=stitch] .brand-icon{color:#6f9b7a;box-shadow:none;background:#18181b;border:1px solid #27272a;border-radius:4px}.app[data-design=stitch] .rail-item{color:#a1a1aa;border:1px solid #0000;border-radius:4px}.app[data-design=stitch] .rail-item:hover{color:#fafafa;background:#18181b;border-color:#27272a}.app[data-design=stitch] .rail-item.active{color:#6f9b7a;background:#18181b;border-color:#6f9b7a}.app[data-design=stitch] .rail-item-label{font-family:var(--font-mono);letter-spacing:.02em;font-size:10px}.app[data-design=stitch] .reader-toolbar{height:48px;box-shadow:none;background:#18181b;border-bottom:1px solid #27272a;padding:0 16px}.app[data-design=stitch] .doc-tag{font-family:var(--font-mono);color:#a1a1aa;background:#09090b;border:1px solid #27272a;border-radius:2px;font-size:10px}.app[data-design=stitch] .upload-btn{color:#09090b;background:#6f9b7a;border:0;border-radius:4px;font-weight:600}.app[data-design=stitch] .upload-btn:hover{background:#82ad8d}.app[data-design=stitch] .page-nav-group{background:#09090b;border:1px solid #27272a;border-radius:4px;padding:2px 4px}.app[data-design=stitch] .page-nav-btn{color:#a1a1aa;border-radius:2px}.app[data-design=stitch] .page-nav-btn:hover:not(:disabled){color:#fafafa;background:#27272a}.app[data-design=stitch] .page-input{font-family:var(--font-mono);color:#fafafa;background:#18181b;border:1px solid #27272a;border-radius:2px}.app[data-design=stitch] .zoom-select{font-family:var(--font-mono);color:#fafafa;background:#09090b;border:1px solid #27272a;border-radius:4px}.app[data-design=stitch] .rotate-controls{background:#09090b;border:1px solid #27272a;border-radius:4px}.app[data-design=stitch] .rotate-degree{font-family:var(--font-mono)}.app[data-design=stitch] .dev-toggle-btn{color:#a1a1aa;background:#09090b;border:1px solid #27272a;border-radius:4px}.app[data-design=stitch] .dev-toggle-btn.active{color:#6f9b7a;background:#6f9b7a1f;border-color:#6f9b7a}.app[data-design=stitch] .theme-toggle-btn{color:#a1a1aa;background:0 0;border:none;border-radius:4px}.app[data-design=stitch] .theme-toggle-btn:hover{color:#fafafa;background:0 0}.app[data-design=stitch] .right-rail{background:#121215;border-left:1px solid #27272a}.app[data-design=stitch] .rail-header{background:#09090b;border-bottom:1px solid #27272a}.app[data-design=stitch] .rail-tab{color:#a1a1aa;border-radius:4px}.app[data-design=stitch] .rail-tab.active{color:#fafafa;background:#18181b;border:1px solid #27272a}.app[data-design=stitch] .tab-count{font-family:var(--font-mono);color:#6f9b7a;background:#6f9b7a26;border:1px solid #6f9b7a4d}.app[data-design=stitch] .exercise-card{box-shadow:none;background:#18181b;border:1px solid #27272a;border-radius:4px}.app[data-design=stitch] .exercise-type-badge{font-family:var(--font-mono);color:#6f9b7a;background:#09090b;border:1px solid #27272a;border-radius:2px;font-size:11px}.app[data-design=stitch] .card-count{font-family:var(--font-mono);color:#71717a}.app[data-design=stitch] .exercise-item-btn{border:1px solid #0000;border-radius:4px}.app[data-design=stitch] .exercise-item-btn:hover{background:#27272a;border-color:#3f3f46}.app[data-design=stitch] .item-status.filled{font-family:var(--font-mono);color:#6f9b7a;background:#6f9b7a26;border:1px solid #6f9b7a4d}.app[data-design=stitch] .item-status.empty{font-family:var(--font-mono);color:#71717a;background:#09090b;border:1px solid #27272a}.app[data-design=stitch] .empty-state{background:var(--bg-canvas)}.app[data-design=stitch] .empty-hero{background:#18181b;border:1px solid #27272a;border-radius:4px;padding:40px;box-shadow:0 12px 32px #0009}.app[data-design=stitch] .empty-hero-icon{color:#6f9b7a;background:#18181b;border:1px solid #27272a;border-radius:4px;padding:10px}.app[data-design=stitch] .upload-hero-btn{color:#09090b;background:#6f9b7a;border:0;border-radius:4px;font-weight:600}.app[data-design=stitch] .upload-hero-btn:hover{background:#82ad8d}.app[data-design=stitch] .page-area{background:#09090b}.app[data-design=stitch] .page-stack{border-radius:6px;overflow:hidden;box-shadow:0 16px 48px #000c,0 0 0 1px #ffffff1a}.app[data-design=stitch] .left-rail{border-bottom-left-radius:8px}.app[data-design=stitch] .right-rail{border-bottom-right-radius:8px}.app[data-theme=light]{--bg-app:#f4f6f1;--bg-canvas:#eaefe7;--bg-surface:#fff;--bg-surface-subtle:#f0f4ec;--bg-surface-hover:#e4ece0;--text-primary:#181e19;--text-secondary:#525e55;--text-tertiary:#667269;--text-inverse:#fff;--border-subtle:#d8dfd4;--border-strong:#c4cfc0;--border-focus:#35634a;--accent-primary:#35634a;--accent-hover:#41765a;--accent-active:#294d3a;--accent-soft:#35634a17;--shadow-sm:0 1px 2px #181e190a;--shadow-md:0 4px 12px #181e190f;--shadow-page:0 8px 30px #181e1914;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--toolbar-glass-backdrop:none;--toolbar-bg:#fff;--correction-ok:#35634a;--correction-ok-strong:#41765a;--correction-ok-soft:#35634a1a;--correction-err:#b14a3d;--correction-err-strong:#9a3d31;--correction-err-soft:#b14a3d1a;--correction-neutral:var(--text-tertiary);--correction-neutral-soft:var(--bg-surface-subtle)}.app[data-theme=light] .left-rail{background:#f4f6f1;border-right:1px solid #d8dfd4}.app[data-theme=light] .reader-toolbar{background:#fff;border-bottom:1px solid #d8dfd4}.app[data-theme=light] .right-rail{background:#f4f6f1;border-left:1px solid #d8dfd4}.app[data-theme=light] .page-area{background:#eaefe7}.app[data-theme=light] .brand-icon{color:#35634a;background:#f0f4ec;border:1px solid #d8dfd4}.app[data-theme=light] .doc-tag{color:#525e55;background:#f0f4ec;border:1px solid #d8dfd4}.app[data-theme=light] .upload-btn{color:#fff;background:#35634a}.app[data-theme=light] .upload-btn:hover{background:#41765a}.app[data-theme=light] .page-nav-group,.app[data-theme=light] .rotate-controls,.app[data-theme=light] .zoom-select,.app[data-theme=light] .dev-toggle-btn{color:#181e19;background:#fff;border:1px solid #d8dfd4}.app[data-theme=light] .page-nav-btn:hover:not(:disabled),.app[data-theme=light] .rotate-btn:hover:not(:disabled){color:#181e19;background:#f0f4ec}.app[data-theme=light] .page-input{color:#181e19;background:#f0f4ec;border:1px solid #d8dfd4}.app[data-theme=light] .rail-header{background:#f0f4ec;border-bottom:1px solid #d8dfd4}.app[data-theme=light] .rail-tab.active{color:#181e19;background:#fff;border:1px solid #d8dfd4}.app[data-theme=light] .exercise-card{background:#fff;border:1px solid #d8dfd4}.app[data-theme=light] .rail-item{color:#525e55}.app[data-theme=light] .rail-item:hover{color:#181e19;background:#f0f4ec;border-color:#d8dfd4}.app[data-theme=light] .rail-item.active{color:#35634a;background:#fff;border-color:#35634a}.app[data-theme=light] .empty-hero{background:#fff;border:1px solid #d8dfd4;border-radius:4px;box-shadow:0 12px 32px #181e1914}.app[data-theme=light] .theme-toggle-btn{box-shadow:none;color:#525e55;background:0 0;border:none}.app[data-theme=light] .theme-toggle-btn:hover{color:#181e19;background:0 0}.app[data-theme=light] .exercise-type-badge{color:#35634a;background:#f0f4ec;border:1px solid #d8dfd4;border-radius:2px}.app[data-theme=light] .item-status.empty{color:#525e55;background:#f0f4ec;border:1px solid #d8dfd4;border-radius:4px}.app[data-theme=light] .item-status.filled{color:#35634a;background:#35634a1f;border:1px solid #35634a4d;border-radius:4px}.app[data-theme=light] .exercise-item-btn:hover{background:#f0f4ec;border-color:#d8dfd4}.app[data-theme=light] .tab-count{color:#35634a;background:#35634a1f;border:1px solid #35634a4d}.app[data-theme=light] .card-count{color:#808c82}.app[data-theme=light] .empty-hero-icon{color:#35634a;background:#f0f4ec;border:1px solid #d8dfd4;border-radius:4px}html,body,#root{height:100%;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-app);font-size:14px;overflow:hidden}.app{background:var(--bg-app);width:100vw;height:100vh;color:var(--text-primary);display:flex}.left-rail{background:var(--bg-surface);border-right:1px solid var(--border-subtle);z-index:10;flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:center;width:64px;height:100%;padding:16px 0;display:flex}.rail-top{flex-direction:column;align-items:center;gap:24px;display:flex}.brand-icon{border-radius:var(--radius-md);background:var(--accent-primary);width:40px;height:40px;color:var(--text-inverse);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;display:flex}.rail-nav{flex-direction:column;gap:8px;display:flex}.rail-item{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:all .15s;display:flex}.rail-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.rail-item.active{background:var(--accent-soft);color:var(--accent-primary);font-weight:600}.rail-item-label{font-size:10px;font-weight:500}.app-main-workspace{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.reader-toolbar{background:var(--toolbar-bg);height:54px;-webkit-backdrop-filter:var(--toolbar-glass-backdrop);border-bottom:1px solid var(--border-subtle);z-index:9;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:0 20px;display:flex}.toolbar-inner{justify-content:space-between;align-items:center;gap:16px;width:100%;height:100%;display:flex}.toolbar-left,.toolbar-center,.toolbar-right{align-items:center;gap:12px;display:flex}.logo-group{align-items:center;gap:8px;display:flex}.lexora-logo{flex:none;width:32px;height:32px;display:block}.reader-brand-mark{border-radius:6px;width:30px;height:30px}.reader-brand-home{border-radius:7px;align-items:center;text-decoration:none;display:inline-flex}.reader-brand-home .reader-brand-mark{transition:filter .18s,transform .22s cubic-bezier(.16,1,.3,1)}.reader-brand-home:hover .reader-brand-mark,.reader-brand-home:focus-visible .reader-brand-mark{filter:brightness(1.15);transform:rotate(-2deg)scale(1.06)}.reader-brand-home:focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}.rail-brand-mark{border-radius:var(--radius-md);width:40px;height:40px}.doc-tag{color:var(--text-tertiary);background:var(--bg-surface-subtle);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);padding:2px 8px;font-size:11px;font-weight:500}.upload-btn{background:var(--accent-primary);color:var(--text-inverse);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-sm);align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background .15s,transform .1s;display:inline-flex}.upload-btn:hover{background:var(--accent-hover)}.upload-btn:active{background:var(--accent-active);transform:translateY(1px)}.page-nav-group{background:var(--bg-surface-subtle);border-radius:var(--radius-md);border:1px solid var(--border-subtle);align-items:center;gap:4px;padding:3px 6px;display:flex}.page-nav-btn{width:28px;height:28px;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;font-size:18px;font-weight:600;display:flex}.page-nav-btn:hover:not(:disabled){background:var(--bg-surface-hover)}.page-nav-btn:disabled{opacity:.3;cursor:default}.page-info{color:var(--text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.page-input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);text-align:center;width:54px;height:28px;color:var(--text-primary);background:var(--bg-surface);appearance:textfield;padding:0 4px;font-size:13px;font-weight:600}.page-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.page-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.page-input:focus{outline:2px solid var(--border-focus);outline-offset:1px}.page-total{color:var(--text-tertiary);font-size:13px}.view-controls{align-items:center;gap:8px;display:flex}.zoom-select{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);height:32px;color:var(--text-primary);cursor:pointer;padding:0 8px;font-size:13px;font-weight:500}.rotate-controls{background:var(--bg-surface-subtle);border-radius:var(--radius-md);border:1px solid var(--border-subtle);align-items:center;gap:2px;padding:2px 4px;display:flex}.rotate-btn{width:26px;height:26px;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;font-size:15px;display:flex}.rotate-btn:hover{background:var(--bg-surface-hover)}.rotate-degree{text-align:center;min-width:36px;color:var(--text-secondary);font-size:12px;font-weight:500}.analysis-action-group{align-items:center;gap:8px;display:flex}.process-btn{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;padding:6px 14px;font-size:13px;font-weight:600;transition:all .15s}.process-btn:hover:not(:disabled){background:var(--bg-surface-hover);border-color:var(--border-focus)}.process-btn:disabled{opacity:.5;cursor:default}.status{color:var(--text-secondary);font-size:12px}.status-error{color:#dc2626;font-weight:500}.dev-toggle-btn{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-subtle);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.dev-toggle-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.dev-toggle-btn.active{background:var(--accent-soft);border-color:var(--accent-primary);color:var(--accent-primary)}.dev-toggle-badge{font-weight:600}.reader-layout{flex:1;display:flex;position:relative;overflow:hidden}.page-area{background:var(--bg-canvas);flex:1;justify-content:center;align-items:flex-start;padding:32px;display:flex;overflow:auto}.empty-state{text-align:center;align-self:center;margin:0 auto}.empty-hero{background-clip:padding-box;background:var(--bg-surface);border-radius:var(--radius-lg);max-width:420px;box-shadow:var(--shadow-md);border:1px solid var(--border-subtle);flex-direction:column;align-items:center;gap:16px;padding:40px;display:flex;position:relative;overflow:hidden}.empty-hero-icon{font-size:48px}.empty-hero h2{color:var(--text-primary);font-size:20px;font-weight:700}.empty-hero p{color:var(--text-secondary);font-size:14px;line-height:1.5}.upload-hero-btn{background:var(--accent-primary);color:var(--text-inverse);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-sm);margin-top:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:background .15s;display:inline-block}.upload-hero-btn:hover{background:var(--accent-hover)}.restoration-skeleton{aspect-ratio:2284/3121;flex:none;align-self:flex-start;width:min(548px,100%);margin:0 auto}.restoration-skeleton>span,.restoration-skeleton .react-loading-skeleton{height:100%;display:block}.page-container{box-shadow:var(--shadow-page);background:#fff;border-radius:2px;align-self:flex-start;margin:0 auto;display:inline-block;position:relative}.page-container-loading{visibility:hidden;opacity:0;box-shadow:none!important;background:0 0!important}.page-stack-processing .page-canvas{filter:blur(5px)brightness(.85)contrast(.95)}.page-canvas{display:block}.page-overlay{width:100%;height:100%;position:absolute;top:0;left:0}.page-stack{position:relative}.page-selection-layer{z-index:30;cursor:crosshair;touch-action:none;background:#2a3e3114;position:absolute;inset:0}.page-selection-active{z-index:29;pointer-events:none;position:absolute;inset:0}.page-selection-instruction{color:#fff;font:600 11px/1.2 var(--font-sans);pointer-events:none;background:#0f1812cc;border:1px solid #ffffff6b;border-radius:5px;padding:6px 9px;position:absolute;top:12px;left:12px}.page-selection-rectangle{border:2px solid var(--accent-primary);background:color-mix(in srgb, var(--accent-primary) 16%, transparent);pointer-events:none;position:absolute;box-shadow:0 0 0 1px #ffffffb8}.right-rail{background:var(--bg-surface);border-left:1px solid var(--border-subtle);z-index:8;flex-direction:column;flex-shrink:0;width:350px;height:100%;display:flex}.rail-header{border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-subtle);align-items:center;gap:8px;height:46px;padding:0 16px;display:flex}.rail-tab{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .12s;display:flex}.rail-tab:hover{color:var(--text-primary)}.rail-tab.active{background:var(--bg-surface);color:var(--accent-primary);box-shadow:var(--shadow-sm);font-weight:600}.tab-count{background:var(--accent-soft);color:var(--accent-primary);border-radius:999px;padding:1px 6px;font-size:11px;font-weight:600}.rail-content{flex:1;padding:16px;overflow-y:auto}.empty-rail-state{text-align:center;color:var(--text-tertiary);flex-direction:column;align-items:center;gap:12px;padding:40px 16px;display:flex}.empty-rail-state .empty-icon{font-size:36px}.empty-rail-state h3{color:var(--text-primary);font-size:15px;font-weight:600}.empty-rail-state p{font-size:13px;line-height:1.4}.exercise-list{flex-direction:column;gap:16px;display:flex}.exercise-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;gap:10px;padding:14px;display:flex}.card-header{justify-content:space-between;align-items:center;display:flex}.exercise-type-badge{text-transform:uppercase;letter-spacing:.5px;color:var(--accent-primary);font-size:12px;font-weight:700}.card-count{color:var(--text-tertiary);font-size:11px}.exercise-items-list{flex-direction:column;gap:6px;list-style:none;display:flex}.exercise-item-row{align-items:center;display:flex}.exercise-item-btn{border-radius:var(--radius-sm);background:var(--bg-surface-subtle);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;border:1px solid #0000;align-items:center;gap:8px;padding:6px 8px;font-size:12px;transition:all .12s;display:flex}.exercise-item-btn:hover{background:var(--bg-surface-hover);border-color:var(--border-subtle)}.item-num{color:var(--text-secondary);font-weight:600}.item-id{font-family:var(--font-mono);flex:1;font-size:11px}.item-status{border-radius:var(--radius-sm);padding:1px 6px;font-size:11px;font-weight:600}.item-status.filled{color:#059669;background:#10b9811f}.item-status.empty{background:var(--bg-surface);color:var(--text-tertiary);border:1px solid var(--border-subtle)}.more-items-note{color:var(--text-tertiary);text-align:center;padding:4px 0;font-size:11px}.card-hint{color:var(--text-secondary);font-size:12px;line-height:1.4}.floating-mode-note{color:var(--text-secondary);flex-direction:column;gap:8px;font-size:12px;display:flex}.dock-btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;padding:6px 12px;font-size:12px;font-weight:600}.dev-view{flex-direction:column;gap:20px;display:flex}.dev-section h4{text-transform:uppercase;letter-spacing:.5px;color:var(--accent-primary);margin-bottom:10px;font-size:12px;font-weight:700}.dev-toggles{flex-direction:column;gap:8px;display:flex}.toggle{color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.debug-panel{background:var(--bg-surface-subtle);border-radius:var(--radius-md);border:1px solid var(--border-subtle);flex-direction:column;gap:8px;padding:12px;font-size:12px;display:flex}.debug-panel h2{color:var(--text-primary);font-size:13px;font-weight:700}.debug-hint{color:var(--text-tertiary)}.debug-panel dl{grid-template-columns:auto 1fr;gap:4px 12px;display:grid}.debug-panel dt{color:var(--text-secondary);font-weight:600}.debug-panel dd{font-family:var(--font-mono);color:var(--text-primary)}.blank-input{z-index:2;min-width:0;color:var(--text-overlay-input);text-align:center;caret-color:var(--accent-primary);background:0 0;border:0;border-bottom:2px solid #173b6366;border-radius:1px;outline:0;padding:0 4px;font-family:inherit;font-weight:600;line-height:1;transition:border-color .17s,background .17s,box-shadow .22s,transform .22s cubic-bezier(.16,1,.3,1);position:absolute}.blank-input:hover{border-bottom-color:var(--accent-primary);background:#173b6309}.blank-input:focus{border-bottom-color:var(--accent-primary);background:#173b630f;box-shadow:0 2px 4px #173b631a}.choice-hit{z-index:2;cursor:pointer;background:0 0;border:0;border-radius:50%;outline:0;padding:0;transition:background-color .17s,box-shadow .22s,transform .22s cubic-bezier(.16,1,.3,1);position:absolute}.choice-hit:disabled{cursor:default}.choice-hit:focus-visible{box-shadow:0 0 0 2px var(--border-focus)}.choice-hit:hover:not(:disabled){background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft);transform:scale(1.08)}.choice-hit:active:not(:disabled){transform:scale(.9)}.choice-value{z-index:3;background:var(--accent-primary);color:var(--text-inverse);text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:inherit;font-weight:700;animation:.26s cubic-bezier(.16,1,.3,1) overlay-select-in;display:flex;position:absolute}.grid-cell-radio{z-index:2;opacity:0;cursor:pointer;appearance:none;background:0 0;border:0;margin:0;padding:0;position:absolute}.grid-cell-radio:focus-visible{opacity:1;box-shadow:inset 0 0 0 2px var(--border-focus);border-radius:4px}.grid-cell-mark{z-index:3;color:var(--accent-primary);text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;background:0 0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-weight:800;line-height:1;display:flex;position:absolute}.grid-cell-mark:after{content:"";aspect-ratio:1;background:var(--accent-primary);border-radius:50%;width:min(54%,13px);animation:.26s cubic-bezier(.16,1,.3,1) overlay-select-in;box-shadow:0 0 0 2px #ffffffc7}@keyframes overlay-select-in{0%{opacity:0;transform:scale(.45)}62%{opacity:1;transform:scale(1.16)}to{opacity:1;transform:scale(1)}}.free-text-input{z-index:2;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--text-overlay-input);resize:none;background:#ffffffd9;outline:none;padding:2px 6px;font-family:inherit;font-size:13px;transition:all .15s;position:absolute}.free-text-input:focus{border-style:solid;border-color:var(--border-focus);box-shadow:var(--shadow-sm);background:#fff}.matching-layer{pointer-events:none;position:absolute;inset:0}.matching-lines{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.matching-line-halo{stroke:#ffffffe6;stroke-width:.8px}.matching-line{stroke:var(--accent-primary);stroke-width:.4px;stroke-dasharray:none}.matching-item-hit{z-index:3;pointer-events:auto;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;outline:none;transition:all .12s;position:absolute}.matching-item-hit:hover{background:var(--accent-soft);border-color:var(--border-strong)}.matching-item-active{border-color:var(--accent-primary);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}.matching-item-matched{border-color:var(--accent-primary)}.matching-reset{z-index:4;pointer-events:auto;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;padding:2px 8px;font-size:11px;font-weight:600;position:absolute}.matching-reset:hover{color:#dc2626;border-color:#dc2626}.blank-line-debug,.blank-interaction-debug,.grid-bounds-debug,.grid-row-debug,.grid-cell-debug,.choice-target-debug,.choice-interaction-debug,.ocr-box{pointer-events:none;position:absolute}.ocr-box{pointer-events:auto;background:#2563eb14;border:1px solid #2563eb99}.ocr-box:hover{background:#2563eb33}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ordering-fragment{z-index:2;cursor:pointer;background:0 0;border:0;border-radius:2px;outline:0;padding:0;position:absolute}.ordering-fragment:disabled{cursor:default}.ordering-fragment:hover:not(:disabled){background:#6f9b7a24;box-shadow:inset 0 0 0 1px #6f9b7a8c}.ordering-fragment:focus-visible{background:#6f9b7a2e;box-shadow:inset 0 0 0 2px #6f9b7ad9}.ordering-fragment-used{background:#6f9b7a14;box-shadow:inset 0 0 0 1px #6f9b7a80}.ordering-fragment-active{background:#6f9b7a2e;box-shadow:inset 0 0 0 1px #6f9b7abf}.ordering-fragment-complete{opacity:.55}.ordering-fragment-badge{background:var(--accent-primary);color:#fff;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:999px;min-width:15px;height:15px;padding:0 3px;font-size:10px;font-weight:700;line-height:15px;position:absolute;top:-6px;right:-4px}.ordering-panel{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-subtle);flex-direction:column;gap:8px;padding:10px;display:flex}.ordering-panel-collapsed{padding:6px 10px}.ordering-panel-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.ordering-panel-head-actions{align-items:center;gap:2px;display:flex}.ordering-panel-title{color:var(--accent-primary);letter-spacing:.02em;font-size:12px;font-weight:700}.ordering-panel-toggle{border-radius:var(--radius-sm);min-width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;line-height:1}.ordering-panel-toggle:hover{background:var(--bg-surface-hover)}.ordering-panel-toggle:focus-visible,.ordering-panel-nav:focus-visible,.ordering-reset:focus-visible,.ordering-chip:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.ordering-panel-prompt{justify-content:space-between;align-items:center;gap:6px;display:flex}.ordering-panel-nav{border-radius:var(--radius-sm);min-width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:15px;line-height:1}.ordering-panel-nav:hover:not(:disabled){background:var(--bg-surface-hover)}.ordering-panel-prompt-index{color:var(--text-secondary);font-size:12px;font-weight:600}.ordering-panel-body{min-height:24px}.ordering-panel-empty{color:var(--text-tertiary);font-size:12px}.ordering-chips{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.ordering-chip{border:1px solid var(--border-strong);background:var(--accent-soft);width:100%;color:var(--text-primary);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:3px 8px 3px 4px;font-family:inherit;font-size:12px;line-height:1.3;display:inline-flex;overflow:hidden}.ordering-chip:hover:not(:disabled){background:var(--bg-surface-hover)}.ordering-chip-index{background:var(--accent-primary);color:#fff;text-align:center;border-radius:999px;flex-shrink:0;min-width:15px;height:15px;font-size:10px;font-weight:700;line-height:15px}.ordering-chip-text{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;overflow:hidden}.ordering-chip-remove{color:var(--text-tertiary);flex-shrink:0;font-size:13px;line-height:1}.ordering-panel-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.ordering-panel-progress{color:var(--text-tertiary);font-size:11px}.ordering-reset{border-radius:var(--radius-sm);color:var(--accent-primary);cursor:pointer;background:0 0;border:0;padding:2px 10px;font-family:inherit;font-size:11px;font-weight:600}.ordering-reset:hover:not(:disabled){background:var(--bg-surface-hover)}.ordering-exercise-debug,.ordering-prompt-debug,.ordering-item-debug{pointer-events:none;position:absolute}.ordering-exercise-debug{z-index:3;background:#14b8a60d;border:1px dashed #0d9488e6}.ordering-prompt-debug{z-index:4;background:#14b8a614;border:1px solid #0d9488f2}.ordering-item-debug{z-index:5;border:1px dotted #0d9488cc}.ordering-exercise-debug span,.ordering-prompt-debug span{color:#f7faf9;white-space:nowrap;background:#134e4ae6;padding:1px 3px;font-size:9px;line-height:1.2;position:absolute;bottom:100%;left:0}.ordering-item-debug span{color:#134e4a;white-space:nowrap;background:#ccfbf1f2;padding:1px 3px;font-size:9px;line-height:1.2;position:absolute;top:100%;left:0}.ordering-floating-layer{z-index:6;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.ordering-bubble{pointer-events:auto;background:var(--bg-surface);border:1px solid var(--border-strong);color:var(--text-primary);-webkit-user-select:none;user-select:none;border-radius:7px;font-size:12px;position:absolute;overflow:hidden;box-shadow:0 14px 36px #00000075,0 0 0 1px #ffffff06}.ordering-bubble-collapsed{padding:0}.ordering-bubble-expand{min-height:38px;color:var(--text-secondary);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:7px;padding:0 10px;font-family:inherit;font-size:12px;font-weight:650;display:flex}.ordering-bubble-expand:hover:not(:disabled){background:var(--bg-surface-hover);color:var(--text-primary)}.ordering-bubble-label{color:var(--text-primary)}.ordering-bubble-expand>svg:first-child{color:var(--text-tertiary);cursor:grab}.ordering-bubble-expand>svg:last-child{color:var(--accent-primary)}.ordering-bubble-expand:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.ordering-bubble-expanded{width:268px;padding:0}.ordering-bubble-head{border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-subtle);align-items:center;gap:4px;min-height:40px;margin:0;padding:0 7px 0 9px;display:flex}.ordering-bubble-grip{cursor:grab;touch-action:none;border-radius:4px;flex:1;align-items:center;gap:6px;min-width:0;padding:2px 4px 2px 0;display:flex}.ordering-bubble-grip:active{cursor:grabbing}.ordering-bubble-grip-dots{color:var(--text-tertiary);flex-shrink:0}.ordering-bubble-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);flex:1;font-size:12px;font-weight:700;overflow:hidden}.ordering-bubble-progress{font-family:var(--font-mono);color:var(--accent-primary);margin-left:auto;font-size:10px;font-weight:650}.ordering-bubble-count{border:1px solid color-mix(in srgb, var(--accent-primary) 42%, transparent);color:var(--accent-primary);font-family:var(--font-mono);border-radius:4px;flex-shrink:0;padding:2px 5px;font-size:10px}.ordering-bubble-action{min-width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:4px;flex-shrink:0;place-items:center;padding:0 6px;font-family:inherit;font-size:11px;line-height:1;display:inline-grid}.ordering-bubble-action:hover:not(:disabled){background:var(--bg-surface-hover);color:var(--text-primary)}.ordering-bubble-action:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.ordering-bubble-content{flex-direction:column;gap:9px;padding:10px;display:flex}.ordering-bubble-content .ordering-panel-prompt{border-bottom:1px solid var(--border-subtle);min-height:26px;padding-bottom:7px}.ordering-bubble-content .ordering-panel-prompt-index{color:var(--text-secondary);font-size:11px}.ordering-bubble-content .ordering-chips{gap:6px}.ordering-bubble-content .ordering-chip{background:var(--bg-surface-subtle);min-height:30px;color:var(--text-primary);border-radius:5px;padding:4px 8px 4px 5px}.ordering-bubble-content .ordering-chip:hover:not(:disabled){border-color:var(--accent-primary);background:var(--bg-surface-hover)}.ordering-bubble-content .ordering-panel-footer{border-top:1px solid var(--border-subtle);padding-top:7px}.choice-selector{z-index:6;box-shadow:0 4px 14px #0000004d, 0 0 0 1px var(--border-strong);background:#fff;border-radius:999px;align-items:center;gap:2px;padding:3px;display:inline-flex;position:absolute}.choice-option{color:#1c201d;cursor:pointer;background:0 0;border:0;border-radius:999px;min-width:30px;height:30px;padding:0 8px;font-family:inherit;font-size:15px;font-weight:600}.choice-option:hover{background:var(--accent-soft)}.choice-option-selected{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-primary)}.choice-option:focus-visible,.choice-clear:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.choice-clear{border:0;border-left:1px solid var(--border-subtle);color:#1c201d;cursor:pointer;background:0 0;border-radius:999px;min-width:24px;height:24px;padding:0;font-size:14px;line-height:1}.choice-clear:hover{background:var(--bg-surface-hover)}.grid-row-group{position:static}.matching-item-zone{position:absolute;inset:0}.matching-item-dot{background:var(--accent-primary);pointer-events:none;border-radius:50%;width:9px;height:9px;margin-top:-4.5px;position:absolute;top:50%;right:-4px;box-shadow:0 0 0 1px #ffffffe6}.matching-item-zone-right .matching-item-dot{left:-4px;right:auto}.matching-source-dot{border:2px solid var(--accent-primary);pointer-events:none;background:#fff;border-radius:50%;width:10px;height:10px;margin-top:-5px;position:absolute;top:50%;left:-5px}.matching-unpair{z-index:3;color:#b91c1c;cursor:pointer;background:#fff;border:1px solid #b91c1cbf;border-radius:50%;width:18px;height:18px;padding:0;font-size:11px;font-weight:700;line-height:1;position:absolute;transform:translate(7px,-50%);box-shadow:0 1px 2px #00000059}.matching-unpair:hover:not(:disabled){background:#fee2e2f2;border-color:#b91c1c}.matching-unpair:focus-visible{outline-offset:1px;outline:2px solid #b91c1ccc}.matching-exercise-debug,.matching-item-debug,.matching-anchor-debug{pointer-events:none;position:absolute}.matching-exercise-debug{z-index:3;background:#a855f70d;border:1px dashed #9333eae6}.matching-item-debug{z-index:4;border:1px dotted #9333eacc}.matching-item-debug-left{border-color:#2563ebcc}.matching-item-debug-right{border-color:#ea580ccc}.matching-anchor-debug{z-index:5;background:#10b98159;border:1px solid #10b981f2}.matching-exercise-debug span,.matching-item-debug span{color:#4c1d95;white-space:nowrap;background:#f3e8fff2;padding:1px 3px;font-size:9px;line-height:1.2;position:absolute;top:100%;left:0}.free-text-exercise-debug,.free-text-line-debug{pointer-events:none;position:absolute}.free-text-exercise-debug{z-index:3;background:#0ea5e90d;border:1px dashed #0284c7e6}.free-text-line-debug{z-index:4;border:1px solid #0284c7cc}.free-text-exercise-debug span{color:#0c4a6e;white-space:nowrap;background:#e0f2fef2;padding:1px 3px;font-size:9px;line-height:1.2;position:absolute;top:100%;left:0}.page-processing-detail-message{animation:.2s fade-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.page-processing{z-index:6;pointer-events:none;border-radius:inherit;-webkit-backdrop-filter:blur(12px);background-color:#09090b66;background-image:linear-gradient(90deg,#6f9b7a0a 1px,#0000 1px),linear-gradient(#6f9b7a0a 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:24px 24px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.app[data-theme=light] .page-processing{background-color:#f4f6f18c;background-image:linear-gradient(90deg,#35634a0a 1px,#0000 1px),linear-gradient(#35634a0a 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:24px 24px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box}.page-scan-beam{pointer-events:none;position:absolute;inset:0;overflow:hidden}.page-scan-line{background:linear-gradient(90deg,#0000 0%,#6f9b7a33 15%,#6f9b7a 50%,#6f9b7a33 85%,#0000 100%);height:2px;animation:2.2s cubic-bezier(.4,0,.2,1) infinite alternate scan-sweep-antigravity;position:absolute;left:0;right:0;box-shadow:0 0 20px #6f9b7acc,0 0 8px #6f9b7a,0 0 2px #fff}.app[data-theme=light] .page-scan-line{background:linear-gradient(90deg,#0000 0%,#35634a33 15%,#35634a 50%,#35634a33 85%,#0000 100%);box-shadow:0 0 20px #35634a99,0 0 8px #35634a,0 0 2px #fff}@keyframes scan-sweep-antigravity{0%{opacity:.1;top:0%}10%{opacity:1}90%{opacity:1}to{opacity:.1;top:100%}}.page-processing-content{left:var(--processing-center-x,50%);top:var(--processing-center-y,50%);z-index:2;pointer-events:none;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#fafafa;background:#18181bf2;border:1px solid #ffffff1a;border-radius:6px;flex-direction:row;justify-content:flex-start;align-items:center;gap:16px;width:320px;min-height:76px;padding:16px 20px;animation:.3s cubic-bezier(.16,1,.3,1) card-appear;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 20px 48px #000c,0 0 0 1px #ffffff0d}.app[data-theme=light] .page-processing-content{color:#181e19;background:#fffffff5;border:1px solid #181e191f;box-shadow:0 16px 40px #181e1924,0 0 0 1px #181e190a}@keyframes card-appear{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.page-processing-body{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.page-processing-title{letter-spacing:-.01em;background:linear-gradient(90deg,#a1a1aa 0%,#fff 30%,#6f9b7a 50%,#fff 70%,#a1a1aa 100%) 0 0/200% 100%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:13px;font-weight:600;animation:2.5s ease-in-out infinite text-shimmer-lr}.app[data-theme=light] .page-processing-title{background:linear-gradient(90deg,#525e55 0%,#181e19 30%,#35634a 50%,#181e19 70%,#525e55 100%) 0 0/200% 100%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.page-processing-detail{font-family:var(--font-mono);background:linear-gradient(90deg,#71717a 0%,#a1a1aa 30%,#6f9b7a 50%,#a1a1aa 70%,#71717a 100%) 0 0/200% 100%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:11px;animation:2.5s ease-in-out .15s infinite text-shimmer-lr}.app[data-theme=light] .page-processing-detail{background:linear-gradient(90deg,#717d74 0%,#525e55 30%,#35634a 50%,#525e55 70%,#717d74 100%) 0 0/200% 100%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}@keyframes text-shimmer-lr{0%{background-position:200% 0}to{background-position:-200% 0}}.processing-spinner-ring{border:2px solid #6f9b7a40;border-top-color:var(--accent-primary);border-radius:50%;flex-shrink:0;width:22px;height:22px;animation:.75s cubic-bezier(.68,-.55,.27,1.55) infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.verdict-pill{border-radius:var(--radius-sm);font-family:var(--font-sans);white-space:nowrap;border:1px solid #0000;align-items:center;gap:4px;padding:2px 8px;font-size:11px;line-height:1.45;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex}.verdict-pill.correct{background:var(--correction-ok-soft);color:var(--correction-ok-strong);border-color:var(--correction-ok)}.verdict-pill.incorrect,.verdict-pill.partial{background:var(--correction-err-soft);color:var(--correction-err-strong);border-color:var(--correction-err)}.verdict-pill.unanswered{color:var(--text-tertiary);border-color:var(--border-subtle);background:0 0}.verdict-pill.not-auto-gradable{background:var(--correction-neutral-soft);color:var(--text-tertiary);border-color:var(--border-subtle);border-style:dashed}.verdict-pill.neutral{background:var(--correction-neutral-soft);color:var(--text-tertiary);border-color:var(--border-subtle)}.verdict-pill.revealed{background:var(--correction-ok-soft);color:var(--correction-ok-strong);border-color:var(--correction-ok)}.partial-dots{align-items:center;gap:2px;display:inline-flex}.partial-dots .dot{border-radius:50%;width:6px;height:6px}.partial-dots .dot.ok{background:var(--correction-ok)}.partial-dots .dot.err{background:var(--correction-err)}.check-bar{background:var(--bg-surface);border-top:1px solid var(--border-subtle);z-index:10;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex;position:sticky;bottom:0}.check-bar-rollup{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.02em;font-size:11px}.check-bar-hint{font-family:var(--font-sans);color:var(--text-tertiary);font-size:12px}.check-bar-btn{border-radius:var(--radius-md);border:1px solid var(--accent-primary);background:var(--accent-soft);color:var(--accent-primary);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.check-bar-btn:hover:not(:disabled){background:var(--accent-primary);color:var(--text-inverse)}.check-bar-btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--border-subtle);color:var(--text-tertiary);background:0 0}.check-bar-btn kbd{font-family:var(--font-mono);color:var(--text-tertiary);border:1px solid var(--border-subtle);background:#ffffff14;border-radius:3px;align-items:center;padding:1px 5px;font-size:10px;line-height:1.4;display:inline-flex}.reveal-block{border:1px solid var(--correction-ok);border-radius:var(--radius-md);background:var(--bg-surface-subtle);margin-top:10px;padding:10px;transition:opacity .18s,transform .18s}.reveal-block-compare{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.reveal-block-row{font-family:var(--font-mono);gap:6px;font-size:12px;line-height:1.5;display:flex}.reveal-block-row.learner{color:var(--text-primary)}.reveal-block-row.expected{color:var(--correction-ok-strong)}.reveal-block-row.alternatives{color:var(--text-secondary);font-size:11px}.reveal-block-label{font-family:var(--font-sans);color:var(--text-tertiary);flex-shrink:0;min-width:80px;font-size:11px}.reveal-block-value{word-break:break-all}.reveal-block-actions{align-items:center;gap:8px;display:flex}.reveal-toggle{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-sans);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:3px 10px;font-size:12px;transition:background-color .15s,color .15s;display:inline-flex}.reveal-toggle:hover:not(:disabled){background:var(--bg-surface-hover);color:var(--text-primary)}.reveal-toggle:disabled{opacity:.5;cursor:default}.try-again-btn{border-radius:var(--radius-sm);color:var(--text-tertiary);font-family:var(--font-sans);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:3px 10px;font-size:12px;transition:background-color .15s,color .15s;display:inline-flex}.try-again-btn:hover{background:var(--bg-surface-hover);color:var(--text-secondary)}.no-reference{font-family:var(--font-sans);color:var(--text-tertiary);padding:4px 0;font-size:12px;font-style:italic}.reference-answer{background:var(--bg-surface);border-radius:var(--radius-sm);font-family:var(--font-sans);color:var(--text-secondary);border-left:1px solid var(--correction-ok);margin-top:8px;padding:8px 10px;font-size:13px;font-style:italic;line-height:1.5}.correction-glyphs{pointer-events:none;z-index:4;position:absolute;inset:0}.correction-ring{border-radius:var(--radius-sm);position:absolute}.correction-ring-blank{border:1px solid #0000}.correction-ring-blank.correct{border-color:var(--correction-ok)}.correction-ring-blank.incorrect{border-color:var(--correction-err)}.correction-ring-blank.unanswered{border-color:var(--text-tertiary)}.correction-ring-blank.not-auto-gradable{border-color:var(--text-tertiary);border-style:dashed}.correction-ring-choice{border:1px solid #0000}.correction-ring-choice.correct{border-color:var(--correction-ok)}.correction-ring-choice.incorrect{border-color:var(--correction-err)}.correction-ring-grid-row{border:1px solid var(--correction-err);opacity:.6}.correction-glyph-icon{z-index:5;position:absolute;top:-8px;right:-8px}.correction-glyph-ok{color:var(--correction-ok)}.correction-glyph-err{color:var(--correction-err)}.correction-glyph-neutral{color:var(--text-tertiary)}.choice-value.correct{background:var(--correction-ok)!important;border-color:var(--correction-ok)!important}.choice-value.incorrect{background:var(--correction-err)!important;border-color:var(--correction-err)!important}.choice-value.revealed{border:1.5px solid var(--correction-ok)!important;color:var(--correction-ok)!important;background:0 0!important}.matching-line-ok{stroke:var(--correction-ok);stroke-dasharray:none}.matching-line-err{stroke:var(--correction-err);stroke-dasharray:6 3}.matching-line-expected{stroke:var(--correction-ok);stroke-dasharray:4 4;opacity:.4}.ordering-badge.correct{background:var(--correction-ok-soft);color:var(--correction-ok);border-color:var(--correction-ok)}.ordering-badge.incorrect{background:var(--correction-err-soft);color:var(--correction-err);border-color:var(--correction-err)}.free-text-dashed-ring{border:1px dashed var(--text-tertiary);border-radius:var(--radius-sm)}.ordering-rollup-dot{border-radius:50%;width:8px;height:8px;transition:opacity .15s}.ordering-rollup-dot.ok{background:var(--correction-ok)}.ordering-rollup-dot.err{background:var(--correction-err)}.correction-ring{transition:border-color .15s}.exercise-item-cell{flex-direction:column;gap:6px;display:flex}.exercise-item-cell .reveal-block{margin-top:0}.ordering-feedback{margin-top:10px}.choice-value.expected{box-shadow:none;border:1.5px solid var(--correction-ok)!important;color:var(--correction-ok)!important;background:0 0!important}.ordering-fragment-badge.correct{background:var(--correction-ok-soft);color:var(--correction-ok);border:1px solid var(--correction-ok)}.ordering-fragment-badge.incorrect{background:var(--correction-err-soft);color:var(--correction-err);border:1px solid var(--correction-err)}.ordering-chip-correct{border-color:var(--correction-ok)!important;background:var(--correction-ok-soft)!important}.ordering-chip-incorrect{border-color:var(--correction-err)!important;background:var(--correction-err-soft)!important}.reader-toolbar,.left-rail,.right-rail,.rail-header,.page-area,.exercise-card,.empty-hero{transition:background-color .2s,border-color .2s,color .2s}.dev-view{animation:.18s cubic-bezier(.16,1,.3,1) view-in}.choice-selector{transform-origin:top;animation:.15s cubic-bezier(.16,1,.3,1) selector-in}@keyframes selector-in{0%{opacity:0;transform:translate(-50%)translateY(-4px)scale(.98)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.ordering-chip{animation:.18s cubic-bezier(.16,1,.3,1) chip-in}@keyframes chip-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.ordering-bubble-expanded{animation:.16s cubic-bezier(.16,1,.3,1) bubble-in}@keyframes bubble-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes view-in{0%{opacity:0}to{opacity:1}}.reader-mode-switch{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-app);padding:2px;display:inline-flex}.reader-mode-switch button{border-radius:var(--radius-sm);min-height:40px;color:var(--text-secondary);font:600 11px/1 var(--font-sans);cursor:pointer;background:0 0;border:0;padding:0 10px}.reader-mode-switch button[aria-pressed=true]{background:var(--bg-surface-subtle);color:var(--text-primary);box-shadow:var(--shadow-sm)}.reader-mode-switch button:focus-visible,.interactive-lesson button:focus-visible,.interactive-lesson input:focus-visible,.interactive-lesson textarea:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.reader-layout-interactive .page-area{background:var(--bg-canvas);justify-content:stretch;padding:clamp(20px,4vw,56px)}.interactive-lesson{width:min(920px,100%);min-height:100%;color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-page);margin:0 auto;padding:clamp(28px,5vw,64px)}.lesson-hero{border-bottom:1px solid var(--border-strong);justify-content:space-between;align-items:flex-start;gap:32px;padding-bottom:28px;display:flex}.lesson-eyebrow,.lesson-task-kind,.lesson-context-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-primary);font-size:11px;font-weight:650}.lesson-eyebrow{align-items:center;gap:10px;margin-bottom:12px;display:flex}.lesson-eyebrow span{border-left:1px solid var(--border-strong);color:var(--text-tertiary);padding-left:10px}.lesson-hero h1,.interactive-unavailable h1{letter-spacing:-.045em;max-width:680px;margin-bottom:10px;font-size:clamp(30px,5vw,52px);line-height:1.02}.lesson-hero>div>p:last-child,.interactive-unavailable>p{color:var(--text-secondary);font-size:15px;line-height:1.6}.lesson-source-badge{border:1px solid var(--border-subtle);color:var(--text-secondary);font:600 11px/1 var(--font-mono);flex:none;align-items:center;gap:6px;padding:7px 9px;display:inline-flex}.lesson-page-nav{color:var(--text-tertiary);font:12px/1 var(--font-mono);grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin:18px 0;display:grid}.lesson-page-nav button,.lesson-state-actions button,.lesson-completion-bar button{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);min-height:40px;color:var(--text-primary);font:600 13px/1 var(--font-sans);cursor:pointer;background:0 0}.lesson-page-nav button{align-items:center;gap:7px;width:fit-content;padding:0 12px;display:inline-flex}.lesson-page-nav button:last-child{justify-self:end}.lesson-page-nav button:disabled{opacity:.35;cursor:default}.lesson-page-nav button:not(:disabled):hover{border-color:var(--border-focus);background:var(--accent-soft)}.lesson-content{flex-direction:column;display:flex}.lesson-context{border-left:1px solid var(--accent-primary);margin:18px 0;padding:22px 0 22px 24px}.lesson-context[data-variant=instruction]{border:1px solid var(--border-subtle);border-left-color:var(--accent-primary);background:var(--accent-soft);padding:16px 18px}.lesson-context-label{align-items:center;gap:7px;margin-bottom:10px;display:inline-flex}.lesson-context p{max-width:70ch;color:var(--text-secondary);font-size:16px;line-height:1.72}.lesson-context p+p{margin-top:8px}.lesson-exercise{border-top:1px solid var(--border-subtle);padding:32px 0 36px}.lesson-block-heading{grid-template-columns:34px minmax(0,1fr);gap:14px;margin-bottom:22px;display:grid}.lesson-task-number{color:var(--text-tertiary);font:12px/1 var(--font-mono);padding-top:2px}.lesson-block-heading h2{letter-spacing:-.018em;max-width:68ch;margin-top:6px;font-size:clamp(17px,2vw,21px);line-height:1.35}.lesson-field-stack,.lesson-ordering-stack{flex-direction:column;gap:18px;padding-left:48px;display:flex}.lesson-field{color:var(--text-secondary);flex-direction:column;align-items:stretch;gap:7px;font-size:13px;font-weight:600;display:flex}.lesson-field input,.lesson-field textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-app);width:100%;min-height:44px;color:var(--text-primary);font:15px/1.5 var(--font-sans);resize:vertical;padding:10px 12px}.lesson-field input:hover,.lesson-field textarea:hover{border-color:var(--text-tertiary)}.lesson-field small{color:var(--text-tertiary);font-weight:400}.lesson-choice-set{border:0;min-width:0;padding:0}.lesson-choice-set legend{color:var(--text-secondary);margin-bottom:10px;font-size:12px;font-weight:600}.lesson-option-row,.lesson-token-row{flex-wrap:wrap;gap:8px;display:flex}.lesson-option{cursor:pointer;position:relative}.lesson-option input,.lesson-grid-option input{opacity:0;pointer-events:none;position:absolute}.lesson-option span,.lesson-token,.lesson-match-item{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-app);min-height:44px;color:var(--text-primary);font:600 14px/1.3 var(--font-sans);justify-content:center;align-items:center;padding:0 16px;display:inline-flex}.lesson-option input:focus-visible+span{outline:2px solid var(--border-focus);outline-offset:2px}.lesson-option input:checked+span,.lesson-token[data-selected=true],.lesson-match-item[data-selected=true]{border-color:var(--accent-primary);background:var(--accent-soft);color:var(--accent-hover)}.lesson-neutral-note{border:1px solid var(--border-subtle);color:var(--text-secondary);padding:12px 14px;font-size:13px;line-height:1.5}.lesson-grid-wrap{padding-left:48px;overflow-x:auto}.lesson-choice-grid{border-collapse:collapse;width:100%;min-width:460px}.lesson-choice-grid th,.lesson-choice-grid td{border-bottom:1px solid var(--border-subtle);text-align:center;height:48px;padding:8px 12px}.lesson-choice-grid th:first-child{text-align:left}.lesson-choice-grid thead th{color:var(--text-tertiary);font:11px/1 var(--font-mono);text-transform:uppercase}.lesson-grid-option{cursor:pointer;place-items:center;width:40px;height:40px;display:inline-grid;position:relative}.lesson-grid-option:after{content:"";border:1px solid var(--border-strong);border-radius:50%;width:16px;height:16px}.lesson-grid-option:has(input:checked):after{border:5px solid var(--accent-primary)}.lesson-grid-option:has(input:focus-visible){outline:2px solid var(--border-focus);outline-offset:2px}.lesson-ordering{flex-direction:column;gap:10px;display:flex}.lesson-ordering-result{border-bottom:1px solid var(--border-strong);min-height:48px;color:var(--text-secondary);align-items:center;gap:10px;padding:10px 12px;line-height:1.45;display:flex}.lesson-token{cursor:pointer;gap:8px}.lesson-token>span{color:var(--accent-primary);font:10px/1 var(--font-mono)}.lesson-matching{padding-left:48px}.lesson-matching-help{color:var(--text-secondary);align-items:center;gap:7px;margin-bottom:14px;font-size:13px;display:flex}.lesson-matching-columns{grid-template-columns:1fr 1fr;gap:18px;display:grid}.lesson-matching-columns>div{flex-direction:column;gap:8px;display:flex}.lesson-matching-columns h3{color:var(--text-tertiary);font:11px/1 var(--font-mono);text-transform:uppercase;margin-bottom:4px}.lesson-match-item{text-align:left;cursor:pointer;justify-content:flex-start;width:100%}.lesson-match-item[data-paired=true]{border-color:var(--accent-primary)}.lesson-pairs{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.lesson-pairs button{border:1px solid var(--border-subtle);min-height:40px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 10px}.lesson-free-text{padding-left:48px}.lesson-feedback{border:1px solid var(--border-subtle);color:var(--text-secondary);justify-content:space-between;align-items:center;gap:14px;margin-top:10px;padding:10px 12px;font-size:12px;font-weight:400;line-height:1.45;display:flex}.lesson-expected{color:var(--text-primary);margin-top:4px;display:block}.lesson-feedback-actions button{border:1px solid var(--border-subtle);background:var(--bg-surface);min-height:40px;color:var(--text-primary);cursor:pointer;align-items:center;gap:5px;padding:0 10px;font-size:11px;display:inline-flex}.lesson-completion-bar{border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);justify-content:space-between;align-items:center;gap:24px;margin-top:18px;padding:22px 0;display:flex}.lesson-completion-bar div{flex-direction:column;gap:4px;display:flex}.lesson-completion-bar span{color:var(--text-secondary);font-size:12px}.lesson-primary-action{justify-content:center;align-items:center;gap:7px;padding:0 16px;display:inline-flex;border-color:var(--accent-primary)!important;background:var(--accent-primary)!important;color:var(--text-inverse)!important}.lesson-primary-action:hover:not(:disabled){background:var(--accent-hover)!important}.interactive-unavailable{flex-direction:column;justify-content:center;align-items:flex-start;min-height:min(680px,100%);display:flex}.lesson-state-mark{border:1px solid var(--border-strong);width:54px;height:54px;color:var(--accent-primary);place-items:center;margin-bottom:22px;display:grid}.interactive-unavailable>p{max-width:58ch}.lesson-state-actions button{padding:0 16px}.interactive-unavailable .lesson-page-nav{width:100%;margin-top:48px}.reader-request-alert,.reader-page-warning{border-bottom:1px solid var(--correction-err);background:var(--correction-err-soft);color:var(--text-primary);justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;font-size:12px;display:flex}.reader-request-alert button,.reader-page-warning button,.reader-source-error button{border:1px solid var(--border-strong);background:var(--bg-surface);min-height:40px;color:var(--text-primary);cursor:pointer;padding:0 14px}.reader-page-warning{z-index:8;border:1px solid var(--correction-err);position:absolute;top:12px;left:12px;right:12px}.reader-source-error{min-height:420px;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:32px;display:flex}.reader-source-error h1{color:var(--text-primary);margin:0;font-size:24px}.reader-source-error p{max-width:52ch;margin:0}@media (width<=1180px){.app[data-design=stitch] .reader-toolbar{height:auto;min-height:48px;padding:7px 12px}.toolbar-inner{flex-wrap:wrap;gap:8px}.toolbar-center{order:3;justify-content:center;width:100%}.reader-layout-interactive .page-area{padding:24px}}@media (width<=720px){.left-rail{display:none}.app-main-workspace{width:100%}.doc-tag,.upload-btn span,.toolbar-right .status{display:none}.toolbar-left,.toolbar-right{gap:6px}.toolbar-center{justify-content:space-between;overflow-x:auto}.reader-layout-interactive .page-area{padding:0}.interactive-lesson{box-shadow:none;border:0;padding:28px 20px}.lesson-hero{flex-direction:column;gap:16px}.lesson-hero h1,.interactive-unavailable h1{font-size:34px}.lesson-source-badge{align-self:flex-start}.lesson-field-stack,.lesson-ordering-stack,.lesson-grid-wrap,.lesson-matching,.lesson-free-text{padding-left:0}.lesson-matching-columns{grid-template-columns:1fr}.lesson-feedback,.lesson-completion-bar{flex-direction:column;align-items:flex-start}.lesson-completion-bar .lesson-primary-action{width:100%;min-height:44px}}@media (prefers-reduced-motion:reduce){.page-scan-line,.processing-spinner-ring{transition:none!important;animation:none!important}.page-processing,.page-processing *{transition:none;animation:none}.reader-toolbar,.left-rail,.right-rail,.rail-header,.page-area,.exercise-card,.empty-hero,.choice-selector,.ordering-chip,.ordering-bubble-expanded,.dev-view,.correction-glyphs,.correction-ring,.correction-glyph-icon,.verdict-pill,.reveal-block,.reveal-toggle,.try-again-btn,.matching-line-ok,.matching-line-err,.matching-line-expected,.ordering-rollup-dot,.ordering-badge,.ordering-fragment-badge,.ordering-chip-correct,.ordering-chip-incorrect{transition:none!important;animation:none!important}}.classic-check-dock{z-index:12;width:auto;position:absolute;bottom:18px;right:18px}.classic-check-dock .check-bar{border:1px solid var(--border-strong);background:var(--bg-surface);min-height:auto;box-shadow:var(--shadow-md);border-radius:8px;padding:6px;position:static}.classic-check-dock .check-bar-btn{min-height:38px}.app{height:100dvh}.app[data-reader-mode=interactive] .analysis-action-group,.app[data-reader-mode=interactive] .dev-mode-toggle,.app[data-reader-mode=interactive] .dev-toggle-btn{display:none}.reader-layout-interactive .page-area{background:radial-gradient(circle at 50% 42%, color-mix(in oklab, var(--accent-primary) 9%, transparent), transparent 34rem), var(--bg-canvas);justify-content:stretch;align-items:center;padding:clamp(14px,2.4vw,28px);overflow:hidden}.interactive-lesson{--lesson-bg:oklch(16% .008 145);--lesson-bg-raised:oklch(19.5% .01 145);--lesson-bg-soft:oklch(22% .015 145);--lesson-border:oklch(31% .012 145);--lesson-border-strong:oklch(40% .02 145);--lesson-text:oklch(96.5% .008 145);--lesson-text-muted:oklch(72% .016 145);--lesson-text-soft:oklch(62% .016 145);--lesson-accent:oklch(71% .08 145);--lesson-accent-strong:oklch(79% .085 145);--lesson-accent-soft:oklch(71% .08 145/.12);width:min(980px,100%);height:100%;min-height:0;max-height:760px;color:var(--lesson-text);border:1px solid var(--lesson-border);background:radial-gradient(circle at 78% 4%, var(--lesson-accent-soft), transparent 24rem), var(--lesson-bg);border-radius:6px;margin:0 auto;padding:0;overflow:hidden;box-shadow:0 24px 70px oklch(5% .01 145/.38),0 0 0 6px oklch(10% .008 145/.25)}.app[data-theme=light] .interactive-lesson{--lesson-bg:oklch(98.5% .008 135);--lesson-bg-raised:oklch(96.5% .012 135);--lesson-bg-soft:oklch(94% .02 135);--lesson-border:oklch(86% .018 135);--lesson-border-strong:oklch(76% .03 135);--lesson-text:oklch(24% .025 145);--lesson-text-muted:oklch(39% .03 145);--lesson-text-soft:oklch(42% .025 145);--lesson-accent:oklch(47% .09 145);--lesson-accent-strong:oklch(39% .09 145);--lesson-accent-soft:oklch(47% .09 145/.09);box-shadow:0 20px 60px oklch(42% .03 145/.13)}.lesson-player{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.lesson-player-header{border-bottom:1px solid var(--lesson-border);background:var(--lesson-bg-raised);grid-template-columns:minmax(0,1fr) auto;gap:12px 24px;padding:14px 24px 11px;display:grid}.lesson-player-title{min-width:0}.lesson-source-context{color:var(--lesson-text-soft);gap:12px;margin-bottom:5px;font-size:12px;font-weight:650;display:flex}.lesson-source-context span+span:before{content:"";background:var(--lesson-border-strong);width:1px;height:10px;margin-right:12px;display:inline-block}.lesson-player-title h1{color:var(--lesson-text);letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(21px,2.2vw,29px);font-weight:720;line-height:1.12;overflow:hidden}.lesson-classic-link,.lesson-secondary-action,.lesson-back-action,.lesson-player-actions button,.lesson-feedback-actions button{border:1px solid var(--lesson-border);min-height:42px;color:var(--lesson-text-muted);font:650 13px/1 var(--font-sans);cursor:pointer;background:0 0;border-radius:10px}.lesson-classic-link{align-self:center;align-items:center;gap:7px;padding:0 12px;display:inline-flex}.lesson-classic-link:hover,.lesson-secondary-action:hover,.lesson-back-action:hover:not(:disabled),.lesson-feedback-actions button:hover{border-color:var(--lesson-border-strong);background:var(--lesson-bg-soft);color:var(--lesson-text)}.lesson-progress{grid-column:1/-1}.lesson-progress-copy{color:var(--lesson-text-soft);justify-content:space-between;margin-bottom:7px;font-size:11px;font-weight:650;display:flex}.lesson-progress-copy span:first-child{color:var(--lesson-accent)}.lesson-progress-track{background:var(--lesson-border);border-radius:99px;height:3px;overflow:hidden}.lesson-progress-track>span{border-radius:inherit;background:var(--lesson-accent);transform-origin:0;width:100%;height:100%;transition:transform .22s cubic-bezier(.16,1,.3,1);display:block}.lesson-stage{min-height:0;padding:clamp(12px,2.2vh,22px) clamp(28px,5vw,64px);position:relative;overflow:hidden}.lesson-stage:before{content:"";background:linear-gradient(to bottom, transparent, var(--lesson-border), transparent);width:1px;position:absolute;top:0;bottom:0;left:clamp(15px,2.5vw,30px)}.lesson-step-motion{overscroll-behavior-y:contain;scrollbar-gutter:stable;width:min(720px,100%);height:100%;min-height:0;margin:0 auto;padding-right:8px;animation:.19s cubic-bezier(.16,1,.3,1) lesson-step-forward;overflow:hidden auto}.lesson-step-motion[data-direction=back]{animation-name:lesson-step-back}@keyframes lesson-step-forward{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes lesson-step-back{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.lesson-step{min-height:100%;color:var(--lesson-text);flex-direction:column;justify-content:flex-start;padding-block:clamp(10px,2vh,18px) 8px;display:flex}.lesson-step-meta{color:var(--lesson-text-soft);gap:12px;margin-bottom:7px;font-size:12px;font-weight:650;display:flex}.lesson-step-meta span+span:before{content:"";background:var(--lesson-border-strong);width:1px;height:10px;margin-right:12px;display:inline-block}.lesson-family-label{color:var(--lesson-accent);margin-bottom:7px;font-size:13px;font-weight:700}.lesson-step h2{max-width:34ch;color:var(--lesson-text);letter-spacing:-.035em;margin:0;font-size:clamp(23px,2.6vw,30px);font-weight:720;line-height:1.15}.lesson-step h2:focus{outline:none}.lesson-exercise-instruction{max-width:64ch;color:var(--lesson-text-muted);margin-top:6px;font-size:15px;line-height:1.4}.lesson-inline-context{border-left:1px solid var(--lesson-accent);background:var(--lesson-accent-soft);max-width:68ch;color:var(--lesson-text-muted);margin-top:9px;padding:9px 12px;font-size:14px;line-height:1.4}.lesson-inline-context p+p{margin-top:8px}.lesson-exercise-items{gap:10px;margin-top:12px;display:grid}.lesson-fill-item,.lesson-choice-item,.lesson-ordering-item{border:1px solid var(--lesson-border);background:color-mix(in oklab, var(--lesson-bg-raised) 82%, transparent);border-radius:12px;min-width:0;margin:0;padding:10px 12px}.lesson-fill-item label{color:var(--lesson-text);grid-template-columns:minmax(0,1fr) minmax(150px,38%);align-items:center;gap:16px;font-size:14px;font-weight:600;line-height:1.45;display:grid}.lesson-fill-item input{border:1px solid var(--lesson-border-strong);background:var(--lesson-bg);min-width:0;min-height:46px;color:var(--lesson-text);font:600 15px/1 var(--font-sans);border-radius:8px;padding:0 12px}.lesson-choice-item{border:1px solid var(--lesson-border)}.lesson-choice-item legend{color:var(--lesson-text);align-items:flex-start;gap:9px;padding:0 4px;font-size:14px;font-weight:650;line-height:1.4;display:flex}.lesson-choice-item legend>span{background:var(--lesson-accent-soft);width:22px;height:22px;color:var(--lesson-accent);border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.lesson-choice-item .lesson-option-grid{margin-top:8px}.lesson-choice-grid{border:1px solid var(--lesson-border);background:var(--lesson-bg-raised);border-radius:12px;min-width:0;margin-top:12px;display:grid;overflow:hidden}.lesson-choice-grid-head,.lesson-choice-grid-row{grid-template-columns:minmax(190px,1fr) repeat(3,minmax(68px,.38fr));align-items:stretch;display:grid}.lesson-choice-grid-head{background:var(--lesson-bg-soft);color:var(--lesson-text-soft);font-size:11px;font-weight:700}.lesson-choice-grid-head span,.lesson-choice-grid-row>strong,.lesson-choice-grid-row>label{border-right:1px solid var(--lesson-border);align-items:center;min-height:39px;padding:6px 10px;display:grid}.lesson-choice-grid-head span:last-child,.lesson-choice-grid-row>label:last-child{border-right:0}.lesson-choice-grid-row+.lesson-choice-grid-row{border-top:1px solid var(--lesson-border)}.lesson-choice-grid-row>strong{color:var(--lesson-text);font-size:13px;font-weight:600;line-height:1.35}.lesson-choice-grid-row>label{cursor:pointer;place-items:center;transition:background-color .17s}.lesson-choice-grid-row>label:hover{background:var(--lesson-accent-soft)}.lesson-choice-grid-row input{width:18px;height:18px;accent-color:var(--lesson-accent);cursor:pointer;transition:filter .17s,transform .22s cubic-bezier(.16,1,.3,1)}.lesson-choice-grid-row label:hover input{transform:scale(1.12)}.lesson-choice-grid-row input:active{transform:scale(.86)}.lesson-choice-grid-row input:checked{animation:.28s cubic-bezier(.16,1,.3,1) lesson-select-in}.lesson-ordering-item h3{color:var(--lesson-accent);font:700 12px/1 var(--font-sans);margin:0}.lesson-save-status{color:var(--lesson-text-soft);margin-top:9px;font-size:12px}.lesson-context-step{padding-right:min(12vw,100px);position:relative}.lesson-context-icon{background:var(--lesson-accent-soft);width:46px;height:46px;color:var(--lesson-accent);border-radius:12px;place-items:center;margin-bottom:18px;display:grid}.lesson-context-copy{max-width:68ch;color:var(--lesson-text-muted);margin-top:20px;font-size:clamp(16px,1.7vw,19px);line-height:1.65}.lesson-context-copy p+p{margin-top:12px}.lesson-context-step[data-variant=instruction] .lesson-context-icon{background:var(--lesson-bg-soft)}.lesson-control-region{flex-direction:column;gap:8px;margin-top:clamp(16px,2.6vh,24px);display:flex}.lesson-free-text-control{align-items:stretch;width:100%;max-width:68ch}.lesson-free-text-label{width:100%;margin:0;padding:0 1px;display:block}.lesson-control-region label{color:var(--lesson-text-muted);font-size:13px;font-weight:650}.lesson-control-region input,.lesson-control-region textarea{border:1px solid var(--lesson-border-strong);background:var(--lesson-bg-raised);width:100%;color:var(--lesson-text);font:600 17px/1.5 var(--font-sans);border-radius:12px;transition:border-color .17s,background-color .17s,box-shadow .22s,transform .22s cubic-bezier(.16,1,.3,1)}.lesson-control-region input:hover,.lesson-control-region textarea:hover{border-color:var(--lesson-accent)}.lesson-control-region input{min-height:54px;padding:0 16px}.lesson-control-region textarea{box-sizing:border-box;resize:vertical;scrollbar-gutter:stable;min-height:118px;padding:13px 16px;display:block;overflow:auto}.lesson-control-region small{color:var(--lesson-text-soft);font-size:12px;font-weight:450;line-height:1.45}.lesson-free-text-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:2px;display:flex}.lesson-response-done,.lesson-ai-feedback-action{border:1px solid var(--lesson-border-strong);background:var(--lesson-bg-raised);min-height:40px;color:var(--lesson-text-muted);font:650 13px/1 var(--font-sans);cursor:pointer;border-radius:9px;align-items:center;gap:7px;padding:0 13px;transition:border-color .15s,background-color .15s,color .15s,opacity .15s;display:inline-flex}.lesson-response-done:not(:disabled):hover,.lesson-ai-feedback-action:not(:disabled):hover,.lesson-response-done[aria-pressed=true]{border-color:var(--lesson-accent);background:var(--lesson-accent-soft);color:var(--lesson-text)}.lesson-ai-feedback-action:not(:disabled){border-color:var(--lesson-accent);color:var(--lesson-text)}.lesson-response-done:disabled,.lesson-ai-feedback-action:disabled{cursor:not-allowed;opacity:.5}.lesson-free-text-feedback-status{color:var(--lesson-text-soft);margin:0;font-size:12px;line-height:1.45}.lesson-option-grid{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;margin-top:clamp(16px,2.6vh,24px);padding:0;display:grid}.lesson-option{min-width:0;position:relative}.lesson-option input{opacity:0;position:absolute}.lesson-option span,.lesson-token,.lesson-match-item{border:1px solid var(--lesson-border);background:var(--lesson-bg-raised);width:100%;min-height:50px;color:var(--lesson-text);font:650 14px/1.35 var(--font-sans);text-align:left;cursor:pointer;box-shadow:0 2px 0 color-mix(in oklab, var(--lesson-border-strong) 58%, transparent);border-radius:8px;justify-content:flex-start;align-items:center;padding:11px 14px;transition:transform .15s cubic-bezier(.16,1,.3,1),border-color .15s,background-color .15s,box-shadow .15s;display:flex}.lesson-option:hover span,.lesson-token:hover,.lesson-match-item:hover{border-color:var(--lesson-border-strong);background:var(--lesson-bg-soft);box-shadow:0 4px 0 color-mix(in oklab, var(--lesson-border-strong) 66%, transparent);transform:translateY(-1px)}.lesson-option input:focus-visible+span,.lesson-token:focus-visible,.lesson-match-item:focus-visible,.lesson-control-region input:focus-visible,.lesson-control-region textarea:focus-visible,.lesson-player button:focus-visible{outline:2px solid var(--lesson-accent-strong);outline-offset:2px}.lesson-free-text-control textarea:focus-visible{outline-offset:0}.lesson-option input:checked+span,.lesson-token[data-selected=true],.lesson-match-item[data-selected=true]{border-color:var(--lesson-accent);background:var(--lesson-accent-soft);color:var(--lesson-text);box-shadow:inset 3px 0 var(--lesson-accent);animation:.28s cubic-bezier(.16,1,.3,1) lesson-select-in}@keyframes lesson-select-in{0%{transform:scale(.975)}58%{transform:scale(1.018)}to{transform:scale(1)}}.lesson-option input:checked+span:before{content:"";background:var(--lesson-accent);border-radius:50%;flex:none;width:9px;height:9px;margin-right:9px}.lesson-ordering-result{border:1px solid var(--lesson-border);background:var(--lesson-bg-raised);min-height:58px;color:var(--lesson-text-muted);border-radius:8px;align-items:center;gap:11px;margin-top:clamp(16px,2.6vh,26px);padding:12px 14px;font-size:15px;line-height:1.45;display:flex}.lesson-token-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.lesson-token{gap:8px;width:auto;min-height:44px;padding:9px 13px}.lesson-token>span{background:var(--lesson-accent);width:18px;height:18px;color:var(--lesson-bg);border-radius:50%;place-items:center;font-size:10px;display:grid}.lesson-step-help{color:var(--lesson-text-muted);align-items:center;gap:7px;margin-top:8px;font-size:13px;display:flex}.lesson-matching-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px;display:grid}.lesson-matching-columns>div{border:1px solid var(--lesson-border);background:color-mix(in oklab, var(--lesson-bg-raised) 72%, transparent);flex-direction:column;gap:5px;min-width:0;padding:8px;display:flex}.lesson-matching-columns h3{color:var(--lesson-text-soft);font:650 11px/1 var(--font-sans);margin:0 0 2px}.lesson-match-item{min-height:36px;padding:6px 9px;font-size:13px}.lesson-match-item[data-paired=true]{border-color:var(--lesson-accent);background:var(--lesson-accent-soft);box-shadow:inset 3px 0 var(--lesson-accent);animation:.28s cubic-bezier(.16,1,.3,1) lesson-select-in}.lesson-pairs{border-top:1px solid var(--lesson-border);flex-wrap:wrap;gap:6px;margin-top:7px;padding-top:7px;display:flex}.lesson-pairs button{border:1px solid var(--lesson-border);min-height:34px;color:var(--lesson-text-muted);background:0 0;border-radius:9px;padding:0 10px;font-size:12px}.lesson-pairs button span{color:var(--lesson-accent);margin:0 5px}.lesson-pairs .lesson-reset-link{color:var(--lesson-text-soft);border-color:#0000;text-decoration:underline}.lesson-neutral-note{border:1px solid var(--lesson-border);background:var(--lesson-bg-raised);color:var(--lesson-text-muted);border-radius:12px;align-items:flex-start;gap:10px;margin-top:24px;padding:14px;font-size:13px;line-height:1.5;display:flex}.lesson-feedback-slot{min-height:0;margin-top:12px}.lesson-feedback{border:1px solid var(--lesson-border);background:var(--lesson-bg-raised);min-height:62px;color:var(--lesson-text-muted);border-radius:12px;justify-content:space-between;align-items:center;gap:14px;margin:0;padding:10px 12px;font-size:12px;line-height:1.45;animation:.17s cubic-bezier(.16,1,.3,1) lesson-feedback-in;display:flex}@keyframes lesson-feedback-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.lesson-feedback[data-verdict=correct]{border-color:var(--lesson-accent);background:var(--lesson-accent-soft)}.lesson-feedback[data-verdict=incorrect],.lesson-feedback[data-verdict=partially_correct]{border-color:var(--correction-err);background:var(--correction-err-soft)}.lesson-feedback-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.lesson-feedback-copy strong,.lesson-expected{color:var(--lesson-text)}.lesson-feedback-actions{flex:none;gap:6px;display:flex}.lesson-feedback-actions button{align-items:center;gap:6px;min-height:38px;padding:0 10px;display:inline-flex}.lesson-completion-step{align-items:flex-start}.lesson-completion-mark,.lesson-state-mark,.lesson-preparing-mark{background:var(--lesson-accent-soft);width:54px;height:54px;color:var(--lesson-accent);border-radius:14px;place-items:center;margin-bottom:20px;display:grid}.lesson-completion-step>p:last-of-type{color:var(--lesson-text-muted);margin-top:15px;font-size:17px}.lesson-completion-step>span{color:var(--lesson-text-soft);margin-top:6px;font-size:13px}.lesson-player-actions{border-top:1px solid var(--lesson-border);background:var(--lesson-bg-raised);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;min-height:70px;padding:10px 26px;display:grid}.lesson-back-action,.lesson-primary-action,.lesson-secondary-action{white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:0 14px;display:inline-flex}.lesson-back-action:disabled{opacity:.35;cursor:default}.lesson-primary-action{min-height:44px;font:720 13px/1 var(--font-sans);cursor:pointer;border-radius:10px;border:1px solid var(--lesson-accent)!important;background:var(--lesson-accent)!important;color:var(--lesson-bg)!important}.lesson-primary-action:hover:not(:disabled){border-color:var(--lesson-accent-strong)!important;background:var(--lesson-accent-strong)!important}.lesson-primary-action:active:not(:disabled),.lesson-option:active span,.lesson-token:active,.lesson-match-item:active{transform:translateY(1px)}.lesson-primary-action:disabled{opacity:.38;cursor:default}.lesson-action-note{color:var(--lesson-text-soft);text-align:center;justify-self:center;font-size:11px}.lesson-action-note button{min-height:36px;color:var(--correction-err-strong);padding:0 10px}.interactive-lesson-state{place-items:center;display:grid}.lesson-empty-state,.lesson-preparing{flex-direction:column;align-items:flex-start;width:min(640px,100% - 40px);display:flex}.lesson-state-label{color:var(--lesson-accent);margin-bottom:8px;font-size:13px;font-weight:700}.lesson-empty-state h1,.lesson-preparing h1{max-width:18ch;color:var(--lesson-text);letter-spacing:-.045em;font-size:clamp(30px,5vw,50px);line-height:1.05}.lesson-state-copy{max-width:56ch;color:var(--lesson-text-muted);margin-top:14px;font-size:15px;line-height:1.6}.lesson-state-actions{flex-wrap:wrap;gap:9px;margin-top:24px;display:flex}.lesson-processing-message{min-height:28px;color:var(--lesson-text-muted);margin-top:18px;font-size:16px;font-weight:650}.lesson-processing-message span{color:#0000;background:linear-gradient(100deg, var(--lesson-text-muted) 30%, var(--lesson-text) 48%, var(--lesson-accent-strong) 52%, var(--lesson-text-muted) 70%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;animation:2.8s ease-in-out infinite lesson-message-shimmer,.18s cubic-bezier(.16,1,.3,1) lesson-message-in;display:inline-block}@keyframes lesson-message-shimmer{0%{background-position:110% 0}to{background-position:-110% 0}}@keyframes lesson-message-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.lesson-preparing-mark svg{animation:1.2s linear infinite lesson-loader-turn}@keyframes lesson-loader-turn{to{transform:rotate(360deg)}}@media (width<=900px){.reader-layout:not(.reader-layout-interactive){flex-direction:column}.reader-layout:not(.reader-layout-interactive) .page-area{justify-content:flex-start;min-width:0;min-height:0;padding:16px}.reader-layout:not(.reader-layout-interactive) .page-container,.reader-layout:not(.reader-layout-interactive) .restoration-skeleton{margin-left:0;margin-right:0}.reader-layout:not(.reader-layout-interactive) .right-rail{border-top:1px solid var(--border-strong);border-left:0;flex:none;width:100%;height:min(34dvh,280px)}.reader-layout:not(.reader-layout-interactive) .rail-content{padding:12px}}@media (width<=720px){.toolbar-center{grid-template-columns:auto auto;gap:8px;display:grid;overflow:visible}.toolbar-center .view-controls{grid-column:1/-1;justify-self:end}.reader-layout-interactive .page-area{padding:0}.interactive-lesson{width:100%;height:100%;box-shadow:none;background:var(--lesson-bg);border:0;border-radius:0}.lesson-player-header{gap:10px 12px;padding:13px 20px 11px}.lesson-source-context{margin-bottom:3px;font-size:11px}.lesson-player-title h1{font-size:21px}.lesson-classic-link{min-height:38px;padding:0 10px;font-size:12px}.lesson-stage{padding:10px 20px 6px;position:static}.lesson-stage:before{display:none}.lesson-step-meta{margin-bottom:10px;font-size:11px}.lesson-family-label{margin-bottom:5px;font-size:12px}.lesson-step h2{max-width:100%;font-size:clamp(22px,7vw,29px)}.lesson-step{padding-block:18px 12px}.lesson-context-step{padding-right:0}.lesson-context-icon{width:42px;height:42px;margin-bottom:14px}.lesson-context-copy{margin-top:14px;font-size:16px;line-height:1.55}.lesson-control-region,.lesson-option-grid{margin-top:16px}.lesson-control-region input{min-height:50px}.lesson-control-region textarea{min-height:104px}.lesson-option-grid{gap:8px}.lesson-option span{min-height:46px;padding:9px 11px}.lesson-ordering-result{min-height:50px;margin-top:14px;padding:9px 11px;font-size:14px}.lesson-token-row{gap:6px;margin-top:9px}.lesson-token{min-height:40px;padding:7px 10px;font-size:13px}.lesson-matching-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.lesson-match-item{min-height:34px;padding:6px 7px;font-size:12px}.lesson-pairs{margin-top:7px}.lesson-feedback-slot{min-height:60px;margin-top:8px}.lesson-feedback{align-items:flex-start;min-height:54px;padding:8px 9px}.lesson-feedback-actions{flex-direction:column}.lesson-feedback-actions button{min-height:34px}.lesson-player-actions{grid-template-columns:auto 1fr auto;gap:8px;min-height:62px;padding:8px 14px}.lesson-action-note{display:none}.lesson-back-action,.lesson-primary-action{min-height:42px;padding:0 11px}.lesson-primary-action{grid-column:3}.lesson-empty-state,.lesson-preparing{width:calc(100% - 40px)}.lesson-empty-state h1,.lesson-preparing h1{font-size:clamp(30px,10vw,42px)}}.lesson-feedback-slot:empty{min-height:0;margin-top:0}@media (height<=760px) and (width>=721px){.reader-layout-interactive .page-area{padding:12px 18px}.lesson-player-header{gap:8px 20px;padding:12px 20px 10px}.lesson-player-title h1{font-size:22px}.lesson-stage{padding-top:9px;padding-bottom:6px}.lesson-step-meta{margin-bottom:8px}.lesson-step h2{font-size:clamp(23px,3vw,31px)}.lesson-control-region,.lesson-option-grid{margin-top:14px}.lesson-feedback-slot{min-height:58px;margin-top:7px}.lesson-feedback-slot:empty{min-height:0;margin-top:0}.lesson-feedback{min-height:52px;padding:7px 10px}.lesson-player-actions{min-height:60px;padding:7px 20px}}@media (height<=700px) and (width>=721px){.lesson-player-header{padding:8px 20px 7px}.lesson-stage{padding-top:5px;padding-bottom:3px}.lesson-step{padding-block:5px 3px}.lesson-step-meta{margin-bottom:4px}.lesson-exercise-instruction{margin-top:3px;line-height:1.3}.lesson-inline-context{margin-top:5px;padding-block:6px}.lesson-step-help,.lesson-matching-columns{margin-top:5px}.lesson-matching-columns>div{gap:3px;padding:5px}.lesson-match-item{min-height:32px;padding-block:4px}.lesson-player-actions{min-height:54px;padding-block:5px}}@media (prefers-reduced-motion:reduce){.lesson-progress-track>span,.lesson-step-motion,.lesson-feedback,.lesson-processing-message span,.lesson-preparing-mark svg,.lesson-option span,.lesson-token,.lesson-match-item,.choice-value,.grid-cell-mark:after,.lesson-choice-grid-row input{transition:none!important;animation:none!important}.lesson-processing-message span{color:var(--lesson-text-muted);-webkit-text-fill-color:currentColor;background:0 0}}.ask-lexora{z-index:20;position:relative}.ask-lexora-trigger{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);min-height:34px;color:var(--text-secondary);font:600 12px/1 var(--font-sans);cursor:pointer;align-items:center;gap:7px;padding:0 12px;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.ask-lexora-trigger:hover:not(:disabled){border-color:var(--border-focus);color:var(--text-primary);background:var(--bg-surface-subtle)}.ask-lexora-trigger svg{color:var(--accent-primary)}.ask-lexora-trigger:disabled{opacity:.45;cursor:default}.ask-lexora-panel{z-index:40;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-surface);width:min(344px,100vw - 32px);max-height:calc(100dvh - 76px);box-shadow:var(--shadow-md);outline:none;padding:14px;position:fixed;top:60px;right:16px;overflow:auto}.app-main-workspace:has(.ask-lexora-panel:not(.is-collapsed)) .reader-layout{padding-right:372px}.app-main-workspace:has(.ask-lexora-panel.is-collapsed) .reader-layout{padding-right:0}.ask-lexora-panel.is-collapsed{width:min(270px,33vw - 12px);right:16px;overflow:hidden}.ask-lexora-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.ask-lexora-head-actions{align-items:center;gap:2px;display:inline-flex}.ask-lexora-head-main{align-items:center;gap:4px;min-width:0;display:inline-flex}.ask-lexora-head-main>span{color:var(--text-primary);font:650 13px/1 var(--font-sans)}.ask-lexora-quota{color:var(--text-tertiary);margin:-2px 0 10px;font-size:11px;line-height:1.4}.ask-lexora-quota.is-exhausted{color:var(--correction-err);font-weight:650}.ask-lexora-close{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.ask-lexora-close:hover{background:var(--bg-surface-subtle);color:var(--text-primary)}.ask-lexora-working{min-height:44px;color:var(--text-secondary);align-items:center;gap:10px;padding:4px 2px;font-size:13px;display:flex}.ask-lexora-pending-copy{color:#0000;background:linear-gradient(100deg, var(--text-tertiary) 30%, var(--text-primary) 48%, var(--accent-primary) 52%, var(--text-tertiary) 70%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;animation:2.5s ease-in-out infinite text-shimmer-lr,.22s cubic-bezier(.16,1,.3,1) both ask-pending-copy-in;display:inline-block}.ask-lexora-loading-orb{flex:none;place-items:center;width:20px;height:20px;display:grid}@keyframes ask-pending-copy-in{0%{opacity:0;transform:translate(5px)}to{opacity:1;transform:translate(0)}}.ask-lexora-verifying{color:var(--text-secondary);flex-direction:column;gap:10px;font-size:13px;line-height:1.5;display:flex}.ask-lexora-menu{flex-direction:column;gap:6px;display:flex}.ask-lexora-context-note{color:var(--text-secondary);margin:0 0 4px;font-size:12px;line-height:1.45}.ask-lexora-question{flex-direction:column;gap:8px;display:flex}.ask-lexora-question label{color:var(--text-secondary);font-size:12px;font-weight:650}.ask-lexora-question textarea{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-subtle);width:100%;min-height:76px;color:var(--text-primary);font:400 13px/1.45 var(--font-sans);resize:vertical;padding:9px 10px}.ask-lexora-question textarea:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.ask-lexora-question-actions{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;display:grid}.ask-lexora-question-actions small{min-width:0;color:var(--text-tertiary);font-size:11px}.lesson-help-action{color:var(--lesson-text-soft);grid-column:1/-1;align-items:center;gap:9px;font-size:12px;display:inline-flex}.lesson-player-header{z-index:50;position:relative}.lesson-help-action .ask-lexora-panel{z-index:100;max-height:calc(100dvh - 139px);position:fixed;top:123px;left:auto;right:24px}.lesson-help-action .ask-lexora-panel.is-collapsed{top:123px;right:24px}@media (width>=1181px){.lesson-help-action .ask-lexora-panel{max-height:calc(100dvh - 110px);top:94px}.lesson-help-action .ask-lexora-panel.is-collapsed{top:94px;right:24px}}.lesson-help-action .ask-lexora{z-index:10}.ask-lexora-action{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);width:100%;min-height:38px;color:var(--text-primary);font:600 13px/1 var(--font-sans);text-align:left;cursor:pointer;justify-content:flex-start;align-items:center;padding:0 12px;transition:border-color .15s,background .15s;display:inline-flex}.ask-lexora-action:hover:not(:disabled){border-color:var(--border-focus);background:var(--bg-surface-subtle)}.ask-lexora-action:disabled{cursor:not-allowed;opacity:.5}.ask-lexora-result{flex-direction:column;gap:10px;display:flex}.ask-lexora-verdict{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--accent-soft);flex-direction:column;gap:3px;padding:10px 12px;display:flex}.ask-lexora-verdict>span{color:var(--accent-primary);font:700 14px/1.2 var(--font-sans)}.ask-lexora-verdict small{color:var(--text-tertiary);font-size:11px}.ask-lexora-content{color:var(--text-primary);white-space:pre-wrap;overflow-wrap:break-word;margin:0;font-size:13.5px;line-height:1.55}.ask-lexora-markdown{color:var(--text-primary);overflow-wrap:break-word;font-size:13.5px;line-height:1.55}.ask-lexora-markdown p,.ask-lexora-markdown ul,.ask-lexora-markdown ol,.ask-lexora-markdown h3{margin:0}.ask-lexora-markdown h3{color:var(--text-primary);font-size:13.5px;line-height:1.4}.ask-lexora-markdown p+p,.ask-lexora-markdown p+ul,.ask-lexora-markdown p+ol,.ask-lexora-markdown h3+p,.ask-lexora-markdown h3+ul,.ask-lexora-markdown h3+ol,.ask-lexora-markdown ul+p,.ask-lexora-markdown ol+p,.ask-lexora-markdown p+h3,.ask-lexora-markdown ul+h3,.ask-lexora-markdown ol+h3{margin-top:10px}.ask-lexora-markdown ul,.ask-lexora-markdown ol{padding-left:21px}.ask-lexora-markdown li+li{margin-top:4px}.ask-lexora-markdown code{background:var(--bg-surface-subtle);color:var(--text-primary);font:500 .92em/1.2 var(--font-mono);border-radius:4px;padding:1px 4px}.ask-lexora-cached{color:var(--text-tertiary);font-size:11px}.ask-lexora-message{color:var(--text-secondary);flex-direction:column;gap:10px;font-size:13px;line-height:1.5;display:flex}.ask-lexora-new{border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-height:38px;color:var(--text-secondary);font:600 12px/1 var(--font-sans);cursor:pointer;background:0 0;justify-content:center;align-self:flex-start;align-items:center;padding:0 10px;display:inline-flex}.ask-lexora-new:hover{border-color:var(--border-focus);color:var(--text-primary)}.ask-lexora-verifying-error{color:var(--correction-err);margin:0}@media (prefers-reduced-motion:reduce){.ask-lexora-pending-copy{color:var(--text-secondary);-webkit-text-fill-color:currentColor;background:0 0;animation:none!important}}@media (width<=720px){.app-main-workspace:has(.ask-lexora-panel:not(.is-collapsed)) .reader-layout{padding-right:0}.ask-lexora-panel,.ask-lexora-panel.is-collapsed,.lesson-help-action .ask-lexora-panel{width:auto;max-height:min(70dvh,560px);position:fixed;inset:auto 12px 12px}.ask-lexora-panel.is-collapsed{width:min(270px,100vw - 24px);bottom:12px;left:auto}.ask-lexora-trigger span{display:none}.ask-lexora-trigger{justify-content:center;width:34px;padding:0}}
