@font-face{font-family:NanumSquare;src:url('assets/NanumSquareR.woff2') format('woff2');font-weight:400;font-display:block}@font-face{font-family:NanumSquare;src:url('assets/NanumSquareB.woff2') format('woff2');font-weight:700;font-display:block}
:root{font-family:NanumSquare,sans-serif;color:#19345e;background:#f1f5fd;font-synthesis:none;--blue:#245bed;--line:#cbd9ef;--soft:#edf3ff;--ink:#19345e}*{box-sizing:border-box;scrollbar-width:thin}body{margin:0;min-width:320px}button,a,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a{transition:background-color .18s,color .18s,border-color .18s,box-shadow .18s}a{color:var(--blue);text-underline-offset:4px}button{border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff;padding:10px 16px;font-size:14px;white-space:nowrap}button:hover,a.control:hover{background:#d5e3ff;border-color:#8cacf1}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible{outline:3px solid #789afc;outline-offset:4px}p,h1,h2,h3{margin:0;word-break:keep-all;overflow-wrap:anywhere}p{line-height:1.75}strong,b{font-weight:700}.skip{position:absolute;left:20px;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.toolbar{height:72px;position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 3vw;background:#ffffffdb;backdrop-filter:blur(5px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:16px}.brand-mark{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--blue);color:white;font-size:19px}.toolbar nav{display:flex;align-items:center;gap:12px}.toolbar nav>a{font-size:14px;text-decoration:none;padding:10px 14px;border:1px solid transparent;border-radius:10px}.toolbar nav>a:hover{background:#d5e3ff}kbd{font:inherit;font-size:12px;background:#edf3ff;border:1px solid #d4dff2;padding:2px 4px;border-radius:4px;margin-left:6px}#deck{display:flex;justify-content:center;padding:28px 3vw 110px;min-height:calc(100dvh - 72px)}#slide{position:relative;background:white;border:1px solid var(--line);border-radius:20px;width:100%;max-width:1440px;min-height:calc(100dvh - 210px);padding:clamp(24px,3vw,54px);box-shadow:0 12px 44px #19345e05;display:flex;flex-direction:column;gap:26px;align-self:flex-start;outline:none}#slide:before{content:'';position:absolute;left:46px;top:-1px;width:72px;height:4px;background:var(--blue);border-radius:0 0 3px 3px}.slide-top{display:flex;flex-direction:column;gap:12px}.eyebrow{font-size:13px;color:var(--blue);font-weight:700;letter-spacing:.02em}.slide-title{font-size:clamp(28px,3vw,44px);line-height:1.25;letter-spacing:-.035em}.lead{color:#536d93;font-size:clamp(16px,1.4vw,20px);line-height:1.65;max-width:1080px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.card{display:flex;flex-direction:column;gap:12px;padding:22px 24px;background:#f3f7ff;border:1px solid #d7e3f8;border-radius:14px;min-width:0}.card h2{font-size:17px;line-height:1.45;color:#2456c4}.card p{font-size:clamp(17px,1.35vw,20px)}.card.quote{background:#e8f0ff;border-color:#aac2f7}.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}.cards.examples{grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);align-items:start}.examples .card:first-child{grid-row:span 2}.examples .card:first-child p{font-size:18px;line-height:1.65}.card p+p{margin-top:5px}.cover .slide-title{font-size:clamp(38px,5vw,72px);max-width:900px;line-height:1.15}.cover .lead{max-width:780px;font-size:22px}.cover .slide-top{gap:20px;margin-bottom:14px}.cover .cards{margin-top:auto}.cover .card p{font-size:18px}.cover-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.primary-link{display:inline-flex;background:var(--blue);color:white;border-radius:10px;padding:14px 20px;text-decoration:none}.primary-link:hover{background:#123dbd}.small-note{font-size:14px;background:var(--soft);padding:12px 16px;border-radius:10px;color:#536d93}.diagram{display:flex;gap:16px;grid-column:1/-1;align-items:stretch}.diagram-node{flex:1;padding:20px;border:1px solid #acc2ed;border-radius:14px;background:var(--soft);display:flex;flex-direction:column;gap:10px;text-align:center;justify-content:center}.diagram-node:nth-child(3){background:var(--blue);color:#fff;border-color:var(--blue)}.diagram-node strong{font-size:22px}.diagram-node p{font-size:17px}.flow-arrow{display:flex;align-items:center;color:#6982b2;font-size:24px}.references{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;grid-column:1/-1}.reference{display:flex;flex-direction:column;gap:10px;padding:18px 20px;background:#f3f7ff;border:1px solid var(--line);border-radius:12px}.reference a{font-size:17px;font-weight:700;line-height:1.5}.reference p{font-size:16px;color:#536d93}.demo-layout{display:grid;grid-template-columns:1.45fr 1fr;gap:24px;align-items:start}.demo-layout figure{margin:0;display:flex;flex-direction:column;gap:12px}.demo-layout img{width:100%;height:auto;border-radius:12px;border:1px solid var(--line)}.demo-layout .cards{display:flex;flex-direction:column}.demo-layout .card p{font-size:17px}.controls{position:fixed;z-index:6;bottom:0;left:0;right:0;min-height:78px;background:#ffffffee;backdrop-filter:blur(5px);padding:14px 3vw 18px;display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid var(--line)}.chapter-info{display:flex;gap:22px;align-items:center}.chapter-info b{font-size:16px}.chapter-info small{font-size:13px;color:#607797}.pager{display:flex;align-items:center;gap:16px}.pager button{font-size:20px;padding:7px 19px}.pager output{font-size:15px;font-variant-numeric:tabular-nums;min-width:64px;text-align:center}.track{position:absolute;bottom:0;left:0;right:0;height:4px;background:#e3ebfa}.track>div{height:100%;background:var(--blue);transform-origin:left;transition:width .22s ease}dialog{border:1px solid var(--line);border-radius:20px;padding:28px;width:min(1000px,calc(100% - 32px));max-height:85dvh;color:var(--ink);opacity:0;transform:translateY(12px);transition:opacity .18s,transform .18s;box-shadow:0 24px 90px #172c5033}dialog.is-open{opacity:1;transform:translateY(0)}dialog::backdrop{background:#13223c77;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.dialog-heading>div{display:flex;flex-direction:column;gap:5px}.dialog-heading h2{font-size:28px}#toc-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.toc-item{display:flex;gap:14px;text-align:left;white-space:normal;align-items:center;padding:12px 14px}.toc-item b{color:var(--blue);font-size:14px}.toc-item p{font-size:15px;line-height:1.5}.toc-item[aria-current=true]{background:#dae7ff;border-color:var(--blue)}.toc-group{grid-column:1/-1;margin-top:12px;font-size:14px;color:#607797;padding:10px 0}.copy-button{align-self:flex-start;font-size:13px;margin-top:4px}.ref-mark{font-size:.75em;vertical-align:super}body:has(dialog[open]){overflow:hidden}body:fullscreen{background:#f1f5fd} @media(min-width:1500px){.card p{font-size:21px}.cards.examples .card:first-child p{font-size:20px}}@media(max-width:1000px){.cards.three{grid-template-columns:1fr}.cover .slide-title{font-size:48px}.cards.examples{grid-template-columns:1fr}.examples .card:first-child{grid-row:auto}.demo-layout{grid-template-columns:1fr}.chapter-info small{display:none}.toolbar{padding:0 20px}.toolbar .brand strong{max-width:170px;font-size:14px}}@media(max-width:650px){.toolbar{height:auto;min-height:68px;padding:12px 16px;gap:12px;flex-wrap:wrap}.brand strong{max-width:none!important}.toolbar nav{width:100%;justify-content:space-between;gap:6px}.toolbar nav button,.toolbar nav>a{font-size:13px;padding:8px 10px}kbd{display:none}#deck{padding:18px 12px 110px}#slide{padding:26px 20px;border-radius:14px;gap:24px;min-height:0}.cards{grid-template-columns:1fr}.card{padding:18px}.card p,.examples .card:first-child p{font-size:17px}.cover .slide-title{font-size:38px}.cover .lead{font-size:18px}.controls{padding:12px 16px 16px}.chapter-info b{font-size:13px}.pager{gap:8px}.pager button{padding:5px 13px}.diagram{flex-direction:column;gap:8px}.flow-arrow{justify-content:center;transform:rotate(90deg);height:22px}.references,#toc-list{grid-template-columns:1fr}.dialog-heading h2{font-size:24px}dialog{padding:20px}.slide-title{font-size:29px}.small-note{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}@media print{.toolbar,.controls,dialog{display:none!important}#deck{padding:0}#slide{border:0;box-shadow:none;max-width:none}.card{break-inside:avoid}}

/* Keep headings balanced and let the modal mask fade before it closes. */
.slide-title{text-wrap:balance}
dialog::backdrop{opacity:0;transition:opacity .18s}
dialog.is-open::backdrop{opacity:1}

.walkthrough-layout{display:flex;gap:26px;align-items:flex-start}.walkthrough-image{display:flex;flex:0 1 42%;min-width:0;flex-direction:column;gap:12px;margin:0;position:sticky;top:96px}.walkthrough-image img{width:100%;height:auto;border:1px solid #9eb7e4;border-radius:12px;display:block}.walkthrough-image figcaption{font-size:13px;line-height:1.65;color:#586f92;word-break:keep-all}.walkthrough-image>a:last-child{font-size:14px}.walkthrough-tasks{display:flex;flex:1;min-width:0;flex-direction:column;gap:14px}.walkthrough-tasks .card{padding:18px 22px}.walkthrough-tasks h2{font-size:18px}.walkthrough-tasks p{font-size:16px;line-height:1.65}.example-reveal{display:block;background:#f7f9fe}.example-reveal summary{cursor:pointer;font-weight:700;color:var(--blue);line-height:1.5}.example-reveal[open] p{margin-top:14px}.example-reveal summary:focus-visible{outline:3px solid #789afc;outline-offset:4px}@media(max-width:800px){.walkthrough-layout{flex-direction:column}.walkthrough-image{position:static;flex:auto;width:100%}.walkthrough-tasks{width:100%}.walkthrough-tasks .card{padding:16px}.walkthrough-tasks p{font-size:15px}}

.captured-quote{margin:0;padding:16px;border-left:3px solid var(--blue);background:#edf3ff;border-radius:0 10px 10px 0;word-break:keep-all;line-height:1.7;font-size:17px}
