:root{--bg:#09090f;--card:#13131d;--muted:#9292a5;--text:#f8f7ff;--pink:#ff4f9a;--purple:#8b5cf6;--line:#28283a}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -10%,#321633 0,#09090f 45%);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;min-height:100vh}
.wrap{max-width:760px;margin:auto;padding:28px 18px 50px}.brand{text-align:center;font-family:"Arial Rounded MT Bold","Avenir Next",system-ui,sans-serif;font-weight:1000;font-size:clamp(30px,7vw,46px);letter-spacing:-2.2px;line-height:1.08;text-shadow:0 3px 24px #ff4f9a33}.brand span{background:linear-gradient(110deg,#ff7ab5,var(--pink) 55%,#c084fc);background-clip:text;-webkit-background-clip:text;color:transparent}.tag{text-align:center;color:var(--muted);margin:8px 0 25px}
.card{background:rgba(19,19,29,.92);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 20px 70px #0006;margin:14px 0}
h1,h2,h3{margin:0 0 10px}.center{text-align:center}.muted{color:var(--muted)}input{width:100%;padding:15px;border-radius:14px;border:1px solid var(--line);background:#0d0d15;color:white;font-size:16px;margin:8px 0}
button{border:0;border-radius:14px;padding:14px 18px;font-weight:800;font-size:15px;cursor:pointer;background:linear-gradient(135deg,var(--pink),var(--purple));color:white;transition:.15s}button:hover{transform:translateY(-1px)}button.secondary{background:#222235}button.danger{background:#3a1e2b}button:disabled{opacity:.4;cursor:not-allowed;transform:none}
.row{display:flex;gap:10px}.row>*{flex:1}.room{font-size:38px;font-weight:1000;letter-spacing:7px;text-align:center;background:#0b0b12;border-radius:16px;padding:15px;margin:15px 0}
.players{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.pill{padding:8px 12px;border-radius:999px;background:#242436}.foodgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.food{background:#191927;border:1px solid var(--line);border-radius:16px;padding:14px 8px;min-height:94px;color:white}.food .emoji{font-size:34px;display:block}.food.banned{border:2px solid var(--pink);background:#341629}.food.banned:after{content:"✕";display:block;color:#ff75b1;font-size:12px}.counter{text-align:center;color:#ff79b5;font-weight:900;margin:8px}
.hidden{display:none!important}.resultEmoji{font-size:110px;animation:pop .7s ease}.resultName{font-size:42px;font-weight:1000;margin:8px}.gacha{height:150px;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#0b0b12;display:flex;align-items:center;justify-content:center;font-size:64px;position:relative}.gacha:after{content:"";position:absolute;left:0;right:0;top:50%;height:3px;background:var(--pink);box-shadow:0 0 20px var(--pink)}.spin{animation:spin 1.4s cubic-bezier(.2,.7,.2,1)}@keyframes spin{0%{transform:translateY(-100px)}100%{transform:translateY(0)}}@keyframes pop{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
#result{position:relative}.heartCelebration{position:absolute;inset:0;overflow:visible;pointer-events:none;z-index:2}.floatingHeart{position:absolute;left:var(--left);bottom:12px;font-size:clamp(20px,5vw,36px);opacity:0;filter:drop-shadow(0 4px 10px #ff4f9a55);animation:heartFloat var(--duration) ease-out var(--delay) forwards}@keyframes heartFloat{0%{opacity:0;transform:translate(0,0) scale(.55) rotate(-12deg)}12%{opacity:1}100%{opacity:0;transform:translate(var(--drift),-260px) scale(1.2) rotate(18deg)}}
@media(prefers-reduced-motion:reduce){.floatingHeart{animation:none;opacity:0}.resultEmoji{animation:none}}
.status{padding:12px;border-radius:12px;background:#10101a;color:#c8c8d8;margin:12px 0}.small{font-size:13px}.footer{text-align:center;color:#66667a;margin-top:25px}
.priorityToggle{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px auto 8px}.priorityToggle input{appearance:none;width:46px;height:26px;padding:0;margin:0;border:0;border-radius:999px;background:#343447;position:relative;cursor:pointer;transition:.2s;flex:none}.priorityToggle input:checked{background:linear-gradient(135deg,var(--pink),var(--purple))}.priorityToggle input:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.2s}.priorityToggle input:checked:before{transform:translateX(20px)}
.priorityChoice{background:#242436;border:1px solid var(--line);}
@media(max-width:560px){.foodgrid{grid-template-columns:repeat(2,1fr)}.resultName{font-size:34px}.row{flex-direction:column}}

/* Language control and touch friendly small screen layout */
.topbar{display:flex;align-items:center;justify-content:center;position:relative;min-height:46px}
.languageToggle{position:absolute;right:0;top:0;min-height:40px;padding:9px 14px;font-size:13px}
button,input{touch-action:manipulation}
button:focus-visible,input:focus-visible{outline:3px solid #ff8fbe;outline-offset:2px}
@media(max-width:600px){
  body{min-height:100dvh}
  .wrap{width:100%;max-width:520px;padding:16px 12px calc(28px + env(safe-area-inset-bottom))}
  .topbar{justify-content:flex-start;padding-right:82px;min-height:42px}
  .brand{font-size:26px;text-align:left;line-height:1.2}
  .languageToggle{right:0;top:0;min-height:42px;padding:9px 12px}
  .tag{font-size:14px;line-height:1.45;margin:8px 4px 18px;text-align:left}
  .card{padding:18px 15px;border-radius:19px;margin:11px 0}
  h2{font-size:21px;line-height:1.25}
  h3{font-size:17px;line-height:1.3}
  p{line-height:1.5}
  input{min-height:50px;font-size:16px;padding:13px;margin:7px 0}
  button{min-height:48px;padding:12px 14px;font-size:14px;line-height:1.25}
  .row{gap:9px}
  .row>*{width:100%;flex:auto}
  .room{font-size:34px;letter-spacing:6px;padding:13px 8px;margin:12px 0}
  .priorityToggle{align-items:flex-start;text-align:left;justify-content:flex-start;line-height:1.4;margin:15px 0 9px}
  .priorityToggle input{margin-top:1px;min-height:26px}
  .foodgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
  .food{min-width:0;min-height:86px;padding:12px 7px;font-size:13px;line-height:1.3;overflow-wrap:anywhere}
  .food .emoji{font-size:30px;margin-bottom:3px}
  .counter{line-height:1.45}
  .status{line-height:1.45;padding:11px}
  .players{gap:8px}
  .pill{max-width:100%;overflow-wrap:anywhere}
  .resultEmoji{font-size:88px}
  .resultName{font-size:clamp(27px,8vw,36px);line-height:1.15;overflow-wrap:anywhere}
  .gacha{height:128px}
  .footer{font-size:12px;line-height:1.5;margin:20px 8px 0}
}
@media(max-width:360px){
  .wrap{padding-left:9px;padding-right:9px}
  .card{padding:16px 12px}
  .brand{font-size:23px}
  .languageToggle{font-size:12px;padding:8px 10px}
  .foodgrid{gap:6px}
  .room{font-size:30px;letter-spacing:4px}
}
