:root{--bg:#f3f5f7;--surface:#ffffff;--surface-2:#e7ebef;--fg:#1d2329;--muted:#5d6873;--line:#d2d8de;--accent:#2a5bd7;--accent-fg:#ffffff;--accent-soft:#dfe7fa;--data-1:#2a5bd7;--data-2:#d0731a;--data-3:#1f8a5b;--data-4:#b0388a;--good:#1f8a5b;--warn:#b5651d;--bad:#c23b3b;--water:#9cc8ef;--glass:#c9d6e3;--seed:#d8b52a;--f-display:"Noto Sans KR",system-ui,-apple-system,"Malgun Gothic",sans-serif;--f-body:"Noto Sans KR",system-ui,-apple-system,"Malgun Gothic",sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;--r:8px;--maxw:1120px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#13171c;--surface:#1b2027;--surface-2:#242b33;--fg:#e5e9ee;--muted:#9aa5b1;--line:#353e48;--accent:#7ea2ff;--accent-fg:#0d1420;--accent-soft:#25345a;--data-1:#7ea2ff;--data-2:#f0a050;--data-3:#4fc28c;--data-4:#e07ac0;--good:#4fc28c;--warn:#e6a05a;--bad:#f07070;--water:#3d6f9e;--glass:#4a5a6c;--seed:#e2c64e;color-scheme:dark}}:root[data-theme=dark]{--bg:#13171c;--surface:#1b2027;--surface-2:#242b33;--fg:#e5e9ee;--muted:#9aa5b1;--line:#353e48;--accent:#7ea2ff;--accent-fg:#0d1420;--accent-soft:#25345a;--data-1:#7ea2ff;--data-2:#f0a050;--data-3:#4fc28c;--data-4:#e07ac0;--good:#4fc28c;--warn:#e6a05a;--bad:#f07070;--water:#3d6f9e;--glass:#4a5a6c;--seed:#e2c64e;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.6;word-break:keep-all;overflow-wrap:break-word}h1,h2,h3{font-family:var(--f-display);font-weight:700;line-height:1.3;margin:0;text-wrap:balance}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}img{max-width:100%}.wrap{max-width:var(--maxw);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.topbar{border-bottom:1px solid var(--line);background:var(--surface)}.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-block:12px}.brand{font-family:var(--f-display);font-weight:700;font-size:20px;color:var(--fg);text-decoration:none}.toggles{display:flex;gap:8px;flex-wrap:wrap}.notice{background:var(--surface-2);border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.notice .wrap{padding-block:10px}.notice ul{margin:4px 0 0;padding-left:18px}.notice b{color:var(--fg)}main.wrap{padding-block:24px 40px;min-height:60vh}.sitefoot{border-top:1px solid var(--line);color:var(--muted);font-size:13px}.sitefoot .wrap{padding-block:16px}.crumbs{font-size:13px;display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.crumbs span{color:var(--muted)}.page-title{font-size:28px;margin-bottom:6px}.lead{color:var(--muted);max-width:68ch;margin:0 0 20px}.grade{margin-bottom:32px}.grade>h2{font-size:22px;margin-bottom:12px}.unit-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.unit-card{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);color:var(--fg);text-decoration:none}.unit-card:hover{border-color:var(--accent)}.unit-card .code{font-family:var(--f-mono);font-size:12px;color:var(--muted)}.unit-card h3{font-size:17px}.unit-card .count{font-size:13px;color:var(--muted)}.term{font-size:12px;color:var(--muted);margin-left:6px;font-weight:400}.standards{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin-bottom:20px}.standards h2{font-size:16px;margin-bottom:6px}.standards ul{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:14px}.standards code{font-family:var(--f-mono);font-size:12px;color:var(--accent);margin-right:6px}.exp-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.exp-card{display:flex;flex-direction:column;gap:6px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);color:var(--fg);text-decoration:none}.exp-card:hover{border-color:var(--accent)}.exp-card h3{font-size:18px}.exp-card p{margin:0;font-size:14px;color:var(--muted)}.exp-card .std{font-family:var(--f-mono);font-size:12px;color:var(--muted);margin-top:auto}.goal{background:var(--accent-soft);border-radius:var(--r);padding:10px 14px;margin:8px 0 18px;max-width:80ch}.loading,.error{color:var(--muted);padding:20px 0}@media (max-width:600px){main.wrap{padding-block:16px 32px}.topbar .wrap{gap:8px;padding-block:10px}.brand{font-size:18px}.toggles{width:100%;justify-content:space-between}.notice{font-size:12.5px}.notice .wrap{padding-block:8px}.page-title{font-size:23px}.lead{font-size:14px;margin-bottom:14px}.grade{margin-bottom:24px}.unit-list,.exp-list{grid-template-columns:minmax(0,1fr);gap:8px}.unit-card,.exp-card{padding:12px 14px}.goal{font-size:14px;padding:10px 12px}.standards{padding:10px 12px}.standards ul{font-size:13.5px}}.bench{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}@media (max-width:820px){.bench{grid-template-columns:minmax(0,1fr)}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;min-width:0}.panel h3{font-size:17px;margin-bottom:8px}.stage{width:100%;display:block;border-radius:6px;background:var(--surface-2);touch-action:manipulation;-webkit-user-select:none;user-select:none}.stage.drag{touch-action:none}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ctrl{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center}.ctrl label{font-size:14px;font-weight:500}.ctrl output{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:14px;color:var(--accent)}.ctrl input[type=range]{grid-column:1/-1;width:100%;accent-color:var(--accent)}select,input[type=number],input[type=text]{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--fg)}.btn{font:inherit;font-size:14px;font-weight:500;padding:7px 14px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:6px;overflow:hidden}.seg button{font:inherit;font-size:14px;padding:6px 12px;border:0;background:var(--surface);color:var(--fg);cursor:pointer}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-fg)}.readouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.readout{background:var(--surface-2);border-radius:6px;padding:8px 10px}.readout .k{font-size:12px;color:var(--muted)}.readout .v{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:17px}.tablebox{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:14px;font-variant-numeric:tabular-nums}table.data th,table.data td{border-bottom:1px solid var(--line);padding:5px 8px;text-align:center}table.data th{font-weight:500;color:var(--muted);font-size:13px}table.data td{font-family:var(--f-mono)}table.data td[colspan]{font-family:var(--f-body);color:var(--muted)}.hint{font-size:13px;color:var(--muted);margin:0}.questions{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.questions h3{font-size:16px;margin-bottom:4px}.questions ol{margin:0;padding-left:20px}.questions details{margin-top:4px;font-size:14px}.questions summary{cursor:pointer;color:var(--accent)}.note-good{color:var(--good)}.note-bad{color:var(--bad)}.results{margin-top:16px}@media (max-width:600px){.bench{gap:12px}.panel{padding:12px}.readouts{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px}.readout .v{font-size:16px}table.data{font-size:13px}table.data th,table.data td{padding:5px 6px;white-space:nowrap}.tablebox{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}}@media (pointer:coarse){.btn,.seg button{min-height:44px}select,input[type=number],input[type=text]{font-size:16px;min-height:44px}.ctrl input[type=range]{height:36px}.questions summary{padding:8px 0}.topbar .seg button{min-height:40px}}
