:root{--blush:#eed9da;--blush-deep:#e5c7c9;--paper:#fff9f8;--ink:#612983;--ink-soft:#7f55a0;--mint:#8ecab2;--mint-deep:#5fae90;--pink:#d63f6e;--hot:#ff6cb5;--petal:#f49dc3;--lavender:#b07fdb;--white:#fff;--line:3px;--radius:22px;--shadow:6px 6px 0 var(--mint);--shadow-sm:3px 4px 0 var(--mint);--font-display:"Fredoka", "Nunito", system-ui, sans-serif;--font-body:"Nunito", system-ui, sans-serif;--font-script:"Sacramento", "Segoe Script", cursive;--font-serif:"Merriweather", Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--blush);min-height:100dvh;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.55;overflow-x:hidden}button,input,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}:focus-visible{outline:3px solid var(--hot);outline-offset:3px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:820px;margin:0 auto;padding:12px 16px 120px;position:relative}.backdrop{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.backdrop .sparkle{opacity:.55;position:absolute}.app>*{z-index:1;position:relative}.site-header{justify-content:space-between;align-items:center;gap:12px;padding:6px 2px 10px;display:flex}.logo{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;text-shadow:-2px 2px 0 var(--mint);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:1.05rem;font-weight:700;display:flex}.logo svg{width:30px;height:30px}.handle{color:var(--ink-soft);font-size:.85rem;font-weight:700;text-decoration:none}.site-footer{text-align:center;color:var(--ink-soft);margin-top:28px;font-size:.85rem}.site-footer a{color:inherit;font-weight:700}.link-button{text-underline-offset:3px;cursor:pointer;color:var(--ink-soft);background:0 0;border:0;padding:4px;font-size:.85rem;text-decoration:underline}.pipe{margin:4px 0 18px;position:relative}.pipe-stations{grid-template-columns:repeat(9,1fr);margin:0;padding:0;list-style:none;display:grid;position:relative}.pipe-track{border:var(--line) solid var(--ink);background:var(--paper);border-radius:99px;height:14px;position:absolute;top:9px;left:5.55556%;right:5.55556%;overflow:hidden}.pipe-fill{background:repeating-linear-gradient(-45deg, var(--mint) 0 8px, var(--mint-deep) 8px 14px);background-size:200% 100%;height:100%;transition:width .6s cubic-bezier(.5,1.6,.4,1);animation:1.2s linear infinite pipe-flow}@keyframes pipe-flow{to{background-position:-40px 0}}.bulb{cursor:pointer;width:100%;font-family:var(--font-display);letter-spacing:.02em;color:var(--ink-soft);background:0 0;border:0;justify-items:center;gap:4px;padding:0;font-size:.72rem;font-weight:600;display:grid}.bulb:disabled{cursor:default}.bulb-dot{border:var(--line) solid var(--ink);background:var(--paper);border-radius:50%;place-items:center;width:32px;height:32px;transition:background .3s,transform .3s;display:grid}.bulb-dot svg{width:16px;height:16px}.bulb.done .bulb-dot{background:var(--mint)}.bulb.current .bulb-dot{background:var(--hot);animation:1.6s ease-in-out infinite glow;transform:scale(1.15)}.bulb.current{color:var(--ink)}@keyframes glow{50%{box-shadow:0 0 0 6px #ff6cb54d}}.bulb-label{display:none}.pipe-now{text-align:center;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;margin-top:8px;font-size:.85rem;font-weight:600}@media (width>=680px){.bulb-label{display:block}.pipe-now{display:none}}@media (width<=420px){.bulb-dot{width:26px;height:26px}.pipe-track{height:12px;top:7px}}.panel{background:var(--paper);border:var(--line) solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 20px 24px;position:relative}.panel:before{content:"";pointer-events:none;background:radial-gradient(circle, var(--ink) 2.5px, transparent 3px) top left / 10px 10px no-repeat, radial-gradient(circle, var(--ink) 2.5px, transparent 3px) top right / 10px 10px no-repeat, radial-gradient(circle, var(--ink) 2.5px, transparent 3px) bottom left / 10px 10px no-repeat, radial-gradient(circle, var(--ink) 2.5px, transparent 3px) bottom right / 10px 10px no-repeat;opacity:.5;position:absolute;inset:9px}@media (width>=680px){.panel{padding:36px 44px 32px}}.step-head{text-align:center;margin-bottom:18px}.kicker{font-family:var(--font-script);color:var(--pink);-webkit-text-stroke:.4px var(--pink);font-size:2.1rem;line-height:1;display:block}.title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;text-shadow:-3px 3px 0 var(--mint);text-wrap:balance;margin:4px 0 0;font-size:clamp(1.9rem,7vw,2.8rem);font-weight:700;line-height:1.05}.lede{max-width:34em;margin:12px auto 0}.prose p{margin:0 0 12px}.serif{font-family:var(--font-serif);font-weight:700;line-height:1.35}.art{background:var(--blush);border:var(--line) solid var(--ink);width:min(100%,280px);height:auto;box-shadow:var(--shadow-sm);border-radius:20px;margin:0 auto;padding:14px}.btn{border:var(--line) solid var(--ink);background:var(--ink);min-height:52px;color:var(--white);font-family:var(--font-display);letter-spacing:.02em;cursor:pointer;box-shadow:4px 5px 0 var(--mint);-webkit-tap-highlight-color:transparent;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:.6em 1.4em;font-size:1.1rem;font-weight:600;text-decoration:none;transition:transform .12s,box-shadow .12s,background .2s;display:inline-flex}.btn:hover{background:#4f1f6d}.btn:active:not(:disabled){box-shadow:1px 1px 0 var(--mint);transform:translate(3px,4px)}.btn:disabled{cursor:not-allowed;background:var(--blush-deep);color:var(--ink-soft);border-color:var(--ink-soft);box-shadow:none}.btn-pink{background:var(--pink)}.btn-pink:hover{background:#c22f5d}.btn-ghost{background:var(--paper);color:var(--ink);box-shadow:none}.btn-ghost:hover{background:var(--white)}.btn-small{min-height:40px;padding:.3em 1em;font-size:.95rem}.btn svg{flex:none;width:20px;height:20px}.controls{z-index:5;padding:14px 20px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to bottom, #fff9f800, var(--paper) 30%);border-radius:0 0 var(--radius) var(--radius);justify-content:space-between;align-items:center;gap:12px;margin:24px -20px -24px;display:flex;position:sticky;bottom:0}.controls .btn:last-child{margin-left:auto}.controls .hint{color:var(--ink-soft);font-size:.85rem;font-weight:700}@media (width<=520px){.controls .btn{min-height:48px;padding:.4em 1em;font-size:1rem}.controls .btn-back{flex:none;width:48px;padding:0}.back-label{display:none}}@media (width>=680px){.controls{background:0 0;margin:32px 0 0;padding:0;position:static}}.field{gap:6px;margin-bottom:16px;display:grid}.field label,.label{font-family:var(--font-display);font-size:1.02rem;font-weight:600}.field .serif{font-family:var(--font-serif);font-weight:700;line-height:1.4}.field .optional{color:var(--ink-soft);font-size:.9rem;font-weight:400}.input,.textarea{border:var(--line) solid var(--ink);background:var(--white);border-radius:16px;width:100%;padding:12px 14px;font-size:1rem;transition:box-shadow .15s}.input:focus,.textarea:focus{box-shadow:var(--shadow-sm);outline:none}.textarea{resize:vertical;min-height:110px;line-height:1.5}.input::placeholder,.textarea::placeholder{color:#a487b8}.consent{color:var(--ink-soft);margin:4px 0 18px;font-size:.85rem;line-height:1.5}.example-toggle{color:var(--pink);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;justify-self:start;padding:2px 0;font-size:.9rem;font-weight:800;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.example{background:var(--blush);border-radius:12px;margin:0;padding:10px 12px;font-size:.92rem}.check{cursor:pointer;border:var(--line) dashed var(--ink-soft);border-radius:16px;align-items:flex-start;gap:12px;padding:12px 14px;font-weight:700;display:flex}.check input{appearance:none;border:var(--line) solid var(--ink);background:var(--white);cursor:pointer;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;margin:0;display:grid}.check input:checked{background:var(--mint)}.check input:checked:after{content:"";border:solid var(--ink);border-width:0 3.5px 3.5px 0;width:8px;height:14px;transform:translateY(-2px)rotate(45deg)}.check:has(input:checked){border-style:solid;border-color:var(--ink);background:#8ecab233}.chips{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.chip{border:2.5px solid var(--ink);background:var(--white);min-height:42px;font-family:var(--font-display);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;gap:6px;padding:6px 16px;font-size:1rem;font-weight:500;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex}.chip:hover{transform:translateY(-1px)}.chip[aria-pressed=true]{background:var(--mint);box-shadow:2px 3px 0 var(--ink)}.chip svg{width:14px;height:14px}.chip.custom{border-style:dashed}.chip[aria-pressed=true].custom{border-style:solid}.add-row{gap:8px;margin-top:6px;display:flex}.add-row .input{flex:1;min-width:0}.counter{text-align:center;font-family:var(--font-display);margin:18px 0 6px;font-weight:600}.counter strong{border:var(--line) solid var(--ink);background:var(--petal);border-radius:99px;place-items:center;min-width:34px;height:34px;margin-right:6px;padding:0 8px;display:inline-grid}.formula{font-family:var(--font-display);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:10px 0;font-weight:600;display:flex}.formula .node{border:2.5px solid var(--ink);background:var(--mint);border-radius:10px;padding:4px 12px}.formula .node.alt{background:var(--petal)}.formula .arrow{color:var(--ink);display:grid}.formula .arrow svg{width:22px;height:22px}@media (width<=560px){.formula{flex-direction:column;gap:2px}.formula .node{text-align:center;min-width:150px}.formula .arrow{transform:rotate(90deg)}}.flow{justify-items:stretch;gap:4px;margin:0;padding:0;list-style:none;display:grid}.flow-node{border:var(--line) solid var(--ink);background:var(--mint);box-shadow:3px 3px 0 var(--ink);border-radius:14px;padding:10px 14px;position:relative}.flow-node.boundary{background:var(--petal)}.flow-node.request{background:var(--white);box-shadow:none;border-style:dashed}.flow-node.action{background:var(--lavender)}.flow-node.empty{border-style:dashed;border-color:var(--ink-soft);box-shadow:none;color:var(--ink-soft);background:0 0}.flow-node .tag{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;font-weight:700;display:block}.flow-node .text{overflow-wrap:break-word;font-weight:700;line-height:1.35;display:block}.flow-arrow{place-items:center;height:22px;display:grid}.flow-arrow svg{width:18px;height:22px}.flow-loop{font-family:var(--font-display);justify-content:center;align-items:center;gap:8px;padding:6px 12px;font-size:.95rem;font-weight:600;display:flex}.flow-loop svg{width:26px;height:26px;animation:6s linear infinite spin-slow}@keyframes spin-slow{to{transform:rotate(360deg)}}.flow-box{background:var(--blush);border-radius:18px;margin:22px 0 6px;padding:16px}.flow-box .flow{max-width:480px;margin:0 auto}.flow-box h3{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;text-align:center;margin:0 0 10px;font-size:.85rem}.umbrellas{gap:22px;margin-top:8px;display:grid}@media (width>=680px){.umbrellas{grid-template-columns:1fr 1fr}}.umbrella{justify-items:center;display:grid}.umbrella-art{width:min(100%,300px);position:relative}.umbrella-art svg{width:100%;height:auto;overflow:visible}.umbrella-name{justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:22% 10% auto}.umbrella-name span{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;background:var(--paper);border:2.5px solid var(--ink);text-overflow:ellipsis;white-space:nowrap;border-radius:10px;max-width:100%;padding:0 10px;font-size:1.35rem;font-weight:700;overflow:hidden}.icon-button{border:2.5px solid var(--ink);background:var(--paper);cursor:pointer;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid}.icon-button svg{width:16px;height:16px}.rename{gap:8px;width:min(100%,300px);margin-top:6px;display:grid}.rename .chips{justify-content:flex-start}.rename .chip{min-height:34px;padding:3px 12px;font-size:.9rem}.drops{border:var(--line) dashed transparent;border-radius:18px;width:100%;min-height:96px;margin-top:-6px;padding:14px 10px;transition:border-color .2s,background .2s}.drops.dragging{border-color:var(--ink-soft)}.drops.over{border-color:var(--ink);background:#8ecab240}.drops .chip{touch-action:manipulation}.drops .empty{text-align:center;color:var(--ink-soft);padding:18px 0;font-size:.9rem;font-weight:700}.drag-overlay{box-shadow:4px 6px 0 var(--ink);cursor:grabbing;transform:rotate(-4deg)}.locked-note{font-family:var(--font-display);justify-content:center;align-items:center;gap:8px;font-weight:600;display:flex}.segments{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:18px;display:flex}.segment{border:2.5px solid var(--ink);background:var(--white);min-height:44px;font-family:var(--font-display);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px 18px;font-size:1rem;font-weight:600;display:inline-flex}.segment[aria-pressed=true],.segment[aria-selected=true]{background:var(--ink);color:var(--white);box-shadow:3px 3px 0 var(--mint)}.badge{font-family:var(--font-body);background:var(--hot);color:var(--ink);border:2px solid var(--ink);border-radius:99px;padding:1px 8px;font-size:.72rem;font-weight:800}.under{flex-wrap:wrap;justify-content:center;gap:6px;margin:-6px 0 18px;display:flex}.mini-chip{border:2px solid var(--ink-soft);color:var(--ink-soft);border-radius:99px;padding:1px 10px;font-size:.8rem;font-weight:700}.rating-block{margin-bottom:26px}.rating-block h3{text-align:center;margin:0 0 12px;font-size:1.2rem}.faces{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.face{border:2.5px solid var(--ink);background:var(--white);cursor:pointer;font-family:var(--font-display);border-radius:18px;justify-items:center;gap:6px;padding:12px 4px 10px;font-size:.95rem;font-weight:600;transition:transform .15s,background .2s,box-shadow .2s;display:grid}.face svg{width:min(72px,18vw);height:auto}.face:hover{transform:translateY(-2px)}.face[aria-checked=true]{background:var(--mint);box-shadow:3px 4px 0 var(--ink)}.face[aria-checked=true][data-id=needs-work]{background:var(--petal)}.face[aria-checked=true][data-id=killing-it]{background:var(--lavender)}.modal-scrim{z-index:50;background:#61298373;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{text-align:center;width:min(100%,440px);max-height:calc(100dvh - 32px);overflow:auto}.warning-wrap{transform-origin:50% 90%;width:84px;margin:0 auto 8px}.warning-sign{width:100%;display:block}.machine-stage{justify-items:center;margin-top:6px;display:grid}.machine{width:100%;height:auto;display:block;overflow:visible}.machine-wrap{width:min(100%,420px);position:relative}@media (width<=520px){.machine-wrap{width:calc(100% + 16px);margin:0 -8px}}.machine .lever{transition:transform .35s cubic-bezier(.5,1.8,.5,1)}.machine.running .lever{transform:rotate(-45deg)}.machine.ready .lever{animation:1.4s ease-in-out infinite nudge}@keyframes nudge{0%,60%,to{transform:rotate(0)}70%{transform:rotate(-14deg)}80%{transform:rotate(4deg)}90%{transform:rotate(-6deg)}}.machine.stuffing .hopper{animation:.3s ease-in-out infinite gulp}@keyframes gulp{0%,to{transform:scale(1)}40%{transform:scale(1.12,.84)}70%{transform:scale(.95,1.08)}}.pile{z-index:2;position:relative}.pile-inner{flex-wrap:wrap;justify-content:center;gap:8px 6px;padding:0 4px 14px;display:flex}.pile-label{text-align:center;font-family:var(--font-script);color:var(--pink);margin:0 0 6px;font-size:1.9rem;line-height:1}.pile-item{display:inline-block}.pile-item .chip{cursor:default;min-height:34px;transform:rotate(var(--tilt));animation:bob 2.6s ease-in-out var(--delay) infinite;padding:3px 12px;font-size:.92rem}.pile-item .chip:hover{transform:rotate(var(--tilt))}.pile-item.star .chip{background:var(--mint);min-height:42px;box-shadow:3px 3px 0 var(--ink);padding:5px 18px;font-size:1.1rem;font-weight:600}@keyframes bob{50%{transform:rotate(var(--tilt)) translateY(-4px)}}.machine.running .gear-a{animation:1.1s linear infinite spin}.machine.running .gear-b{animation:.75s linear infinite reverse spin}.machine.running .needle{animation:.5s ease-in-out infinite alternate wobble}.machine.running .body-group{animation:.18s linear infinite rattle}.machine.running .light{animation:.4s step-end infinite blink}.machine.running .light:nth-of-type(2){animation-delay:.13s}.machine.running .light:nth-of-type(3){animation-delay:.26s}.machine .steam{opacity:0}.machine.running .steam{animation:1.2s ease-out infinite puff}.machine.running .steam.two{animation-delay:.6s}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wobble{0%{transform:rotate(-50deg)}to{transform:rotate(55deg)}}@keyframes rattle{0%,to{transform:translate(0)}25%{transform:translate(-1px,1px)rotate(-.4deg)}75%{transform:translate(1px,-1px)rotate(.4deg)}}@keyframes blink{50%{fill:var(--hot)}}@keyframes puff{0%{opacity:0;transform:translateY(8px)scale(.5)}30%{opacity:1}to{opacity:0;transform:translate(10px,-26px)scale(1.15)}}.machine-status{min-height:1.6em;font-family:var(--font-display);text-align:center;margin:6px 0 0;font-weight:600}.ticket{background:var(--white);border:var(--line) solid var(--ink);box-shadow:5px 6px 0 var(--mint);--tooth:10px;-webkit-mask:linear-gradient(#000 0 0) top / 100% calc(100% - var(--tooth)) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / calc(var(--tooth) * 2) var(--tooth) repeat-x;mask:linear-gradient(#000 0 0) top / 100% calc(100% - var(--tooth)) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / calc(var(--tooth) * 2) var(--tooth) repeat-x;border-top:0;padding:14px 8px 22px;position:relative}.ticket h3{text-align:center;font-family:var(--font-script);color:var(--pink);margin:0 0 10px;font-size:2.1rem;font-weight:400;line-height:1}.ticket .flow-loop{flex-direction:column;gap:2px;padding:4px 0 0;font-size:.95rem}.ticket .flow-node{padding:8px;font-size:1rem}@media (width>=520px){.ticket{padding:18px 16px 24px}}.nowrap{white-space:nowrap}.flow-loop{text-align:center}.cheer{text-align:center;font-family:var(--font-display);text-shadow:-2px 2px 0 var(--mint);text-wrap:balance;margin:6px 0 0;font-size:1.3rem;font-weight:700;line-height:1.25}.result-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:20px;display:flex}.saved-list{gap:10px;margin-top:28px;display:grid}.saved-list h3{text-align:center;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.9rem}.saved{border:2.5px solid var(--ink);background:var(--white);border-radius:14px;padding:10px 14px;font-size:.95rem}.saved strong{font-family:var(--font-display)}.notice{text-align:center;color:var(--pink);margin:10px 0 0;font-weight:700}.hero{text-align:center}.hero .kicker{font-size:2.6rem}.hero .title{font-size:clamp(2.4rem,11vw,4.2rem)}.hero-machine{width:min(70%,260px);margin:6px auto 4px}.bullets{text-align:left;gap:8px;max-width:26em;margin:16px auto 22px;padding:0;list-style:none;display:grid}.bullets li{align-items:flex-start;gap:10px;font-weight:700;display:flex}.bullets svg{flex:none;width:20px;height:20px;margin-top:3px}.signup{text-align:left;max-width:420px;margin:0 auto}.signup .btn{width:100%}.honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form-error{color:var(--pink);margin:-6px 0 12px;font-size:.9rem;font-weight:800}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
