:root{color-scheme:light;--bg:#f2f2f2;--surface:#ffffff;--surface-soft:#f7f7f7;--surface-contrast:#111111;--text:#121212;--text-soft:#555555;--border:#dddddd;--border-strong:#bcbcbc;--ring:#171717;--radius:12px;--radius-sm:8px;--shadow-soft:0 1px 2px rgba(0,0,0,0.08);--shadow-card:0 2px 6px rgba(0,0,0,0.06);--font-main:"Avenir Next","Segoe UI",sans-serif;--font-mono:"IBM Plex Mono","Cascadia Code",monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;font-family:var(--font-main);background:linear-gradient(180deg,#f8f8f8 0,var(--bg) 100%);color:var(--text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{min-height:100vh;display:flex;flex-direction:column}.shell__header{position:-webkit-sticky;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--border);background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.shell__header-inner{width:100%;padding:clamp(.8rem,1.1vw,1rem) clamp(1rem,1.8vw,2rem);justify-content:space-between;gap:1rem}.brand,.shell__header-inner{display:flex;align-items:center}.brand{gap:.68rem;min-width:0}.brand__dot{width:.7rem;height:.7rem;border-radius:999px;background:var(--surface-contrast);box-shadow:0 0 0 4px #e8e8e8;flex-shrink:0}.brand__title{font-size:1rem;font-weight:700;letter-spacing:.01em}.nav{display:flex;gap:.45rem;align-items:center}.nav a{padding:.46rem .78rem;border:1px solid transparent;border-radius:999px;font-size:.87rem;color:var(--text-soft);transition:background .12s ease,color .12s ease,border-color .12s ease}.nav a:hover{background:var(--surface-soft);color:var(--text);border-color:var(--border)}.shell__main{width:100%;max-width:none;margin:0;padding:clamp(.9rem,1.4vw,1.4rem) clamp(.9rem,1.8vw,2rem) clamp(1.2rem,2.2vw,2rem);display:flex;flex-direction:column;gap:1rem}.page-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.section-title{margin:0;font-size:1rem;font-weight:700;letter-spacing:.005em}.page-card .section-title{font-size:clamp(1.22rem,2.1vw,1.7rem)}.section-subtitle{margin:.4rem 0 0;color:var(--text-soft);font-size:.9rem;line-height:1.45;max-width:92ch}.stack{display:flex;flex-direction:column;gap:.8rem}.btn{border:1px solid var(--border-strong);background:var(--surface);border-radius:999px;min-height:2.2rem;padding:.48rem .9rem;color:var(--text);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease;font-size:.88rem;line-height:1}.btn:hover{background:var(--surface-soft);border-color:#a8a8a8}.btn:disabled{opacity:.55;pointer-events:none}.btn--primary{background:var(--surface-contrast);color:#f9f9f9;border-color:var(--surface-contrast)}.btn--primary:hover{background:#2b2b2b;border-color:#2b2b2b}.btn--danger{background:transparent;color:var(--text);border-style:dashed}.btn--danger:hover{background:#f1f1f1}.btn--ghost{border-color:var(--border-strong);background:var(--surface)}.field{display:flex;flex-direction:column;gap:.36rem}.field label{font-size:.82rem;font-weight:650;color:var(--text-soft)}.input,.select,.textarea{width:100%;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.56rem .68rem;background:var(--surface);color:var(--text);transition:border-color .12s ease,box-shadow .12s ease}.textarea{min-height:6.4rem;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 2px rgba(0,0,0,.12)}.hint{margin:0;color:var(--text-soft);font-size:.8rem;line-height:1.4}.row{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}.row--between{justify-content:space-between}.row>.input,.row>.select,.row>.textarea{flex:1 1 230px;min-width:0}.grid-two{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:minmax(0,1fr)}.grid-two--top{align-items:start}.auto-grid{display:grid;grid-gap:.8rem;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}@media (min-width:1100px){.grid-two{grid-template-columns:minmax(0,1.48fr) minmax(340px,1fr)}}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card)}.card__head{padding:.82rem .9rem;border-bottom:1px solid var(--border)}.card__body{padding:.9rem}.tag{display:inline-flex;align-items:center;gap:.36rem;padding:.22rem .48rem;border-radius:999px;background:var(--surface-soft);color:#2e2e2e;font-size:.76rem;border:1px solid var(--border)}.tag .btn{min-height:1.2rem;padding:.12rem .35rem;font-size:.72rem;border-radius:999px;border-color:var(--border)}.token-swatch{width:.9rem;height:.9rem;border-radius:999px;border:1px solid rgba(0,0,0,.25);flex-shrink:0}.pills-wrap{display:flex;flex-wrap:wrap;gap:.5rem}.pill,.pills-wrap{align-items:center}.pill{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-soft);border-radius:999px;min-height:2rem;padding:.4rem .7rem;font-size:.8rem;display:inline-flex;gap:.3rem;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.pill:hover{border-color:#9f9f9f;background:var(--surface-soft);color:var(--text)}.pill--active{background:#151515;border-color:#151515;color:#f4f4f4}.pill--active:hover{background:#252525;border-color:#252525}.pill__req{font-weight:700;opacity:.9}.json-preview{margin:0;background:#101010;color:#e4e4e4;border-radius:var(--radius-sm);border:1px solid #262626;font-family:var(--font-mono);font-size:.78rem;line-height:1.45;max-height:clamp(300px,64vh,860px);overflow:auto;padding:.88rem}.checkbox-row{display:flex;align-items:center;gap:.55rem;padding:.38rem 0}.checkbox-row input{accent-color:var(--surface-contrast)}.divider{height:1px;background:var(--border);margin:.36rem 0}.fade-up{animation:fade-up .26s ease}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.shell__header-inner{flex-direction:column;align-items:stretch}.nav{width:100%;overflow-x:auto;padding-bottom:.18rem}.nav a{white-space:nowrap}.card__body,.card__head{padding:.75rem}.grid-two{gap:.78rem}}@media (max-width:680px){.row{align-items:stretch}.row>.btn,.row>.input,.row>.select,.row>.textarea{width:100%;flex-basis:100%}.json-preview{max-height:46vh;font-size:.74rem}.pill{width:100%;justify-content:space-between}}