:root{--turf: #0b3d2e;--turf-deep: #072a20;--night: #0a0f14;--chalk: #f5f3ec;--sodium: #ffb627;--sodium-deep: #e39a12;--ink: #16211c;--ink-soft: #4a564f;--line: #d6d2c4;--danger: #b3341f;--font-display: "Big Shoulders Display", "Inter", sans-serif;--font-body: "Inter", system-ui, sans-serif;--radius: 6px;--tap: 52px;--page-pad: 20px;--maxw: 640px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;overflow-x:hidden;font-family:var(--font-body);color:var(--ink);background:var(--chalk);background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(20% - 1px),rgba(11,61,46,.045) calc(20% - 1px),rgba(11,61,46,.045) 20%);line-height:1.5;-webkit-font-smoothing:antialiased}.page{max-width:var(--maxw);margin:0 auto;padding:max(24px,env(safe-area-inset-top)) var(--page-pad) calc(48px + env(safe-area-inset-bottom))}.eyebrow{font-family:var(--font-display);font-weight:700;letter-spacing:.22em;text-transform:uppercase;font-size:.8rem;color:var(--turf);margin:0 0 8px}h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.4rem,12vw,3.6rem);line-height:.92;letter-spacing:-.01em;margin:0 0 14px;text-transform:uppercase}h1 .beat{color:var(--turf);display:block}.lede{font-size:1.05rem;color:var(--ink-soft);margin:0 0 28px;max-width:42ch}.field-label{display:block;font-family:var(--font-display);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;color:var(--ink);margin:0 0 10px}.hint{font-size:.86rem;color:var(--ink-soft);margin:6px 0 0}.sections{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:14px}.section{background:#fff;border:1.5px solid var(--line);border-left:6px solid var(--turf);border-radius:var(--radius);padding:14px 14px 16px}.section__head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.section__no{font-family:var(--font-display);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.9rem;color:var(--turf)}.section__reorder{display:flex;gap:4px}.iconbtn{min-width:40px;min-height:40px;border:1.5px solid var(--line);background:#fff;border-radius:var(--radius);font-size:1.1rem;color:var(--ink-soft);cursor:pointer}.iconbtn:disabled{opacity:.35;cursor:default}.iconbtn--danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.iconbtn--grid{padding:7px;flex:none}.size__row{display:flex;align-items:stretch;gap:8px}.size__row .segmented{flex:1}.size__row .iconbtn--grid{min-height:var(--tap)}.placegrid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;width:100%;height:100%;aspect-ratio:1}.placegrid--mini{display:grid;width:26px;height:26px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden;pointer-events:none}.placegrid--mini .placegrid__cell{border:none;border-radius:0}.placegrid__cell{display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--line);background:var(--chalk);border-radius:3px;cursor:pointer}.placegrid__cell:disabled{cursor:default}.placegrid__dot{width:32%;height:32%;border-radius:50%;background:transparent}.placegrid__cell--on{background:var(--turf);border-color:var(--turf)}.placegrid__cell--on .placegrid__dot{background:var(--sodium)}.placement__trigger{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;cursor:pointer;min-height:var(--tap)}.placement__trigger .placegrid{width:34px;height:34px;flex:none}.placement__caption{font-family:var(--font-body);font-size:.95rem;color:var(--ink);text-transform:capitalize}.placemodal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--page-pad);background:color-mix(in srgb,var(--night) 78%,transparent)}.placemodal__card{width:100%;max-width:360px;background:#fff;border-radius:var(--radius);border-top:6px solid var(--sodium);padding:24px 22px;text-align:center}.placemodal__title{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:1.5rem;line-height:.95;color:var(--turf);margin:0 0 18px}.placemodal__grid{width:220px;height:220px;margin:0 auto 18px}.placemodal__grid .placegrid{gap:8px}.placemodal__grid .placegrid__cell{border-width:1.5px;border-radius:var(--radius)}.section__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.control{display:flex;flex-direction:column;min-width:0}.control>span{font-size:.8rem;color:var(--ink-soft);margin-bottom:6px}input[type=text],input[type=number],input[type=email]{font-family:var(--font-body);font-size:1.05rem;min-height:var(--tap);padding:0 14px;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);width:100%;min-width:0}input:focus-visible,.iconbtn:focus-visible,button:focus-visible,.upload:focus-within{outline:3px solid var(--sodium);outline-offset:2px}.countin,.size{grid-column:1 / -1}.segmented{display:flex;gap:8px}.segmented button{flex:1;min-height:var(--tap);border:1.5px solid var(--line);background:#fff;border-radius:var(--radius);font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--ink-soft);cursor:pointer}.segmented button[aria-pressed=true],.segmented button[aria-checked=true]{background:var(--turf);border-color:var(--turf);color:#fff}.countin__toggle{flex:0 0 var(--tap);min-height:var(--tap);border:1.5px solid var(--line);background:#fff;border-radius:var(--radius);font-family:var(--font-display);font-weight:700;font-size:1.5rem;line-height:1;color:var(--ink-soft);cursor:pointer}.countin__toggle[aria-checked=true]{background:var(--turf);border-color:var(--turf);color:#fff}.countin__customrow{display:flex;align-items:center;gap:10px;margin-top:8px}.countin__customrow>span{font-family:var(--font-display);font-weight:700;color:var(--ink-soft)}.countin__custom{flex:1;min-width:0;min-height:var(--tap);padding:0 14px;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--ink);text-align:center}.section__summary{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);font-family:var(--font-display);font-weight:600;font-size:1.05rem;letter-spacing:.01em;color:var(--ink)}.section__summary .accent{color:var(--sodium-deep)}.section__summary--warn{color:var(--danger);font-family:var(--font-body);font-weight:500;font-size:.9rem}.add-section{width:100%;min-height:var(--tap);border:2px dashed var(--turf);background:transparent;border-radius:var(--radius);color:var(--turf);font-family:var(--font-display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.95rem;cursor:pointer;margin-bottom:32px}.block{margin-bottom:28px}.upload{display:flex;align-items:center;gap:14px;min-height:72px;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;padding:14px;cursor:pointer}.upload input[type=file]{position:absolute;width:1px;height:1px;opacity:0}.upload__icon{font-family:var(--font-display);font-weight:800;font-size:1.6rem;color:var(--turf);line-height:1}.upload__text strong{display:block;font-size:1rem}.upload__text span{font-size:.85rem;color:var(--ink-soft)}.submit{width:100%;min-height:60px;border:none;border-radius:var(--radius);background:var(--sodium);color:var(--night);font-family:var(--font-display);font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:1.25rem;cursor:pointer}.submit:disabled{background:var(--line);color:var(--ink-soft);cursor:default}.error{color:var(--danger);font-size:.86rem;margin:6px 0 0;font-weight:500}.error--field{font-size:.8rem;margin-top:5px}.form-error{background:color-mix(in srgb,var(--danger) 8%,#fff);border:1.5px solid color-mix(in srgb,var(--danger) 40%,var(--line));border-radius:var(--radius);padding:12px 14px;color:var(--danger);font-size:.92rem;margin-bottom:20px}.page--center{min-height:100dvh;display:flex;flex-direction:column;justify-content:center}.panel{background:var(--turf);color:var(--chalk);border-radius:var(--radius);padding:28px 22px;text-align:center}.panel h2{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:2rem;margin:0 0 10px;line-height:.95}.panel p{color:color-mix(in srgb,var(--chalk) 82%,transparent);margin:0 0 8px}.panel .download{display:inline-block;margin-top:18px;min-height:56px;line-height:56px;padding:0 26px;background:var(--sodium);color:var(--night);border-radius:var(--radius);font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.06em;text-decoration:none}.panel .working{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--sodium);margin-top:16px}.linkbtn{background:none;border:none;color:var(--chalk);text-decoration:underline;font-size:.9rem;cursor:pointer;margin-top:20px}.uploader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--page-pad);background:color-mix(in srgb,var(--night) 78%,transparent)}.uploader__card{width:100%;max-width:420px;background:var(--turf);color:var(--chalk);border-radius:var(--radius);border-top:6px solid var(--sodium);padding:28px 22px;text-align:center}.uploader__card .eyebrow{color:var(--sodium)}.uploader__title{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:1.8rem;line-height:.95;margin:0 0 10px}.uploader__note{color:color-mix(in srgb,var(--chalk) 82%,transparent);font-size:.95rem;margin:0 0 22px}.uploader__bar{height:14px;border-radius:999px;background:var(--turf-deep);overflow:hidden}.uploader__fill{display:block;height:100%;background:var(--sodium);border-radius:999px}.uploader__pct{font-family:var(--font-display);font-weight:800;letter-spacing:.06em;font-size:1.9rem;color:var(--sodium);margin:14px 0 0}@media(prefers-reduced-motion:no-preference){.uploader{animation:fade .2s ease both}.uploader__fill{transition:width .2s ease}@keyframes fade{0%{opacity:0}}}@media(min-width:520px){.section__grid{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:no-preference){.section,.panel{animation:rise .28s ease both}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}}
