:root{--purple:#5645d4;--purple-deep:#3a2a99;--navy:#0a1530;--navy-mid:#1a2a52;--ink:#1a1a1a;--muted:#787671;--line:#e5e3df;--lav:#e6e0f5;--yellow:#f9e79f;--mint:#d9f3e1;--rose:#fde0ec;--sky:#dcecfa}
*{box-sizing:border-box}button,input{font:inherit}button{cursor:pointer}#deck{overscroll-behavior-y:none}.slide{scroll-snap-stop:always}.slide::after{content:attr(data-slide) " / 9";position:absolute;top:32px;right:7.4vw;z-index:20;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.08em}.dark::after{color:#a4a097}.progress i{width:11.111%}
.chessboard{--size:4;display:grid;grid-template-columns:repeat(var(--size),1fr);grid-template-rows:repeat(var(--size),1fr);overflow:hidden;border:8px solid var(--navy);border-radius:12px;background:#fff;box-shadow:0 24px 64px #070f2440}.chess-cell{position:relative;display:grid;place-items:center;border:0;padding:0;background:#f8f5e8}.chess-cell.dark-cell{background:#8d7b62}.queen{position:relative;z-index:2;font-family:Georgia,serif;font-size:calc(var(--cell,70px)*.72);line-height:1;color:var(--navy);filter:drop-shadow(0 3px 2px #fff8)}.dark-cell .queen{color:#fff}
.intro{padding:0;background:radial-gradient(circle at 50% 50%,#1a2a52 0,#0a1530 58%,#070f24)}.step-view{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .55s,transform .55s}.intro-first.hidden{opacity:0;transform:scale(.94);pointer-events:none}.hero-board{--size:8;--cell:min(8.2vh,5vw);width:calc(var(--cell)*8);height:calc(var(--cell)*8)}.hero-board .queen{position:absolute;animation:queen-tour 7s cubic-bezier(.5,0,.3,1) infinite}.hero-board .chess-cell:nth-child(28) .queen::after{content:"";position:absolute;inset:-400%;background:linear-gradient(45deg,transparent 49.7%,#d6b6f64f 50%,transparent 50.3%),linear-gradient(-45deg,transparent 49.7%,#d6b6f64f 50%,transparent 50.3%);z-index:-1;pointer-events:none}
@keyframes queen-tour{0%,12%{transform:translate(0,0)}25%,37%{transform:translate(-300%,0)}50%,62%{transform:translate(-300%,300%)}75%,87%{transform:translate(0,0)}100%{transform:translate(300%,-300%)}}
.intro-second{opacity:0;transform:translateY(26px);pointer-events:none;align-content:center;gap:4vh}.intro-second.visible{opacity:1;transform:none;pointer-events:auto}.intro-second h1{text-align:center;font-size:clamp(30px,3.3vw,54px);line-height:1.25;letter-spacing:-.055em;margin:0}.board-pair{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:12vw}.board-3{--size:3;width:min(30vh,23vw);height:min(30vh,23vw)}.board-4{--size:4;width:min(38vh,28vw);height:min(38vh,28vw)}
.queen-game{display:grid;grid-template-columns:40% 60%;align-items:center;background:#fafaf9}.game-copy{padding-right:5vw}.game-copy h1{font-size:clamp(54px,6vw,92px);line-height:.96;letter-spacing:-.075em;margin:0 0 32px}.game-copy p{font-size:clamp(18px,1.7vw,26px);line-height:1.55;color:#5d5b54;min-height:5em}.game-copy p.correct{color:#1aae39;font-weight:700}.game-copy p.wrong{color:#e03131;font-weight:700}.game-copy button,.assessment button[type=submit]{border:0;border-radius:8px;background:var(--purple);color:#fff;padding:13px 22px;font-weight:600}.game-board{--size:5;--cell:min(11vh,7vw);width:calc(var(--cell)*5);height:calc(var(--cell)*5);justify-self:center}.game-board .chess-cell{cursor:pointer}.game-board .chess-cell:focus-visible{outline:4px solid var(--purple);outline-offset:-4px;z-index:3}
.definition{display:grid;place-items:center;background:var(--navy)}.definition-copy{opacity:0;transform:translateY(30px);font-size:clamp(58px,7.4vw,112px);line-height:1.1;text-align:center;letter-spacing:-.075em;transition:.65s;margin:0}.definition-copy.visible{opacity:1;transform:none}.definition-copy strong{color:#f5d75e}
.goals{display:grid;grid-template-columns:35% 65%;align-items:center;background:#fff8f2}.goal-title h1{font-size:clamp(58px,6.5vw,98px);line-height:.98;letter-spacing:-.08em;margin:0}.goal-title em{color:var(--purple);font-style:normal}.goals ol{list-style:none;margin:0;padding:0;display:grid;gap:24px}.goals li{display:flex;gap:22px;align-items:flex-start;padding:30px 34px;background:#fff;border:1px solid var(--line);border-radius:12px;font-size:clamp(22px,2vw,31px);line-height:1.45;letter-spacing:-.035em}.goals li span{color:var(--purple);font-weight:700}
.state-space{display:grid;grid-template-rows:auto 1fr;background:#fafaf9;padding-top:72px}.state-space h1{font-size:clamp(38px,4vw,64px);letter-spacing:-.06em;margin:0;text-align:center}.tree-stage{min-height:0;margin-top:24px;display:grid;place-items:center}.tree-stage svg{width:100%;height:100%}.tree-edge{stroke:#c8c4be;stroke-width:2;fill:none}.tree-node circle{fill:#fff;stroke:var(--purple);stroke-width:3}.tree-node text{font:600 15px Inter,sans-serif;text-anchor:middle;dominant-baseline:central;fill:var(--ink)}.tree-node.solution circle{fill:var(--mint);stroke:#1aae39}.ellipsis{font:700 32px Inter,sans-serif;fill:#787671}
.methods{padding:0;display:grid;grid-template-columns:1fr 1fr;background:var(--navy)}.methods>div{display:grid;place-content:center;text-align:center}.methods>div+div{background:var(--navy-mid)}.methods h1{font-size:clamp(110px,17vw,270px);line-height:.75;letter-spacing:-.09em;margin:0;color:#d6b6f6}.methods p{font-size:clamp(28px,3vw,48px);font-weight:600;margin:45px 0 0}
.queue-slide{display:grid;grid-template-rows:1fr auto;gap:24px;padding-top:70px;background:#fafaf9}.ternary-wrap{min-height:0}.ternary-wrap svg{width:100%;height:100%}.queue{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:24px}.queue>span{font-size:28px;font-weight:700;color:var(--purple)}#queue-cells{height:82px;display:grid;grid-template-columns:repeat(12,1fr);border:4px solid var(--navy);border-left-width:18px;border-right-width:18px;border-radius:9px;overflow:hidden}#queue-cells i{display:grid;place-items:center;border-right:1px solid var(--line);background:#fff;font-style:normal;font-size:22px;font-weight:700}
.explore{display:grid;grid-template-rows:auto 1fr;padding-top:72px;background:#f8f5e8}.explore-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.explore-head h1{font-size:clamp(44px,5vw,72px);letter-spacing:-.07em;margin:0}.method-switch{display:flex;padding:4px;border:1px solid #c8c4be;border-radius:10px;background:#fff}.method-switch button{border:0;background:transparent;border-radius:7px;padding:11px 28px;color:#5d5b54;font-weight:700}.method-switch button.active{background:var(--purple);color:#fff}.tree-window{position:relative;min-height:0;overflow:auto;border:1px solid #c8c4be;border-radius:14px;background:#fff;cursor:grab;box-shadow:0 18px 45px #0a153012}.tree-window:active{cursor:grabbing}.tree-window svg{display:block;width:1600px;height:820px;transform-origin:0 0}.explore-node circle{fill:#fff;stroke:#a4a097;stroke-width:3;transition:.25s}.explore-node text{font:600 14px Inter,sans-serif;text-anchor:middle;dominant-baseline:central}.explore-node.visited circle{fill:#f5ff62;stroke:#1a1a1a;filter:drop-shadow(0 0 8px #f5ff62)}.explore-node.current circle{stroke:var(--purple);stroke-width:6}.explore-node.solution circle{stroke:#1aae39}.zoom-controls{position:absolute;right:calc(7.4vw + 18px);bottom:67px;display:flex;gap:6px}.zoom-controls button{width:42px;height:42px;border:1px solid #c8c4be;border-radius:8px;background:#fff;font-size:24px}
.assessment{padding-top:62px;background:#fafaf9;overflow:auto}.assessment form{height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:14px}.assessment header{display:flex;justify-content:space-between;align-items:end}.assessment h1{font-size:clamp(42px,4vw,64px);letter-spacing:-.06em;margin:0}.identity{display:flex;gap:12px}.identity label{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600}.identity input{width:150px;border:1px solid #c8c4be;border-radius:8px;background:#fff;padding:10px 12px;font-size:17px}.question-grid{min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:16px}.assessment fieldset{min-width:0;margin:0;padding:20px 24px;border:1px solid var(--line);border-radius:12px;background:#fff}.assessment legend{width:100%;padding:0 0 12px;font-size:clamp(19px,1.65vw,25px);font-weight:700;line-height:1.45;letter-spacing:-.025em}.assessment legend span{color:var(--purple)}.quiz-graph{display:block;width:100%;height:37%}.edges path{stroke:#a4a097;stroke-width:3;fill:none}.graph-nodes text{fill:#fff;stroke:var(--purple);stroke-width:26px;paint-order:stroke;stroke-linejoin:round;font:700 16px Inter,sans-serif;text-anchor:middle;dominant-baseline:central}.choices{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.choices label{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;font-size:15px;font-weight:500}.choices input{accent-color:var(--purple);width:18px;height:18px}.mini-state{display:flex;align-items:center;justify-content:center;gap:24px;height:54%}.quiz-board{--size:4;--cell:min(6.2vh,4vw);width:calc(var(--cell)*4);height:calc(var(--cell)*4);border-width:5px}.mini-state p{font-size:27px;font-weight:700;color:var(--purple);margin:0}.submit-row{display:flex;justify-content:flex-end;align-items:center;gap:18px}.submit-row p{margin:0;font-weight:600}.submit-row p.success{color:#1aae39}.submit-row p.error{color:#e03131}.assessment button[type=submit]{min-width:120px}.assessment button:disabled{background:#bbb8b1;cursor:wait}
@media(max-width:800px){.slide{padding-left:6vw;padding-right:6vw}.slide::after{right:6vw}.intro-second h1{font-size:27px}.board-pair{gap:7vw}.board-3{width:33vw;height:33vw}.board-4{width:42vw;height:42vw}.queen-game{grid-template-columns:1fr;align-content:center;gap:22px}.game-copy{padding:0}.game-copy h1{font-size:46px;margin-bottom:15px}.game-copy p{min-height:0;font-size:16px}.game-board{--cell:min(10vh,15vw)}.goals{grid-template-columns:1fr;gap:28px}.goal-title h1{font-size:50px}.goals li{font-size:17px;padding:20px}.methods h1{font-size:21vw}.methods p{font-size:20px}.assessment{padding-top:55px}.assessment header{align-items:flex-start}.identity{display:grid}.identity input{width:115px}.question-grid{grid-template-columns:1fr;overflow:auto}.assessment fieldset{min-height:520px}.tree-window svg{width:1300px}.choices label{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.step-view,.definition-copy{transition:none}.hero-board .queen{animation:none}}

/* 체스판 상태공간 트리 */
.board-light{fill:#f8f5e8}.board-dark{fill:#8d7b62}.board-outline{fill:none;stroke:#0a1530;stroke-width:4}.board-queen{font-family:Georgia,serif;text-anchor:middle;dominant-baseline:central;fill:#0a1530;stroke:#fff;stroke-width:.65;paint-order:stroke}.board-node.invalid .board-outline,.explore-node.invalid .board-outline{stroke:#e03131}.board-node.solution .board-outline,.explore-node.solution .board-outline{stroke:#1aae39}.invalid-mark{fill:none;stroke:#e03131;stroke-width:5;stroke-linecap:round;opacity:.9}
.tree-window svg{width:3200px;height:1120px}.tree-edge{transition:stroke .25s,stroke-width .25s,opacity .25s}.tree-edge.visited-edge{stroke:#f5d75e;stroke-width:5}.tree-edge.current-edge{stroke:#5645d4;stroke-width:8}.tree-edge.rejected-edge{stroke:#e03131;stroke-dasharray:10 8}
.explore-node{transition:filter .25s,opacity .25s}.explore-node.visited .board-outline{stroke:#d8db00;stroke-width:8;filter:drop-shadow(0 0 7px #f5ff62)}.explore-node.current .board-outline{stroke:#5645d4;stroke-width:10}.explore-node.invalid.visited .board-outline{stroke:#e03131}.explore-node.backtracking{transform-box:fill-box;transform-origin:center;animation:backtrack-node .65s ease both}
@keyframes backtrack-node{0%{transform:scale(1);filter:none}35%{transform:scale(1.16);filter:drop-shadow(0 0 15px #e03131)}60%{transform:translateX(-8px)}75%{transform:translateX(8px)}100%{transform:scale(.88);opacity:.58}}
#queue-cells{grid-template-columns:repeat(11,1fr)}
.quiz-graph.vertical{height:48%}.dfs-question legend{font-size:clamp(17px,1.35vw,21px)}.dfs-question .mini-state{height:46%}.short-answer{display:flex;align-items:center;justify-content:center;gap:12px;font-size:21px;font-weight:700;color:#37352f}.short-answer input{width:100px;padding:12px;border:2px solid #c8c4be;border-radius:8px;text-align:center;font-size:24px;font-weight:700;color:#5645d4}.short-answer input:focus{border-color:#5645d4;outline:3px solid #e6e0f5}
@media(max-width:800px){.tree-window svg{width:2600px;height:1000px}.dfs-question legend{font-size:16px}.quiz-graph.vertical{height:42%}}

/* 8번 슬라이드 가독성과 부드러운 확대·축소 */
.explore-node .board-dot{fill:#e03131;stroke:#fff;stroke-width:2;paint-order:stroke;filter:drop-shadow(0 1px 2px #79000080)}
.tree-window{scroll-behavior:auto;overscroll-behavior:contain}
@media(max-width:800px){.tree-window svg{width:3200px;height:1120px}}
