.badge-tool-page .frame{width:min(100% - 2rem, var(--frame))}.badge-page{padding:clamp(3rem,7vw,6rem) 0 clamp(4rem,8vw,7rem)}.badge-heading{margin-bottom:1.4rem}.badge-heading .eyebrow{margin:0 0 .45rem}.badge-heading h1{letter-spacing:-.055em;margin:0;font-size:clamp(2.6rem,6.5vw,5.4rem);font-weight:450;line-height:.98}.badge-status{min-height:1.5em;color:var(--muted);font:var(--label)/1.5 var(--mono);margin:.65rem 0 1rem}.badge-status:not([data-state=error]){clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.badge-status[data-state=error]{color:var(--action)}.badge-stage{--stage-ink:#dfe8ff;height:clamp(22rem,74vh,46rem);color:var(--stage-ink);touch-action:pan-y;isolation:isolate;cursor:grab;-webkit-user-select:none;user-select:none;background:#000;position:relative;overflow:hidden}.badge-stage[data-dragging=true]{cursor:grabbing}.badge-stage:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(#ffffff17 1px,#0000 1px),linear-gradient(90deg,#ffffff17 1px,#0000 1px);background-position:50%;background-size:2.25rem 2.25rem;position:absolute;inset:0;-webkit-mask-image:radial-gradient(closest-side,#000 0%,#000000b3 55%,#0000 100%);mask-image:radial-gradient(closest-side,#000 0%,#000000b3 55%,#0000 100%)}.badge-stage[data-state=live]:before{display:none}.badge-canvas-slot{z-index:1;position:absolute;inset:0}.badge-canvas-slot canvas{width:100%;height:100%;display:block}.badge-labels{z-index:2;pointer-events:none;margin:0;padding:0;list-style:none;position:absolute;inset:0}.badge-label{color:var(--stage-ink);font:500 clamp(.62rem, 1.2vw, .78rem)/1 var(--mono);letter-spacing:.08em;opacity:var(--label-opacity,0);text-shadow:0 0 6px #000000e6;white-space:nowrap;will-change:transform;padding-right:.35rem;position:absolute;top:0;left:0}.badge-stage:not([data-state=live]) .badge-labels{display:none}.badge-hint{z-index:2;color:#dfe8ff8c;font:var(--label)/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;pointer-events:none;margin:0;position:absolute;bottom:.7rem;right:.85rem}.badge-stage:not([data-state=live]) .badge-hint{display:none}.badge-fallback{z-index:1;place-items:center;margin:0;display:grid;position:absolute;inset:0}.badge-stage[data-state=live] .badge-fallback{display:none}.badge-fallback-figure{--hex:polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);aspect-ratio:.866;width:min(15rem,52%);clip-path:var(--hex);filter:drop-shadow(0 0 1.5rem #1e64ff59);background:linear-gradient(150deg,#fbfdff 0%,#9ea7b3 26%,#f4f7fb 48%,#6f7783 70%,#e8edf3 100%);position:relative}.badge-fallback-enamel{clip-path:var(--hex);background:radial-gradient(120% 60% at 30% 15%,#96c8ff8c,#0000 45%),linear-gradient(165deg,#2a7bff 0%,#0a4ee8 45%,#04238f 100%);position:absolute;inset:8%}.badge-fallback-disc{aspect-ratio:1;background:repeating-conic-gradient(from 45deg, #ffffff38 0 25%, transparent 0 50%) 0 0 / .55rem .55rem, conic-gradient(from 200deg, #ffd6f2, #c8f3ff, #e6ffd1, #fff2c4, #e3d0ff, #ffd6f2);opacity:.92;border:2px solid #e9eef4;border-radius:50%;width:46%;position:absolute;box-shadow:inset 0 0 .6rem #ffffff73}.badge-fallback-disc:first-child{top:15%;left:39%}.badge-fallback-disc:nth-child(2){top:27%;left:9%}.badge-fallback-disc:nth-child(3){top:40%;left:39%}.badge-fallback figcaption{color:#dfe8ffb8;font:var(--label)/1.5 var(--mono);position:absolute;bottom:.8rem;left:.85rem;right:.85rem}.badge-stage[data-state=loading] .badge-fallback figcaption{visibility:hidden}.badge-controls{color:var(--muted);font:var(--label)/1.55 var(--mono);flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-top:.9rem;display:flex}.badge-select{border:1px solid var(--rule-strong);background:var(--paper-deep);min-height:2.5rem;color:var(--ink);font:var(--wt-label) var(--label)/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:0;padding:.45rem .85rem}.badge-control{align-items:center;gap:.5rem;display:inline-flex}.badge-select{text-transform:none;letter-spacing:0}.badge-select:focus-visible,.badge-stage:focus-visible{outline:2px solid var(--action);outline-offset:4px}.badge-notes{max-width:44rem;color:var(--muted);margin:1.6rem 0 0;font-size:.92rem}.noscript{border:1px solid var(--action);margin:1rem 0;padding:1rem}@media (width<=720px){.badge-stage{height:min(118vw,34rem)}.badge-hint{display:none}}@media (prefers-reduced-motion:reduce){.badge-label{will-change:auto}}
