
:root{--parch:#F1E8D6;--parch2:#F5EEE2;--parch3:#FCFAF6;--parchD:#C0B9AB;--ink:#171A1C;--ink2:#464F53;--mute:#6E746F;--sun:#FFC02A;--sunL:#FFF8E9;--sunD:#CC9921;--red:#C8283A;--blue:#1E56C8;--line:#DCD3C2;
--sans:"Manrope",system-ui,sans-serif;--mono:"DM Mono",ui-monospace,Menlo,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--parch);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55}
a{color:var(--ink);text-decoration-color:var(--sunD);text-decoration-thickness:2px;text-underline-offset:3px}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.frame{margin:12px;background:var(--parch3);border:1px solid var(--line);border-radius:22px;min-height:calc(100vh - 24px);overflow:hidden}
@media (max-width:640px){.frame{margin:0;border-radius:0;border:0}}
header.hd{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 28px}
@media (max-width:640px){header.hd{padding:14px 16px}}
.wm{font-weight:800;font-size:1.25rem;letter-spacing:-.03em}
.wm span{font-weight:500;font-size:.8rem;letter-spacing:0;color:var(--mute);margin-left:10px}
nav.nv{display:flex;gap:4px;flex-wrap:wrap;background:var(--parch);border-radius:999px;padding:4px}
nav.nv a{text-decoration:none;font-weight:600;font-size:.86rem;padding:8px 14px;border-radius:999px;color:var(--ink2)}
nav.nv a:hover{color:var(--ink)}
nav.nv a[aria-current=page]{background:var(--ink);color:var(--parch3)}
.wrap{max-width:1140px;margin:0 auto;padding:0 28px}
@media (max-width:640px){.wrap{padding:0 16px}}
.hero{padding:40px 0 30px;display:grid;grid-template-columns:1fr 330px;gap:36px;align-items:end}
@media (max-width:900px){.hero{grid-template-columns:1fr}}
.badge{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.8rem;background:var(--sun);color:var(--ink);border-radius:999px;padding:6px 12px}
h1{font-weight:800;font-size:clamp(2.3rem,5.6vw,4.3rem);line-height:1.1;letter-spacing:-.035em;margin:14px 0 16px}
h1 mark{background:var(--sun);color:var(--ink);padding:0 .1em;border-radius:8px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
h2{font-weight:800;font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.05;letter-spacing:-.025em;margin:0 0 12px}
h3{font-weight:700;font-size:1.1rem;letter-spacing:-.01em;margin:0 0 6px}
p{margin:0 0 1em;color:var(--ink2);max-width:66ch}
.lede{font-size:1.15rem;color:var(--ink)}
.side{background:var(--ink);color:var(--parch3);border-radius:20px;padding:20px 22px}
.side .r{display:flex;justify-content:space-between;gap:10px;padding:8px 0;font-size:.92rem}
.side .r+.r{box-shadow:0 -1px 0 #33383B}
.side b{font-family:var(--mono);font-weight:500;color:var(--sun);white-space:nowrap}
.sec{padding:32px 0}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media (max-width:820px){.cards{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px}
.card .top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.card .k{font-family:var(--mono);font-size:.74rem;color:var(--mute)}
.card p{max-width:none;font-size:.95rem}
.ev{display:block;font-family:var(--mono);font-size:.72rem;line-height:1.55;color:var(--mute);overflow-wrap:anywhere;margin-top:8px}
.chip{display:inline-block;font-size:.72rem;font-weight:700;border-radius:999px;padding:3px 10px;margin:6px 6px 0 0;background:var(--sunL);border:1px solid var(--sunD);color:var(--ink)}
.tag{display:inline-block;font-size:.72rem;font-weight:700;border-radius:999px;padding:3px 10px;border:1.5px solid currentColor;white-space:nowrap}
.tag.fail{color:var(--red)}.tag.warn{color:#8A6400}.tag.pass{color:var(--blue)}.tag.na{color:var(--mute)}
.tool{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden}
.tool .ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px 18px;background:var(--parch2)}
.tool .ctl .lbl{font-weight:700;font-size:.8rem;color:var(--ink2);margin-right:4px}
.opt{font-family:var(--sans);font-weight:600;font-size:.86rem;background:#fff;color:var(--ink);border:1px solid var(--parchD);border-radius:999px;padding:8px 14px;cursor:pointer}
.opt[aria-pressed=true]{background:var(--ink);color:var(--parch3);border-color:var(--ink)}
.go{font-family:var(--sans);font-weight:700;font-size:.86rem;background:var(--sun);color:var(--ink);border:1px solid var(--sunD);border-radius:999px;padding:8px 16px;cursor:pointer}
.go[aria-pressed=true]{background:var(--ink);color:var(--sun);border-color:var(--ink)}
.tool .body{padding:18px}
.surf{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:820px){.surf{grid-template-columns:1fr}}
.surf .s{border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--parch3)}
.surf .s .nm{font-weight:700;font-size:.92rem;display:flex;justify-content:space-between;gap:8px;align-items:center}
.surf .s q{display:block;font-family:var(--mono);font-size:.76rem;color:var(--ink2);margin-top:8px;quotes:none;overflow-wrap:anywhere}
.gate{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;border-radius:18px;padding:16px 18px;margin:0 0 14px;background:var(--ink);color:var(--parch3)}
@media (max-width:640px){.gate{grid-template-columns:1fr}}
.gate .v{font-weight:800;font-size:1.5rem;letter-spacing:-.02em;padding:8px 16px;border-radius:999px;background:var(--sun);color:var(--ink);white-space:nowrap}
.gate .v.no{background:#fff;color:var(--red)}
.gate p{margin:0;color:#D9D4C8;max-width:none}
textarea{width:100%;min-height:74px;font-family:var(--mono);font-size:.92rem;border:1px solid var(--parchD);border-radius:14px;padding:12px;background:#fff;color:var(--ink);resize:vertical}
.lint li{margin:0 0 6px}
.lint{padding-left:20px}
.samples{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 0}
.scroll{overflow-x:auto;max-width:100%}
table{width:100%;border-collapse:collapse;font-size:.92rem;background:#fff}
th,td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
th{font-size:.74rem;font-weight:700;color:var(--ink2);background:var(--parch2)}
td.m{font-family:var(--mono);font-size:.82rem;overflow-wrap:anywhere}
.phase{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:900px){.phase{grid-template-columns:1fr}}
.phase .card ul{margin:6px 0 0;padding-left:18px;color:var(--ink2);font-size:.94rem}
.note{background:var(--sunL);border:1px solid var(--sunD);border-radius:20px;padding:18px 20px;font-size:.93rem}
.note p{max-width:none}
footer{background:var(--ink);color:#BDB6A8;margin-top:24px}
footer .in{max-width:1140px;margin:0 auto;padding:28px 28px 34px;font-size:.88rem}
@media (max-width:640px){footer .in{padding:24px 16px}}
footer p{color:inherit;max-width:none}
footer a{color:var(--parch3)}
