:root{--accent:#ae510d;--ink:#28343e;--muted:#626a70;--paper:#fffdfa;--line:#e9e1d5;--rose:#fff0dd;--blue:#42667a;--green:#467364;--orange:#f58b1f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,"Malgun Gothic",sans-serif;line-height:1.8;word-break:keep-all}a{color:inherit;text-underline-offset:4px}button{font:inherit;cursor:pointer}button,a,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.wrap{max-width:1180px;padding:0 34px;margin:auto}header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:#fffdfaf2;backdrop-filter:blur(12px)}.nav{display:flex;align-items:center;justify-content:space-between;min-height:88px;gap:30px}.brand img{display:block;width:217px;height:77px;object-fit:contain}.nav nav{display:flex;gap:27px;font-size:14px;font-weight:700}.nav nav a{text-decoration:none}.nav nav a:hover{color:var(--accent)}.skip{position:fixed;top:-80px;background:white;padding:12px;z-index:99}.skip:focus{top:0}h1,h2,h3{margin:0 0 .65em;line-height:1.4;letter-spacing:-.045em}h1{font-size:clamp(36px,5vw,62px);font-weight:850;letter-spacing:-.055em}h2{font-size:clamp(29px,3.2vw,40px)}h3{font-size:22px}p{margin:0 0 1em}em{font-style:normal;color:var(--accent)}.eyebrow{display:block;font-size:12px;font-weight:750;letter-spacing:.07em;color:var(--accent);margin:0 0 20px}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:62px;align-items:center;padding:65px 0 56px}.lead{color:var(--muted);font-size:18px;line-height:1.95;margin-top:23px}.actions{display:flex;gap:22px;align-items:center;margin-top:27px}.button{background:var(--accent);color:white;border-radius:7px;display:inline-flex;justify-content:space-between;align-items:center;gap:24px;padding:13px 20px;text-decoration:none;font-size:14px;font-weight:700}.button:hover{background:#91420b}.textlink{font-size:14px;font-weight:700}.hero-note{background:linear-gradient(130deg,#fff9ef,#fff0d8);border:1px solid #efdbb9;border-radius:17px;padding:32px;box-shadow:9px 9px 0 #fff6e8}.hero-note h2{font-size:27px;margin-top:18px}.hero-note p{font-size:14px;color:var(--muted)}.tag{display:inline-block;color:var(--accent);font-weight:750;font-size:12px;letter-spacing:.01em}.hero-numbers{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #e7d4b7;padding-top:19px;margin:22px 0 12px}.hero-numbers b{font-size:39px;line-height:1.4}.hero-numbers b span{font-size:14px;font-weight:600;margin-left:8px}.hero-numbers small{display:block;color:var(--muted);font-size:12px}.small{font-size:11px!important;margin:0}.letter{max-width:900px;margin:0 auto;padding:42px 30px 46px;border-top:1px solid var(--line);font-size:17px;line-height:2}.letter strong{font-weight:700;color:var(--accent)}.signature{text-align:right;font-size:14px;margin-top:22px}.section{padding:67px 0;border-top:1px solid var(--line)}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;margin-bottom:28px}.section-heading>p{font-size:15px;color:var(--muted);padding-top:35px}.path{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);padding:19px 25px;background:#fff;border-radius:9px;font-size:13px;font-weight:650}.path b{color:#d2994d}.evidence{margin-top:30px;display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.evidence-card{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.evidence-body{padding:25px 27px}.evidence-card h3{font-size:22px;margin:10px 0}.evidence-card p{font-size:14px;color:var(--muted)}.evidence-card .source-file{font-size:12px;margin:13px 0 0;padding-top:13px;border-top:1px solid var(--line)}.evidence-card details{margin-top:13px}.evidence-card summary{font-size:13px;font-weight:750;cursor:pointer}.evidence-card details p{font-size:12px;margin-top:12px}.evidence-image{display:block;background:#fbfaf7;padding:15px;border-top:1px solid var(--line)}.evidence-image img{width:100%;max-height:360px;object-fit:contain;display:block}.evidence-image span{display:block;font-size:11px;color:var(--muted);text-align:center;margin-top:8px}.note{font-size:12px;color:var(--muted);line-height:1.9;margin:20px 0 0}.difficulty{display:flex;border-radius:10px;overflow:hidden;min-height:93px;margin-top:30px}.difficulty>div{display:flex;flex-direction:column;justify-content:center;padding:16px 20px;color:white;min-width:100px}.difficulty b{font-size:25px;line-height:1.4}.difficulty span{font-size:12px}.difficulty .s1{background:var(--green)}.difficulty .s2{background:var(--blue)}.difficulty .s3{background:#ba6218}.legend{display:flex;justify-content:space-between;font-size:12px;gap:12px;padding:15px 2px;color:var(--muted)}.legend b{color:var(--accent);margin-right:8px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:22px 0 13px}.filters,.scenario>div{display:flex;gap:8px;flex-wrap:wrap}.filters button,.scenario button{font-size:13px;padding:7px 17px;border:1px solid var(--line);border-radius:24px;background:#fff;color:var(--muted)}.filters button[aria-pressed=true],.scenario button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}#visible-count{font-size:12px;color:var(--muted)}.table-wrap{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}table{border-collapse:collapse;width:100%;table-layout:fixed}thead{background:#f5f1e9}td,th{padding:16px 21px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;vertical-align:middle}thead th{font-size:12px}th:first-child{width:88px}th:nth-child(2){width:95px}th:last-child{width:65px}td small,th small{display:block;font-size:11px;font-weight:400;color:var(--muted)}.q-title{font-weight:650;display:block}.source-pill{display:block;font-size:12px;color:var(--muted);margin-top:4px}.stars{color:var(--accent);font-size:13px;white-space:nowrap}.open-detail{border:1px solid var(--line);width:31px;height:31px;border-radius:50%;background:#faf7f1;color:var(--ink);font-size:20px;display:grid;place-items:center}.open-detail[aria-expanded=true]{background:#f9e6c8}.q-detail td{padding:0;background:#fcfaf6}.detail-inner{padding:25px 29px;border-left:4px solid #e2b36f}.detail-inner p{font-size:13px;color:var(--muted);margin:0 0 12px}.detail-inner b{color:var(--ink)}.detail-inner h3{font-size:18px}.detail-inner dl{margin:0;font-size:13px;display:grid;grid-template-columns:115px 1fr;gap:11px 20px}.detail-inner dt{font-weight:700}.detail-inner dd{margin:0;color:var(--muted);overflow-wrap:anywhere}.q-main:hover{background:#fffbf3}[hidden]{display:none!important}.cut-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.cut-panel{background:#fff6e8;border:1px solid #efd6ad;border-radius:13px;padding:32px}.cut-value{color:var(--accent);font-size:70px;line-height:1.35;font-weight:850;letter-spacing:-.05em;margin:13px 0}.cut-value span{font-size:21px;margin-left:13px;letter-spacing:-.04em}.cut-panel p{font-size:14px;color:var(--muted)}.cut-panel p b{color:var(--ink)}.cut-panel.secondary{background:#f0f5f6;border-color:#d3e1e7}.secondary .cut-value,.secondary .tag{color:var(--blue)}.range{height:4px;position:relative;background:#eddfca;margin:24px 0}.range i{position:absolute;background:#b76d27;height:8px;top:-2px;border-radius:6px}.secondary .range{background:#dce7eb}.secondary .range i{background:var(--blue)}.cut-evidence{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin:26px 0}.cut-evidence article{border-top:2px solid var(--line);padding-top:17px}.cut-evidence h3{font-size:19px}.cut-evidence p{font-size:13px;color:var(--muted)}.method{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0}.method summary{font-weight:700;cursor:pointer;font-size:14px}.method p,.method li{font-size:13px;color:var(--muted)}.method>div{padding:15px 5px 0}.scenario{margin-top:25px;background:#faf6ef;border-radius:10px;padding:25px}.scenario h3{font-size:19px}.scenario p{font-size:13px;color:var(--muted);margin:17px 0 0}.materials{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center}.materials p{font-size:15px;color:var(--muted)}.download{padding:30px;background:#f9f1e4;border-radius:14px}.download a{width:100%}.download-secondary{display:flex;justify-content:space-between;padding:15px 0;font-weight:650;font-size:14px}.download small{display:block;font-size:12px;color:var(--muted);border-top:1px solid #dfd5c5;padding-top:15px;margin-top:10px}.closing{text-align:center;background:#fff4e2;margin:10px 0 50px;padding:35px 20px 45px;border-radius:15px}.closing img{width:130px;height:130px;object-fit:contain;margin-bottom:13px}.closing h2{font-size:29px}.closing p{font-size:16px;color:var(--muted)}footer{border-top:1px solid var(--line);padding:30px 0;color:var(--muted);font-size:12px}footer span{float:right}footer p{margin-top:14px;max-width:900px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:850px){.hero{gap:30px}.hero-note{padding:25px}.hero h1{font-size:43px}.nav nav{gap:15px;font-size:12px}.brand img{width:185px;height:69px}.section-heading{gap:30px}.materials{gap:30px}.wrap{padding:0 24px}.path{font-size:11px;padding:16px}.evidence-body{padding:22px}}
@media(max-width:620px){html{scroll-padding-top:123px}.wrap{padding:0 20px}.nav{display:block;padding-top:5px;padding-bottom:12px;min-height:100px}.brand img{width:180px;height:61px;margin:auto}.nav nav{justify-content:space-between;font-size:11px;gap:10px}.hero{grid-template-columns:1fr;padding:35px 0 30px;gap:27px}.hero h1{font-size:37px;line-height:1.43}.eyebrow{font-size:10px;margin-bottom:16px}.lead{font-size:15px;margin-top:17px}.actions{gap:17px}.button{font-size:12px;padding:12px 16px;gap:12px}.textlink{font-size:12px}.hero-note{padding:24px}.hero-note h2{font-size:25px}.hero-numbers{margin-top:18px}.hero-numbers b{font-size:32px}.letter{padding:32px 0;font-size:15px;line-height:1.95}.section{padding:40px 0}.section-heading{display:block;margin-bottom:20px}.section-heading>p{padding-top:0;font-size:14px}.section-heading h2{font-size:29px}.path{flex-wrap:wrap;justify-content:center;font-size:11px;gap:7px;padding:15px 12px}.evidence{grid-template-columns:1fr;gap:19px;margin-top:22px}.evidence-card h3{font-size:21px}.evidence-card p{font-size:13px}.evidence-body{padding:23px}.difficulty>div{padding:13px 9px;min-width:66px}.difficulty b{font-size:20px}.difficulty span{font-size:10px}.legend{display:grid;font-size:11px;gap:2px}.legend span{display:block}.toolbar{margin-top:15px}#visible-count{font-size:10px}.filters{gap:5px}.filters button{font-size:11px;padding:6px 11px}th:first-child{width:48px}th:nth-child(2){width:53px}th:last-child{width:39px}td,th{padding:12px 6px;font-size:12px}thead th{font-size:10px}td small,th small{font-size:9px}.stars{font-size:10px}.source-pill{font-size:10px}.open-detail{width:26px;height:26px;font-size:18px}.detail-inner{padding:19px 15px}.detail-inner dl{grid-template-columns:1fr;gap:3px;font-size:12px}.detail-inner dd{margin-bottom:13px}.detail-inner p{font-size:12px}.cut-grid{gap:14px}.cut-panel{padding:19px 14px}.cut-value{font-size:48px}.cut-value span{display:block;font-size:15px;margin:0}.cut-panel p{font-size:12px}.cut-panel .tag{font-size:10px}.cut-evidence{grid-template-columns:1fr;gap:13px}.cut-evidence article{padding-top:14px}.cut-evidence h3{font-size:18px}.cut-evidence p{margin-bottom:0}.scenario{padding:20px}.scenario button{font-size:11px;padding:7px 10px}.scenario h3{font-size:17px}.materials{grid-template-columns:1fr;gap:20px}.materials p{font-size:14px}.download{padding:23px}.download-secondary{font-size:13px}.closing{margin-bottom:32px;padding:28px 16px}.closing h2{font-size:24px}.closing p{font-size:14px}.closing img{width:110px;height:110px}footer span{display:block;float:none;margin-top:10px}.note{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{header,.actions,.filters,.open-detail,.scenario,.download{display:none}.wrap{max-width:none;padding:0}.hero,.section,.letter{padding:20px 0}.hero{grid-template-columns:1fr 1fr}.hero h1{font-size:30px}.section{break-before:page}.evidence-card,.cut-panel{break-inside:avoid}body{font-size:11px}.q-detail[hidden]{display:table-row!important}.q-main[hidden]{display:table-row!important}.q-detail td{background:white}.closing img{width:80px;height:80px}footer{font-size:10px}}
.concept-image{display:block;max-width:560px;margin-top:20px;border:1px solid var(--line);background:white;padding:16px;text-decoration:none}.concept-image img{display:block;width:100%;height:auto}.concept-image span{display:block;font-size:12px;margin-top:12px;color:var(--muted)}

.consult{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center}.consult p{font-size:15px;color:var(--muted)}.consult strong{color:var(--accent)}.consult aside{padding:30px;background:#f7f1e8;border-radius:14px}.consult ol{padding-left:21px;font-size:14px}.consult li{padding:9px 0;color:var(--muted)}.consult li b{color:var(--ink)}.consult aside p{font-size:12px;border-top:1px solid var(--line);padding-top:16px;margin:18px 0 0}@media(max-width:620px){.consult{grid-template-columns:1fr;gap:20px}.consult aside{padding:24px}.consult p{font-size:14px}.nav nav{gap:6px;font-size:10px}}

.source-overview{display:grid;grid-template-columns:1.15fr 1fr .85fr;align-items:center;gap:25px;padding:34px 30px 22px;background:#fff8ec;border:1px solid #e9d9bf;border-radius:18px;margin:30px 0;scroll-margin-top:20px}.source-intro h3{font-size:25px}.source-intro p{font-size:13px;color:var(--muted);margin:0}.source-intro .eyebrow{font-size:11px;margin-bottom:13px}.print-emphasis{color:#a84a0e}.donut-wrap{position:relative;width:100%;max-width:270px;justify-self:center}.source-donut{display:block;width:100%;height:auto;filter:drop-shadow(0 7px 8px #8950270c)}.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.donut-center>span{font-size:11px;color:var(--muted)}.donut-center b{font-size:46px;line-height:1.3;letter-spacing:-.05em}.donut-center small{font-size:14px;letter-spacing:0;margin-left:4px}.source-legend{display:grid;gap:12px}.source-key{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e8dac5}.source-key>i{width:12px;height:12px;border-radius:50%;flex-shrink:0}.source-key>div{flex:1}.source-key b{font-size:16px}.source-key small{display:block;color:var(--muted);font-size:11px;font-weight:400}.source-key>strong{font-size:27px;line-height:1.4;text-align:right;white-space:nowrap}.source-key>strong small{display:inline;font-size:11px;margin-left:4px}.source-key>strong span{display:block;color:var(--muted);font-size:11px;font-weight:500}.source-key-print b,.source-key-print>strong{color:#a74a0e}.source-footnote{grid-column:1/-1;border-top:1px solid #e8dac5;padding-top:15px;margin:0;font-size:11px;color:var(--muted)}.origin-badge{display:inline-flex;align-items:center;padding:5px 11px;margin-bottom:7px;border-radius:5px;font-size:12px;line-height:1.4;font-weight:800;letter-spacing:.03em;white-space:nowrap}.origin-print{background:#b45313;color:#fff;border:1px solid #a04a13;box-shadow:2px 2px 0 #efceb2}.origin-textbook{background:#e6f0f2;color:#365f6b;border:1px solid #bfd3d8}.origin-original{background:#f2efe9;color:#716653;border:1px solid #d9d2c5}.q-main:has(.origin-print){background:#fffaf1}.q-main:has(.origin-print)>th{border-left:4px solid #b45313}.q-main:has(.origin-print):hover{background:#fff2df}.q-title{font-size:13px}.source-pill{display:none}@media(max-width:850px){.source-overview{grid-template-columns:1fr 1fr;gap:18px;padding:25px}.source-intro{grid-column:1/-1}.source-intro p br{display:none}}@media(max-width:620px){.source-overview{padding:22px 16px;gap:12px;grid-template-columns:1fr 1fr}.source-intro h3{font-size:24px}.source-intro p{font-size:12px}.source-intro{margin-bottom:8px}.donut-center b{font-size:30px}.donut-center small{font-size:10px}.donut-center>span{font-size:9px}.source-key{gap:7px;padding:9px 0}.source-key>i{width:9px;height:9px}.source-key b{font-size:13px}.source-key>strong{font-size:22px}.source-key small,.source-key>strong small,.source-key>strong span{font-size:9px}.source-legend{gap:3px}.source-footnote{font-size:10px;padding-top:13px}.origin-badge{font-size:10px;padding:5px 8px;margin-bottom:6px}.q-title{font-size:11px}}

.origin-basic{background:#f2efe9;color:#716653;border:1px solid #d9d2c5}.origin-original{background:#f1eaf4;color:#735c80;border:1px solid #d8c9e0}.source-key-original b,.source-key-original>strong{color:#80618f}

.spectrum{display:grid;gap:27px;margin:35px 0 48px}.spectrum:empty{display:none}.spectrum-row{border:1px solid #e2d6c2;border-radius:14px;background:#fff;overflow:hidden}.spectrum-heading{display:flex;align-items:center;gap:15px;padding:18px 23px;background:#fff6e7;border-bottom:1px solid #eaddc8}.spectrum-heading .origin-badge{margin:0;flex-shrink:0}.spectrum-heading h3{font-size:19px;margin:0;flex:1}.spectrum-hint{font-size:11px;color:var(--muted)}.spectrum-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:22px}.spectrum-stage{min-width:0;position:relative}.spectrum-stage:not(:last-child)::after{content:'→';position:absolute;right:-21px;top:141px;font-size:21px;color:#b58b5a;z-index:2}.spectrum-stage h4{font-size:14px;margin:0 0 12px;display:flex;align-items:center;gap:9px}.spectrum-stage h4>span{font-size:11px;background:#f2eadd;border-radius:50%;width:25px;height:25px;display:grid;place-items:center;color:#987241}.stage-2 h4{color:#a04d12}.stage-2 h4>span{background:#b75b19;color:#fff}.stage-zoom{position:relative;display:block;background:#fff;width:100%;height:245px;padding:14px;border:1px solid #e6e0d6;border-radius:7px;cursor:zoom-in}.stage-zoom img{width:100%;height:100%;object-fit:contain;display:block}.stage-zoom>span{position:absolute;bottom:5px;right:7px;font-size:10px;padding:1px 6px;color:#786b58;background:#fffaf0e8}.stage-2 .stage-zoom{border-color:#dca877;background:#fffdfa}.stage-source{font-size:11px;font-weight:700;line-height:1.6;margin:12px 0 7px;color:#565c5c;overflow-wrap:anywhere}.stage-summary{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.spectrum-change{font-size:13px;background:#faf6ee;margin:0;padding:15px 23px;border-top:1px solid #eee4d5;color:#6a6153}.spectrum-change b{color:#a34f15;margin-right:10px}.textbook-comparison-title{font-size:25px;margin:45px 0 20px}.question-viewer{padding:0;border:1px solid #e3d6c2;border-radius:12px;max-width:min(900px,94vw);max-height:92vh;background:#fffdfa}.question-viewer::backdrop{background:#18232cba}.viewer-bar{position:sticky;top:0;display:flex;align-items:center;gap:25px;justify-content:space-between;padding:13px 19px;background:#fff8ec;border-bottom:1px solid var(--line);z-index:1}.viewer-bar h2{font-size:16px;margin:0}.viewer-bar button{border:1px solid #d4c8b6;border-radius:50%;width:34px;height:34px;background:white;font-size:25px;line-height:1;color:#4d4539}.question-viewer>img{display:block;width:auto;max-width:100%;height:auto;padding:22px;margin:auto}.section-heading h2{font-size:clamp(28px,3vw,37px)}@media(max-width:620px){.spectrum{gap:23px;margin-top:25px}.spectrum-heading{gap:9px;padding:14px 12px;flex-wrap:wrap}.spectrum-heading h3{font-size:15px}.spectrum-hint{width:100%;font-size:9px}.spectrum-stages{gap:9px;padding:12px 9px}.spectrum-stage h4{font-size:10px;gap:4px;line-height:1.6;flex-wrap:wrap;margin-bottom:8px}.spectrum-stage h4>span{width:19px;height:19px;font-size:9px}.stage-zoom{height:140px;padding:5px;border-radius:4px}.stage-zoom>span{font-size:8px;right:1px;bottom:1px;padding:1px 3px}.spectrum-stage:not(:last-child)::after{right:-8px;top:101px;font-size:12px}.stage-source{font-size:9px;line-height:1.5;margin-top:9px}.stage-summary{font-size:10px;line-height:1.65;overflow-wrap:anywhere}.spectrum-change{padding:12px;font-size:11px}.spectrum-change b{display:block;margin-bottom:4px}.textbook-comparison-title{font-size:23px}.question-viewer{max-width:96vw}.question-viewer>img{padding:10px}.viewer-bar{padding:10px 12px}.viewer-bar h2{font-size:14px}}

.exam-review{padding:40px 42px;margin:0 0 55px;background:#fff7e9;border-left:4px solid #bd6b29;border-radius:0 15px 15px 0}.exam-review h2{font-size:32px;margin-bottom:23px}.exam-review>p{font-size:15px;line-height:1.95;color:var(--muted);max-width:950px}.exam-review strong{color:var(--ink)}.exam-review .review-conclusion{border-top:1px solid #eadac1;padding-top:21px;margin:24px 0 0;color:#7f451e}.review-conclusion b{font-size:18px}@media(max-width:620px){.exam-review{padding:27px 23px;margin-bottom:35px}.exam-review h2{font-size:25px}.exam-review>p{font-size:14px}.review-conclusion b{font-size:16px}}

.repetition{display:grid;grid-template-columns:1.15fr .85fr;gap:45px;margin:28px 0 35px;padding:32px;border:1px solid #e9dfce;background:#fff9ef;border-radius:14px}.repetition h3{font-size:27px;margin-top:13px}.repetition p{font-size:14px;color:var(--muted)}.repetition aside{border-left:1px solid #e3d2b5;padding-left:32px}.repetition aside>b{font-size:65px;line-height:1.1;color:var(--accent)}.repetition aside>b small{font-size:17px;margin-left:9px}.repetition aside>span,.repetition aside>strong,.repetition aside>small{display:block}.repetition aside>span{font-size:14px;font-weight:700;margin:12px 0 7px}.repetition aside>strong{font-size:15px}.repetition aside>small{font-size:11px;color:var(--muted);margin-top:12px}.origin-lesson{background:#f4edf8;color:#775b8b;border:1px solid #c5b0d2}.opening-date{padding:21px 0 26px;border-bottom:1px solid #e9d9bf}.opening-date>span{font-size:12px;letter-spacing:.12em;color:var(--muted)}.opening-date b{display:block;font-size:63px;color:var(--accent);line-height:1.25;letter-spacing:-.055em}.opening-date small{font-size:18px;margin-left:12px;letter-spacing:0}.cut-panel>small{font-size:11px;display:block;color:var(--muted)}.source-footnote{overflow-wrap:anywhere}.spectrum-stage .stage-zoom{background:#fff}.source-key-lesson i{background:#8b7199}@media(max-width:620px){.repetition{grid-template-columns:1fr;gap:17px;padding:23px}.repetition h3{font-size:23px}.repetition aside{border-left:0;border-top:1px solid #e3d2b5;padding:23px 0 0}.repetition aside>b{font-size:51px}.opening-date b{font-size:57px}.cut-panel>small{font-size:10px}.nav nav{gap:7px}.origin-badge{white-space:normal!important;line-height:1.5}.q-main th:first-child{overflow-wrap:anywhere}}
.spectrum-repeat{font-size:12px;padding:0 23px 20px;color:var(--muted);margin:0}.spectrum-repeat b{color:var(--accent);margin-right:8px}
/* 공동 수업 테마. 기존 style.css 뒤에 로드한다.
   문항·섹션·필터·확대·시나리오의 구조와 동작은 그대로 유지한다. */
:root {
  --accent: #6240a4;
  --ink: #302641;
  --muted: #666073;
  --paper: #fffefd;
  --line: #e4ddec;
  --rose: #f3edf9;
  --blue: #4f61aa;
  --green: #5669a7;
  --orange: #d8be53;
  --duo-violet: #6240a4;
  --duo-lilac: #f3edf9;
  --duo-periwinkle: #edf0fc;
  --duo-yellow: #fff9d9;
  --duo-gold-ink: #776016;
  --duo-soft-shadow: 0 8px 28px rgb(77 54 112 / 5%);
}

body {
  background:
    radial-gradient(ellipse 760px 510px at 0 0, #f5effc 0, transparent 76%),
    var(--paper);
}
::selection { background: #e5d8fa; color: #302641; }
button:focus-visible, a:focus-visible, summary:focus-visible {
  outline-color: #6650b4;
  outline-offset: 4px;
}
header {
  background: rgb(255 254 255 / 96%);
  border-bottom-color: #e7def1;
  box-shadow: 0 2px 14px rgb(61 42 94 / 3%);
}
.nav { min-height: 96px; gap: 24px; padding-block: 8px; }
.brand.duo-brand {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  flex: 0 0 auto;
  min-width: 0;
  text-decoration: none;
}
.brand.duo-brand img {
  width: 76px;
  height: 76px;
  flex: 0 0 76px;
  margin: 0;
  object-fit: contain;
}
.duo-brand img, .duo-intro img, .duo-closing-logo { clip-path: inset(4% round 22%); }
.duo-brand > span { display: grid; gap: 3px; min-width: 0; }
.duo-brand small {
  color: #726684;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .04em;
}
.duo-brand strong {
  color: #45305f;
  font-size: 23px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: -.055em;
  white-space: nowrap;
}
.duo-brand strong i {
  padding-inline: 5px;
  color: #8c7eb5;
  font-style: normal;
  font-size: .75em;
  font-weight: 500;
}
.nav nav { gap: clamp(14px, 2vw, 25px); font-size: 13px; }
.nav nav a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  color: #5d526c;
  white-space: nowrap;
  transition: color 150ms ease;
}
.nav nav a:hover { color: #6240a4; }

.hero { position: relative; isolation: isolate; gap: 52px; padding-block: 60px 52px; }
.hero::before {
  content: '';
  position: absolute;
  z-index: -1;
  pointer-events: none;
  inset: -4px -26px -10px 30%;
  background:
    radial-gradient(ellipse at 74% 32%, #efebfc 0, transparent 62%),
    radial-gradient(ellipse at 95% 92%, #fffadd 0, transparent 50%);
  border-radius: 50%;
}
.hero h1 { color: #362547; }
.hero h1 em { color: #6944a3; }
.eyebrow, .tag, .print-emphasis, .stars { color: #6240a4; }
.button {
  background: #6240a4;
  border: 1px solid #6240a4;
  box-shadow: 0 4px 13px rgb(98 64 164 / 12%);
  transition: background-color 150ms ease, box-shadow 150ms ease;
}
.button:hover { background: #51328d; border-color: #51328d; box-shadow: 0 6px 17px rgb(98 64 164 / 17%); }
.textlink { color: #514479; }
.hero-note, .hero-note.duo-hero-card {
  position: relative;
  padding: 28px 30px;
  border: 1px solid #ded2ef;
  border-radius: 22px;
  background: linear-gradient(145deg, #fcfaff 0%, #f2edfc 66%, #f0f2fe 100%);
  box-shadow: 8px 8px 0 #f6f1fc;
}
.duo-intro {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  margin-bottom: 22px;
  padding-bottom: 22px;
  border-bottom: 1px solid #ddd2ed;
}
.duo-intro img { display: block; width: 148px; height: 148px; object-fit: contain; }
.duo-intro p { margin: 0; color: #71617f; font-size: 12px; line-height: 1.8; }
.duo-intro p strong { display: block; margin-top: 5px; color: #513271; font-size: 19px; font-weight: 800; letter-spacing: -.045em; }
.duo-hero-card h2 { color: #49325f; font-size: 26px; }
.hero-numbers { border-top-color: #ddd2ed; }
.hero-numbers b { color: #5c3c91; }
.hero-numbers > div + div { padding-left: 17px; border-left: 1px solid #ddd2ed; }
.duo-kicker {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 18px;
  padding: 6px 13px;
  border: 1px solid #dfd4ed;
  border-radius: 30px;
  background: #faf6ff;
  color: #60417e;
  font-size: 12px;
  line-height: 1.8;
  font-weight: 700;
  letter-spacing: -.02em;
}
.letter { border-top-color: #e3d9ed; }
.letter strong { color: #664293; }
.signature { color: #766583; line-height: 1.9; }
.signature b, .signature strong { color: #533570; }

/* 등급컷, 총평, 개강: 넓은 배경의 이전 주황·청록 톤까지 교체한다. */
.cut-panel {
  border-color: #ded2ed;
  background: linear-gradient(145deg, #faf6ff, #f1ebfb);
  box-shadow: var(--duo-soft-shadow);
}
.cut-panel.secondary { border-color: #d9def3; background: linear-gradient(145deg, #f7f8ff, #edf0fc); }
.cut-value, .cut-panel .tag { color: #6240a4; }
.secondary .cut-value, .secondary .tag { color: #4f61aa; }
.range { background: #e2d8ef; }
.range i { background: #8967bd; }
.secondary .range { background: #dce1f5; }
.secondary .range i { background: #6e7dbe; }
.cut-evidence article { border-top-color: #dfd4ed; }
.scenario { border: 1px solid #e4deef; background: #f7f4fb; }
.filters button, .scenario button { border-color: #ddd4e8; color: #63576e; background: #fff; }
.filters button:hover, .scenario button:hover { background: #f3edf9; }
.filters button[aria-pressed=true], .scenario button[aria-pressed=true] {
  border-color: #6240a4;
  background: #6240a4;
  color: #fff;
}
.exam-review {
  background: linear-gradient(110deg, #fffbe3 0%, #fffcf0 48%, #fbf8ff 100%);
  border-left-color: #a490cb;
}
.exam-review .review-conclusion { border-top-color: #e8dfba; color: #69541d; }
.review-conclusion b { color: #5c4779; }
.repetition { border-color: #e1d8ef; background: linear-gradient(120deg, #faf7fe, #f2f2fd); }
.repetition aside { border-color: #ded4eb; }
.consult aside { border: 1px solid #e7dfba; background: linear-gradient(145deg, #fffce9, #fff8d8); box-shadow: var(--duo-soft-shadow); }
.consult aside .tag, .opening-date b { color: #655087; }
.opening-date { border-bottom-color: #e5dcae; }
.consult aside p { border-top-color: #e5dcae; }
.download { background: #f3edf9; border: 1px solid #e1d6ed; }
.download small { border-top-color: #ded2eb; }

/* 출전 도넛은 JS가 부여하는 SVG presentation attribute/inline 색만 덮는다.
   현재 source_groups 순서: print / textbook / lesson / basic. */
.source-overview { border-color: #ded4ec; background: #f8f5fd; }
.source-donut { filter: drop-shadow(0 7px 9px rgb(89 64 128 / 5%)); }
#source-donut circle:nth-of-type(1) { stroke: #7651a8; }
#source-donut circle:nth-of-type(2) { stroke: #4f6da8; }
#source-donut circle:nth-of-type(3) { stroke: #b15d87; }
#source-donut circle:nth-of-type(4) { stroke: #a7a0b1; }
.source-key, .source-footnote { border-color: #e2d9ec; }
.source-key-print b, .source-key-print > strong { color: #68419d; }
.source-key-textbook b, .source-key-textbook > strong { color: #4f6da8; }
.source-key-lesson b, .source-key-lesson > strong,
.source-key-original b, .source-key-original > strong { color: #93476e; }
.source-key-basic b, .source-key-basic > strong { color: #6b6178; }
.source-key-print > i { background: #7651a8 !important; }
.source-key-textbook > i { background: #4f6da8 !important; }
.source-key-lesson > i, .source-key-original > i { background: #b15d87 !important; }
.source-key-basic > i { background: #a7a0b1 !important; }
.donut-center b { color: #463458; }
.path { background: #fff; border-color: #e3daee; }
.path b { color: #9a82bc; }
.origin-print { color: #fff; border-color: #71509f; background: #7651a8; box-shadow: 2px 2px 0 #e3d5f1; }
.origin-textbook { color: #495c9b; background: #ecf0fc; border-color: #cdd5ee; }
.origin-lesson { color: #93476e; background: #faedf3; border-color: #e8c8d8; }
.origin-basic { color: #6b6178; background: #f2eff6; border-color: #ded6e6; }
.origin-original { color: #735186; background: #f5edf9; border-color: #decee8; }

.spectrum-row, .evidence-card { border-color: #e0d7eb; box-shadow: 0 4px 17px rgb(67 48 91 / 3%); }
.spectrum-heading { background: #f3edf9; border-bottom-color: #e2d7ee; }
.spectrum-stage:not(:last-child)::after { color: #a28bbc; }
.spectrum-stage h4 > span { background: #eee7f7; color: #705489; }
.stage-2 h4 { color: #6240a4; }
.stage-2 h4 > span { background: #7651a9; color: #fff; }
.stage-zoom { border-color: #e0d9e9; }
.stage-2 .stage-zoom { border-color: #b69acc; background: #fff; }
.stage-zoom:hover { border-color: #9878be; box-shadow: 0 3px 13px rgb(99 65 153 / 9%); }
.stage-zoom > span { color: #72627f; background: rgb(250 247 255 / 94%); }
.stage-source { color: #5f5669; }
.spectrum-change { color: #65596f; background: #f8f5fc; border-top-color: #e5ddee; }
.spectrum-change b { color: #694497; }
.spectrum-repeat { background: #fff; }
.evidence-image { background: #f7f5fb; }
.question-viewer { border-color: #d6c8e5; background: #fff; box-shadow: 0 18px 70px rgb(32 21 50 / 25%); }
.question-viewer::backdrop { background: rgb(34 26 49 / 72%); }
.viewer-bar { background: #f6f1fc; }
.viewer-bar button { border-color: #d8cce6; color: #5c4374; }

/* 난도와 문항표: 색 자체뿐 아니라 명도와 별 표기로 구분한다. */
.difficulty .s1 { background: #5669a7; }
.difficulty .s2 { background: #7960aa; }
.difficulty .s3 { background: #4f367c; }
thead { background: #f1ecf7; }
.open-detail { background: #f5f0fb; border-color: #ddd2eb; color: #65468a; }
.open-detail:hover, .open-detail[aria-expanded=true] { background: #e8ddf6; }
.q-main:hover { background: #f9f6fe; }
.q-main:has(.origin-print) { background: #fcfaff; }
.q-main:has(.origin-print) > th { border-left-color: #9b7dc2; }
.q-main:has(.origin-print):hover { background: #f3ebfc; }
.q-detail td { background: #faf7fe; }
.detail-inner { border-left-color: #baa3d4; }
.legend b { color: #79579e; }

.closing {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: 35px 40px;
  border: 1px solid #e0d5ed;
  border-radius: 22px;
  background: linear-gradient(135deg, #f2ecfb 0%, #f5f3fe 53%, #fffce5 100%);
}
.closing::before, .closing::after {
  content: '';
  position: absolute;
  z-index: -1;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  pointer-events: none;
  border: 1px solid rgb(174 151 204 / 15%);
}
.closing::before { top: -130px; left: -60px; }
.closing::after { right: -100px; bottom: -100px; width: 290px; height: 290px; }
.closing img.duo-closing-logo { display: block; width: 156px; height: 156px; object-fit: contain; margin: 0 auto 20px; }
.closing h2 { color: #493460; }
.closing p { color: #6a5d76; }
footer { border-color: #e2d9ed; color: #73677e; background: #fcfaff; }
footer b { color: #59416f; }

@media (max-width: 1080px) {
  .nav nav { gap: 15px; font-size: 12px; }
  .duo-brand strong { font-size: 21px; }
  .hero { gap: 32px; grid-template-columns: 1.12fr .88fr; }
  .duo-intro { grid-template-columns: 88px minmax(0, 1fr); gap: 13px; }
  .duo-intro img { width: 88px; height: 88px; }
  .duo-intro p strong { font-size: 17px; }
  .hero-note.duo-hero-card { padding: 25px; }
}
@media (max-width: 900px) {
  html { scroll-padding-top: 150px; }
  .nav { display: grid; grid-template-columns: 1fr; justify-items: center; gap: 4px; padding-block: 9px 8px; min-height: 0; }
  .brand.duo-brand img { width: 62px; height: 62px; flex-basis: 62px; }
  .nav nav { width: 100%; justify-content: center; gap: clamp(16px, 4vw, 33px); font-size: 12px; }
  .hero h1 { font-size: clamp(35px, 4.7vw, 44px); }
  .hero-note.duo-hero-card { padding: 23px; }
  .duo-hero-card h2 { font-size: 23px; }
  .duo-intro { grid-template-columns: 76px minmax(0, 1fr); gap: 10px; }
  .duo-intro img { width: 76px; height: 76px; }
  .duo-intro p { font-size: 11px; }
  .duo-intro p strong { font-size: 16px; }
}
@media (max-width: 760px) {
  .hero { grid-template-columns: 1fr; gap: 28px; padding-block: 38px; }
  .hero::before { inset: 10% -12px 0 4%; }
  .hero h1 { font-size: clamp(36px, 6vw, 44px); }
  .hero-note.duo-hero-card { padding: 27px; box-shadow: 5px 5px 0 #f3ecfb; }
  .duo-intro { grid-template-columns: 108px minmax(0, 1fr); gap: 20px; }
  .duo-intro img { width: 108px; height: 108px; }
  .duo-intro p { font-size: 12px; }
  .duo-intro p strong { font-size: 20px; }
  .duo-hero-card h2 { font-size: 25px; }
}
@media (max-width: 620px) {
  html { scroll-padding-top: 135px; }
  .nav { display: grid; padding-block: 8px; gap: 4px; }
  .brand.duo-brand { gap: 10px; }
  .brand.duo-brand img { width: 54px; height: 54px; flex-basis: 54px; }
  .duo-brand small { font-size: 10px; }
  .duo-brand strong { font-size: 22px; }
  .duo-brand strong i { padding-inline: 3px; }
  .nav nav { gap: 4px; justify-content: space-between; font-size: 10px; }
  .nav nav a { min-height: 38px; justify-content: center; }
  .hero { padding-block: 32px 35px; }
  .hero h1 { font-size: 36px; }
  .hero-note.duo-hero-card { padding: 23px; border-radius: 18px; }
  .duo-intro { grid-template-columns: 94px minmax(0, 1fr); gap: 14px; margin-bottom: 20px; padding-bottom: 20px; }
  .duo-intro img { width: 94px; height: 94px; }
  .duo-intro p { font-size: 11px; }
  .duo-intro p strong { font-size: 18px; }
  .duo-kicker { font-size: 11px; padding: 5px 11px; margin-bottom: 15px; }
  .signature { font-size: 13px; }
  .hero-numbers > div + div { padding-left: 15px; }
  .filters button, .scenario button { min-height: 40px; }
  .repetition aside { border-top-color: #ded4eb; }
  .spectrum-heading { padding-block: 15px; }
  .spectrum-stage h4 { color: #5d4d71; }
  .stage-2 h4 { color: #6240a4; }
  .closing { padding: 29px 18px 31px; border-radius: 18px; }
  .closing img.duo-closing-logo { width: 132px; height: 132px; margin-bottom: 17px; }
}
@media (max-width: 380px) {
  .nav nav { font-size: 9.5px; gap: 3px; }
  .hero h1 { font-size: 34px; }
  .actions { gap: 13px; }
  .actions .button { padding-inline: 13px; gap: 8px; }
  .duo-intro { grid-template-columns: 82px minmax(0, 1fr); gap: 12px; }
  .duo-intro img { width: 82px; height: 82px; }
  .duo-intro p strong { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .nav nav a, .button { transition: none; }
}
@media print {
  body, footer { background: #fff; }
  .hero::before, .closing::before, .closing::after { display: none; }
  .hero-note.duo-hero-card, .cut-panel, .consult aside, .spectrum-row, .evidence-card { box-shadow: none; }
  .duo-intro { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; }
  .duo-intro img { width: 64px; height: 64px; }
  .closing img.duo-closing-logo { width: 80px; height: 80px; }
}
