:root{--ink:#17253b;--muted:#58687f;--line:#dce2eb;--paper:#fff;--surface:#f5f7fb;--blue:#245ec8;--orange:#bd5328;--green:#337764;--ease:cubic-bezier(.23,1,.32,1)}
*{box-sizing:border-box}body{margin:0;background:var(--surface);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"HarmonyOS Sans SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e9a431;outline-offset:4px}button:disabled{cursor:default;opacity:.35}button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}.lesson-shell{max-width:1760px;min-height:100svh;margin:auto;padding:0 40px;display:flex;flex-direction:column}.masthead{min-height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:16px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:18px;font-weight:750;white-space:nowrap}.brand>svg{width:36px;height:36px}.brand-divider{font-weight:400;color:#b0bacb;margin:0 6px}.brand-sub{font-size:16px;font-weight:450}.header-actions{display:flex;align-items:center;gap:16px}.course-meta{font-size:14px;color:var(--muted);margin-right:8px}.quiet-button{border:1px solid transparent;background:transparent;min-height:44px;padding:8px 12px;border-radius:7px;font-size:14px}.icon-button{display:flex;align-items:center;justify-content:center;min-width:44px}.chapter-nav{display:flex;gap:32px;border-bottom:1px solid var(--line);min-height:67px}.chapter-button{position:relative;border:0;background:transparent;padding:0 2px;min-height:58px;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:15px;white-space:nowrap}.chapter-button .chapter-index{font-family:Georgia,serif;font-size:16px;color:#748297}.chapter-button[aria-current="step"]{color:var(--blue);font-weight:650}.chapter-button[aria-current="step"]:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--blue)}.chapter-button[aria-current="step"] .chapter-index{color:var(--blue)}.workspace{display:grid;grid-template-columns:minmax(300px,34%) minmax(0,1fr);flex:1;min-height:590px;margin-top:30px;margin-bottom:24px;gap:30px}.explanation{padding:13px 12px 20px 0;display:flex;flex-direction:column}.eyebrow{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px;letter-spacing:.08em}.step-counter{letter-spacing:0;font-family:Georgia,serif}.step-counter b{font-size:25px;font-weight:400;color:var(--blue);padding-right:3px}.step-counter>span{font-size:15px;color:#718099}h1{font-size:clamp(27px,2.65vw,43px);letter-spacing:-.035em;line-height:1.32;font-weight:700;margin:24px 0 26px;text-wrap:balance;max-width:12em}.step-body{font-size:clamp(17px,1.5vw,23px);line-height:1.85}.step-body p{margin:0 0 17px}.intro-question{font-size:19px;line-height:1.95}.problem-list{list-style:none;padding:0;margin:24px 0;font-size:18px}.problem-list li{display:flex;align-items:baseline;gap:10px;margin:13px 0}.question-no{font-family:Georgia,serif;color:var(--muted);font-size:14px}.problem-list b{font-weight:500}.blue{color:var(--blue)}.orange{color:var(--orange)}.green{color:var(--green)}.keyword{border-radius:3px;padding:1px 3px;white-space:nowrap}.keyword.blue{background:#eaf0fd}.keyword.orange{background:#fcf0e9}.math{font-family:"Cambria Math","STIX Two Math","Times New Roman",serif;letter-spacing:.01em}.math-line{display:block;margin:12px 0;font-size:1.13em;line-height:1.65}.proof-block{border-left:3px solid var(--blue);padding:4px 0 4px 18px;margin:22px 0}.proof-block p{margin:6px 0}.proof-label{display:block;color:var(--muted);font-size:13px;letter-spacing:.06em;margin-bottom:8px}.conclusion{font-size:1.18em;font-weight:650;line-height:1.6;color:var(--blue);margin:22px 0}.subtle{color:var(--muted);font-size:16px;line-height:1.8}.thought-line{margin-top:auto;padding-top:25px;color:var(--muted);font-size:14px;line-height:1.75;display:flex;gap:10px}.thought-line:before{content:"";width:22px;min-width:22px;height:1px;background:#95a5bd;position:relative;top:12px}.hint-area{margin:15px 0 20px}.hint-button{background:transparent;border:1px solid #c8d4e8;border-radius:7px;padding:12px 16px;min-height:48px;color:var(--blue);font-size:15px}.hint-plus{padding-right:6px}.hint-area>p{font-size:17px;line-height:1.85;padding:15px 0 0;margin:0;color:var(--blue)}.figure-section{min-width:0;position:relative;background:var(--paper);border:1px solid #e0e6ef;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 3px 14px #20395e03;overflow:hidden}.figure-top{padding:22px 25px 0;display:flex;justify-content:space-between;gap:10px;min-height:45px}.figure-label{font-size:13px;color:var(--muted);letter-spacing:.12em}.legend{display:flex;gap:16px;font-size:13px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:15px;height:3px;background:currentColor;border-radius:2px}.diagram-wrap{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}#diagram{display:block;width:100%;height:auto;max-height:66vh;min-height:360px;overflow:visible}.diagram-caption{font-size:14px;line-height:1.5;color:var(--muted)}.figure-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 25px 20px;min-height:51px}.figure-seal{font-family:Georgia,serif;font-size:15px;white-space:nowrap;color:#8592a8}.rotation-controls{display:flex;align-items:center;gap:14px;padding:14px 24px;border-top:1px solid var(--line);background:#f9fbff;min-height:74px;font-size:14px}.rotation-play{background:white;border:1px solid #c7d4eb;padding:10px 16px;border-radius:6px;min-height:44px;color:var(--blue)}.rotation-controls label{white-space:nowrap}.rotation-controls input{flex:1;min-width:50px;height:44px;accent-color:var(--blue);touch-action:pan-y}.rotation-controls output{min-width:39px;color:var(--blue);font-family:Georgia,serif;font-size:20px;text-align:right}.lesson-controls{min-height:94px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);gap:30px;padding:15px 0 max(18px,env(safe-area-inset-bottom))}.progress-area{width:220px;max-width:30%;font-size:13px;color:var(--muted)}.progress-track{height:3px;background:#dce3ef;margin-top:12px;border-radius:2px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--blue);transition:width 180ms ease-out}.controls-actions{display:flex;align-items:center;gap:12px}.replay-button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:48px;padding:12px 15px;background:transparent;border:0;border-radius:7px;font-size:15px;color:var(--muted);margin-right:12px}.nav-button{display:flex;align-items:center;justify-content:center;gap:18px;min-height:54px;min-width:124px;padding:12px 22px;border-radius:7px;font-weight:650;font-size:16px;transition:background 160ms var(--ease),transform 160ms var(--ease)}.prev-button{background:white;border:1px solid #cad3e1}.next-button{background:var(--blue);border:1px solid var(--blue);color:white;box-shadow:0 2px 4px #245ec816}.nav-button:active:not(:disabled){transform:translateY(1px)}@media(hover:hover) and (pointer:fine){.quiet-button:hover,.replay-button:hover{background:#e8edf5}.next-button:hover{background:#184cad}.prev-button:hover{background:#f0f4fa}.hint-button:hover{background:#eaf0fd}.chapter-button:hover{color:var(--blue)}}.geo-label{font-family:"Times New Roman",Georgia,serif;font-size:29px;font-style:italic;fill:var(--ink);paint-order:stroke;stroke:white;stroke-width:7px;stroke-linejoin:round}.geo-line{vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.geo-note{font-family:inherit;font-size:17px;fill:var(--muted)}.geo-math{font-family:"Times New Roman",Georgia,serif;font-size:23px;fill:var(--blue)}.reveal-line{stroke-dasharray:var(--length);stroke-dashoffset:var(--length);animation:draw-line 900ms var(--ease) forwards}.reveal-line.delay{animation-delay:300ms}.reveal-mark{animation:appear 450ms ease-out both;animation-delay:900ms}.step-in{animation:appear 240ms ease-out}@keyframes draw-line{to{stroke-dashoffset:0}}@keyframes appear{from{opacity:.2}to{opacity:1}}dialog{border:1px solid var(--line);border-radius:14px;padding:24px 30px;max-width:700px;width:calc(100% - 32px);max-height:88svh;color:var(--ink);box-shadow:0 24px 100px #17253b30}dialog::backdrop{background:#12233965;backdrop-filter:blur(3px)}dialog h2{font-size:28px;margin:12px 0}dialog p,dialog li{font-size:18px;line-height:1.85}.dialog-header{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:14px}#question-figure svg{display:block;width:100%;max-height:280px}dialog .source-note{border-top:1px solid var(--line);padding-top:15px;font-size:13px;color:var(--muted)}.toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:8px;background:var(--ink);color:white;font-size:15px;z-index:10;max-width:90%;text-align:center}.summary-list{list-style:none;padding:0;line-height:1.65}.summary-list li{border-bottom:1px solid var(--line);padding:14px 0}.summary-list small{display:block;font-size:14px;color:var(--muted);margin-bottom:3px}
@media(min-width:1600px){.workspace{grid-template-columns:420px 1fr;gap:50px}.step-body{font-size:24px}.intro-question{font-size:23px}.problem-list{font-size:21px}}
@media(max-width:1100px){.lesson-shell{padding:0 24px}.masthead{min-height:72px}.course-meta{display:none}.chapter-nav{min-height:60px;gap:26px}.workspace{grid-template-columns:minmax(255px,35%) minmax(0,1fr);gap:22px;min-height:520px;margin-top:22px}.figure-top{padding:18px 18px 0}.figure-bottom{padding:5px 18px 17px}.legend{gap:10px}h1{font-size:29px;margin:22px 0}.step-body{font-size:18px}.intro-question{font-size:17px}.problem-list{font-size:17px}.rotation-controls{gap:9px;padding:10px 14px}.rotation-controls label{font-size:12px}.rotation-play{padding:9px 12px}#diagram{min-height:310px}.progress-area{width:180px}.lesson-controls{min-height:85px}.thought-line{font-size:13px}.figure-label{letter-spacing:.03em}.legend{font-size:12px}}
@media(max-width:760px){.lesson-shell{padding:0 18px}.brand{font-size:16px;gap:8px}.brand-sub{font-size:14px}.brand-divider{margin:0 2px}.brand>svg{width:30px}.header-actions{gap:2px}.masthead{min-height:65px}.chapter-nav{gap:0;justify-content:space-between;min-height:58px}.chapter-button{font-size:13px;gap:4px}.chapter-index{display:none}.workspace{display:flex;flex-direction:column;gap:12px;margin:17px 0;min-height:0}.explanation{padding:0;min-height:0}.eyebrow{font-size:12px}.step-counter b{font-size:21px}h1{font-size:28px;margin:12px 0 16px;max-width:100%;text-wrap:initial}.step-body{font-size:18px}.intro-question{font-size:17px;line-height:1.8}.problem-list{margin:15px 0;display:flex;flex-wrap:wrap;gap:0 16px}.problem-list li{font-size:15px;margin:5px 0}.thought-line{padding-top:8px;padding-bottom:3px}.figure-section{border-radius:9px}.figure-top{padding:15px 16px 0}.diagram-wrap{height:auto}#diagram{min-height:260px;max-height:450px}.figure-bottom{padding:2px 16px 14px}.figure-label,.diagram-caption{font-size:12px}.legend{font-size:12px}.lesson-controls{position:sticky;bottom:0;background:#f5f7bfee;background:rgba(245,247,251,.97);z-index:3;min-height:83px;gap:8px;padding:12px 0 max(12px,env(safe-area-inset-bottom))}.progress-area{display:none}.controls-actions{width:100%;gap:8px}.nav-button{flex:1;min-width:0;min-height:50px;padding:12px 14px;font-size:15px;gap:8px}.replay-button{margin:0;padding:10px;min-width:50px}.replay-button span{display:none}.rotation-controls label{display:none}.rotation-controls{padding:10px 15px}.step-body p{margin-bottom:12px}.proof-block{margin:16px 0}.hint-area{margin:8px 0}.subtle{font-size:14px}.geo-label{font-size:31px}}
@media(min-width:761px) and (max-height:730px){.masthead{min-height:61px}.chapter-nav{min-height:53px}.chapter-button{min-height:52px}.workspace{margin:16px 0;min-height:440px}.lesson-controls{min-height:79px}.step-body{font-size:17px}h1{font-size:28px;margin:15px 0}.diagram-wrap{min-height:285px}#diagram{min-height:280px;max-height:57vh}.thought-line{padding-top:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal-line{stroke-dashoffset:0}}
/* Landscape tablets keep the full lesson and controls in one viewport. */
@media(min-width:761px){
 .lesson-shell{height:100svh;min-height:600px}
 .masthead{min-height:70px;flex-shrink:0}
 .chapter-nav{min-height:57px;flex-shrink:0}
 .chapter-button{min-height:56px}
 .workspace{min-height:0;flex:1;margin:22px 0 18px}
 .explanation{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
 .figure-section{min-height:0}
 .diagram-wrap{flex:1 1 0;min-height:0;overflow:hidden}
 #diagram{height:100%;min-height:0;max-height:100%;width:100%}
 .lesson-controls{min-height:83px;flex-shrink:0}
 .thought-line{padding-top:18px}
}

.lesson-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 10px;color:var(--blue);font-size:14px;text-decoration:none}@media(max-width:600px){.brand-sub,.brand-divider{display:none}.lesson-link{font-size:13px;padding:8px}.header-actions{gap:0}}
