/* V2: a character head with a reel-mouth and a collar-mounted photo outlet. */
.machine-shell.character-machine{max-width:700px}
.character-machine .machine-cabinet{aspect-ratio:1.3;filter:none}
.character-machine .cloud-chassis{clip-path:none;object-fit:fill;filter:none;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent),linear-gradient(transparent,#000 3%,#000 97%,transparent);mask-composite:intersect}
.character-machine .machine-topline{top:9%;left:30%;right:30%;transform:rotate(-4deg)}
.character-machine .machine-topline>span:first-child{font-size:clamp(15px,3cqw,20px);color:#436e76}.character-machine .machine-topline>span:nth-child(2){font-size:17px}
.character-machine .machine-controls{top:62%;left:25%;right:24%;--reel-height:max(39px,9cqw)}
.character-machine .reel-bank{padding:5px;gap:4px;border:2px solid #a84d36;border-bottom:4px solid #763b32;border-radius:16px;background:linear-gradient(135deg,#e6a078,#ffd7a4 45%,#c46b4c);box-shadow:inset 0 2px 1px #ffeac4,0 3px 4px #9b3d3433}
.character-machine .reel-window{border-color:#b77c5b;background:linear-gradient(#ead9be,#fffbeb 26%,#fffbeb 70%,#ecd9b8);border-radius:9px}.character-machine .reel-symbol{font-size:clamp(25px,5.8cqw,40px)}
.character-machine .machine-marquee{top:82%;left:28%;right:27%;color:#684922;font-size:11px;line-height:1.35}
.character-machine .machine-ready-dot{background:#b86731}.character-machine .machine-round{top:92%;left:18%;right:18%}.character-machine .wonder-charge p{font-size:12px}.character-machine .hold-pair{top:25px;left:auto;right:-33%;min-height:36px}
.character-machine .printer-panel{margin-top:0}.character-machine .printer-mouth{max-width:60%;width:265px;border-color:#a26b37;border-top-color:#533a29;box-shadow:inset 0 3px 5px #06252b,0 2px 0 #f5d58b}
.character-machine .machine-lever{top:48%;bottom:24%;right:-4%}
@media(max-width:480px){.character-machine .machine-controls{top:61%;left:23%;right:22%;--reel-height:max(35px,10cqw)}.character-machine .reel-bank{padding:3px;gap:3px;border-radius:10px}.character-machine .reel-window{border-radius:6px}.character-machine .reel-symbol{font-size:26px}.character-machine .machine-topline{top:8%;left:26%;right:25%}.character-machine .machine-marquee{top:83%;left:22%;right:22%;font-size:10px}.character-machine .machine-round{top:93%;left:8%;right:8%}.character-machine .wonder-charge p{font-size:11px}.character-machine .machine-round:has(.hold-pair:not([hidden])){top:89%}.character-machine .hold-pair{position:static;min-height:32px}.character-machine .printer-panel{margin-top:2%}.character-machine .machine-lever{right:-8%;top:48%;bottom:20%}}
/* Fit real rollers precisely inside the generated character's open mouth. */
.character-machine .machine-topline{display:none}
.character-machine .machine-controls{top:70.1%;left:32.7%;right:32.3%;--reel-height:6.7cqw}
.character-machine .reel-bank{padding:3px;gap:3px;border:1px solid #b75e3e;border-bottom:2px solid #995138;border-radius:11px;background:linear-gradient(#c97451,#f0bb86);box-shadow:inset 0 2px 3px #73382588,0 1px 0 #ffdaad}
.character-machine .reel-window{border:1px solid #b58962;border-radius:7px;box-shadow:inset 0 5px 9px #6c54393a,inset 0 -4px 7px #6c54392a}
.character-machine .reel-symbol{font-size:clamp(18px,4.8cqw,33px)}
.character-machine .printer-panel{margin-top:-3.7%}.character-machine .printer-mouth{width:240px;max-width:42%}
.character-machine .machine-lever{top:52%;bottom:23%;right:-4%}
.character-machine-feedback{margin:24px 0 16px;max-width:330px}
.character-machine-feedback .machine-marquee{background:none;border:0;outline:0;box-shadow:none;text-align:left;justify-content:flex-start;color:#8e5032;font-size:13px;margin:0;padding:0;min-height:0;letter-spacing:.03em;line-height:1.5}
.character-machine-feedback .machine-round{margin:12px 0 0;padding:0;border:0;background:none;box-shadow:none;min-height:0;gap:10px;align-items:center}
.character-machine-feedback .wonder-charge{flex:1 1 100%;gap:5px}.character-machine-feedback .wonder-charge p{font-size:14px}.character-machine-feedback .charge-step{font-size:12px;color:#3e666b;background:#f4eddc}.character-machine-feedback .charge-step.charged{background:#b9633e;color:#fff7e4}
.character-machine-feedback .hold-pair{position:static;font-size:14px;min-height:44px;width:auto}
@media(max-width:480px){.character-machine .machine-controls{top:70.1%;left:32.7%;right:32.3%;--reel-height:6.7cqw}.character-machine .reel-bank{padding:2px;gap:2px;border-radius:7px}.character-machine .reel-window{border-radius:4px}.character-machine .reel-symbol{font-size:clamp(15px,4.8cqw,23px)}.character-machine .printer-panel{margin-top:-3%}.character-machine .printer-mouth{max-width:52%}.character-machine .machine-lever{top:53%;bottom:20%;right:-8%}.character-machine-feedback{margin:18px 0 10px}}
.character-machine .instant-photo{width:min(224px,50%);flex-basis:min(224px,50%);min-height:0}
@media(max-width:480px){.character-machine .instant-photo{padding:7px 7px 12px}.character-machine .instant-caption{font-size:14px;margin:8px 0}.character-machine .instant-collect{font-size:8px}.character-machine .instant-image small{font-size:6px;top:6px;left:6px}.character-machine #instant-symbol{font-size:22px;top:12px}.character-machine .printer-output{height:265px}}
/* A larger character, with outcome expressions and a brief paper-confetti burst. */
.machine-shell.character-machine{max-width:820px}
@media(min-width:1001px){.pocket-arcade{grid-template-columns:.64fr 1.5fr;gap:35px}.arcade-intro h2{font-size:clamp(38px,4.2vw,60px)}}
.character-machine .machine-expression{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;z-index:1;mask-image:radial-gradient(ellipse 28% 18% at 50% 64%,#000 73%,transparent 100%)}
.character-machine .machine-expression[hidden]{display:none!important}
.character-machine .machine-confetti{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:10}
.machine-confetti-piece{position:absolute;left:var(--start-x);top:var(--start-y);width:9px;height:15px;border-radius:1px;background:var(--confetti-color);opacity:0;animation:machine-paper-party 3000ms var(--delay) cubic-bezier(.15,.5,.3,1) both;will-change:transform,opacity}
.machine-confetti-piece:nth-child(3n){width:7px;height:7px;border-radius:50%}
.character-machine .machine-confetti-sticker{width:clamp(44px,9cqw,78px);height:clamp(44px,9cqw,78px);object-fit:contain;background:none;border-radius:0;filter:drop-shadow(0 3px 2px #184b5933);animation-duration:3400ms}
@keyframes machine-paper-party{0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(0deg)}12%{opacity:1}36%{opacity:1;transform:translate(calc(-50% + var(--travel-x)*.65),calc(-50% + var(--lift))) scale(1.08) rotate(calc(var(--spin)*.4))}78%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--travel-x)),calc(-50% + var(--travel-y))) scale(.85) rotate(var(--spin))}}
@media(max-width:480px){.machine-confetti-piece{width:6px;height:10px}.character-machine .machine-confetti-sticker{width:clamp(36px,10cqw,48px);height:clamp(36px,10cqw,48px)}}
@media(prefers-reduced-motion:reduce){.machine-confetti-piece{display:none;animation:none}}
