/* Title screen: sky over the sea like the match, a miniature board, chunky logo and a menu card in the action-panel look. */
body:not(.playing){min-height:100svh;background:linear-gradient(#7ec8ff,#bfe6ff 55%,#e4f6ff)}
body:not(.playing) main{max-width:none;padding:0}
.title-screen{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,430px);gap:2vw;align-items:center;padding:24px max(4vw,16px) 30px;overflow:hidden;isolation:isolate}
.title-clouds{z-index:-1}
.title-left{display:flex;flex-direction:column;align-items:center;min-width:0}

/* Logo */
.title-logo{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:inherit;font-family:var(--display);animation:logo-in .6s cubic-bezier(.2,1.6,.4,1) both}
.logo-kicker{font-weight:600;font-size:13px;letter-spacing:2.5px;color:var(--ink2);background:var(--pop);border:3px solid var(--ink2);border-radius:99px;padding:3px 14px;box-shadow:0 3px 0 var(--ink2);transform:rotate(-2deg)}
.logo-word{font-weight:700;font-size:clamp(46px,7.2vw,112px);line-height:.95;letter-spacing:-1px;color:#ffc933;-webkit-text-stroke:.13em var(--ink2);paint-order:stroke fill;text-shadow:0 .09em 0 var(--ink2);margin-top:8px}
.logo-tour{display:flex;align-items:center;gap:.35em;margin-top:-.08em;font-weight:700;font-size:clamp(22px,2.8vw,40px);letter-spacing:.42em;padding:.12em .3em .12em .55em;color:#fff;background:#1f9a4f;border:4px solid var(--ink2);border-radius:14px;box-shadow:0 5px 0 var(--ink2);transform:rotate(-3deg)}
.logo-flag{width:1.15em;height:.8em;flex:none;background:radial-gradient(circle,#2b55b8 0 .19em,#ffd23f .2em);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.title-tag{margin:18px 0 0;max-width:560px;text-align:center;font-family:var(--display);font-weight:600;font-size:clamp(16px,1.5vw,21px);line-height:1.3;color:var(--ink2);text-shadow:0 2px 0 #fff9;text-wrap:balance}
@keyframes logo-in{from{opacity:0;transform:translateY(-24px) scale(.9)}}

/* Miniature board */
.title-scene{width:min(100%,860px);margin-top:-6px}
.title-board{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 14px 18px #0b3d5f40)}
.title-pawn{animation:pawn-hop 2.4s ease-in-out infinite}.title-pawn.p1{animation-delay:-.6s}.title-pawn.p2{animation-delay:-1.2s}.title-pawn.p3{animation-delay:-1.8s}
@keyframes pawn-hop{0%,70%,100%{transform:translateY(0)}80%{transform:translateY(-14px)}90%{transform:translateY(0)}}

/* Menu card */
.title-right{display:flex;flex-direction:column;align-items:stretch;gap:14px}
@keyframes card-in{from{opacity:0;transform:translateX(30px)}}
.menu-card{animation:card-in .5s .1s ease-out both;position:relative;background:#16443a;color:#fff7df;border:4px solid var(--ink2);border-radius:26px;box-shadow:0 8px 0 var(--ink2),0 22px 40px #0b3d5f55;padding:30px 26px 24px}
.menu-tab{position:absolute;top:-17px;left:22px;font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:2.5px;color:var(--ink2);background:var(--pop);border:3px solid var(--ink2);border-radius:10px;padding:3px 12px;box-shadow:0 3px 0 var(--ink2);transform:rotate(-2deg)}
.menu-card h2{font-family:var(--display);font-weight:700;font-size:34px;line-height:1;margin:2px 0 6px;color:#fff}
.menu-card label{color:#c3d3c4;font-size:12px;letter-spacing:.5px;text-transform:uppercase;margin:14px 0 6px}
.menu-card input,.menu-card select{border:3px solid var(--ink2);border-radius:14px;background:#fff;color:var(--ink2);padding:12px 14px;font-weight:700;margin:0}
.menu-card input::placeholder{color:#8a948e;font-weight:400}
.menu-card button{font-family:var(--display);border:3px solid var(--ink2);border-radius:16px;box-shadow:var(--toy-shadow);transition:transform .08s,box-shadow .08s,background .15s}
.menu-card button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 0 var(--ink2)}
.menu-card button:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--ink2)}
.menu-card .secondary{background:#fff;color:var(--ink2);padding:12px 16px}
.mode-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0 6px}
.menu-card .mode-option{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:70px;padding:8px 10px;text-align:left;background:#fffaf0;color:var(--ink2);font-size:15px}
.menu-card .mode-option.active{background:var(--pop)}
.mode-option small{font-family:inherit;font-size:11px;font-weight:500;line-height:1.2}
.menu-card .room-hint{margin:9px 0 0;color:#c3d3c4;font-size:12px;line-height:1.35}
.play-btn{width:100%;margin-top:20px;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--pop);color:var(--ink2);font-size:24px;font-weight:700;letter-spacing:.5px;padding:14px 18px;animation:play-pulse 2.2s ease-in-out infinite}
.play-btn.primary:hover{background:#ffd75c}
.play-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink2);color:var(--pop);font-size:15px;padding-left:3px}
@keyframes play-pulse{50%{box-shadow:0 4px 0 var(--ink2),0 0 0 7px #ffc93355}}
.menu-card .divider{color:#c3d3c4;margin:20px 0 10px}.menu-card .divider:before,.menu-card .divider:after{background:#ffffff33}
.menu-card .join-row input{letter-spacing:3px}

/* Chips, rules */
.title-chips{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.title-chips li{font-family:var(--display);font-weight:600;font-size:13px;color:var(--ink2);background:#fffaf0;border:3px solid var(--ink2);border-radius:99px;padding:4px 12px;box-shadow:0 3px 0 var(--ink2);white-space:nowrap}
.rules-btn{align-self:center;font-family:var(--display);font-weight:600;font-size:15px;color:var(--ink2);background:#fff;border:3px solid var(--ink2);border-radius:99px;padding:6px 16px;box-shadow:0 3px 0 var(--ink2)}
.rules-btn span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--pop);border:2px solid var(--ink2);font-size:12px;margin-right:4px}

.boarding-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:#103b30c9;backdrop-filter:blur(5px)}
.boarding-card{width:min(440px,100%);padding:28px 24px 22px;text-align:center;background:#fffaf0;border:4px solid var(--ink2);border-radius:26px;box-shadow:0 9px 0 var(--ink2),0 24px 60px #0006;animation:boarding-in .3s ease-out both}
.boarding-kicker{display:inline-block;padding:4px 12px;background:var(--pop);border:2px solid var(--ink2);border-radius:99px;font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:1.5px}
.boarding-card h2{margin:14px 0 18px;color:var(--ink2);font-family:var(--display);font-size:clamp(24px,6vw,34px)}
/* Boarding pass: yellow stub with the plane, perforation, passenger name with their seat colour */
.boarding-ticket{display:flex;align-items:stretch;min-height:92px;background:#fff;border:3px solid var(--ink2);border-radius:18px;box-shadow:0 4px 0 var(--ink2);color:var(--ink2);font-family:var(--display);font-size:clamp(19px,5vw,27px);text-align:left;overflow:hidden}
.boarding-stub{flex:none;display:grid;place-items:center;width:84px;background:var(--pop);border-right:3px dashed var(--ink2)}.boarding-stub .ico{width:44px;height:44px}
.boarding-pass{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;padding:10px 16px}
.boarding-pass small{font-family:"Nunito",sans-serif;font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#52605a}
.boarding-ticket strong{display:flex;align-items:center;gap:10px;overflow-wrap:anywhere}
.boarding-ticket[style*="--who"] strong::before{content:"";flex:none;width:18px;height:18px;border-radius:50%;background:var(--who);border:3px solid var(--ink2)}
.boarding-ticket.landed{animation:boarding-land .35s ease-out}
@keyframes boarding-land{40%{transform:scale(1.05) rotate(-1deg)}}.boarding-roll{animation:boarding-roll .14s ease-out}.boarding-card p{margin:18px 0 0;color:#53645b;font-size:14px;font-weight:700}
@keyframes boarding-in{from{opacity:0;transform:translateY(12px) scale(.96)}}
@keyframes boarding-roll{from{opacity:.2;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.boarding-card,.boarding-roll,.boarding-ticket.landed{animation:none}}

footer.title-foot{border:0;color:var(--ink2);max-width:none;padding:0 max(4vw,16px) 16px;margin-top:-34px;position:relative}
body.playing footer.title-foot{display:none}

@media(max-width:900px){
  .title-screen{grid-template-columns:1fr;gap:6px;padding:20px 16px 28px;align-items:start}
  .title-tag{margin-top:12px}
  .title-scene{margin:-4px -16px 0;width:calc(100% + 32px);max-width:600px}
  .title-right{margin-top:-40px;max-width:480px;width:100%;justify-self:center}
  .menu-card{padding:28px 20px 20px}
  .menu-card h2{font-size:28px}
  footer.title-foot{margin-top:0}
}
@media(max-width:420px){.title-chips li{font-size:12px;padding:3px 10px}.play-btn{font-size:21px}}
@media(prefers-reduced-motion:reduce){.title-logo,.menu-card,.title-pawn,.play-btn{animation:none}}
footer.title-foot a{color:inherit;font-weight:800}
