/* Optional visual finish. Remove the link to polish.css in index.html to restore the previous look. */
.front-screen button,.topbar button,.scorebar button,.actionbar button,.lobby button{
 transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,filter .18s ease;
}
.front-screen .front-brand-button{
 display:inline-flex;align-items:center;gap:4px;width:auto;min-height:44px;
 margin:0;padding:4px 10px;border:1px solid #dfc48565;border-radius:11px;background:#ffffff07;color:#e8cf96;
 box-shadow:inset 0 1px 0 #ffffff14,0 3px 9px #07171020;text-align:left;cursor:pointer;font:inherit;font-weight:850;letter-spacing:.16em;
 -webkit-appearance:none;appearance:none;
}
.front-screen .front-brand-button small{font-weight:600}
.front-screen .front-brand-button:hover:not(:disabled){transform:translateY(-3px);filter:none;box-shadow:inset 0 1px 0 #ffffff3d,0 8px 15px #07171070;border-color:#f4d798;color:#f4dda8;background:#ffffff12}
.front-screen .front-brand-button:active:not(:disabled){transform:translateY(1px);filter:none;box-shadow:inset 0 2px 5px #07171070}
.front-main,.front-entry .front-main,.action.primary,.front-choices button.active{
 background:linear-gradient(180deg,#f8e1a7 0%,#e5c681 48%,#cfa85f 100%);
 border:1px solid #ffe8b0;
 box-shadow:inset 0 2px 1px #fff7d080,inset 0 -3px 0 #8f6c3580,0 6px 14px #07140f70;
 text-shadow:0 1px 0 #fff5cd77;
}
.front-actions button,.front-choices button:not(.active),.front-back,.topbar .text-button,.scorebar button,.action.secondary,.action.ghost{
 background-image:linear-gradient(165deg,#ffffff28 0%,#ffffff08 31%,#00000016 100%);
 box-shadow:inset 0 1px 0 #fff6df38,inset 0 -2px 0 #09191065,0 5px 12px #04140f55;
}
.front-screen button:hover:not(:disabled):not(:where(.front-backspace)),.topbar button:hover:not(:disabled),.scorebar button:hover:not(:disabled),.actionbar button:hover:not(:disabled){
 transform:translateY(-2px);filter:brightness(1.08);box-shadow:inset 0 1px 0 #fff7da66,0 9px 18px #04140f88;
}
.front-screen button:active:not(:disabled):not(:where(.front-backspace)),.topbar button:active:not(:disabled),.scorebar button:active:not(:disabled),.actionbar button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 3px 7px #07140f60;filter:brightness(.96)}
.front-screen button:focus-visible,.topbar button:focus-visible,.actionbar button:focus-visible{outline:2px solid #ffdf86;outline-offset:3px}
.front-screen button:disabled,.actionbar button:disabled{box-shadow:none;filter:none}
.platform-links button{
 border:1px solid #ffffff50;
 color:#fff;
 box-shadow:inset 0 1px 1px #ffffff85,inset 0 -2px 1px #0005,0 6px 14px #07161065;
}
.platform-links button:first-child{background:linear-gradient(150deg,#708dce 0%,#4c5c9f 54%,#3a426f 100%)}
.platform-links button:last-child{background:linear-gradient(150deg,#8ccb81 0%,#438c72 54%,#2b665d 100%)}
.platform-links button:hover{filter:brightness(1.15)}
.platform-links svg{width:36px;height:36px;overflow:visible;shape-rendering:geometricPrecision}
.platform-links button:first-child svg{filter:drop-shadow(0 3px 2px #172c5780)}
.platform-links button:last-child svg{filter:drop-shadow(0 3px 2px #164e3477)}
@media(prefers-reduced-motion:reduce){.front-screen button,.topbar button,.scorebar button,.actionbar button,.lobby button{transition:none}}

/* Layered controls for the home screen. The label stays centered; descriptions read from the left. */
.front-screen .front-actions button:not(.front-rating-soon){
 position:relative;isolation:isolate;overflow:hidden;align-items:stretch;justify-content:center;
 padding:18px 23px;border:1px solid #a5d1b88c;border-radius:19px;
 background-color:#1d4539;
 background-image:radial-gradient(ellipse at 50% -38%,#7be8b735 0%,transparent 72%),linear-gradient(130deg,#27664e 0%,#174f3b 48%,#0d3528 100%);
 box-shadow:inset 0 1px 1px #e2ffeb9a,inset 0 -4px 2px #051b1680,0 4px 0 #092921,0 11px 25px #0618149c;
 transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
}
.front-screen .front-actions button:not(.front-rating-soon):before{
 content:'';position:absolute;z-index:-1;inset:1px 3px 50%;border-radius:17px 17px 50% 50%;
 background:linear-gradient(#ffffff16,transparent);pointer-events:none;
}
.front-screen .front-actions button.front-play{
 min-height:121px;background-color:#b18b4b;
 background-image:radial-gradient(ellipse at 50% -38%,#ffeeb84d 0%,transparent 75%),linear-gradient(135deg,#f0cd71 0%,#d9a83e 54%,#a46d24 100%);
 color:#102b21;border-color:#ffdd89;
 box-shadow:inset 0 2px #fffbe5bd,inset 0 -5px 2px #7453288c,0 5px 0 #604823,0 13px 28px #071813a8;
}
.front-screen .front-actions button strong{display:block;text-align:center;font-size:clamp(17px,2.5vw,23px);letter-spacing:.005em;font-weight:800;line-height:1.2}
.front-screen .front-actions button span{display:block;text-align:left;margin:2px 0 0 7px;font-size:12px;line-height:1.5;color:#d0e2d6}
.front-screen .front-actions button.front-play span{color:#183729}
.front-screen .front-actions button:hover:not(:disabled){transform:translateY(-4px) scale(1.012);filter:brightness(1.08);box-shadow:inset 0 2px #fff9,inset 0 -4px 2px #1a3b30,0 7px 0 #0a2b23,0 19px 28px #061814bd}
.front-screen .front-actions button.front-play:hover:not(:disabled){box-shadow:inset 0 2px #fffbd5,inset 0 -5px 2px #806138,0 7px 0 #604823,0 20px 29px #061814bb}
.front-screen .front-actions button:active:not(:disabled){transform:translateY(3px) scale(.994);filter:brightness(.99);box-shadow:inset 0 5px 10px #07191088,0 2px 3px #06181475}
.front-screen .front-actions button.front-rating-soon{min-height:98px;align-items:stretch;justify-content:center;opacity:.52;filter:saturate(.5);cursor:default}
.front-screen .front-actions button.front-rating-soon strong{text-align:center}
.front-screen .front-actions button.front-rating-soon span{text-align:left;margin-left:7px}
.front-screen .room-card:hover:not(.locked){transform:translateY(-3px);filter:brightness(1.1);border-color:#e5d28e;box-shadow:inset 0 1px #ffffff9a,0 14px 25px #071813a8}
.front-screen .room-card:active:not(.locked){transform:translateY(1px);filter:brightness(.97)}
@media(max-width:550px){.front-screen .front-actions button.front-play{min-height:99px}.front-screen .front-actions button:not(.front-rating-soon){min-height:83px;padding:14px 17px}.front-screen .front-actions button span{font-size:11px}}
@media(prefers-reduced-motion:reduce){.front-screen .front-actions button:not(.front-rating-soon){transition:none}}

.front-screen .front-shortcuts button{background:linear-gradient(135deg,#213c2e,#10271f);border-color:#bb934d99;color:#f2d394;box-shadow:inset 0 1px #fff2,0 3px 7px #0005}.front-screen .front-shortcuts button:hover{background:linear-gradient(135deg,#2c503b,#193a2a);border-color:#edc56e;color:#ffe7ac}.front-screen .front-actions button:not(.front-rating-soon):not(.front-play) strong{color:#f6e6bb}

/* Metallic home buttons: a restrained highlight passes behind the labels. */
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button{
 position:relative;isolation:isolate;overflow:hidden;
 border:1px solid #c9b879;border-radius:20px;
 background:radial-gradient(ellipse at 15% 0%,#60b78b45,transparent 65%),linear-gradient(125deg,#235f49 0%,#164b39 45%,#092e25 100%);
 color:#f8e9ba;
 box-shadow:inset 0 1px 1px #e5ffe77a,inset 0 -3px 3px #041d17b0,0 4px 0 #08291f,0 8px 22px #03140f80,0 0 17px #d5bb6610;
 transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button.front-play{
 border-color:#ffe5a0;
 background:radial-gradient(ellipse at 18% 0%,#fff5c996,transparent 60%),linear-gradient(120deg,#f3d98c 0%,#eac35f 32%,#d4a040 64%,#ae792d 100%);
 color:#183225;
 box-shadow:inset 0 2px 1px #fff7d2cc,inset 0 -4px 3px #7b501b80,0 5px 0 #67481f,0 10px 27px #04160fcc,0 0 24px #e6bd4924;
}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button::before{
 content:"";position:absolute;z-index:0;inset:-60% auto -60% -75%;width:65%;border-radius:0;
 background:linear-gradient(100deg,transparent 10%,#fff9d80a 30%,#fff4c53d 48%,#ffffff55 50%,#fff4c51f 56%,transparent 75%);
 pointer-events:none;opacity:0;
 transform:translate3d(0,0,0) skewX(-18deg);
 animation:pastura-button-shimmer 9s ease-in-out infinite;
}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button.front-play::before{animation-duration:7.5s}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row.secondary>button:first-child::before{animation-delay:1.8s}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row.secondary>button:last-child::before{animation-delay:3.6s}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button::after{
 content:"";position:absolute;inset:3px;z-index:0;pointer-events:none;border-radius:16px;
 border:1px solid #f1dca633;box-shadow:inset 0 1px 0 #ffffff14;
}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button strong,
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button span{position:relative;z-index:1}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button strong{
 font-size:17px;letter-spacing:.015em;text-shadow:0 1px 2px #00170e99;
}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button.front-play strong{
 font-size:clamp(20px,3vw,25px);letter-spacing:.01em;text-shadow:0 1px 0 #fff3c577;
}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button span{color:#d6e3ce}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button.front-play span{color:#2e4128}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button:active:not(:disabled){
 transform:translateY(2px);filter:none;box-shadow:inset 0 3px 9px #061c1840,0 2px 0 #173322,0 5px 12px #03140f80;
}
@keyframes pastura-button-shimmer{
 0%,6%{transform:translate3d(0,0,0) skewX(-18deg);opacity:0}
 10%{opacity:.85}
 34%{transform:translate3d(310%,0,0) skewX(-18deg);opacity:0}
 100%{transform:translate3d(310%,0,0) skewX(-18deg);opacity:0}
}
@media(hover:hover){
 .front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button:hover:not(:disabled){
  transform:translateY(-2px);filter:none;border-color:#ffe4a0;
  box-shadow:inset 0 1px 2px #e5ffe799,inset 0 -3px 3px #041d17b0,0 5px 0 #08291f,0 13px 25px #03140f99,0 0 20px #e6c77326;
 }
 .front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button.front-play:hover:not(:disabled){
  box-shadow:inset 0 2px 2px #fff7d2ee,inset 0 -4px 3px #7b501b80,0 6px 0 #67481f,0 14px 29px #04160fcc,0 0 28px #e6bd4940;
 }
}
.front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button:disabled::before{animation:none;opacity:0}
@media(prefers-reduced-motion:reduce){
 .front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button{transition:none}
 .front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button::before{animation:none;opacity:0}
 .front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button:hover:not(:disabled),
 .front-screen[data-view="home"] .front-actions.home-menu .home-menu-row>button:active:not(:disabled){transform:none}
}
