:root{--aubergine:#25172f;--aubergine-2:#331f40;--violet:#6a4aa8;--violet-deep:#59398f;--lilac:#b9a2ec;--lilac-soft:#d9ccf3;--cream:#f4efe5;--paper:#fcf9f2;--ink:#2b2330;--muted:#5f5665;--line:#c9bfcc;--cyan:#1f7f88;--green:#2f6f56;--red:#a63d3e;--focus:#1f7f88;--radius:6px;--shadow:4px 4px 0 #c2b6c5}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{background:#ddd6df}body{margin:0;color:var(--ink);background-image:radial-gradient(#4d375d12 1px,transparent 0);background-size:14px 14px;font-family:Avenir Next,Segoe UI,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.55}.mono,code,kbd{font-family:SF Mono,SFMono-Regular,ui-monospace,Menlo,Consolas,monospace}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--violet-deep)}a:hover{color:var(--aubergine)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--aubergine);color:#fff;padding:12px 18px;z-index:100}.skip-link:focus{left:8px;top:8px}.site-header{background:var(--aubergine);color:#fff;border-bottom:3px solid var(--violet);position:-webkit-sticky;position:sticky;top:0;z-index:40}.site-header-inner{max-width:1160px;margin:0 auto;padding:0 16px;min-height:60px;gap:12px;flex-wrap:wrap}.brand,.site-header-inner{display:flex;align-items:center}.brand{gap:10px;color:#fff;text-decoration:none;padding:8px 0;min-height:44px}.brand-mark{width:34px;height:34px;border:2px solid var(--lilac);border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;letter-spacing:.02em}.brand-word{font-weight:800;font-size:18px;letter-spacing:-.02em}.site-nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:2px}.site-nav-link{display:inline-flex;align-items:center;min-height:44px;padding:4px 12px;color:#e8def5;text-decoration:none;font-size:14px;font-weight:600;border-radius:var(--radius)}.site-nav-link:hover{color:#fff;background:var(--aubergine-2)}.site-nav-link.active{color:#fff;box-shadow:inset 0 -3px 0 var(--lilac)}.site-nav-link.premium{color:var(--lilac)}.site-main{max-width:1160px;margin:0 auto;padding:24px 16px 56px}.site-footer{background:var(--aubergine);color:#d9cde6;padding:36px 16px 28px;font-size:14px}.site-footer-inner{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:minmax(240px,1fr) auto;grid-gap:28px;gap:28px}.site-footer-brand p{max-width:52ch;line-height:1.6}.site-footer-nav{display:grid;grid-auto-rows:min-content;grid-gap:2px;gap:2px}.site-footer-nav a{color:#e8def5;text-decoration:none;min-height:44px;display:inline-flex;align-items:center;padding:2px 8px}.site-footer-nav a:hover{color:#fff;text-decoration:underline}.site-footer-note{max-width:1160px;margin:22px auto 0;color:#bdaed0;font-size:13px;line-height:1.6}.page-header{margin-bottom:22px}.kicker{color:var(--violet-deep);font-size:13px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.page-header h1{font-size:clamp(30px,4.5vw,44px);line-height:1.05;letter-spacing:-.03em;margin:8px 0 10px}.lede{max-width:72ch;font-size:17px;color:var(--ink)}.breadcrumbs{font-size:14px;color:var(--muted);margin:0 0 10px}.breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.breadcrumbs li+li:before{content:"/";margin-right:6px;color:var(--line)}.card{background:var(--paper);border:1px solid #b7adb9;border-radius:var(--radius);padding:20px}.card+.card,section+section{margin-top:18px}.card h2,.prose h2{font-size:22px;letter-spacing:-.02em;margin:0 0 10px}.card h3,.prose h3{font-size:18px;margin:18px 0 8px}.prose li,.prose p{max-width:76ch}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:14px;gap:14px;margin:18px 0}.tool-card{background:var(--paper);border:1px solid #b7adb9;border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink)}.tool-card:hover{border-color:var(--violet)}.tool-card .tool-card-icon{width:40px;height:40px;border:2px solid var(--violet);border-radius:50%;display:grid;place-items:center;color:var(--violet-deep);font-weight:800;font-size:16px}.tool-card strong{font-size:17px}.tool-card span{color:var(--muted);font-size:14px}.notice{border-left:4px solid var(--cyan);background:#e1efee;padding:12px 14px;border-radius:0 var(--radius) var(--radius) 0;font-size:14px;color:#1c3f43;margin:14px 0}.notice.warn{border-left-color:var(--red);background:#f4e3e2;color:#5c2a2a}.boundary-note{color:var(--muted);font-size:13px;line-height:1.6;margin-top:22px}.calc-layout{display:grid;grid-template-columns:minmax(280px,420px) 1fr;grid-gap:18px;gap:18px;align-items:start}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:12px;gap:12px}.field,.field>span{display:block}.field>span{color:var(--muted);font-size:13px;font-weight:700;margin-bottom:5px}.field-input{position:relative}.field input[type=number],.field input[type=text],.field select{width:100%;min-height:44px;border:1px solid #9a8fa0;border-radius:var(--radius);background:#fffdf8;padding:0 40px 0 12px;font-family:SF Mono,SFMono-Regular,ui-monospace,Menlo,Consolas,monospace;font-weight:700;font-size:16px}.field select{padding-right:12px}.field-input b{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;font-weight:700}fieldset.eye-block{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px 16px;margin:0 0 12px;min-width:0}fieldset.eye-block legend{font-weight:800;font-size:14px;color:var(--violet-deep);letter-spacing:.06em;padding:0 6px}.result-panel{background:var(--aubergine);color:#fff;border-radius:var(--radius);padding:22px}.result-panel .result-label{color:#c8b8d9;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.result-panel .result-value{display:block;margin-top:10px;font-family:SF Mono,SFMono-Regular,ui-monospace,Menlo,Consolas,monospace;font-weight:800;font-size:clamp(30px,5vw,44px);line-height:1.05;letter-spacing:-.04em;color:var(--lilac)}.result-panel .result-value small{font-size:16px;color:#cabfd4;font-weight:700}.result-panel.invalid{background:#4a242d}.result-panel.invalid .result-value{color:#ffc2c3;font-size:22px;letter-spacing:0}.result-rows{margin-top:16px}.result-rows p{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #ffffff2e;padding:10px 0;margin:0;font-size:14px}.result-rows p span{color:#c3b4d2}.result-rows p b{font-family:SF Mono,SFMono-Regular,ui-monospace,Menlo,Consolas,monospace}.result-note{margin-top:14px;color:#c3b4d2;font-size:13px;line-height:1.6}.steps-list{counter-reset:step;list-style:none;margin:14px 0 0;padding:0}.steps-list li{counter-increment:step;position:relative;padding:8px 0 8px 40px;border-top:1px solid var(--line);font-size:15px}.steps-list li:before{content:counter(step);position:absolute;left:0;top:8px;width:26px;height:26px;border:2px solid var(--violet);border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;color:var(--violet-deep)}.table-scroll{overflow-x:auto;margin:14px 0}table.data{border-collapse:collapse;width:100%;background:var(--paper);font-size:15px}table.data caption{text-align:left;font-weight:700;padding:8px 0;color:var(--muted);font-size:14px}table.data td,table.data th{border:1px solid var(--line);padding:9px 12px;text-align:left}table.data th{background:#ece4f2;color:var(--ink)}td.pass{color:var(--green);font-weight:800}td.fail{color:var(--red);font-weight:800}.drill-panel{background:var(--paper);border:1px solid #b7adb9;border-radius:var(--radius);padding:20px}.drill-status{display:flex;flex-wrap:wrap;gap:10px 18px;color:var(--violet-deep);font-size:13px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.drill-prompt{font-size:20px;line-height:1.4;margin:14px 0;max-width:72ch}.drill-parts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px;margin-bottom:14px}.choice-group{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin:0}.choice-group legend{color:var(--muted);font-size:13px;font-weight:700;padding:0 4px}.choice-group label{display:flex;align-items:center;gap:8px;min-height:44px;font-size:15px}.choice-group input[type=radio]{width:20px;height:20px;accent-color:var(--violet)}.drill-actions{display:flex;flex-wrap:wrap;gap:10px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 20px;border-radius:var(--radius);border:2px solid var(--violet);background:var(--violet);color:#fff;font-weight:800;font-size:15px;text-decoration:none}.button:hover{background:var(--violet-deep);border-color:var(--violet-deep);color:#fff}.button:disabled{background:#a49aab;border-color:#a49aab;cursor:not-allowed}.button.secondary{background:transparent;color:var(--violet-deep)}.button.secondary:hover{background:#ece4f2}.drill-feedback{border-radius:var(--radius);padding:14px;margin:14px 0;font-size:15px}.drill-feedback.correct{background:#e0efe7;border-left:4px solid var(--green);color:#1e4636}.drill-feedback.incorrect{background:#f4e3e2;border-left:4px solid var(--red);color:#5c2a2a}.part-result{font-weight:700}.mastery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:12px;gap:12px;margin-top:14px}.mastery-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:12px 14px}.mastery-item strong{display:block;font-size:15px}.mastery-item span{color:var(--muted);font-size:13px}.meter{height:8px;border-radius:4px;background:#e0d8e4;margin-top:8px;overflow:hidden}.meter i{display:block;height:100%;background:var(--violet)}.lens-dial-wrap{background:#e8e1e8;border:1px solid #b7adb9;border-radius:var(--radius);padding:18px}.lens-dial{width:min(320px,100%);aspect-ratio:1;margin:0 auto;border:8px solid var(--aubergine);border-radius:50%;position:relative;background:radial-gradient(circle,#fbf8f0 0 3%,transparent 3.5%),repeating-radial-gradient(circle,#6c52750b 0 1px,transparent 1px 18px),#d9d0dc;box-shadow:0 0 0 5px #8b7991,0 10px 25px #2b203333;overflow:hidden}.lens-dial .axis-line,.lens-dial .meridian-line{position:absolute;left:8%;right:8%;top:50%;height:3px;background:var(--violet);transform:rotate(var(--axis));transform-origin:center}.lens-dial .axis-line span,.lens-dial .meridian-line span{position:absolute;right:0;top:5px;background:var(--aubergine);color:#fff;padding:2px 6px;font-size:12px;font-weight:700;border-radius:3px}.lens-dial .meridian-line{height:2px;background:var(--red);transform:rotate(var(--meridian))}.lens-dial .meridian-line span{background:var(--red)}.lens-dial .reticle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border:1px solid #44334c;border-radius:50%}.lens-dial .reticle:after,.lens-dial .reticle:before{content:"";position:absolute;background:#44334c}.lens-dial .reticle:before{left:50%;top:-22px;bottom:-22px;width:1px}.lens-dial .reticle:after{top:50%;left:-22px;right:-22px;height:1px}.lens-dial .lens-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:28px;height:28px;border:2px solid var(--cyan);border-radius:50%;display:grid;place-items:center;background:#f7f2eb;font-size:11px;font-weight:800}.dial-readout{margin-top:14px;display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.dial-readout strong{font-family:SF Mono,SFMono-Regular,ui-monospace,Menlo,Consolas,monospace;font-size:26px;color:var(--violet-deep)}.dial-readout span{color:var(--muted);font-size:13px}.power-cross-visual{position:relative;height:220px;margin:10px 0}.power-cross-visual .pc-line{position:absolute;left:12%;right:12%;top:50%;height:3px;background:var(--aubergine);transform-origin:center}.power-cross-visual .pc-line.second{background:var(--violet)}.power-cross-visual .pc-line b{position:absolute;right:-4px;top:8px;background:var(--paper);padding:1px 5px;font-family:SF Mono,SFMono-Regular,ui-monospace,Menlo,Consolas,monospace;font-size:13px;border:1px solid var(--line);border-radius:3px}.faq h2{margin-bottom:4px}.faq details{border-top:1px solid var(--line);padding:4px 0}.faq summary{cursor:pointer;font-weight:700;font-size:16px;padding:12px 0;min-height:44px;display:flex;align-items:center}.faq summary:hover{color:var(--violet-deep)}.faq details p{margin:0 0 14px;max-width:76ch;color:var(--ink)}.formula-block{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:16px 18px;page-break-inside:avoid;break-inside:avoid}.formula-block h3{margin:0 0 6px}.formula-block code{display:block;background:var(--aubergine);color:var(--lilac-soft);padding:10px 14px;border-radius:var(--radius);font-size:16px;margin:8px 0;overflow-x:auto}.formula-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:14px;gap:14px;margin:16px 0}@media print{body,html{background:#fff}.no-print,.site-footer,.site-header,.skip-link{display:none!important}.site-main{padding:0;max-width:none}.formula-block,.formula-block code{border:1px solid #999}.formula-block code{background:#fff;color:#000}a{color:#000;text-decoration:none}}@media (max-width:860px){.calc-layout,.site-footer-inner{grid-template-columns:1fr}}@media (max-width:560px){.site-header-inner{padding:6px 10px}.site-nav-link{padding:4px 9px;font-size:13px}.site-main{padding:18px 12px 44px}.card,.drill-panel{padding:14px}}