@charset "UTF-8";
:root{--ink:#183b4a;--muted:#647c87;--teal:#009b99;--bright:#19c4b9;--pink:#ed6688;--line:#e1ecee;--paper:#f6fafb;--font:"Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px}button,input{font:inherit}button,a,label,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,canvas:focus-visible,input:focus-visible{outline:3px solid #ef7b31;outline-offset:4px}[hidden]{display:none!important}.app-shell{max-width:1440px;margin:auto;padding:0 42px}.topbar{height:108px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:13px}.brand-icon{width:52px;height:52px;background:var(--bright);border-radius:19px 21px 17px 22px;color:white;font-size:34px;text-align:center;line-height:50px;box-shadow:0 4px 0 #00aaa1;transform:rotate(-7deg);font-weight:900}.eyebrow{display:block;font-size:12px;letter-spacing:.18em;font-weight:800;color:var(--teal);margin-bottom:6px}.brand-title{font-weight:900;font-size:26px;letter-spacing:-.055em}.brand-title>span{margin-left:.3em}.icon-button{border:1px solid var(--line);border-radius:24px;padding:10px 15px;background:white;display:flex;gap:9px;align-items:center;font-weight:700;font-size:18px}.icon-button span{font-size:13px}.tabs{display:flex;gap:8px;padding:22px 0 20px}.tab{border:0;background:none;border-radius:30px;padding:13px 24px;font-weight:800;font-size:15px;color:var(--muted);display:flex;align-items:center;gap:9px}.tab>span:first-child{font-size:21px;line-height:1}.tab.active{background:var(--ink);color:white;box-shadow:0 4px 12px #183b4a15}.count{padding:2px 7px;background:#ffffff22;border-radius:20px;font-size:12px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:12px 0 25px}h1{margin:0 0 9px;font-size:29px;letter-spacing:-.04em}p{line-height:1.8}.section-heading p{margin:0;color:var(--muted);font-size:14px}.stamp{background:#fff4bb;color:#77651b;padding:10px 15px;border-radius:8px;transform:rotate(3deg);font-size:12px;letter-spacing:.09em;font-weight:900}.lab-layout{display:grid;grid-template-columns:202px minmax(0,1fr) 238px;gap:20px;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:22px;padding:21px 18px}h2{font-size:16px;margin:0}.item-panel h2{font-size:14px;margin-bottom:18px}.item-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.item-card{border:1px solid transparent;background:#f4f8f9;border-radius:15px;padding:7px 4px 9px;min-width:0}.item-card img{height:62px;width:100%;object-fit:contain;display:block;pointer-events:none}.item-card span{display:block;font-size:12px;font-weight:700;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-card.selected{border-color:var(--bright);background:#eafffa;box-shadow:0 0 0 1px var(--bright)}.upload-button{display:flex;text-align:center;align-items:center;justify-content:center;gap:5px;margin-top:16px;font-size:12px;font-weight:800;border:1.5px dashed #9bcac8;border-radius:12px;padding:13px 5px;cursor:pointer;color:var(--teal);position:relative}.upload-button:hover{background:#effffc}.upload-button span{font-size:21px}.upload-button:focus-within{outline:3px solid #ef7b31;outline-offset:3px}.upload-button input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.tiny{font-size:12px;color:var(--muted);line-height:1.8;margin:12px 0 0}.stage{background-color:#e6f8f5;background-image:radial-gradient(circle at 1px 1px,#78bcac27 1px,transparent 0),radial-gradient(ellipse at 45% 55%,#fffdf1 0%,transparent 65%);background-size:21px 21px,100% 100%;border:1px solid #cfebe3;border-radius:26px;position:relative;overflow:hidden;min-height:478px;display:flex;flex-direction:column}.stage-heading{display:flex;align-items:center;justify-content:space-between;padding:23px 26px 0;z-index:1}.stage-heading h2{font-size:23px;font-weight:900}.stage-heading .eyebrow{font-size:10px;color:#5a9693;letter-spacing:.16em}.material-badge{background:#ffffffbc;border:1px solid #cce7df;color:#53867d;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:700}.canvas-area{height:355px;position:relative;display:flex;align-items:center;justify-content:center}.canvas-area:after{content:"";position:absolute;left:28%;right:28%;height:20px;background:#1d6d6820;filter:blur(12px);bottom:19px;border-radius:50%;z-index:0;pointer-events:none}#squishy{position:absolute;width:100%;height:100%;inset:0;touch-action:none;z-index:2;cursor:grab;outline-offset:-5px}#squishy:active{cursor:grabbing}.initial-toy{width:90%;height:94%;object-fit:contain;position:relative;z-index:1;pointer-events:none;transition:transform .45s cubic-bezier(.22,1.7,.35,1)}.stage-bottom{display:flex;justify-content:space-between;align-items:center;padding:8px 23px 19px;gap:10px}.gesture-hint{font-size:12px;color:#518b83}.squish-counter{font-size:12px;white-space:nowrap;border-radius:20px;background:white;padding:6px 11px;color:var(--teal);font-weight:800}.squish-word{opacity:0;transform:translateY(8px) rotate(-10deg);position:absolute;right:14%;top:21%;font-weight:900;font-size:27px;color:var(--teal);z-index:3;pointer-events:none;text-shadow:2px 2px white;transition:.2s}.squish-word.show{opacity:1;transform:translateY(0) rotate(-10deg)}.under-stage{display:flex;align-items:center;gap:10px;margin-top:15px}.primary,.secondary{border:0;font-size:14px;font-weight:800;border-radius:13px;min-height:45px;padding:12px 21px}.primary{background:var(--teal);color:white;box-shadow:0 3px 0 #007d7b}.primary:hover{background:#008a86}.primary:active{transform:translateY(2px);box-shadow:none}.secondary{background:white;border:1px solid var(--line)}.keyboard-tip{font-size:11px;color:#7e929a;margin-left:auto}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.panel-title>span{font-size:24px;color:var(--teal)}.settings h2{font-size:14px}.settings fieldset{border:0;margin:0 0 21px;padding:0}.settings legend{font-size:12px;color:var(--muted);margin-bottom:10px}.materials{display:grid;gap:8px}.material{display:flex;gap:11px;align-items:center;text-align:left;padding:11px;border:1px solid var(--line);border-radius:13px;background:white}.material.selected{border-color:#4cc9bc;background:#f0fffa}.material-dot{width:28px;height:28px;display:block;border-radius:10px;box-shadow:inset -3px -4px 6px #0000000c,inset 3px 3px 6px #ffffffae}.mochi{background:#7ee4d0}.jelly{background:#f7adc8}.foam{background:#ffe58b}.material b{font-size:14px}.material small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.range-label{display:flex;justify-content:space-between;font-size:13px;font-weight:800;margin-top:22px}.range-label output{color:var(--teal)}input[type=range]{width:100%;accent-color:var(--teal);height:23px;cursor:pointer;margin:10px 0 2px}.range-ends{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.research-note{background:#fff9e3;border-radius:13px;padding:12px 14px;margin-top:23px;transform:rotate(-2deg)}.research-note>span{font-size:10px;font-weight:900;letter-spacing:.15em;color:#aa8950}.research-note p{font-size:12px;margin:5px 0 0;color:#86744d}footer{display:flex;justify-content:space-between;gap:15px;margin:32px 0 23px;padding-top:20px;border-top:1px solid var(--line);font-size:11px;color:#92a6ac;letter-spacing:.08em}footer div{display:flex;gap:22px}footer a{font-size:12px;letter-spacing:0;color:var(--muted);text-decoration:none}.pink-stamp{background:#ffe1ed;color:#a23d61}.gacha-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:28px}.gacha-scene{background:radial-gradient(ellipse at 50% 35%,#fff 10%,#ffeff4 75%);border:1px solid #f4dbe4;border-radius:28px;display:flex;align-items:center;flex-direction:column;padding:23px;min-height:520px;position:relative}.machine-label{color:#b55677;font-size:13px;font-weight:800;letter-spacing:.07em}#gacha-machine{height:340px;max-width:95%;object-fit:contain;margin:8px 0}.gacha-status{font-size:14px;color:#a55274;margin:4px 0 16px}.pink{background:var(--pink);box-shadow:0 3px 0 #c64a70;width:min(320px,100%)}.pink:hover{background:#db567d}.pink span{display:inline-block;border-radius:12px;background:#ffffff36;margin-left:12px;padding:2px 8px;font-size:12px}.gacha-side{padding:27px}.gacha-side h2{font-size:20px;margin-bottom:23px}#gacha-lineup{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.lineup-item{background:var(--paper);border-radius:15px;padding:10px 4px;text-align:center}.lineup-item img{width:100%;height:73px;object-fit:contain}.lineup-item b{display:block;font-size:12px}.lineup-item small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.collection-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}.collection-card{border:1px solid var(--line);border-radius:20px;background:white;padding:17px;text-align:left;position:relative}.collection-card img{width:100%;height:150px;object-fit:contain}.collection-card b{display:block;font-size:15px;margin-top:13px;overflow-wrap:anywhere}.collection-card small{display:block;color:var(--muted);font-size:12px;margin-top:6px}.collection-card .rarity{font-size:11px}.empty-state{text-align:center;padding:55px 15px 75px;background:white;border:1px solid var(--line);border-radius:25px}.empty-state>span{font-size:60px;color:var(--pink)}.empty-state h2{font-size:22px}.empty-state p{font-size:14px;color:var(--muted)}dialog{border:0;border-radius:30px;padding:36px 38px 25px;width:360px;max-width:calc(100vw - 32px);text-align:center;color:var(--ink);box-shadow:0 30px 100px #243b5540}dialog::backdrop{background:#173b4a70;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:16px;top:14px;border:0;background:#f2f6f6;border-radius:50%;width:30px;height:30px;font-size:22px;color:var(--muted)}.result-sparkles{font-size:25px;color:#efc94d;margin:4px 0 12px}.rarity{font-size:12px;color:var(--teal);font-weight:900;letter-spacing:.07em}.rarity.rare{color:#ba528b}.rarity.super{color:#b1881b}dialog h2{font-size:25px;margin-top:8px}#result-image{width:220px;height:220px;object-fit:contain;max-width:100%;margin:10px auto}dialog p{font-size:13px;color:var(--muted);margin:0 0 20px}dialog .primary{width:100%}.text-button{border:0;background:none;padding:15px 5px 0;font-size:13px;color:var(--muted)}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,15px);opacity:0;pointer-events:none;border-radius:14px;background:var(--ink);color:white;padding:13px 22px;font-size:14px;max-width:90vw;text-align:center;transition:.2s;z-index:20;box-shadow:0 5px 25px #183b4a30}.toast.show{opacity:1;transform:translate(-50%,0)}.shaking{animation:shake .19s infinite}@keyframes shake{0%,100%{transform:rotate(-3deg) translateX(-2px)}50%{transform:rotate(3deg) translateX(2px)}}@media(min-width:1400px){.stage{min-height:535px}.canvas-area{height:410px}.item-card img{height:72px}}@media(max-width:1100px){.app-shell{padding:0 25px}.lab-layout{grid-template-columns:160px minmax(0,1fr) 200px;gap:14px}.panel{padding:18px 13px}.item-panel h2{font-size:12px}.keyboard-tip{display:none}.stage-heading{padding:20px 20px 0}.stage-bottom{padding-left:15px;padding-right:15px}.gesture-hint{font-size:11px}.collection-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:850px){.lab-layout{grid-template-columns:155px minmax(0,1fr)}.settings{grid-column:1/-1;display:grid;grid-template-columns:1.5fr 1fr;gap:10px 25px}.panel-title{grid-column:1/-1;margin-bottom:0}.settings fieldset{grid-row:2/6;margin:0}.research-note{display:none}.range-label{margin-top:5px}.range-ends{display:none}.materials{grid-template-columns:repeat(3,1fr);gap:7px}.material{flex-direction:column;align-items:center;text-align:center;padding:12px 5px}.material small{font-size:10px}.collection-grid{grid-template-columns:repeat(3,1fr)}.stamp{display:none}.gacha-layout{grid-template-columns:minmax(0,1fr) 270px;gap:15px}.gacha-side{padding:22px 15px}#gacha-lineup{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.app-shell{padding:0 16px}.topbar{height:85px}.brand{gap:10px}.brand-icon{width:41px;height:43px;font-size:28px;line-height:42px;border-radius:15px}.brand .eyebrow{font-size:9px;letter-spacing:.11em;margin-bottom:3px}.brand-title{font-size:19px}.brand-title>span{display:block;font-size:15px;margin-left:0;letter-spacing:-.02em}.icon-button{padding:8px 11px;font-size:18px}.icon-button span{font-size:11px}.tabs{gap:3px;justify-content:space-between;padding:16px 0 14px}.tab{padding:10px 9px;font-size:11px;gap:4px}.tab>span:first-child{font-size:17px}.tab .count{display:none}.section-heading{margin:8px 0 17px}.section-heading h1{font-size:24px}.section-heading p{font-size:12px}.lab-layout{display:flex;flex-direction:column;gap:15px}.play-column{order:0;width:100%}.item-panel{order:1;width:100%;padding:17px}.settings{order:2;width:100%;display:block;padding:20px}.settings .panel-title{margin-bottom:18px}.settings fieldset{margin-bottom:20px}.settings .materials{display:grid;grid-template-columns:repeat(3,1fr)}.settings .material{flex-direction:column}.range-label{margin-top:19px}.range-ends{display:flex}.stage{min-height:400px}.canvas-area{height:300px}.stage-heading{padding:18px 20px 0}.stage-heading h2{font-size:20px}.stage-bottom{padding:3px 15px 15px}.gesture-hint{font-size:10px}.item-grid{grid-template-columns:repeat(4,1fr);gap:9px}.item-card img{height:62px}.item-panel h2{font-size:14px;margin-bottom:13px}.upload-button{font-size:14px;padding:11px}.item-panel .tiny{font-size:11px;text-align:center}.item-panel .tiny br{display:none}.under-stage{justify-content:center}.under-stage button{flex:1}.collection-grid{grid-template-columns:repeat(2,1fr);gap:12px}.collection-card{padding:13px}.collection-card img{height:125px}.gacha-layout{display:flex;flex-direction:column}.gacha-scene{min-height:470px}#gacha-machine{height:305px}#gacha-lineup{grid-template-columns:repeat(3,1fr)}footer{align-items:center;flex-direction:column;font-size:10px;gap:12px;margin-top:25px}footer a{font-size:11px}.squish-word{font-size:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Final play surface: fixed tactile tuning, no setup controls. */
.lab-layout{grid-template-columns:202px minmax(0,1fr);max-width:1120px;margin-inline:auto}.stage{min-height:520px}.canvas-area{height:394px}.sidebar-gacha{width:100%;border:1px solid #fac1d3;border-radius:13px;margin-top:16px;padding:13px 6px;background:#fff0f5;color:#b83e66;font-size:13px;font-weight:800}.sidebar-gacha:hover{background:#ffe2ed}.item-card span{font-size:13px}.material-badge{font-size:13px}.section-heading p{font-size:15px}.item-panel h2{font-size:14px}.gesture-hint{font-size:13px}.keyboard-tip{font-size:12px}.tiny{font-size:12px}.lineup-item small{font-size:12px}.lineup-item b{font-size:14px}.gacha-side .tiny{line-height:2}.gacha-side h2{font-size:19px}.item-card{min-height:92px}.tab{min-height:45px}.topbar .eyebrow{font-size:12px}
@media(max-width:850px){.lab-layout{grid-template-columns:170px minmax(0,1fr)}.stage{min-height:485px}.canvas-area{height:360px}}
@media(max-width:600px){.lab-layout{display:flex}.stage{min-height:415px}.canvas-area{height:305px}.gesture-hint{font-size:12px}.section-heading p{font-size:14px}.tab{font-size:12px;padding-inline:8px;min-height:44px}.tab>span:first-child{display:none}.item-card span{font-size:12px}.item-card img{height:62px}.sidebar-gacha{font-size:14px}.topbar .eyebrow{font-size:9px}.brand-title{font-size:18px}.brand-title>span{font-size:15px}.icon-button{min-height:44px}.gacha-side h2{font-size:20px}.stage-heading .eyebrow{font-size:10px}.lineup-item b{font-size:13px}}

.tab{white-space:nowrap}.stage-heading{gap:12px}.material-badge{white-space:nowrap}.gesture-hint{white-space:nowrap}
@media(max-width:600px){.tabs{justify-content:stretch;gap:3px}.tab{flex:1;justify-content:center;padding:10px 5px;font-size:13px}.stage-heading .eyebrow{display:none}.stage-heading{padding-top:19px;padding-bottom:6px}.material-badge{font-size:12px}.gesture-hint{font-size:11px}.canvas-area{height:310px}.stage{min-height:400px}.section-heading p{font-size:14px}}

.mini-gacha{display:block;width:100%;height:210px;object-fit:contain;margin:18px auto 10px}.item-panel .tiny{text-align:center}.item-panel h2{font-size:16px}.collection-card{cursor:default}
@media(max-width:600px){.mini-gacha{display:none}.item-panel>.eyebrow{display:none}.item-panel h2{display:none}.item-panel .tiny{display:none}.item-panel{padding:0;background:none;border:0}.sidebar-gacha{margin:0;min-height:48px;font-size:15px}.gacha-scene{padding:20px 16px}.gacha-status{font-size:13px}.gacha-side{margin-bottom:5px}}

#squishy,#auto-squish,#auto-twist{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

/* The shadow follows the squeeze; the surrounding screen stays calm. */
.stage{--compression:0;transition:border-color .2s,box-shadow .2s}
.stage.is-touching{border-color:#8fd3c5;box-shadow:0 0 0 3px #9fe3d51a}
.canvas-area:after{transform:scaleX(calc(1 + var(--compression)*.6));opacity:calc(.6 + var(--compression)*.4)}
.squish-word{font-size:24px;transition:opacity .24s,transform .3s}

.gacha-layout{align-items:start}.gacha-scene,.gacha-side{width:100%}#lineup-total{display:inline-block;font-size:12px;color:var(--teal);background:#e8faf5;border-radius:20px;padding:5px 9px;margin-left:5px}.lineup-item b{overflow-wrap:anywhere}

/* Repeated taps are game input. Disable double-tap zoom, keeping page pinch/scroll outside the play surface. */
html,body,button,a,[role="button"]{touch-action:manipulation}
.canvas-area,#squishy,#auto-squish,#auto-twist{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
