
:root{font-family:ui-rounded,"Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;color:#26384a;background:#f8f8f1;--ink:#26384a;--muted:#82909a;--line:#e6e9e6;--lime:#d0ed75;--orange:#ff9b57;--primary:#2d6058;--cream:#fff6dc;--juice:#ffae57;--pressure:0;--fruit-squeeze:0;--lift:0px;--meter-target:70%;--meter-width:18%;--fill:14%;--accent:#ff9d62;--stage:#fff0d7}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{overflow-x:hidden;background:radial-gradient(ellipse at 15% 0,#fff1ddaa,transparent 42%),radial-gradient(ellipse at 100% 100%,#eaf3e0,transparent 40%),#f8f8f1}button{font:inherit;cursor:pointer}button:focus-visible,.press-stage:focus-visible{outline:3px solid #327e6e;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55}[hidden]{display:none!important}.shell{max-width:1140px;margin:0 auto;padding:24px 28px 32px;min-height:100dvh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.brand{display:flex;align-items:center;gap:12px}.brand-icon{width:46px;height:46px;background:#fcf0ca;border:1px solid #f4dda5;display:grid;place-items:center;border-radius:15px;font-size:29px;transform:rotate(-5deg);box-shadow:0 4px 0 #e6ce9a}.brand-overline{font-size:10px;letter-spacing:.19em;font-weight:950;color:#658979}.brand-title{font-size:clamp(19px,2.1vw,25px);font-weight:1000;letter-spacing:-.065em;line-height:1.25}.tagbar{display:flex;gap:8px;align-items:center}.pill-btn{border:1px solid #e2e6df;background:#fffefa;color:#586a6b;border-radius:999px;font-size:12px;font-weight:900;min-height:36px;padding:7px 14px;box-shadow:0 3px 9px #29354308}.session{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:21px;align-items:start}.gamecol{min-width:0}.stats{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:11px}.stat{border:1px solid var(--line);background:#fffefc;box-shadow:0 5px 18px #223c3010;border-radius:19px;padding:13px 17px;min-width:0}.stat-label{display:flex;align-items:center;gap:6px;color:#85928f;font-size:11px;font-weight:950;letter-spacing:.06em}.stat-value{font-size:clamp(23px,3vw,31px);font-weight:1000;letter-spacing:-.06em;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.35}.stat-value span{font-size:13px;margin-left:4px;letter-spacing:0}.stat:nth-child(2) .stat-value{color:#ff8e4f}.stat:nth-child(3) .stat-value{color:#3e8d73}.timer-track{margin:13px 1px 16px;background:#e6eae4;height:7px;border-radius:100px;overflow:hidden}.timer-track div{height:100%;background:linear-gradient(90deg,#a1d9a7,#bdeab6,#e1e97b);width:100%;border-radius:100px;transition:width .08s linear}.press-stage{position:relative;isolation:isolate;touch-action:none;-webkit-user-select:none;user-select:none;height:413px;overflow:hidden;border-radius:28px;background:radial-gradient(circle at 50% 27%,#fffef3 5%,var(--stage) 75%);border:1px solid #f0e4cf;box-shadow:0 10px 26px #61513c15;cursor:pointer;transition:background .4s,border-color .4s}.press-stage:before{content:"";position:absolute;inset:0;opacity:.5;background-image:radial-gradient(#deb98b 1.2px,transparent 1.2px);background-size:25px 25px;mask-image:linear-gradient(to bottom,#0004,transparent 65%);pointer-events:none}.stage-head{position:absolute;left:21px;right:21px;top:17px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;z-index:8;pointer-events:none}.stage-label{font-size:10px;letter-spacing:.14em;font-weight:1000;color:#91775e}.stage-name{font-size:19px;font-weight:1000;letter-spacing:-.06em;line-height:1.25;margin-top:2px}.stage-index{white-space:nowrap;background:#fffdf2c9;border:1px solid #e9dfc8;color:#947a60;font-size:11px;font-weight:1000;border-radius:999px;padding:7px 10px}.stage-bg-type{position:absolute;font-weight:1000;font-size:110px;color:#cead8430;letter-spacing:-.13em;bottom:10px;right:-10px;transform:rotate(-14deg);pointer-events:none}.circle-deco{position:absolute;width:270px;height:270px;left:50%;top:71px;transform:translateX(-50%);border-radius:50%;border:2px dashed #e6c9a572;box-shadow:0 0 0 28px #ffffff31;pointer-events:none}.machine{position:absolute;inset:0;pointer-events:none;z-index:3}.machine-housing{position:absolute;top:64px;left:50%;transform:translateX(-50%);width:178px;height:47px;border-radius:18px 18px 12px 12px;background:linear-gradient(180deg,#e4eee5,#bfd6ce);box-shadow:inset 0 -7px #a0bfb7,0 4px 0 #8aa9a1;border:3px solid #6a978b;z-index:5;display:grid;place-items:center;color:#406a60;font-size:11px;font-weight:1000;letter-spacing:.14em}.machine-housing:before,.machine-housing:after{content:"";position:absolute;top:18px;width:7px;height:7px;border-radius:50%;background:#7ea79b}.machine-housing:before{left:12px}.machine-housing:after{right:12px}.rod{position:absolute;top:103px;left:50%;width:24px;height:calc(79px + var(--pressure) * 79px);transform:translateX(-50%);background:linear-gradient(90deg,#9db3b3,#edf6f0 35%,#8eb2a9);border:2px solid #7d9f9a;z-index:3;border-radius:5px}.press-plate{position:absolute;top:calc(171px + var(--pressure) * 79px);left:50%;transform:translateX(-50%);width:199px;height:29px;background:linear-gradient(180deg,#d1e8d7 5%,#8cbaa7);border:3px solid #63958a;border-radius:14px 14px 22px 22px;box-shadow:0 5px 0 #4c786c48;z-index:6}.item-illustration{position:absolute;left:50%;top:187px;transform:translateX(-50%) scaleX(calc(1 + var(--fruit-squeeze) * .18)) scaleY(calc(1 - var(--fruit-squeeze) * .42));transform-origin:50% 100%;width:176px;height:142px;display:grid;place-items:center;z-index:4;filter:drop-shadow(0 9px 4px #594d3b21)}.item-illustration svg{width:155px;height:145px;overflow:visible}.item-illustration .absurd{font-size:108px;line-height:1;filter:drop-shadow(0 4px #0002)}.platform{position:absolute;top:324px;left:50%;transform:translateX(-50%);width:234px;height:24px;border-radius:50%;background:linear-gradient(180deg,#bad4c9,#6c988d);border:3px solid #5e877e;z-index:5;box-shadow:0 10px 14px #725c3d28}.pipe{position:absolute;top:335px;left:calc(50% + 58px);height:42px;width:10px;border-radius:0 0 7px 7px;background:#8ba7a0;z-index:2;opacity:.9}.juice-stream{position:absolute;left:calc(50% + 60px);top:339px;height:54px;width:8px;border-radius:4px;background:var(--juice);z-index:6;transform-origin:top;opacity:0;filter:drop-shadow(0 0 7px var(--juice))}.juice-stream.run{animation:pour .65s ease-out}.cup{position:absolute;left:calc(50% + 64px);bottom:11px;transform:translateX(-50%) perspective(200px) rotateX(-3deg);height:72px;width:86px;z-index:7;clip-path:polygon(3% 0,97% 0,84% 100%,15% 100%);border-radius:5px;background:#ffffffe8;border:4px solid #96b9b2;box-shadow:inset 0 0 12px #fff}.cup-liquid{position:absolute;bottom:0;left:0;right:0;height:var(--fill);background:linear-gradient(180deg,#fff4a9,var(--juice));transition:height .22s}.cup-liquid:after{content:"";position:absolute;top:-6px;left:0;right:0;height:13px;background:#fffee9a0;border-radius:50%}.cup-mark{position:absolute;z-index:2;top:7px;left:0;right:0;text-align:center;letter-spacing:.13em;font-size:8px;color:#51877a;font-weight:1000}.countertop{position:absolute;bottom:0;width:100%;height:20px;background:#e9d3b9;border-top:3px solid #caaa87}.pressure-chip{position:absolute;top:80px;right:18px;text-align:right;z-index:9;font-weight:900;color:#a07f5e;pointer-events:none}.pressure-chip strong{display:block;color:#3d695e;font-size:26px;letter-spacing:-.08em;font-variant-numeric:tabular-nums}.pressure-chip small{font-size:10px;letter-spacing:.13em}.sparkle{position:absolute;pointer-events:none;z-index:9;font-size:26px;font-weight:1000;animation:floatText .8s ease-out forwards;text-shadow:0 3px 0 #fff;white-space:nowrap}.particle{position:absolute;pointer-events:none;z-index:9;border-radius:50%;animation:particle .85s cubic-bezier(.15,.8,.4,1) forwards}.stage-tip{position:absolute;left:17px;bottom:18px;z-index:9;border-radius:999px;padding:8px 12px;background:#fffdf6c7;color:#847361;font-size:11px;font-weight:950;pointer-events:none;box-shadow:0 4px 12px #ac916c16}.banner{position:absolute;z-index:15;left:50%;top:48%;width:max-content;max-width:90%;transform:translate(-50%,-50%) rotate(-5deg);font-weight:1000;font-size:clamp(23px,5vw,34px);letter-spacing:-.05em;border:4px solid #fff;padding:10px 23px;border-radius:16px;background:#ffcb70;color:#5b462d;box-shadow:0 9px 0 #aa8f6055;animation:bannerPop .8s both;pointer-events:none}.banner.good{background:#ddf3ad;color:#31564a}.banner.fail{background:#ffd0cd;color:#9a4b43}.stage-mad{position:absolute;inset:0;z-index:13;pointer-events:none;background:radial-gradient(circle at center,#ff6c714d,transparent 66%);animation:flash .4s ease-out forwards}.shake{animation:shake .26s ease-out}.control-card{margin-top:13px;padding:16px 18px 17px;background:#fffefa;border:1px solid var(--line);border-radius:22px;box-shadow:0 6px 18px #213c3020}.control-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:10px}.control-top strong{font-size:13px;font-weight:1000}.control-top span{color:#89918b;font-size:11px;font-weight:800}.gauge{position:relative;height:17px;background:#e9eeeb;border-radius:100px;overflow:visible;box-shadow:inset 0 2px 3px #14322f15}.gauge-inner{position:absolute;inset:0;overflow:hidden;border-radius:100px}.gauge-fill{height:100%;width:calc(var(--pressure)*100%);background:linear-gradient(90deg,#98d8b6 5%,#badd72 58%,#f7c369 80%,#f08c7f 100%);border-radius:100px;transition:width .04s linear}.gauge-target{position:absolute;left:var(--meter-target);width:var(--meter-width);height:25px;top:-4px;border-radius:6px;border:2px solid #338c68;box-shadow:0 0 0 2px white,0 2px 4px #16421d3b;pointer-events:none}.gauge-markers{display:flex;justify-content:space-between;color:#94a39a;font-size:10px;font-weight:850;margin:8px 0 12px}.press-btn{width:100%;height:66px;border:0;border-radius:17px;background:#2d6a5b;box-shadow:0 6px 0 #1b4b40,0 12px 15px #12462e2b;color:#fff;font-weight:1000;letter-spacing:-.025em;font-size:20px;touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .08s,box-shadow .08s,background .2s;display:flex;align-items:center;justify-content:center;gap:12px}.press-btn:active,.press-btn.holding{background:#265b50;transform:translateY(5px);box-shadow:0 1px 0 #1b4b40,0 5px 9px #12462e2b}.press-btn .btn-icon{font-size:25px}.press-hint{text-align:center;margin-top:12px;font-size:11px;color:#89938d;font-weight:850}.press-hint b{color:#457f67}.aside{display:flex;flex-direction:column;gap:13px}.aside-card{background:#fffefa;border:1px solid var(--line);border-radius:22px;padding:20px 19px;box-shadow:0 6px 18px #213c3010}.aside-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.aside-heading h2{margin:0;font-size:14px;font-weight:1000;letter-spacing:-.03em}.mini-tag{font-size:10px;padding:5px 8px;border-radius:100px;background:#e8f3e6;color:#4b8b64;font-weight:1000}.queue{display:flex;flex-direction:column;gap:10px}.queue-item{display:flex;align-items:center;gap:12px;background:#f8f9f4;border-radius:15px;padding:9px}.queue-icon{width:44px;height:44px;border-radius:13px;background:#fff0d3;display:grid;place-items:center;font-size:28px;flex-shrink:0;overflow:hidden}.queue-icon svg{height:41px;width:41px}.queue-icon .absurd{font-size:27px}.queue-name{font-size:13px;font-weight:1000}.queue-sub{font-size:10px;color:#8d9991;font-weight:850;margin-top:3px}.phase-box{margin-top:14px;background:#f0f6ed;padding:13px;border-radius:14px;color:#42695b}.phase-label{font-size:10px;font-weight:1000;letter-spacing:.12em}.phase-progress{height:7px;border-radius:10px;background:#dce8d8;margin:10px 0 7px;overflow:hidden}.phase-progress div{height:100%;background:#7dba8c;width:0%;transition:width .35s}.phase-text{font-size:11px;font-weight:850}.achievement{display:flex;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0eb;font-size:12px;font-weight:850}.achievement:last-child{border-bottom:0;padding-bottom:0}.achievement b{margin-left:auto;font-variant-numeric:tabular-nums;color:#2e6156}.achievement span{color:#7f9288}.howto{margin:0;font-size:12px;line-height:1.85;color:#85928b;font-weight:750}.howto b{color:#376b5d}.foot{font-size:10px;color:#95a49b;text-align:center;margin-top:12px}.overlay{position:fixed;inset:0;background:#24413970;backdrop-filter:blur(8px);z-index:40;display:grid;place-items:center;padding:18px;overflow-y:auto}.modal{width:min(445px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;text-align:center;background:#fffefa;border:1px solid #eff0e5;border-radius:30px;box-shadow:0 22px 80px #112f2466;padding:29px 26px}.modal-fruit{width:102px;height:102px;margin:0 auto 13px;display:grid;place-items:center;font-size:65px;background:#fff3d4;border-radius:30px;transform:rotate(-7deg);box-shadow:0 5px 0 #ecd59d}.modal-eyebrow{font-size:11px;font-weight:1000;letter-spacing:.17em;color:#53916c;margin:14px 0 7px}.modal h2{font-size:30px;line-height:1.2;letter-spacing:-.075em;margin:0}.modal h2 i{color:#f28c4d;font-style:normal}.modal-lead{color:#647d70;font-size:14px;line-height:1.8;font-weight:800;margin:14px 0}.modal-tip{background:#f3f7ef;text-align:left;border-radius:17px;padding:15px 16px;margin:17px 0;color:#536b5d;font-size:12px;font-weight:800;line-height:1.9}.modal-tip b{color:#276853}.cta{display:block;width:100%;border:0;border-radius:16px;min-height:57px;background:#2c6959;color:#fff;font-size:17px;font-weight:1000;box-shadow:0 5px 0 #1a4a3e}.cta.secondary{background:#edf3e9;color:#3e6757;box-shadow:none}.modal-aux{font-size:10px;color:#91a29a;font-weight:750;line-height:1.5;margin:15px 0 0}.end-number{font-size:53px;color:#eb894d;font-weight:1000;letter-spacing:-.08em;line-height:1.2;margin:5px 0}.end-number span{font-size:17px;letter-spacing:0}.end-grade{display:inline-block;border-radius:999px;background:#eaf4dc;color:#37765d;padding:8px 15px;font-weight:1000;font-size:13px}.end-text{line-height:1.7;color:#607a6b;font-size:12px;font-weight:800}.end-stats{display:flex;justify-content:center;gap:20px;font-size:11px;font-weight:900;color:#7b9288;margin:17px 0}.end-stats b{display:block;font-size:19px;color:#345c51}.end-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.end-actions .cta{font-size:14px}.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(20px);pointer-events:none;opacity:0;background:#2a6053;color:white;padding:13px 19px;border-radius:15px;font-size:13px;font-weight:900;box-shadow:0 10px 30px #214b3677;z-index:90;transition:opacity .3s,transform .3s;white-space:nowrap}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.mode-fresh{--stage:#fff0d7}.mode-veg{--stage:#e7f3d9}.mode-snack{--stage:#fff0e9}.mode-digital{--stage:#eaeafc}.mode-cosmic{--stage:#dcdff7}.mode-digital .press-stage,.mode-cosmic .press-stage{border-color:#c9c7e8}.mode-digital .circle-deco,.mode-cosmic .circle-deco{border-color:#958fcd66}.mode-cosmic .press-stage:before{background-image:radial-gradient(#7e8ab1 1.5px,transparent 1.5px)}.mode-cosmic .stage-bg-type{color:#8b8bb442}.mode-fresh .stage-bg-type{color:#f1c7a445}.mode-cosmic .stage-label,.mode-digital .stage-label{color:#7b6d9d}.hidden-part{opacity:.4}.fever{animation:feverGlow .7s infinite alternate}.fever .stat:nth-child(2){border-color:#eacb74;background:#fffae7}@keyframes pour{0%{opacity:0;transform:scaleY(.1)}24%,67%{opacity:1;transform:scaleY(1)}100%{opacity:0;transform:scaleY(.2)}}@keyframes floatText{0%{opacity:0;transform:translate(-50%,0) scale(.55) rotate(-10deg)}25%{opacity:1;transform:translate(-50%,-25px) scale(1.16) rotate(-4deg)}100%{opacity:0;transform:translate(-50%,-110px) scale(.97)}}@keyframes particle{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.4)}}@keyframes bannerPop{0%{opacity:0;transform:translate(-50%,-30%) rotate(-10deg) scale(.5)}30%{opacity:1;transform:translate(-50%,-55%) rotate(5deg) scale(1.13)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-85%) rotate(-5deg)}}@keyframes flash{from{opacity:.8}to{opacity:0}}@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}@keyframes feverGlow{from{filter:none}to{filter:drop-shadow(0 0 10px #ffdd63)}}
@media(min-width:1050px){.session{grid-template-columns:minmax(0,1fr) 310px}.press-stage{height:437px}.machine-housing{top:82px}.rod{top:121px}.press-plate{top:calc(189px + var(--pressure) * 79px)}.item-illustration{top:205px}.platform{top:342px}.pipe{top:353px}.juice-stream{top:357px}.circle-deco{top:89px}}
@media(max-width:810px){.shell{padding:17px 16px 30px}.topbar{margin-bottom:17px}.session{grid-template-columns:1fr;gap:17px}.aside{display:grid;grid-template-columns:1fr 1fr}.aside-card:last-child{grid-column:1/-1}.press-stage{height:407px}}
@media(max-width:520px){.shell{padding:13px 12px 28px}.brand-icon{width:39px;height:39px;font-size:25px;border-radius:13px}.brand{gap:9px}.brand-title{font-size:19px}.brand-overline{font-size:8px}.tagbar{gap:5px}.pill-btn{padding:8px 10px;min-height:33px;font-size:11px}.topbar{margin-bottom:15px}.stats{gap:7px}.stat{border-radius:15px;padding:11px 12px}.stat-label{font-size:10px}.stat-value{font-size:24px}.stat-value span{font-size:10px;margin-left:2px}.timer-track{margin:11px 1px 13px}.press-stage{height:369px;border-radius:23px}.stage-head{left:15px;right:15px;top:12px}.stage-name{font-size:17px}.stage-index{font-size:9px;padding:6px 9px}.stage-label{font-size:9px}.machine-housing{top:60px;width:153px;height:39px;font-size:9px}.rod{top:93px;width:20px;height:calc(59px + var(--pressure) * 69px)}.press-plate{top:calc(145px + var(--pressure) * 69px);width:174px;height:24px}.item-illustration{top:157px;height:133px;width:163px}.item-illustration svg{width:145px;height:136px}.item-illustration .absurd{font-size:98px}.platform{top:290px;width:220px}.pipe{top:306px}.juice-stream{top:310px;height:42px}.cup{bottom:7px;height:60px;width:73px}.circle-deco{top:63px;width:227px;height:227px}.pressure-chip{top:64px;right:13px}.pressure-chip strong{font-size:21px}.stage-tip{bottom:12px;left:11px;font-size:10px;padding:6px 9px}.stage-bg-type{font-size:74px}.control-card{margin-top:11px;padding:14px}.control-top{margin-bottom:8px}.control-top span{font-size:10px}.press-btn{height:63px;font-size:18px}.press-hint{margin-top:10px}.aside{grid-template-columns:1fr}.aside-card{padding:18px}.aside-card:last-child{grid-column:auto}.queue{display:grid;grid-template-columns:1fr 1fr;gap:8px}.queue-item{gap:8px;padding:7px}.queue-icon{width:39px;height:39px;font-size:24px}.queue-name{font-size:11px}.queue-sub{font-size:9px}.modal{padding:25px 22px}.modal h2{font-size:27px}.modal-fruit{width:90px;height:90px;font-size:55px}}
@media(max-width:355px){.stat-value{font-size:20px}.press-stage{height:355px}.pressure-chip{top:102px}.stage-tip{max-width:60%;white-space:normal}.queue{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ───────────── HAND-SQUEEZED REBUILD · no mechanical press ───────────── */
:root{--grip:0;--wiggle:0px;--glass-juice:#ffad57;--skin:#ffd5ac}
.press-stage{background:radial-gradient(circle at 50% 37%,#fffdf4 0%,var(--stage) 74%);transition:background .6s,border-color .6s,box-shadow .6s}
.stage-head,.pressure-chip{z-index:11}
.stage-head{max-width:calc(100% - 4px)}
.press-stage .circle-deco{top:82px;width:245px;height:245px;border:2px dashed #d4b69058;box-shadow:0 0 0 30px #fff7e943}
.squeeze-scene{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.squeeze-halo{position:absolute;left:50%;top:145px;width:205px;height:205px;border-radius:50%;background:radial-gradient(circle,#fff9ddac,transparent 71%);transform:translateX(-50%);filter:blur(3px)}
.fruit-shadow{position:absolute;left:50%;top:303px;width:150px;height:20px;transform:translateX(-50%) scaleX(calc(1 + var(--pressure) * .20));background:#92663c25;border-radius:50%;filter:blur(8px)}
/* Hands are custom SVGs, moved inward by the same live pressure value. */
.hand{position:absolute;top:158px;width:220px;height:170px;z-index:6;filter:drop-shadow(0 6px 4px #76452d2a);will-change:transform,left}
.hand svg{display:block;width:100%;height:100%;overflow:visible}
.hand-left{left:calc(50% - 260px + var(--pressure) * 61px);transform:rotate(calc(-5deg + var(--pressure) * 6deg));transform-origin:0 60%}
.hand-right{left:calc(50% + 40px - var(--pressure) * 61px);transform:scaleX(-1) rotate(calc(-5deg + var(--pressure) * 6deg));transform-origin:50% 60%}
.squeeze-scene .item-illustration{left:50%;top:165px;z-index:5;width:170px;height:150px;transform:translateX(-50%) scaleX(calc(1 + var(--pressure) * .24)) scaleY(calc(1 - var(--pressure) * .46));transform-origin:50% 69%;transition:filter .14s}
.squeeze-scene .item-illustration svg{width:165px;height:150px}
.squeeze-scene .item-illustration .absurd{font-size:111px}
.squeeze-scene .item-illustration:after{content:"";position:absolute;left:50%;top:48%;width:90px;height:26px;border-radius:50%;border:3px solid #fff7;opacity:calc(var(--pressure) * .7);transform:translate(-50%,-50%) rotate(-18deg);pointer-events:none}
.squeeze-ring{position:absolute;z-index:7;width:15px;height:32px;border:solid #f1aa6f;border-width:0 4px 0 0;border-radius:50%;opacity:calc(var(--pressure) * .8);top:194px}
.squeeze-ring-1{left:calc(50% - 87px);transform:rotate(26deg) scale(calc(.6 + var(--pressure)))}
.squeeze-ring-2{right:calc(50% - 87px);transform:scaleX(-1) rotate(26deg) scale(calc(.6 + var(--pressure)))}
.squeeze-caption{position:absolute;top:96px;left:50%;transform:translateX(-50%);color:#a99176;font-size:9px;letter-spacing:.16em;font-weight:1000;white-space:nowrap;background:#ffffffaa;border:1px solid #f0e5cd;padding:6px 12px;border-radius:100px}
.squeeze-scene .juice-stream{left:calc(50% - 5px);top:283px;width:10px;height:84px;z-index:4;border-radius:9px;opacity:0;background:linear-gradient(90deg,#fff4b8,var(--juice),var(--juice));filter:drop-shadow(0 0 5px var(--juice))}
.squeeze-scene .juice-stream.run{animation:pour .65s ease-out}
.glass-cup{position:absolute;left:50%;bottom:13px;transform:translateX(-50%);width:105px;height:89px;z-index:5;filter:drop-shadow(0 6px 3px #755e4b20)}
.glass-cup:before{content:"";position:absolute;inset:2px 5px 0;background:linear-gradient(95deg,#ffffffc8 3%,#d6e9e050 23%,#ffffff55 70%,#ffffffb9);clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);border-radius:0 0 17px 17px}
.glass-rim{position:absolute;left:0;right:0;top:-2px;height:12px;border:4px solid #9dc3b3;border-radius:50%;background:#f7fff8d9;z-index:7;box-shadow:inset 0 2px 3px #ffffff}
.glass-inner{position:absolute;inset:9px 8px 5px;clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);z-index:5}
.glass-inner .cup-liquid{height:var(--fill);background:linear-gradient(160deg,#ffe6a3,var(--juice) 40%,var(--juice));opacity:.83;border-radius:5px}
.glass-sticker{position:absolute;top:35px;left:50%;transform:translateX(-50%) rotate(-5deg);text-align:center;font-size:11px;line-height:1.0;color:#43756c;background:#fffef9ed;border:2px solid #dfece1;padding:6px 9px 3px;border-radius:6px;z-index:8;font-weight:1000;letter-spacing:.12em}
.glass-sticker span{font-size:7px;display:block;margin-top:3px}
.countertop{height:14px;background:linear-gradient(180deg,#f1d8b3,#d9ad87);border-top:3px solid #cba17e}
.chaos-stamp,.cosmos-glow{display:none;pointer-events:none}
.chaos-stamp{position:absolute;z-index:10;left:15px;top:115px;transform:rotate(-13deg);color:#e85168;border:3px double #ec5f7e;border-radius:7px;padding:5px 10px;font-family:ui-monospace,monospace;letter-spacing:.04em;font-size:15px;font-weight:1000;opacity:.9;text-shadow:0 1px #fffc;box-shadow:0 0 9px #fa77884d}
.chaos-stamp small{display:block;font-size:7px}
.reality-status{display:none;margin:0 0 14px;padding:10px 15px;border-radius:13px;background:#fff0bb;border:1px dashed #e7a551;color:#7f5933;font-size:12px;font-weight:1000;justify-content:space-between;gap:9px;align-items:center;letter-spacing:.03em;box-shadow:0 3px 15px #edaa5222}
.reality-status span{font-size:10px;opacity:.72}
.press-stage .stage-tip{max-width:49%;white-space:normal;line-height:1.35}
/* The shop becomes increasingly hostile to visual consistency. */
.mode-veg{--stage:#e7f3d9}
.mode-veg .glass-sticker{color:#4e8e56;border-color:#b5dca5}
.mode-veg .press-stage{box-shadow:0 10px 26px #698b461b}
.mode-snack{--stage:#fff2c8}
.mode-snack .press-stage{border:3px solid #f8bc91;box-shadow:0 12px 30px #f4a46037}
.mode-snack .brand-icon{transform:rotate(11deg);background:#ffe6bc}
.mode-snack .stage-index{background:#fff1ac;transform:rotate(3deg)}
.mode-snack .press-btn{background:#d26b6a;box-shadow:0 6px 0 #934947,0 12px 20px #ac513c2c}
.mode-snack .chaos-stamp{display:block;opacity:.48}
.mode-snack .stage-bg-type{color:#fa9c7d32}
.mode-snack .brand-title{letter-spacing:-.08em}
.mode-digital{--stage:#dcd1ff;background:repeating-linear-gradient(0deg,#e9e8ff,#f3eaff 27px,#faf0f4 28px,#f2e6ff 30px)}
.mode-digital .reality-status{display:flex;background:#fff0bb;color:#703a68;border-color:#f384ab}
.mode-digital .press-stage{border:3px solid #a65aed;background:radial-gradient(circle at 52% 31%,#fff3ff,var(--stage) 80%);box-shadow:9px 11px 0 #76eee65e,-4px -4px 0 #ff8da762}
.mode-digital .brand-title{color:#643e9e;text-shadow:2px 1px #ff8cab70,-2px 0 #63eee866;animation:fontGlitch 3s steps(1,end) infinite}
.mode-digital .chaos-stamp{display:block;opacity:.96;animation:wobble 2s infinite alternate}
.mode-digital .stats .stat:nth-child(2){border:2px solid #ec9ceb;box-shadow:4px 4px 0 #a2e9df}
.mode-digital .stat:nth-child(2) .stat-value{color:#b04abc}
.mode-digital .control-card{border:2px solid #b895dc;background:#fff9ff}
.mode-digital .press-btn{background:linear-gradient(100deg,#7853b8,#b44697);box-shadow:0 6px 0 #553568,0 12px 20px #7e4aab48}
.mode-digital .press-stage:after{content:"";position:absolute;inset:0;z-index:9;pointer-events:none;background:repeating-linear-gradient(0deg,#4d1b7712 0 1px,transparent 1px 8px);opacity:.4}
.mode-digital .squeeze-caption{color:#a53086;border:2px dotted #ef89c3;background:#fff9ff}
.mode-digital .stage-tip{background:#2e1e57;color:#fff}
.mode-digital .hand{filter:drop-shadow(2px 0 #ff61c3a9) drop-shadow(-3px 0 #5df5ffb5)}
.mode-cosmic{--stage:#1b214c;background:radial-gradient(circle at 3% 0%,#47236b,#161d36 54%,#080b24);color:#ebf6ff;--line:#434a85}
.mode-cosmic .topbar .brand-title{color:#f3f8ff;text-shadow:3px 0 #ff2a95,-3px 0 #42edeb;animation:fontGlitch 1.8s steps(1,end) infinite}
.mode-cosmic .brand-overline{color:#84f4da}
.mode-cosmic .topbar .pill-btn{background:#2e3158;color:#f0f4ff;border-color:#535484}
.mode-cosmic .reality-status{display:flex;background:#a31b6e;color:#fff;border-color:#59ebed;box-shadow:0 0 18px #f130943b;animation:dangerPulse 1.1s infinite alternate}
.mode-cosmic .press-stage{background:radial-gradient(ellipse at 50% 39%,#4d3380 0%,#111632 80%);border:3px solid #fc5dbd;box-shadow:0 0 0 5px #49f8f33d,0 0 36px #ff36a748}
.mode-cosmic .press-stage:before{background-image:radial-gradient(#fff 1px,transparent 1px),radial-gradient(#64e9f1 1.5px,transparent 1.5px);background-size:28px 28px,51px 51px;background-position:0 0,11px 12px;mask-image:none;opacity:.38}
.mode-cosmic .press-stage:after{content:"";position:absolute;inset:0;z-index:9;background:repeating-linear-gradient(0deg,transparent 0 5px,#ff79db0b 6px 7px);pointer-events:none}
.mode-cosmic .stage-name{color:#fff9d8;text-shadow:2px 1px #fd4bb2}
.mode-cosmic .stage-label{color:#7cefe3}
.mode-cosmic .stage-index{background:#eb3a98;color:#fff;border-color:#83eff2}
.mode-cosmic .pressure-chip{color:#b8edf1}
.mode-cosmic .pressure-chip strong{color:#fff396;text-shadow:0 0 11px #fff46f}
.mode-cosmic .circle-deco{border-color:#f66dc7;animation:cosmicOrbit 12s linear infinite}
.mode-cosmic .stage-bg-type{color:#f268aa27;text-shadow:2px 2px #40ffee11}
.mode-cosmic .squeeze-caption{color:#ffd1f0;background:#482266;border-color:#db73ef}
.mode-cosmic .chaos-stamp{display:block;color:#ffcf4d;border-color:#ff5baf;transform:rotate(12deg);animation:wobble .38s infinite alternate}
.mode-cosmic .cosmos-glow{display:block;position:absolute;left:50%;top:160px;z-index:2;width:230px;height:230px;border-radius:50%;transform:translateX(-50%);background:conic-gradient(from 50deg,#ff3ab22b,#3bf1d031,#ffd85332,#7644ff42,#ff3ab22b);filter:blur(20px);animation:cosmicOrbit 3s linear infinite}
.mode-cosmic .hand{filter:drop-shadow(0 0 10px #cb2fe977) drop-shadow(3px 0 #4cf3d299)}
.mode-cosmic .squeeze-scene .item-illustration{filter:drop-shadow(0 0 17px #fc8fff)}
.mode-cosmic .countertop{background:linear-gradient(90deg,#e548a6,#7b4fe9,#45ffdc);border:0}
.mode-cosmic .glass-sticker{background:#2a2b5e;color:#7ef4df;border-color:#ef54ab}
.mode-cosmic .glass-rim{border-color:#e17ae4}
.mode-cosmic .stage-tip{background:#e93a92;color:#fff}
.mode-cosmic .stat,.mode-cosmic .aside-card,.mode-cosmic .control-card{background:#22284b;color:#f1f6ff;border-color:#6264a0;box-shadow:0 6px 19px #0005}
.mode-cosmic .stat-label,.mode-cosmic .aside-heading,.mode-cosmic .achievement span,.mode-cosmic .howto,.mode-cosmic .press-hint,.mode-cosmic .control-top span{color:#bfc7eb}
.mode-cosmic .stat-value{color:#f6f5fd}
.mode-cosmic .stat:nth-child(2) .stat-value{color:#ff77bd}
.mode-cosmic .stat:nth-child(3) .stat-value{color:#84f6cd}
.mode-cosmic .control-top strong,.mode-cosmic .press-hint b{color:#7cf1cd!important}
.mode-cosmic .press-btn{background:linear-gradient(100deg,#f23594,#7851d8);box-shadow:0 6px 0 #74215f,0 11px 28px #ff37a347}
.mode-cosmic .queue-item,.mode-cosmic .phase-box{background:#34345a;color:#fff}
.mode-cosmic .queue-sub,.mode-cosmic .phase-text{color:#bcbceb}
.mode-cosmic .mini-tag{background:#52416c;color:#bff9e9}
.mode-cosmic .phase-label,.mode-cosmic .queue-name,.mode-cosmic .achievement b{color:#e8f9ff}
.mode-cosmic .phase-progress{background:#56577f}
.mode-cosmic .phase-progress div{background:linear-gradient(90deg,#6cfad6,#ff65ba)}
.mode-cosmic .foot{color:#abb0d6}
@keyframes fontGlitch{0%,88%,94%,100%{transform:translateX(0)}90%{transform:translateX(-2px)}92%{transform:translateX(3px)}96%{transform:translateX(-1px)}}
@keyframes wobble{from{transform:rotate(-13deg) scale(.98)}to{transform:rotate(-9deg) scale(1.05)}}
@keyframes dangerPulse{to{box-shadow:0 0 26px #f1309480;filter:brightness(1.13)}}
@keyframes cosmicOrbit{to{rotate:360deg}}
@keyframes squeezeSpurt{0%{opacity:0;transform:translate(0,0) scale(.75)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.35)}}
.drip{position:absolute;z-index:8;pointer-events:none;width:8px;height:12px;border-radius:65% 65% 80% 20%;transform:rotate(45deg);background:var(--juice);border:1px solid #fff8;box-shadow:0 0 6px var(--juice);animation:squeezeSpurt .6s ease-out forwards}
@media(min-width:1050px){.squeeze-scene .item-illustration{top:175px}.hand{top:169px}.squeeze-halo{top:157px}.fruit-shadow{top:318px}.squeeze-scene .juice-stream{top:298px}.squeeze-caption{top:107px}.mode-cosmic .cosmos-glow{top:175px}}
@media(max-width:520px){.press-stage{height:388px}.press-stage .circle-deco{top:75px;width:230px;height:230px}.squeeze-scene .item-illustration{top:157px;width:151px;height:138px}.squeeze-scene .item-illustration svg{width:144px;height:132px}.squeeze-scene .item-illustration .absurd{font-size:94px}.hand{top:145px;width:190px;height:149px}.hand-left{left:calc(50% - 233px + var(--pressure) * 57px)}.hand-right{left:calc(50% + 43px - var(--pressure) * 57px)}.squeeze-halo{top:145px;width:170px;height:170px}.fruit-shadow{top:292px}.squeeze-scene .juice-stream{top:270px;height:73px}.glass-cup{height:76px;width:91px;bottom:12px}.glass-sticker{font-size:9px;top:31px}.squeeze-caption{top:98px;font-size:8px}.squeeze-ring{top:186px}.stage-tip{bottom:12px;max-width:43%;font-size:9px}.chaos-stamp{left:10px;top:112px;font-size:12px;padding:5px}.reality-status span{display:none}}
@media(max-width:355px){.press-stage{height:365px}.hand{top:146px;width:169px;height:132px}.hand-left{left:calc(50% - 204px + var(--pressure) * 51px)}.hand-right{left:calc(50% + 35px - var(--pressure) * 51px)}.squeeze-scene .item-illustration{top:150px}.glass-cup{height:69px;width:83px}.squeeze-scene .juice-stream{top:268px;height:68px}.stage-tip{max-width:46%}.squeeze-caption{top:94px}}
@media(prefers-reduced-motion:reduce){.mode-cosmic .brand-title,.mode-digital .brand-title,.mode-cosmic .circle-deco,.mode-cosmic .cosmos-glow,.mode-cosmic .chaos-stamp,.mode-digital .chaos-stamp,.mode-cosmic .reality-status{animation:none}}


/* v0.5: layered illustrated hands, corrected palm/thumb topology */
.hand{width:208px;height:160px;top:170px;pointer-events:none;transform-origin:50% 54%;filter:drop-shadow(0 4px 3px #83553421);will-change:transform,left}
.hand svg{width:100%;height:100%;overflow:visible}
.hand-back{z-index:4}
.hand-front{z-index:7}
.hand-left{left:calc(50% - 250px + var(--pressure) * 50px);transform:rotate(calc(-4deg + var(--pressure) * 5deg))}
.hand-right{left:calc(50% + 42px - var(--pressure) * 50px);transform:scaleX(-1) rotate(calc(-4deg + var(--pressure) * 5deg))}
.squeeze-scene .item-illustration{z-index:5;top:169px;transform:translateX(-50%) scaleX(calc(1 + var(--pressure) * .11)) scaleY(calc(1 - var(--pressure) * .34)) rotate(calc(var(--pressure) * -2deg));transform-origin:center 66%;filter:drop-shadow(0 10px 5px #a7693634)}
.squeeze-scene .item-illustration:after{border:0;border-radius:40%;background:#fff6;filter:blur(11px);height:25px;opacity:calc(var(--pressure) * .5)}
.fruit-shadow{z-index:2;top:298px;transform:translateX(-50%) scaleX(calc(1 - var(--pressure) * .23));opacity:calc(.65 - var(--pressure) * .25)}
.squeeze-halo{background:radial-gradient(circle,#fff9dccc,transparent 70%)}
.squeeze-scene .juice-stream{top:281px;z-index:4}
/* Tiny juice drops while pressure is building, plus a short final pour. */
.squeeze-scene.is-gripping .juice-stream{opacity:calc(var(--pressure) * .80);height:calc(16px + var(--pressure) * 65px);width:calc(3px + var(--pressure) * 6px);filter:drop-shadow(0 0 6px var(--juice))}
.squeeze-scene.is-gripping .glass-cup{animation:cupBounce .33s ease-in-out infinite alternate}
.squeeze-scene.is-gripping .glass-inner .cup-liquid{background:linear-gradient(170deg,#fff7b8,var(--juice) 32%,var(--juice))}
.press-stage:active .squeeze-halo,.squeeze-scene.is-gripping .squeeze-halo{filter:blur(1px) brightness(1.05);opacity:calc(.7 + var(--pressure) * .3)}
.press-stage .pressure-chip strong{transition:color .13s}
.press-stage.is-ideal .pressure-chip strong{color:#308765}
.press-stage.is-danger .pressure-chip strong{color:#e45060}
.press-stage.is-ideal{box-shadow:0 10px 26px #61513c15,inset 0 0 0 3px #81cc9b58}
.press-stage.is-danger{box-shadow:0 10px 26px #61513c15,inset 0 0 0 3px #ff6c7759}
.hand-press-ring{position:absolute;z-index:8;pointer-events:none;left:50%;top:215px;width:110px;height:110px;border:3px solid var(--juice);border-radius:50%;transform:translate(-50%,-50%) scale(.55);opacity:0}
.hand-press-ring.burst{animation:ringBurst .54s ease-out forwards}
.drip{border:0;z-index:8}
@keyframes ringBurst{0%{opacity:.76;transform:translate(-50%,-50%) scale(.55)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.45)}}
@keyframes cupBounce{to{transform:translateX(-50%) translateY(1.5px)}}
@media(max-width:520px){
 .hand{top:154px;width:190px;height:146px}
 .hand-left{left:calc(50% - 236px + var(--pressure) * 48px)}
 .hand-right{left:calc(50% + 46px - var(--pressure) * 48px)}
 .squeeze-scene .item-illustration{top:160px}
 .fruit-shadow{top:291px}
 .squeeze-scene .juice-stream{top:273px}
 .hand-press-ring{top:203px}
}
@media(max-width:355px){
 .hand{top:156px;width:172px;height:134px}
 .hand-left{left:calc(50% - 220px + var(--pressure) * 49px)}
 .hand-right{left:calc(50% + 48px - var(--pressure) * 49px)}
 .squeeze-scene .item-illustration{top:151px}
 .hand-press-ring{top:200px}
}
@media(prefers-reduced-motion:reduce){.squeeze-scene.is-gripping .glass-cup{animation:none}.hand-press-ring.burst{animation:none}}


/* v0.6: consistent, offline-rendered hand artwork. Visual shape no longer depends on system emoji font. */
:root { --curl:0; }
.hand{display:none!important}
.gesture-hand{position:absolute;top:169px;width:142px;height:139px;z-index:7;pointer-events:none;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
  font-size:116px;line-height:1;filter:drop-shadow(0 6px 4px #734b3020);
  display:grid;place-items:center;will-change:left,right;
}
.gesture-left{left:calc(50% - 240px + var(--pressure) * 81px);transform:rotate(calc(-4deg + var(--pressure) * 4deg))}
.gesture-right{right:calc(50% - 240px + var(--pressure) * 81px);transform:rotate(calc(4deg - var(--pressure) * 4deg))}
.gesture-hand span{position:absolute;left:0;right:0;top:0;bottom:0;display:grid;place-items:center;white-space:nowrap;transform-origin:center;}
.gesture-open{opacity:calc(1 - var(--curl));transform:scale(calc(1 - var(--curl) * .06))}
.gesture-fist{opacity:var(--curl);transform:translateY(calc(-9px * var(--curl))) scale(calc(.85 + var(--curl) * .13))}
@media(max-width:520px){
 .gesture-hand{top:146px;width:142px;height:139px;font-size:115px}
 .gesture-left{left:calc(50% - 240px + var(--pressure) * 81px)}
 .gesture-right{right:calc(50% - 240px + var(--pressure) * 81px)}
}
@media(max-width:355px){
 .gesture-hand{top:153px;width:127px;height:126px;font-size:104px}
 .gesture-left{left:calc(50% - 206px + var(--pressure) * 65px)}
 .gesture-right{right:calc(50% - 206px + var(--pressure) * 65px)}
}

.gesture-hand img{position:absolute;width:128px;height:125px;top:7px;left:7px;object-fit:contain;pointer-events:none;}
.gesture-hand img.gesture-open{opacity:calc(1 - var(--curl));transform:scale(calc(1 - var(--curl) * .06))}
.gesture-hand img.gesture-fist{opacity:var(--curl);transform:translateY(calc(-9px * var(--curl))) scale(calc(.85 + var(--curl) * .13))}
@media(max-width:355px){.gesture-hand img{width:114px;height:112px;top:7px;left:7px}}

/* The end-of-game report remains readable even after cosmic mode changes the body text to white. */
#result .modal{color:#233e39;background:#fffefa}
#result .modal h2{color:#204c43;text-shadow:none}
#result .modal-eyebrow{color:#386d58}
#result .end-text{color:#36584e;font-size:13px}
#result .end-stats{color:#577267}
#result .modal-aux{color:#577267}
#result .end-grade{color:#245e48;background:#e8f4da}
#result .end-number{color:#d9642a}
#result .end-actions .cta.secondary{color:#244f43;background:#e7f1e9}
#result .modal{color-scheme:light}

/* X share is an ordinary link, so it opens the composer without a popup blocker. */
#result .end-actions .x-share{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;background:#18232b;text-decoration:none;box-shadow:0 5px 0 #0b1217}
#result .end-actions .x-share:hover{background:#2c3a45}
#result .end-actions .x-share:active{transform:translateY(2px);box-shadow:0 3px 0 #0b1217}
#result .end-actions .x-share:focus-visible{outline:3px solid #ff9953;outline-offset:3px}
