/* React presentation layer. Existing game rules and table controls remain intact. */
:root{--ui-blue:#146b9b;--ui-deep:#102f48;--ui-white:#fffdf8;--ui-coral:#d17458}
body.home-page,body.cafe-page{background:linear-gradient(180deg,#f5f9f7 0%,#fffaf0 58%,#eaf3f4 100%)}
.react-header{max-width:none;margin:0;padding-inline:max(28px,calc((100vw - 1240px)/2));min-height:84px;border-radius:0;box-shadow:0 8px 30px #0b3d5b13}
.react-header .mark{font-size:35px;color:var(--ui-deep)}
.react-header nav{display:flex;align-items:center;gap:3px}
.react-header nav a{font-size:14px;letter-spacing:.01em}
.react-header nav a[aria-current=page]{background:#dfedf3;color:#0b537e}
.react-header .account-link{border-radius:999px}
.react-nav-toggle{display:none;border:1px solid #c8dce4;background:#fff;color:#134b6c;border-radius:999px;padding:10px 14px;font-weight:800;cursor:pointer}
.react-main{overflow:clip}
.home-intro{position:relative;padding-block:62px 30px}
.home-intro:before{content:'';position:absolute;inset:-130px -25vw -140px;z-index:-1;background:radial-gradient(circle at 50% 18%,#d9edf5aa,transparent 52%)}
.home-intro h1{color:#123b57;letter-spacing:-.035em;text-wrap:balance}
.home-intro p{font-size:clamp(17px,1.75vw,20px);color:#496b7b}
.react-stories{max-width:1250px;margin-top:22px}
.react-stories .home-slides{height:clamp(330px,46vw,555px);border:6px solid #fff;border-radius:31px;box-shadow:0 30px 62px #1648682e;isolation:isolate}
.react-stories .home-slide img{transition:transform 6.5s ease;transform:scale(1.02)}
.react-stories .home-slide.is-active img{transform:scale(1.07)}
.react-stories .slide-shade{inset:0;background:linear-gradient(90deg,#061e34b0,transparent 72%),linear-gradient(0deg,#061e34cc,transparent 65%)}
.react-stories .slide-copy{left:6%;bottom:8%;gap:14px}
.react-stories .slide-copy small{color:#fff1d4}
.react-stories .slide-copy strong{font-size:clamp(31px,4.1vw,55px);text-wrap:balance}
.react-stories .slide-copy em{background:#fffdf7;color:#174666;padding:12px 18px;box-shadow:0 9px 22px #102b3455}
.react-stories .home-slide:hover .slide-copy em{background:#f0c3a0}
.react-stories .slide-arrow{width:44px;height:44px;box-shadow:0 4px 12px #183e5920}
.home-crossroads{border-block:8px solid #fff;box-shadow:inset 0 30px 45px #071e1d15}
.crossroads-content>h2{font-family:Fraunces,serif;letter-spacing:-.02em}
.home-afterword{max-width:900px}
.home-afterword p{color:#194a64}
.home-afterword a{color:#0e638e}
.cafe-page-hero{position:relative}
.cafe-page-photo{border:7px solid #fff;border-radius:27px;box-shadow:18px 21px 0 #d5e9ed,0 25px 45px #18435a24}
.cafe-page-intro h1{color:#153f5b;letter-spacing:-.025em}
.cafe-page-games{background:radial-gradient(circle at 15% 0,#2e7693,#153e5c 78%);border-block:7px solid #fff}
.cafe-page-games .section-head{max-width:900px}
.cafe-page-games .section-head h2{letter-spacing:-.03em}
.cafe-page-games .games{gap:26px}
.cafe-page-games .game{position:relative;overflow:hidden;min-height:290px;border:1px solid #ffffffa0;border-radius:25px;box-shadow:0 12px 30px #082f4a38;isolation:isolate}
.cafe-page-games .game:before{content:'';position:absolute;inset:0 0 auto auto;width:165px;height:165px;border-radius:50%;background:#d8eff280;transform:translate(48px,-58px);z-index:-1}
.cafe-page-games .game:hover{transform:translateY(-7px);box-shadow:0 22px 38px #062d484d}
.cafe-page-games .game-name{color:#133b58}
.cafe-page-games .game b{display:flex;justify-content:space-between;align-items:center;padding-top:15px;border-top:1px solid #bfd8df;color:#0e5f88}
.cafe-page-games .game b span{font-size:22px}
.cafe-back a{font-weight:800;text-underline-offset:5px}
.react-game-menu{position:relative;display:inline-flex;align-items:center}
.react-game-menu-button{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid #c7dae2;background:#fffdf7;color:#164b68;border-radius:999px;font-weight:800;white-space:nowrap;box-shadow:0 4px 10px #0d2c3b17;cursor:pointer}
.react-game-menu-button:hover,.react-game-menu-button[aria-expanded=true]{background:#e4f2f6}
.react-game-menu-button span:first-child{font-size:20px;line-height:1}
.react-game-menu-chevron{font-size:17px}
.react-game-menu-links{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;display:grid;gap:2px;padding:9px;background:#fffdf8;border:1px solid #c4dbe3;border-radius:18px;box-shadow:0 15px 38px #0c2b4080;z-index:100;color:#1b4053}
.react-game-menu-links a{display:block;padding:10px 12px;border-radius:10px;color:#1b4053;text-decoration:none;font-weight:750;white-space:nowrap}
.react-game-menu-links a:hover,.react-game-menu-links a[aria-current=page]{background:#e1f0f4;color:#0e5c87}
body:has(.react-game-menu) .entry-card{border-radius:22px;box-shadow:0 16px 34px #102f4030}
body:has(.react-game-menu) .entry-card .primary,body:has(.react-game-menu) .primary{transition:transform .18s ease,filter .18s ease}
body:has(.react-game-menu) .entry-card .primary:hover,body:has(.react-game-menu) .primary:hover{transform:translateY(-2px);filter:brightness(1.06)}
body:has(.react-game-menu) .felt{border-radius:34px;box-shadow:inset 0 0 46px #1b10057a,0 24px 52px #122e3b32}
body:has(.react-game-menu) .playing-card{box-shadow:2px 6px 5px #1b10095e,0 0 0 1px #6b57351c}
body:has(.react-game-menu) .playing-card:focus-visible{outline:3px solid #ffd980;outline-offset:3px}
body:has(.react-game-menu) .scoreboard{border-radius:18px}
body:has(.react-game-menu) .side-hub.social-panel{border-color:#c6d7d1;box-shadow:0 16px 32px #122e3b1f}
body:has(.react-game-menu) .side-tabs button{transition:background .18s ease,transform .18s ease}
body:has(.react-game-menu) .side-tabs button:hover{transform:translateY(-1px)}
@media(max-width:850px){
 .react-header{padding:12px 18px;display:flex;flex-direction:row;justify-content:space-between;flex-wrap:wrap;align-items:center;min-height:70px}
 .react-nav-toggle{display:inline-flex;align-items:center;gap:7px;margin-inline-start:auto}
 .react-header nav{display:none;width:100%;padding:10px 0 2px;gap:5px;position:static}
 .react-header nav.react-nav-open{display:flex}
 .react-header nav a{background:#edf5f6;border-radius:10px}
 .react-header nav .account-link,.react-header #site-language{position:static}
 .react-header nav .account-link{order:8}
 .react-header #site-language{order:9}
 .cafe-page-hero{padding-inline:20px}
 .cafe-page-games .games{grid-template-columns:1fr}
 .react-game-menu-button{padding:7px 9px;font-size:12px}
}
@media(max-width:650px){
 .react-header{min-height:68px;gap:8px}
 .react-header .mark{font-size:29px}
 .react-header .logo-stage{transform:scale(.86);transform-origin:left center;width:34px}
 .react-header nav.react-nav-open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .react-header nav a,.react-header #site-language{min-height:41px;display:flex;align-items:center;justify-content:center;text-align:center}
 .home-intro{padding:43px 19px 18px}
 .home-intro h1{font-size:clamp(39px,10vw,57px)}
 .react-stories{padding-inline:15px;margin-bottom:43px}
 .react-stories .home-slides{height:440px;border-width:4px;border-radius:22px}
 .react-stories .home-slide img{object-position:center}
 .react-stories .slide-shade{background:linear-gradient(0deg,#061e34d9,transparent 80%)}
 .react-stories .slide-copy strong{font-size:clamp(29px,8vw,40px)}
 .cafe-page-games .game{min-height:240px}
 .react-game-menu-links{right:auto;left:0;max-width:calc(100vw - 20px)}
}
@media(prefers-reduced-motion:reduce){.react-stories .home-slide img,.cafe-page-games .game,.react-game-menu-button{transition:none!important;transform:none!important}}


/* Match the classic static header frame on home and cafe only. */
header.react-header{border-bottom:1px solid #d8dfcf!important;border-radius:0 0 22px 22px!important;background:#fffaf0d9!important;box-shadow:0 9px 28px #244e3511!important;backdrop-filter:blur(12px)}

header.react-header .react-nav{flex:0 1 auto!important}

header.react-header{max-width:1280px!important;margin:0 auto!important;width:100%;box-sizing:border-box}
