:root {
  --menu-night: oklch(0.12 0.045 265);
  --menu-panel: oklch(0.17 0.055 255);
  --menu-ink: oklch(0.95 0.025 220);
  --menu-cyan: oklch(0.85 0.17 205);
  --menu-pink: oklch(0.72 0.29 325);
  --menu-gold: oklch(0.86 0.18 80);
  --menu-green: oklch(0.86 0.24 145);
  --menu-violet: oklch(0.68 0.23 300);
  --menu-edge: oklch(0.55 0.18 270);
  --menu-shadow: 0 0 7px currentColor, inset 0 0 14px color-mix(in oklch,currentColor 25%,transparent);
  --menu-world: url('/__l5e/assets-v1/b24657ed-170d-417c-8f45-7da5b3a8e0da/menu-world.jpg');
}
#overlay:not(.game-over){display:block;padding:0;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;background:var(--menu-night);color:var(--menu-ink);}
#mainmenu{width:min(100%,680px);min-height:100%;margin:auto;background-image:var(--menu-world);background-size:100% auto;background-repeat:repeat-y;background-position:top center;}
.menu-header{position:relative;width:100%;}
.menu-header img{display:block;width:100%;height:auto;}
.menu-control{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:filter .15s,box-shadow .15s;}
.menu-control:hover{filter:brightness(1.2);}
.menu-control:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--menu-ink);outline-offset:3px;}
.settings{position:absolute;top:10px;right:12px;width:36px;height:36px;border:1px solid var(--menu-cyan);border-radius:4px;color:var(--menu-ink);background:var(--menu-night);font-size:27px;line-height:1;}
.menu-body{padding:0 4.5% 20px;display:flex;flex-direction:column;gap:13px;}
.ornate{position:relative;border:2px solid var(--menu-edge);border-inline-color:var(--menu-gold);background:color-mix(in oklch,var(--menu-night) 93%,transparent);box-shadow:0 0 4px var(--menu-cyan),inset 0 0 7px var(--menu-edge);padding:13px 10px 7px;}
.ornate:before,.ornate:after{content:'◆';position:absolute;top:50%;transform:translateY(-50%);color:var(--menu-gold);text-shadow:0 0 7px var(--menu-gold);font-size:19px;pointer-events:none;}
.ornate:before{left:-10px}.ornate:after{right:-10px}
.language-row{display:flex;align-items:center;gap:10px;padding:8px 14px;font-weight:700;}
.language-row label{font-size:13px;}
.globe{color:var(--menu-cyan);font-size:29px;line-height:1;}
#mainmenu select{min-width:0;color:var(--menu-cyan);background:var(--menu-panel);border:1px solid var(--menu-cyan);border-radius:2px;padding:5px 10px;font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:700;letter-spacing:0;}
#langsel{flex:1;width:40%;}
.section-title{margin:0 auto 10px;text-align:center;font-family:'Orbitron',monospace;font-size:11px;font-weight:400;color:var(--menu-ink);border:1px solid var(--menu-edge);border-inline:5px double var(--menu-cyan);background:var(--menu-panel);width:75%;padding:5px 3px;line-height:1.4;}
.ornate>.section-title{margin-top:-25px;}
#modebtns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.modebtn{--piece-color:var(--menu-pink);display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:7px;padding:10px 4px 8px;min-width:0;color:var(--piece-color);border:2px solid currentColor;box-shadow:var(--menu-shadow);background:var(--menu-night) !important;border-radius:7px;font-family:'Rajdhani',sans-serif;position:relative;}
.modebtn[data-m=tet]{--piece-color:var(--menu-cyan)}
.modebtn[data-m=mix]{--piece-color:var(--menu-gold)}
.modebtn strong{font-size:17px;line-height:1.2;}
.modebtn[aria-pressed=true]{background:color-mix(in oklch,var(--piece-color) 16%,var(--menu-night)) !important;box-shadow:0 0 12px currentColor,inset 0 0 17px color-mix(in oklch,currentColor 35%,transparent);}
.modebtn[aria-pressed=true]:after{content:'◆';position:absolute;top:-8px;right:5px;font-size:12px;color:var(--menu-ink);}
.piece-art{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:83%;aspect-ratio:1;align-self:center;margin:3px 0;filter:drop-shadow(0 0 3px var(--piece-color));}
.piece-art i{background:color-mix(in oklch,var(--piece-color) 50%,var(--menu-night));border:2px solid var(--piece-color);box-shadow:inset 2px 2px 0 color-mix(in oklch,var(--piece-color) 65%,var(--menu-ink)),inset -3px -3px 0 var(--menu-edge);}
.mixed-art{display:flex;width:100%;align-items:center;gap:6px;aspect-ratio:1;}
.mixed-art .piece-art{width:50%;}
.mixed-art .tet{--piece-color:var(--menu-cyan)}
.mixed-art .pent{--piece-color:var(--menu-pink)}
.piece-caption{font-size:10px;font-weight:700;line-height:1.35;min-height:28px;color:color-mix(in oklch,var(--piece-color) 60%,var(--menu-ink));}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
#diffwrap{margin-top:6px;}
#diffbtns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;}
.diffbtn,.rulebtn{--control-accent:var(--menu-cyan);min-width:0;padding:6px 2px;border:1.5px solid var(--control-accent);border-radius:4px;color:var(--control-accent);font-family:'Rajdhani',sans-serif;font-size:20px;font-weight:700;line-height:1.25;background:var(--menu-night) !important;}
.diffbtn[data-d='80']{--control-accent:var(--menu-green)}
.diffbtn[data-d='90']{--control-accent:var(--menu-violet)}
.diffbtn[data-d=custom]{--control-accent:var(--menu-pink);font-size:17px;}
.diffbtn[aria-pressed=true],.rulebtn[aria-pressed=true]{color:var(--menu-ink);box-shadow:0 0 9px var(--control-accent),inset 0 0 17px color-mix(in oklch,var(--control-accent) 40%,transparent);background:color-mix(in oklch,var(--control-accent) 15%,var(--menu-night)) !important;}
.selection-info{font-size:9px;line-height:1.4;text-align:center;margin-top:5px;color:var(--menu-ink);}
#diffcustom{align-items:center;justify-content:center;gap:8px;padding-top:8px;font-size:12px;}
#diffcustomval{width:60px;background:var(--menu-panel);color:var(--menu-ink);border:1px solid var(--menu-pink);padding:4px;}
#rulewrap{margin-top:5px;}
#rulebtns{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:6px;}
.rulebtn{font-size:14px;display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 2px;min-height:34px;}
.rulebtn[data-r=layer]{--control-accent:var(--menu-green)}
.rulebtn[data-r=both]{--control-accent:var(--menu-pink)}
.rulebtn span{font-size:20px;color:var(--control-accent);white-space:nowrap;}
.audio-row{display:grid;grid-template-columns:.85fr 1.25fr;gap:6px;}
.audio-control{border:1px solid var(--menu-cyan);background:var(--menu-night);display:flex;align-items:center;justify-content:center;gap:6px;padding:5px;color:var(--menu-cyan);font-size:12px;font-weight:700;min-width:0;}
.audio-control>span[aria-hidden]{font-size:22px;}
#soundtoggle{width:17px;height:17px;accent-color:var(--menu-cyan);}
#mainmenu #musicsel{font-size:13px;padding:3px;width:48%;}
.session-actions{display:flex;flex-direction:column;gap:12px;}
#mainmenu .session-button{position:relative;margin:0;width:100%;min-height:45px;border:3px double var(--menu-gold);border-radius:7px;font-family:'Rajdhani',sans-serif;font-size:21px;font-weight:700;color:var(--menu-ink);letter-spacing:0;padding:10px 26px 10px 20%;background-image:linear-gradient(90deg,transparent,color-mix(in oklch,var(--menu-night) 85%,transparent) 38%),var(--menu-world);background-size:100% 100%,100% auto;background-position:center,center 8%;box-shadow:0 0 6px var(--menu-gold),inset 0 0 5px var(--menu-cyan);text-shadow:0 1px 3px var(--menu-night);line-height:1.1;}
#mainmenu #continuebtn{background-position:center,center top;color:var(--menu-gold);}
.session-button:after{content:'❯';position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:27px;color:var(--menu-cyan);}
#continuebtn:after{color:var(--menu-gold)}
#continuebtn:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.55);}
#menuextras{padding:5px 5px 15px;background:var(--menu-night);}
#menuextras[hidden]{display:none;}
#menuextras #lbwrap{max-width:none !important;}
#mainmenu,#mainmenu *{letter-spacing:0;}
@media(min-width:600px){.menu-body{gap:24px;padding-bottom:30px}.section-title{font-size:17px;padding:7px}.language-row label{font-size:21px}#mainmenu select{font-size:23px}.modebtn strong{font-size:28px}.modebtn{padding:15px 8px}.piece-caption{font-size:16px;min-height:42px}.diffbtn{font-size:30px}.diffbtn[data-d=custom]{font-size:26px}.rulebtn{font-size:23px;padding:10px}.rulebtn span{font-size:32px}.selection-info{font-size:13px}.audio-control{font-size:18px;padding:8px}#mainmenu #musicsel{font-size:20px}#mainmenu .session-button{min-height:75px;font-size:32px}.settings{width:48px;height:48px;font-size:36px}.ornate{padding:17px 14px 9px}.ornate>.section-title{margin-top:-34px}}
/* Rule-change confirmation modal */
.tess-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:oklch(0.08 0.04 280 / 0.78);backdrop-filter:blur(4px);}
.tess-modal[hidden]{display:none;}
.tess-modal-card{max-width:340px;width:100%;padding:22px 20px;border-radius:10px;text-align:center;background:linear-gradient(160deg,oklch(0.18 0.08 290 / 0.95),oklch(0.12 0.06 260 / 0.95));border:1.5px solid oklch(0.82 0.14 85);box-shadow:0 0 24px oklch(0.75 0.18 200 / 0.45),inset 0 0 18px oklch(0.75 0.18 200 / 0.18);animation:tessModalIn .22s ease-out;}
.tess-modal-card h2{font-family:'Orbitron',monospace;font-size:1rem;letter-spacing:.18em;margin:0 0 10px;color:oklch(0.88 0.15 200);text-shadow:0 0 12px oklch(0.75 0.18 200 / 0.8);}
.tess-modal-card p{font-size:.85rem;line-height:1.45;margin:0 0 18px;color:oklch(0.9 0.03 260);}
.tess-modal-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.tess-modal-actions button{flex:1 1 120px;font-family:'Orbitron',monospace;font-size:.7rem;letter-spacing:.12em;padding:11px 10px;border-radius:6px;cursor:pointer;background:oklch(0.25 0.1 220 / 0.5);color:oklch(0.9 0.14 200);border:1.5px solid oklch(0.75 0.18 200);}
.tess-modal-actions button.danger{background:oklch(0.3 0.15 350 / 0.5);color:oklch(0.9 0.12 350);border-color:oklch(0.7 0.24 350);box-shadow:0 0 12px oklch(0.7 0.24 350 / 0.45);}
@keyframes tessModalIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.tess-modal-card{animation:none}}
