:root{--nav:#14304f;--band:#e6e8eb;--bg:#f5f6f8;--surface:#fff;--line:#dde2e8;--ink:#1c2430;--ink2:#4a5565;--accent:#1f5fbf;--accent-ink:#fff;--cur:#e1ebf8;--code:#eef1f5;color-scheme:light}@media (prefers-color-scheme:dark){:root{--nav:#0d2038;--band:#121a25;--bg:#0f151e;--surface:#17202c;--line:#283444;--ink:#e4e9f0;--ink2:#a7b2c0;--accent:#7fb0f5;--accent-ink:#0d2038;--cur:#1d3354;--code:#1d2735;color-scheme:dark}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:16px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;margin:0;font:16px/1.6 Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif}::selection{background:var(--cur);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}a{color:var(--accent);text-underline-offset:3px}code,.mono{font-family:Cascadia Mono,Consolas,ui-monospace,monospace;font-size:.88em}table{font-variant-numeric:tabular-nums}.wrap{max-width:1180px;margin:0 auto;padding:0 24px}.top{background:var(--nav);align-items:center;gap:12px;height:64px;padding:0 max(24px,50% - 672px);display:flex}.brand{color:#fff;align-items:center;gap:10px;text-decoration:none;display:flex}.brand b{font-size:19px;font-weight:600}.top nav{gap:26px;margin-left:auto;font-size:14px;display:flex}.top nav a{color:#dbe4ef;text-decoration:none}.top nav a:hover{color:#fff;text-decoration:underline}.top .demo{color:#14304f;background:#fff;border-radius:7px;margin-left:26px;padding:9px 18px;font-size:14px;font-weight:600;text-decoration:none}.top .demo:hover{background:#e1ebf8}.top :focus-visible{outline-color:#fff}@media (width<=760px){.top nav{display:none}.top .demo{margin-left:auto}}.hero{background:var(--band);padding:44px 0 8px}.hero .head{text-align:center;padding:0 24px 18px}.hero h1{letter-spacing:-.02em;text-wrap:balance;max-width:22ch;margin:0 auto 16px;font-size:clamp(34px,5vw,52px);font-weight:600;line-height:1.12}.hero p{color:var(--ink2);text-wrap:pretty;max-width:62ch;margin:0 auto;font-size:clamp(17px,1.6vw,19px)}.hero .tabs button{background:var(--surface);color:var(--ink2);border-color:var(--line)}.hero .tabs button[aria-selected=true]{background:var(--nav);border-color:var(--nav);color:#fff}.hero .arrow{background:var(--surface);border-color:var(--line);color:var(--ink)}.hero .arrow:hover{border-color:var(--accent);color:var(--accent)}.sec{border-top:1px solid var(--line);padding:88px 0}.sec h2{letter-spacing:-.015em;text-wrap:balance;margin:0 0 14px;font-size:clamp(28px,3.2vw,36px);font-weight:600;line-height:1.2}.sec .lede{color:var(--ink2);text-wrap:pretty;max-width:60ch;margin:0;font-size:18px}.split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:64px;display:grid}@media (width<=900px){.split{grid-template-columns:minmax(0,1fr);gap:36px}.sec{padding:64px 0}}.note{color:var(--ink2);margin:18px 0 0;font-size:14px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 18px 40px -24px #14304f59}.panel .ph{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 18px;font-size:14px;font-weight:600;display:flex}.panel .ph span{color:var(--ink2);font-size:13px;font-weight:400}.roles{border-collapse:collapse;width:100%;font-size:15px}.roles th,.roles td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:12px 18px}.roles tr:last-child td{border-bottom:0}.roles th{white-space:nowrap;width:1%;font-weight:600}.roles td{color:var(--ink2)}.rows{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 48px;margin:64px 0 0;padding:0;display:grid}.rows div{border-top:1px solid var(--line);padding:18px 0}.rows dt{margin:0 0 4px;font-weight:600}.rows dd{color:var(--ink2);margin:0;font-size:15px}@media (width<=900px){.rows{grid-template-columns:1fr 1fr;gap:0 28px}}@media (width<=560px){.rows{grid-template-columns:1fr}}.mech{margin:0;padding:0;list-style:none}.mech li{border-top:1px solid var(--line);padding:18px 0}.mech li:first-child{border-top:0;padding-top:0}.mech b{margin-bottom:3px;display:block}.mech span{color:var(--ink2);font-size:15px}.audit{margin-top:28px}.audit table{border-collapse:collapse;width:100%;font-size:12.5px}.audit td{border-bottom:1px solid var(--line);white-space:nowrap;padding:7px 14px}.audit tr:last-child td{border-bottom:0}.audit td:last-child{color:var(--ink2)}.audit .wide{overflow-x:auto}.tag{background:var(--cur);color:var(--accent);vertical-align:2px;white-space:nowrap;border-radius:10px;margin-left:6px;padding:1px 9px;font-size:12px;font-weight:600;display:inline-block}.hosts{border:1px solid var(--line);background:var(--surface);border-radius:10px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.hosts>div{padding:24px 26px}.hosts>div+div{border-left:1px solid var(--line)}.hosts h3{margin:0 0 8px;font-size:18px;font-weight:600}.hosts ul{color:var(--ink2);margin:0;padding-left:18px;font-size:15px}.hosts li{padding:2px 0}@media (width<=640px){.hosts{grid-template-columns:1fr}.hosts>div+div{border-left:0;border-top:1px solid var(--line)}}.road{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;margin-top:48px;display:grid}.road h3{border-bottom:2px solid var(--line);margin:0 0 12px;padding-bottom:10px;font-size:15px;font-weight:600}.road .now h3{border-color:var(--accent);color:var(--accent)}.road ul{margin:0;padding:0;list-style:none}.road li{color:var(--ink2);padding:7px 0;font-size:15px}.road li b{color:var(--ink);font-weight:600}@media (width<=900px){.road{grid-template-columns:1fr;gap:36px}}.close{background:var(--nav);color:#e9eef5;text-align:center;padding:80px 24px}.close h2{color:#fff;letter-spacing:-.015em;margin:0 0 12px;font-size:clamp(28px,3.2vw,36px);font-weight:600}.close p{color:#c6d2e0;max-width:56ch;margin:0 auto 28px;font-size:18px}.btn{color:#14304f;background:#fff;border-radius:8px;padding:13px 26px;font-weight:600;text-decoration:none;display:inline-block}.btn:hover{background:#e1ebf8}.close :focus-visible{outline-color:#fff}.foot{border-top:1px solid var(--line);color:var(--ink2);padding:26px 0;font-size:14px}.foot .wrap{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.foot .brand{color:var(--ink)}.foot .brand b{font-size:15px}.foot a{margin-left:auto}.show{--nav:#14304f;--rail:#f6f7f9;--line:#e3e6ea;--ink:#1c2430;--ink2:#4a5565;--accent:#1f5fbf;--cur:#e1ebf8;color:var(--ink);box-sizing:content-box;max-width:1400px;margin:0 auto;padding:0 24px}.show .fit{padding-top:0;position:relative;overflow:hidden}.show .stage{transform-origin:0 0;padding-top:30px}.show.stacked .slide{grid-template-rows:600px auto;grid-template-columns:1fr}.show.stacked .mess{border-bottom:2px dashed #b9c2cd;border-right:0}.show.stacked .space{margin:56px 0 0}.show.stacked .slides{height:1160px}.show .ctl{color:var(--ink)}.show{& .slides{height:624px;position:relative}& .slide{opacity:0;visibility:hidden;grid-template-columns:1fr 1fr;transition:opacity .45s cubic-bezier(.16,1,.3,1),visibility 0s .45s;display:grid;position:absolute;inset:0}& .slide.on{opacity:1;visibility:visible;transition:opacity .45s cubic-bezier(.16,1,.3,1)}& .mess{border-right:2px dashed #b9c2cd;justify-self:end;width:690px;position:relative}& .lbl{color:var(--ink2);font-size:13px;font-weight:600;position:absolute;top:-26px}& .frag{background:#fff;border:1px solid #d5dbe2;border-radius:6px;max-width:280px;padding:10px 12px;font-size:13px;position:absolute;box-shadow:0 8px 20px -10px #14304f59}& .frag small{color:var(--ink2);margin-bottom:3px;font-size:11.5px;display:block}& .sticky{color:#1d2b4a;background:#fff3a6;border:0;border-radius:1px;padding:14px 14px 18px;font-family:Reenie Beanie,Segoe Print,cursive;font-size:25px;line-height:1.15;transform:rotate(-4deg);box-shadow:0 10px 16px -10px #281e0073,inset 0 -14px 18px -16px #785a0059}& .sticky.pink{background:#ffc9d8}& .sticky.green{background:#d6f5b8}& .sticky.blue{background:#cfe9ff}& .sticky.pen{color:#20304f;font-family:Nanum Pen Script,cursive;font-size:24px}& .sticky s{text-decoration-thickness:2px}& .sticky u{text-underline-offset:3px;text-decoration-thickness:2px}& .tape{background:#ebe8d7bf;width:70px;height:22px;position:absolute;box-shadow:0 1px 2px #0000001f}& .scrawl{color:#b42318;font-family:Reenie Beanie,cursive;font-size:22px;line-height:1;position:absolute;transform:rotate(-6deg)}& .about{background:#f3f3f3;border:1px solid #9aa3ad;border-radius:4px;width:290px;font-size:12px;position:absolute;box-shadow:0 10px 22px -12px #00000073}& .about .tb{background:#fff;border-bottom:1px solid #d0d4d9;justify-content:space-between;padding:5px 9px;font-size:12px;display:flex}& .about .bd{padding:12px 14px}& .about .ok{float:right;background:#fff;border:1px solid #7a8591;border-radius:3px;margin-top:6px;padding:2px 16px}& .sheet{padding:0;overflow:hidden}& .sheet table{margin:0;font-size:12px}& .sheet td,& .sheet th{border-color:#d9dee5;padding:3px 8px}& .sheet th{background:#eef2ee}& .sheet .tab{color:var(--ink2);background:#f4f6f4;border-top:1px solid #d9dee5;padding:4px 8px;font-size:11px}& .chat{background:#fff;border:1px solid #d5dbe2;border-radius:10px;width:400px;position:absolute;overflow:hidden;transform:rotate(-1deg);box-shadow:0 14px 30px -14px #14304f73}& .chat .ch{background:#fbfbfc;border-bottom:1px solid #e6e9ee;align-items:center;gap:8px;height:38px;padding:0 14px;font-size:13.5px;font-weight:600;display:flex}& .chat .ch span{color:var(--ink2);font-weight:400}& .msg{grid-template-columns:34px 1fr;gap:10px;padding:8px 14px 2px;display:grid}& .msg svg{border-radius:50%;width:34px;height:34px}& .who{font-size:13px;font-weight:600}& .who time{color:var(--ink2);margin-left:6px;font-size:11.5px;font-weight:400}& .txt{font-size:13.5px;line-height:1.45}& .compose{color:#6b7686;border:1px solid #d5dbe2;border-radius:6px;margin:10px 14px 12px;padding:7px 10px;font-size:12.5px}& .space{border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:220px 1fr;margin-left:36px;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 40px -18px #14304f59}& .t{background:var(--rail);border-right:1px solid var(--line);padding:14px 10px;font-size:12.5px}& .t b{padding:0 8px 8px;display:block}& .t div{border-radius:5px;padding:3px 8px}& .t .cur{background:var(--cur);color:var(--accent);font-weight:600}& .t .k{padding-left:22px}& .pg{padding:18px 24px;font-size:13px}& .pg .h3{margin:0 0 4px;font-size:20px;font-weight:600}& .meta{color:var(--ink2);margin-bottom:10px;font-size:12.5px}& .pg .h4{margin:14px 0 4px;font-size:14px;font-weight:600}& ol,& ul.tasks{margin:6px 0 0 18px;padding:0}& li{padding:2px 0}& ul.tasks{margin-left:0;list-style:none}& ul.tasks li:before{content:"";vertical-align:-1px;border:1.5px solid #8a96a6;border-radius:3px;width:12px;height:12px;margin-right:8px;display:inline-block}& ul.tasks li.done:before{background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.9' fill='none' stroke='white' stroke-width='1.8'/%3E%3C/svg%3E") center/10px no-repeat;border-color:var(--accent)}& table{border-collapse:collapse;margin-top:6px;font-size:12.5px}& td,& th{border:1px solid var(--line);text-align:left;padding:4px 10px}& th{background:var(--rail)}& code{background:#f1f4f8;border-radius:4px;padding:1px 5px;font-family:Consolas,monospace;font-size:12px}& .tags{flex-wrap:wrap;gap:5px;margin:-4px 0 10px;display:flex}& .tags span{color:#3d4757;background:#eef1f5;border:1px solid #dde2e8;border-radius:10px;padding:2px 9px;font-size:11px}& .pill{vertical-align:2px;border-radius:10px;margin-left:6px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}& .pill.lock{color:#7a4e06;background:#fdf1d6}& .pill.ver{color:var(--accent);background:#e1ebf8}& .ctl{justify-content:center;align-items:center;gap:14px;margin:22px 0 48px;display:flex}& .arrow{width:38px;height:38px;color:var(--nav);cursor:pointer;background:#fff;border:1px solid #c5cdd7;border-radius:50%;place-items:center;display:grid}& .arrow:hover{border-color:var(--accent);color:var(--accent)}& .arrow svg{width:16px;height:16px}& .tabs{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}& .tabs button{font:inherit;color:var(--ink2);cursor:pointer;background:#fff;border:1px solid #c5cdd7;border-radius:18px;padding:6px 14px;font-size:13px}& .tabs button:hover{color:var(--ink);border-color:#9aa6b4}& .tabs button[aria-selected=true]{background:var(--nav);border-color:var(--nav);color:#fff}& .win{background:#fff;border:1px solid #c3cad3;border-radius:6px;font-size:12.5px;position:absolute;overflow:hidden;box-shadow:0 12px 26px -14px #14304f80}& .win .wt{color:#3d4757;background:#f1f3f6;border-bottom:1px solid #dde2e8;align-items:center;gap:8px;height:28px;padding:0 10px;font-size:11.5px;display:flex}& .win .wt i{letter-spacing:6px;color:#8a95a3;margin-left:auto;font-style:normal}& .mail .hd{border-bottom:1px solid #eceff3;padding:8px 12px 6px;line-height:1.45}& .mail .hd b{margin-bottom:2px;font-size:13.5px;display:block}& .mail .hd span{color:#5b6573;font-size:11.5px;display:block}& .mail .bd{padding:8px 12px 10px;line-height:1.5}& .mail .q{color:#5b6573;border-left:1px solid #c3cad3;margin-top:6px;padding-left:8px}& .dir table{width:100%;margin:0;font-size:11.5px}& .dir td,& .dir th{white-space:nowrap;border:0;border-bottom:1px solid #f0f2f5;padding:3px 10px}& .dir th{color:#5b6573;background:#fff;border-bottom:1px solid #dde2e8;font-weight:400}& .dir td:first-child{align-items:center;gap:6px;display:flex}& .dir .ic{border:1.4px solid #2b62b8;border-radius:1px 4px 1px 1px;flex:none;width:11px;height:14px}& .dir .sel td{background:#dcebfb}& .dir .ft{color:#5b6573;background:#f7f8fa;padding:3px 10px;font-size:11px}& .mini{background:#fff;border:1px solid #c3cad3;border-radius:8px;width:290px;padding:8px 10px;font-size:12.5px;position:absolute;box-shadow:0 12px 26px -14px #14304f80}& .mini .r{grid-template-columns:24px 1fr;gap:8px;padding:3px 0;display:grid}& .mini svg{border-radius:50%;width:24px;height:24px}& .mini b{font-size:12px}& .mini time{color:#5b6573;margin-left:5px;font-size:11px}@media (prefers-reduced-motion:reduce){& .slide,& .slide.on{transition:none}}}
