:root{
  color-scheme:dark;
  --ink:#f6f8ff;
  --muted:#aeb6d3;
  --deep:#0b1024;
  --panel:rgba(18,25,53,.72);
  --panel-strong:rgba(12,18,42,.92);
  --line:rgba(255,255,255,.13);
  --aqua:#64e8dc;
  --violet:#9b87ff;
  --rose:#ff82c8;
  --gold:#ffd27a;
  --shadow:0 28px 90px rgba(0,0,0,.42);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{width:100%;min-height:100%;margin:0}
html{background:#0b1024}
body{
  min-height:100dvh;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 15% 18%,rgba(100,232,220,.16),transparent 34rem),
    radial-gradient(circle at 82% 22%,rgba(155,135,255,.2),transparent 32rem),
    radial-gradient(circle at 50% 95%,rgba(255,130,200,.12),transparent 34rem),
    linear-gradient(145deg,#0b1024 0%,#141b3e 48%,#10172f 100%);
  color:var(--ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-tap-highlight-color:transparent;
  overscroll-behavior:none;
}
button,a{font:inherit}
button{touch-action:manipulation}
.ambient{position:fixed;inset:0;overflow:hidden;pointer-events:none}
.ambient i{position:absolute;border-radius:50%;filter:blur(42px);opacity:.22;animation:float 13s ease-in-out infinite alternate}
.ambient i:nth-child(1){width:22rem;height:22rem;left:-8rem;top:20%;background:#52d8cf}
.ambient i:nth-child(2){width:26rem;height:26rem;right:-9rem;top:4%;background:#8f7cff;animation-delay:-4s}
.ambient i:nth-child(3){width:20rem;height:20rem;left:38%;bottom:-10rem;background:#ff7cc3;animation-delay:-8s}
@keyframes float{to{transform:translate3d(2.5rem,-2rem,0) scale(1.08)}}
.game-header{
  position:relative;
  z-index:8;
  min-height:70px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:18px;
  padding:max(12px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 12px max(18px,env(safe-area-inset-left));
  border-bottom:1px solid var(--line);
  background:rgba(10,15,35,.64);
  backdrop-filter:blur(20px);
}
.brand{justify-self:start;display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:linear-gradient(145deg,rgba(100,232,220,.28),rgba(155,135,255,.28));font:700 13px/1 Georgia,serif;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.brand-copy{display:grid;gap:1px}
.brand-copy strong{font:600 17px/1.1 Georgia,"Times New Roman",serif}
.brand-copy span{color:var(--muted);font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.header-stats{display:flex;align-items:center;gap:5px;padding:5px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.045)}
.header-stats>span{min-width:70px;padding:5px 12px;text-align:center;border-left:1px solid var(--line)}
.header-stats>span:first-child{border-left:0}
.header-stats small{display:block;color:var(--muted);font-size:7px;letter-spacing:.13em;text-transform:uppercase}
.header-stats strong{display:block;margin-top:1px;font-size:13px;font-variant-numeric:tabular-nums}
.header-button{justify-self:end;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.055);color:var(--ink);font-weight:800;cursor:pointer}
.header-button:hover,.header-button:focus-visible{outline:none;border-color:var(--aqua);background:rgba(100,232,220,.14)}
.game-layout{
  position:relative;
  z-index:2;
  width:min(1040px,calc(100% - 34px));
  min-height:calc(100dvh - 70px);
  margin:auto;
  padding:clamp(18px,3vw,38px) 0;
  display:grid;
  grid-template-columns:minmax(150px,190px) minmax(280px,360px) minmax(150px,190px);
  align-items:center;
  justify-content:center;
  gap:clamp(16px,3vw,34px);
}
.side-panel{display:grid;gap:14px}
.panel-card{border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:0 16px 50px rgba(0,0,0,.2);backdrop-filter:blur(16px)}
.preview-card{display:grid;justify-items:center;padding:16px 12px 12px}
.preview-card canvas{display:block;width:min(100%,132px);height:auto}
.preview-card small{margin-top:4px;color:var(--muted);font-size:8px;letter-spacing:.12em;text-transform:uppercase}
.panel-label{justify-self:start;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.best-card{padding:16px;text-align:center}
.best-card .panel-label{display:block;text-align:left}
.best-card strong{display:block;margin-top:9px;font:600 23px/1 Georgia,"Times New Roman",serif;color:var(--aqua);font-variant-numeric:tabular-nums}
.desktop-help{padding:16px}
.desktop-help p{display:flex;justify-content:space-between;gap:8px;margin:8px 0 0;color:var(--muted);font-size:9px}
.desktop-help b{color:var(--ink);font-weight:700}
.board-wrap{display:grid;place-items:center}
.board-frame{
  position:relative;
  width:min(100%,360px);
  aspect-ratio:1/2;
  padding:7px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(255,255,255,.1),rgba(255,255,255,.025));
  box-shadow:var(--shadow),inset 0 0 0 1px rgba(255,255,255,.06);
}
#board{display:block;width:100%;height:100%;border-radius:17px;background:#080d20}
.board-message{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%) scale(.92);z-index:4;min-width:180px;padding:10px 16px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(8,13,32,.85);color:#fff;font-size:11px;font-weight:800;letter-spacing:.09em;text-align:center;text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;backdrop-filter:blur(12px)}
.board-message.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.mobile-controls{display:none}
.overlay{
  position:fixed;
  z-index:30;
  inset:0;
  display:grid;
  place-items:center;
  padding:22px max(22px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));
  background:rgba(5,9,23,.68);
  backdrop-filter:blur(16px);
  opacity:0;
  visibility:hidden;
  transition:opacity .2s,visibility .2s;
}
.overlay.visible{opacity:1;visibility:visible}
.menu-card{
  width:min(92vw,590px);
  max-height:calc(100dvh - 36px);
  overflow:auto;
  padding:clamp(28px,5vw,50px);
  border:1px solid rgba(255,255,255,.2);
  border-radius:30px;
  background:linear-gradient(155deg,rgba(28,37,78,.96),rgba(13,20,46,.97));
  box-shadow:0 34px 110px rgba(0,0,0,.55);
  text-align:center;
}
.menu-card.compact{width:min(92vw,500px)}
.eyebrow{margin:0 0 8px;color:var(--aqua);font-size:9px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.menu-card h1,.menu-card h2{margin:0;font:500 clamp(48px,10vw,82px)/.9 Georgia,"Times New Roman",serif;letter-spacing:-.055em;background:linear-gradient(90deg,#8ff7e9,#b8a8ff,#ff9ed5,#ffe19d);-webkit-background-clip:text;background-clip:text;color:transparent}
.menu-card h2{font-size:clamp(40px,7vw,62px)}
.menu-card>p:not(.eyebrow){max-width:470px;margin:20px auto 0;color:var(--muted);font-size:14px;line-height:1.65}
.piece-ribbon{display:flex;justify-content:center;align-items:end;gap:13px;margin:26px 0 23px;height:36px}
.piece-ribbon i{position:relative;display:block;width:31px;height:31px;filter:drop-shadow(0 7px 12px rgba(0,0,0,.25))}
.piece-ribbon i:before,.piece-ribbon i:after{content:"";position:absolute;width:13px;height:13px;border-radius:3px;box-shadow:14px 0 currentColor,0 14px currentColor,14px 14px currentColor;background:currentColor}
.piece-ribbon .piece-i{color:#64e8dc;transform:scaleY(.5)}
.piece-ribbon .piece-o{color:#ffd27a}
.piece-ribbon .piece-t{color:#9b87ff;transform:rotate(45deg)}
.piece-ribbon .piece-s{color:#71e69a;transform:skewX(-18deg)}
.piece-ribbon .piece-l{color:#ff9c6b;transform:rotate(-20deg)}
.primary-button,.secondary-button{
  min-width:180px;
  min-height:50px;
  padding:0 24px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
  cursor:pointer;
}
.primary-button{border:0;background:linear-gradient(90deg,var(--aqua),#99a6ff,var(--rose));color:#091022;box-shadow:0 14px 34px rgba(100,232,220,.18)}
.primary-button:hover,.primary-button:focus-visible{outline:none;transform:translateY(-2px);box-shadow:0 18px 38px rgba(100,232,220,.28)}
.secondary-button{border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--ink)}
.secondary-button:hover,.secondary-button:focus-visible{outline:none;border-color:var(--aqua);background:rgba(100,232,220,.1)}
.home-link{display:block;width:max-content;margin:18px auto 0;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;text-underline-offset:4px}
.menu-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:26px}
.link-button{display:inline-grid;place-items:center;text-decoration:none}
.results{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:24px}
.results>div{padding:14px 8px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.04)}
.results span{display:block;color:var(--muted);font-size:8px;letter-spacing:.12em;text-transform:uppercase}
.results strong{display:block;margin-top:5px;font-size:17px;font-variant-numeric:tabular-nums}
@media(max-width:820px){
  .game-header{min-height:62px;grid-template-columns:1fr auto auto;gap:8px;padding:9px max(11px,env(safe-area-inset-right)) 9px max(11px,env(safe-area-inset-left))}
  .brand-mark{width:34px;height:34px}.brand-copy span{display:none}.header-stats{padding:4px}.header-stats>span{min-width:52px;padding:4px 7px}.header-stats small{font-size:6px}.header-stats strong{font-size:11px}.header-button{width:36px;height:36px}
  .game-layout{width:100%;min-height:calc(100dvh - 62px - 92px);padding:10px 10px 8px;grid-template-columns:1fr;align-content:start}
  .side-panel{display:none}
  .board-frame{width:min(calc((100dvh - 62px - 106px)*.5),calc(100vw - 20px),350px);min-width:250px;border-radius:20px;padding:5px}
  #board{border-radius:14px}
  .mobile-controls{
    position:fixed;
    z-index:10;
    left:0;
    right:0;
    bottom:0;
    min-height:92px;
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:5px;
    padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
    border-top:1px solid var(--line);
    background:rgba(8,13,32,.88);
    backdrop-filter:blur(20px);
  }
  .mobile-controls button{min-width:0;min-height:58px;display:grid;place-items:center;align-content:center;gap:1px;padding:5px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.055);color:var(--ink);font-weight:800}
  .mobile-controls button:active{transform:scale(.94);background:rgba(100,232,220,.15)}
  .mobile-controls span{font-size:24px;line-height:1}.mobile-controls small{color:var(--muted);font-size:7px;letter-spacing:.09em;text-transform:uppercase}
  .mobile-controls .primary-control{background:linear-gradient(145deg,rgba(100,232,220,.2),rgba(155,135,255,.2));border-color:rgba(100,232,220,.34)}
  .mobile-controls .drop-control{background:linear-gradient(145deg,rgba(255,130,200,.16),rgba(255,210,122,.12))}
}
@media(max-width:480px){
  .brand-copy{display:none}.header-stats>span{min-width:46px;padding-inline:5px}.header-stats>span:first-child{display:none}
  .board-frame{width:min(calc((100dvh - 62px - 104px)*.5),calc(100vw - 14px),340px);min-width:238px}
  .mobile-controls{gap:3px;padding-inline:5px}.mobile-controls button{min-height:56px;border-radius:12px}.mobile-controls span{font-size:21px}
  .menu-card{padding:30px 20px;border-radius:24px}.menu-card>p:not(.eyebrow){font-size:12px}.piece-ribbon{gap:8px}
  .menu-actions{display:grid}.primary-button,.secondary-button{width:100%;min-width:0}
}
@media(orientation:landscape) and (max-height:620px){
  .game-header{position:fixed;left:0;right:0;top:0;min-height:48px;padding:5px max(9px,env(safe-area-inset-right)) 5px max(9px,env(safe-area-inset-left))}
  .brand-mark{width:30px;height:30px}.brand-copy{display:none}.header-stats>span{min-width:50px;padding:2px 6px}.header-button{width:32px;height:32px}
  .game-layout{min-height:100dvh;padding:54px 92px max(8px,env(safe-area-inset-bottom));align-content:center}
  .board-frame{width:min(calc((100dvh - 64px)*.5),calc(100vw - 210px),292px);min-width:190px}
  .mobile-controls{top:48px;bottom:0;left:auto;width:82px;min-height:0;grid-template-columns:1fr;grid-template-rows:repeat(6,1fr);padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) 5px;border-top:0;border-left:1px solid var(--line)}
  .mobile-controls button{min-height:0;border-radius:12px}.mobile-controls span{font-size:19px}.mobile-controls small{font-size:6px}
  .menu-card{width:min(86vw,640px);max-height:calc(100dvh - 14px);padding:18px 28px}.menu-card h1{font-size:55px}.menu-card h2{font-size:42px}.menu-card>p:not(.eyebrow){margin-top:10px;font-size:11px;line-height:1.4}.piece-ribbon{height:28px;margin:14px 0 12px}.piece-ribbon i{transform:scale(.8)}.primary-button,.secondary-button{min-height:40px}.menu-actions{margin-top:15px}.results{margin-top:13px}
}
@media(prefers-reduced-motion:reduce){.ambient i{animation:none}.primary-button,.secondary-button,.mobile-controls button{transition:none}}
