.house-menu { gap:1cqw; }
.house-menu button { padding:1cqw 1.1cqw; }
.gacha-menu-mark { display:inline-block;width:1.1em;height:1.1em;border:2px solid currentColor;border-radius:50%;position:relative;flex-shrink:0;transform:rotate(-25deg); }
.gacha-menu-mark::after { content:'';position:absolute;left:-2px;right:-2px;top:48%;border-top:2px solid currentColor; }
.gacha-header { position:absolute;top:7%;left:27%;width:66%;text-align:center; }
.gacha-header h1 { color:var(--white);font-size:clamp(24px,3.1cqw,48px);line-height:1.3;margin:0;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:2px 2px 0 #7950a1; }
.gacha-header p { font-size:clamp(14px,1.15cqw,19px);margin:.6em 0 0; }
.gacha-collection-link { position:absolute;right:5%;top:17%;z-index:2;display:flex;gap:.8em;align-items:center;font-size:clamp(14px,1.1cqw,20px); }
.gacha-collection-link span { font-size:.85em;color:#8861b2; }
.gacha-playground { position:absolute;left:12%;right:13%;top:25%;bottom:11%;display:grid;grid-template-columns:45% 55%;gap:3%; }
.gacha-machine-column { height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;gap:8px; }
.gacha-machine { position:relative;height:calc(100% - 94px);aspect-ratio:2/3;max-width:100%;flex-shrink:0;filter:drop-shadow(6px 8px 0 #9e79cf55); }
.machine-shell { height:100%;width:100%;display:block;overflow:visible; }
.machine-star { position:absolute;left:0;right:0;top:4.3%;text-align:center;color:#fffaff;font-size:clamp(20px,2.5cqw,42px);line-height:1; }
.gacha-glass { position:absolute;left:13%;right:13%;top:12%;height:34%;overflow:hidden; }
.glass-capsule { --color:#f09fbf;position:absolute;width:25%;aspect-ratio:1;border:2px solid #7952bb;border-radius:50%;background:linear-gradient(var(--color) 0 47%,#8d68af 47% 52%,#fffaff 52% 100%);box-shadow:inset -3px -2px 0 #7952bb30; }
.glass-capsule::after { content:'';position:absolute;left:18%;top:14%;width:23%;height:16%;background:#fffaff99;border-radius:50%; }
.cap-1 { left:4%;bottom:2%;transform:rotate(-28deg); }.cap-2 { left:27%;bottom:1%;--color:#b599df;transform:rotate(35deg); }.cap-3 { left:50%;bottom:0;--color:#ffe4a0;transform:rotate(-17deg); }.cap-4 { left:73%;bottom:2%;--color:#a4e2ec;transform:rotate(22deg); }
.cap-5 { left:13%;bottom:24%;--color:#a4e2ec;transform:rotate(20deg); }.cap-6 { left:38%;bottom:23%;transform:rotate(-35deg); }.cap-7 { left:64%;bottom:23%;--color:#b599df;transform:rotate(44deg); }.cap-8 { left:24%;bottom:47%;--color:#ffe4a0;transform:rotate(20deg); }.cap-9 { left:52%;bottom:47%;--color:#a4e2ec;transform:rotate(-23deg); }
.knob-ring { position:absolute;left:34%;top:56.5%;width:32%;aspect-ratio:1;border-radius:50%;padding:7%;background:#f2e8fb;border:3px solid #9b79ca;box-shadow:3px 3px 0 #9975d6;display:grid;place-items:center; }
.gacha-knob { --angle:0deg;position:absolute;inset:9%;background:#fffaff;border:2px solid #7952bb;border-radius:50%;transform:rotate(var(--angle));transition:transform .35s;touch-action:none;padding:0; }
.gacha-knob span { display:block;position:absolute;left:39%;top:8%;bottom:8%;width:22%;background:#c7a9ef;border:2px solid #7952bb;box-shadow:2px 0 0 #b18de0; }
.gacha-knob:disabled { opacity:1; }.gacha-knob.dragging { transition:none;box-shadow:0 0 0 5px #f09fbf99; }
.knob-arrow { position:absolute;top:59%;right:18%;font-size:clamp(22px,2.7cqw,45px);pointer-events:none; }
.outlet-capsule { position:absolute;left:40%;top:77%;width:21%;aspect-ratio:1;border:0;background:transparent;padding:0;filter:drop-shadow(2px 3px 0 #49237555);animation:capsule-drop .55s ease both; }
.capsule-top,.capsule-bottom { position:absolute;left:0;width:100%;height:50%;background:#f09fbf;border:2px solid #fffaff;border-bottom-color:#7952bb;border-radius:100px 100px 0 0; }
.capsule-top { top:0; }.capsule-bottom { bottom:0;transform:rotate(180deg);background:#fffaff;border-color:#c7a9ef; }
.capsule-glint { position:absolute;width:15%;height:10%;top:18%;left:18%;background:#fffaff; }
.outlet-capsule:hover { filter:drop-shadow(0 0 8px white); }.outlet-capsule:disabled { opacity:1; }
.gacha-machine[data-phase="rolling"] .glass-capsule { animation:capsule-roll .5s ease-in-out infinite;animation-delay:calc(var(--i,0) * .03s); }.cap-2,.cap-5,.cap-8 { --i:2; }.cap-3,.cap-6,.cap-9 { --i:4; }
.gacha-machine[data-phase="opening"] .capsule-top { animation:capsule-split-top .65s ease both; }.gacha-machine[data-phase="opening"] .capsule-bottom { animation:capsule-split-bottom .65s ease both; }
.gacha-machine-column>.pixel-button { min-width:45%;min-height:42px;padding:.4em 1em; }
.gacha-instruction { font-size:clamp(12px,1cqw,17px);line-height:1.5;text-align:center;margin:0;min-height:1.5em; }
.gacha-companion-column { min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center; }
.gacha-speech { padding:.85em 1.1em;text-align:center;font-size:clamp(14px,1.4cqw,23px);max-width:100%;min-height:4.5em; }
.gacha-companion { width:85%;max-width:330px;min-height:0;flex:1;display:flex;align-items:center;justify-content:center; }
.gacha-companion img { display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain; }
.gacha-rules { display:flex;align-items:center;gap:10px; }.gacha-rules p { margin:0;font-size:clamp(12px,1.1cqw,18px);line-height:1.8; }.gacha-rule-heart { color:#e18aae;font-size:35px; }
.gacha-save-status { position:absolute;left:10%;bottom:4%;font-size:clamp(11px,.95cqw,15px);max-width:66%;line-height:1.5;margin:0;color:#72529c; }
.gacha-dialog { font-family:Zpix,monospace;color:var(--ink);width:min(570px,92vw);max-height:90svh;overflow-y:auto;border:3px solid #9975d6;border-radius:8px;box-shadow:7px 7px 0 #7952bb70;background:#fffaff;padding:27px;text-align:center;scrollbar-color:#b999dc #f4eafd; }
.gacha-dialog::backdrop { background:#39215d77;backdrop-filter:blur(3px); }
.dialog-close { position:absolute;right:10px;top:8px;font-size:30px;width:44px;height:44px;background:#efe2fb;border:1px solid #c7a9ef;line-height:1;border-radius:4px; }
.gacha-eyebrow { margin:8px 38px 10px;font-size:14px;color:#8861b2;line-height:1.5; }.gacha-dialog h2 { font-size:23px;font-weight:400;line-height:1.5;margin:0 15px 15px; }
.checkerboard { background:repeating-conic-gradient(#f1eafa 0% 25%,#fffaff 0% 50%) 50%/16px 16px; }
.prize-art { margin:auto;width:100%;height:clamp(180px,40svh,420px);border:1px solid #e8dafa;border-radius:6px;display:flex;align-items:center;justify-content:center; }
.prize-art img { max-height:100%;max-width:100%;object-fit:contain; }
.prize-description { color:#8861b2;font-size:13px;line-height:1.7;margin:12px 0 0; }
.prize-wish { font-size:16px;line-height:1.8;margin:10px 0 16px; }
.gacha-dialog-actions { display:flex;justify-content:center;gap:12px; }.gacha-dialog-actions button { font-size:16px; }
.gacha-dialog-actions a { font-size:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);text-decoration:none;cursor:pointer; }
.gacha-dialog-actions a:focus-visible { outline:3px dashed var(--ink);outline-offset:5px; }
.download-status { font-size:13px;line-height:1.6;min-height:1.6em;margin:12px 0 0; }
.collection-dialog { width:min(810px,94vw); }.collection-summary { font-size:16px;line-height:1.7;margin:0 0 10px; }
.collection-dialog progress { width:80%;height:10px;accent-color:#b18de0;margin-bottom:20px; }
.collection-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px; }
.collection-item { min-width:0;display:flex;flex-direction:column;align-items:center;gap:8px;border:2px solid #dfc9f2;border-radius:6px;padding:9px 5px;background:#faf5ff;font-size:14px;line-height:1.5; }
.collection-item:disabled { opacity:.65;background:#f4f0f8; }.collection-item small { font-size:12px;color:#8861b2; }
.collection-thumbnail { width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:32px;color:#b999dc; }
.collection-thumbnail img { display:block;width:100%;height:100%;object-fit:contain; }.collection-note { font-size:14px;line-height:1.5;margin-bottom:0; }
.prize-reveal .prize-art { animation:prize-pop .5s ease both; }
@keyframes capsule-roll { 0%,100% { translate:0 0;rotate:-15deg; }50% { translate:7% -15%;rotate:30deg; } }
@keyframes capsule-drop { 0% { opacity:0;transform:translateY(-120%) rotate(-30deg); }65% { opacity:1;transform:translateY(5%) rotate(15deg); }100% { transform:translateY(0) rotate(0); } }
@keyframes capsule-split-top { to { transform:translate(-65%,-40%) rotate(-25deg);opacity:0; } }
@keyframes capsule-split-bottom { to { transform:translate(65%,40%) rotate(205deg);opacity:0; } }
@keyframes prize-pop { from { opacity:0;transform:scale(.85); }to { opacity:1;transform:scale(1); } }
@media(max-width:760px) and (max-aspect-ratio:4/3){
 .house-menu { gap:7px; }.house-menu button { padding:10px 3px;font-size:13px; }
 .stage[data-screen="gacha"] { height:auto;min-height:1120px; }
 .gacha-header { top:135px;left:5%;width:90%; }.gacha-header h1 { font-size:30px; }.gacha-header p { font-size:15px; }
 .gacha-collection-link { top:235px;right:6%;font-size:15px;min-height:44px; }
 .gacha-playground { top:302px;left:7%;right:7%;bottom:130px;display:flex;flex-direction:column;gap:20px; }
 .gacha-machine-column { height:395px;flex:0 0 395px;gap:10px; }.gacha-machine { height:300px; }.gacha-machine-column>.pixel-button { min-width:150px;font-size:16px; }.gacha-instruction { font-size:14px; }
 .machine-star { font-size:28px; }.knob-arrow { font-size:30px; }.knob-ring { border-width:2px; }
 .gacha-companion-column { display:grid;grid-template-columns:44% 56%;grid-template-rows:auto auto;min-height:200px;align-items:center; }
 .gacha-companion { grid-column:1;grid-row:1/3;width:100%;height:auto;max-width:none; }.gacha-companion img { width:100%; }
 .gacha-speech { grid-column:2;grid-row:1;font-size:14px;line-height:1.7;padding:10px;min-height:0; }
 .gacha-rules { grid-column:2;grid-row:2;gap:5px; }.gacha-rules p { font-size:12px; }.gacha-rule-heart { font-size:24px; }
 .gacha-screen .small-home { bottom:30px;right:7%; }.gacha-save-status { left:7%;bottom:96px;max-width:86%;font-size:12px; }
 .gacha-dialog { padding:22px 16px; }.gacha-dialog h2 { font-size:20px; }.gacha-eyebrow { font-size:12px;margin-top:15px; }.collection-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }.collection-summary { font-size:14px; }.gacha-dialog-actions { gap:8px; }
}
@media(prefers-reduced-motion:reduce){.gacha-machine *,.gacha-screen *,.gacha-dialog * { animation:none!important;transition:none!important; }}
@media(max-width:360px) and (max-aspect-ratio:4/3){
 .house-menu { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));top:16%; }
 .house-menu button { flex-direction:row;justify-content:center;min-height:52px;font-size:14px;padding:8px;gap:8px; }
}
