:root{font-family:'DM Sans','Nanum Gothic',sans-serif;color:#302a30;background:#fff;font-size:16px;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}a:focus-visible,summary:focus-visible{outline:2px solid #d53e80;outline-offset:4px}.site-header{border-bottom:1px solid #eee9ec;padding:25px max(5%,calc((100vw - 1080px)/2));}.back-link{font-size:12px;font-weight:700;letter-spacing:.14em;text-decoration:none}.project-detail{width:min(100% - 10%,960px);margin:0 auto}.project-top{padding:80px 0 55px;border-bottom:1px solid #e8e4e7}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:700;color:#d34381;margin:0 0 20px}.project-top h1{font-size:clamp(28px,4vw,44px);line-height:1.3;letter-spacing:-.04em;margin:0 0 35px}.project-facts{display:grid;gap:12px;margin:0;font-size:14px;line-height:1.7}.project-facts div{display:grid;grid-template-columns:96px 1fr;gap:16px}.project-facts dt{font-weight:700;color:#787078}.project-facts dd{margin:0}.project-content{padding:42px 0 80px;line-height:1.8;word-break:keep-all;overflow-wrap:anywhere}.project-content h2{font-size:clamp(22px,3vw,28px);line-height:1.4;margin:70px 0 22px;scroll-margin-top:30px}.project-content h3{font-size:19px;margin:40px 0 16px;line-height:1.5}.project-content p{margin:12px 0}.project-content ul,.project-content ol{padding-left:1.5em}.project-content li{margin:.45em 0}.project-content hr{border:0;border-top:1px solid #ece7ea;margin:48px 0}.callout{background:#faf7f8;border-radius:10px;padding:20px 24px;margin:22px 0}.callout.orange_bg{background:#fff5ed}.callout.red_bg{background:#fff1f1}.callout.yellow_bg{background:#fff9e9}.callout.green_bg{background:#f1f8f2}.callout-icon{display:inline-block;margin-right:8px;font-size:20px}.callout-icon+p{display:inline}.callout ul{margin-bottom:0}.columns{display:flex;gap:20px;align-items:stretch}.column{flex:1;min-width:0}.column>.callout{height:calc(100% - 44px)}.toc{background:#f8f7f8;padding:20px 24px;border-radius:10px;margin:24px 0}.toc ol{margin:10px 0 0;columns:2}.toc a{text-decoration:none}.toc a:hover,.back-link:hover{color:#d34381}.table-scroll{overflow-x:auto;margin:25px 0}table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px;text-align:left}th,td{padding:14px 16px;border:1px solid #e5e2e4;vertical-align:top;line-height:1.65}th{background:#f7f6f7;font-weight:700}figure{margin:22px 0 36px}figure img{display:block;max-width:100%;height:auto;border:1px solid #efebed;border-radius:6px}figcaption{font-size:13px;color:#777078;margin-top:8px}.demo-tabs{display:grid;gap:12px}.demo-tab,.code-toggle{border:1px solid #e9e3e7;border-radius:8px;padding:0 20px}.demo-tab summary,.code-toggle summary{font-weight:700;cursor:pointer;padding:16px 0}.demo-tab>h3:first-of-type{margin-top:16px}.code-toggle{margin:18px 0}.code-toggle[open]{padding-bottom:18px}pre{background:#29252b;color:#f5f1f3;border-radius:8px;padding:20px;overflow-x:auto;line-height:1.6;font-size:13px;white-space:pre}code{font-family:Consolas,monospace;font-size:.9em;background:#f4f2f3;border-radius:3px;padding:.1em .3em}pre code{background:none;padding:0;color:inherit}footer{background:#28252b;color:#eee;padding:28px 5%;text-align:center;font-size:13px}footer a{text-decoration:none}@media(max-width:700px){.project-top{padding:52px 0 38px}.project-content{padding-top:30px}.project-content h2{margin-top:50px}.columns{display:block}.column>.callout{height:auto}.toc ol{columns:1}.project-facts div{grid-template-columns:1fr;gap:2px}.demo-tab,.code-toggle{padding-left:15px;padding-right:15px}}
:not(pre)>code{white-space:normal}
.tab-list{display:flex;gap:8px;border-bottom:1px solid #e9e3e7;margin:20px 0}.tab-list button{background:none;border:0;border-bottom:2px solid transparent;padding:13px 14px;font-family:inherit;font-size:14px;font-weight:600;color:#716a71;cursor:pointer}.tab-list button[aria-selected=true]{color:#bc3570;border-bottom-color:#e95898}.tab-list button:focus-visible{outline:2px solid #d53e80;outline-offset:2px}.demo-tab[hidden]{display:none}.demo-tab summary[hidden]{display:none}.demo-tab>h3:first-of-type{margin-top:20px}
