/* Menus only: native layout over independently composited art and SVG carving. */
.ll-menu{--mi-gold:#e9c977;--mi-text:#f7e6be;--mi-muted:#b1b59b;--mi-stone:#1b2019;position:relative;isolation:isolate;box-sizing:border-box;width:100%;height:100svh;height:100dvh;min-height:480px;display:flex;flex-direction:column;align-items:center;overflow:hidden;color:var(--mi-text);background:#111b14;padding:clamp(12px,2.5vh,30px) clamp(18px,4vw,72px) 16px;font-family:Georgia,'Times New Roman',serif}
.ll-menu *{box-sizing:border-box}
.ll-menu button,.ll-menu a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.ll-menu button{cursor:pointer;font:inherit;color:inherit}
.ll-menu button:focus-visible,.ll-menu a:focus-visible{outline:3px solid #ffe7a0;outline-offset:5px;z-index:4}
.ll-menu h1:focus{outline:0}
.ll-menu .mi-icon{width:22px;height:22px;flex:none;display:block}
.mi-scenery{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 50% 49%,#76502d33 0%,#15221744 40%,#09120f 95%)}
.mi-scenery::before{content:'';position:absolute;inset:0;background:url('assets/menu/carved-stone.webp') center/190px 130px;opacity:.08;filter:saturate(.4)}
.mi-arch{position:absolute;left:50%;top:0;transform:translateX(-50%);height:100%;min-height:700px;width:auto;max-width:none;opacity:.43}
.mi-haze{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 59%,#cf8a3414,transparent 60%);box-shadow:inset 0 60px 90px #0003,inset 0 -25px 45px #0005}
.mi-wing{position:absolute;top:0;height:100%;width:auto;max-width:26vw;object-fit:cover;object-position:top;filter:brightness(.76) saturate(.78)}
.mi-wing-left{left:0}.mi-wing-right{right:0}
.mi-floor{position:absolute;bottom:0;left:0;width:100%;height:15%;object-fit:cover;object-position:center;filter:brightness(.7) saturate(.7);mask-image:linear-gradient(transparent,#000 60%);-webkit-mask-image:linear-gradient(transparent,#000 60%)}
.mi-fire{position:absolute;top:59%;width:28%;height:27%;opacity:.44;background:radial-gradient(ellipse,#de8a251d,transparent 64%);animation:miFire 7s ease-in-out infinite;filter:blur(10px)}
.mi-fire-left{left:-10%}.mi-fire-right{right:-10%;animation-delay:-3s}
.mi-nav{width:min(100%,1220px);display:flex;justify-content:space-between;align-items:center;min-height:46px;flex:none;gap:10px}
.mi-nav-right{display:flex;gap:clamp(4px,2vw,28px);align-items:center}
.mi-nav-button{min-width:44px;min-height:44px;border:0;background:transparent;color:#e8dcb3!important;display:inline-flex;align-items:center;gap:9px;padding:8px 12px;font-size:16px!important;transition:color .16s,background .16s;border-radius:5px;text-shadow:0 2px 3px #000}
.mi-nav-button:hover{background:#07110f80;color:#fff1be!important}
.mi-content{width:min(100%,1100px);flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(16px,3vh,30px);padding:0 6px 12px}
.mi-heading{text-align:center;flex:none;display:flex;flex-direction:column;align-items:center;margin-top:0;position:relative}
.mi-crown{display:block;width:clamp(49px,7.8vh,88px);height:auto;filter:drop-shadow(0 4px 3px #0009);margin-bottom:3px}
.mi-heading h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(35px,5.6vw,72px);font-weight:500;letter-spacing:-1.7px;line-height:1.1;margin:0;padding:0 0 5px;color:#eac679;text-shadow:0 2px 1px #38200b,0 4px 8px #000a;text-wrap:balance}
@supports(-webkit-background-clip:text){.mi-heading h1{background:linear-gradient(#ffedb3 15%,#edc06d 43%,#a17334 56%,#f9e0a2 78%,#c3974d 92%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 2px 1px #000) drop-shadow(0 5px 7px #0008)}}
.mi-divider{display:flex;align-items:center;justify-content:center;gap:11px;width:clamp(125px,23vw,280px);height:19px;margin-top:6px}
.mi-divider span{height:1px;width:50%;background:linear-gradient(90deg,transparent,#cbad5b)}
.mi-divider span:last-child{transform:scaleX(-1)}
.mi-divider>i{width:9px;height:9px;flex:none;transform:rotate(45deg);border:1px solid #eccb76;box-shadow:inset 0 0 0 2px #172118;background:#b8913f}
.mi-hero-portraits{display:flex;align-items:center;justify-content:center;gap:clamp(14px,2vw,26px);width:100%;margin:7px 0 4px}
.mi-medallion{position:relative;display:block;width:100%;aspect-ratio:1;flex:none;isolation:isolate;filter:drop-shadow(0 8px 9px #0009)}
.mi-hero-portraits .mi-medallion{width:min(20%,20vh,192px);min-width:70px}
.mi-art{display:block;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;user-select:none}
.mi-medallion>.mi-art{position:absolute;width:87%;height:87%;top:6.5%;left:6.5%;border-radius:50%;background:#152118}
.mi-ring{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.mi-play{position:relative;display:flex;align-items:center;justify-content:center;gap:30px;width:clamp(238px,35vw,395px);min-height:67px;padding:15px 34px;margin:9px 0 5px;border:1px solid #fae8a5;border-radius:7px;color:#271a09!important;background:linear-gradient(105deg,#9c6828,#b7863c 3%,#e8bd68 7%,#f5d688 50%,#d4a151 96%,#a36b22);box-shadow:inset 0 0 0 3px #a66d2780,inset 0 5px 6px #fff4b870,inset 0 -4px 0 #835821,0 5px 0 #584322,0 10px 20px #0009;transition:filter .2s,transform .14s;isolation:isolate}
.mi-play::before,.mi-play::after{content:'';position:absolute;width:12px;height:12px;background:linear-gradient(135deg,#ffefab,#936522);border:1px solid #49320c;transform:rotate(45deg);top:calc(50% - 6px)}
.mi-play::before{left:20px}.mi-play::after{right:20px}
.mi-play>span{font-size:clamp(26px,3vw,32px);letter-spacing:4px;line-height:1.1;font-weight:700;text-shadow:0 1px #fff0a3}
.mi-play>.mi-icon{width:26px;height:26px;display:none}
.mi-play:hover{filter:brightness(1.09);transform:translateY(-2px)}.mi-play:active{transform:translateY(3px);box-shadow:inset 0 0 0 3px #a66d2780,inset 0 -3px 0 #835821,0 2px 0 #584322,0 4px 10px #0009}
.mi-footer{flex:none;width:min(100%,1120px);min-height:38px;display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;position:relative;color:#d4c196}
.mi-publisher{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:#b3b297;line-height:1.6}
.mi-catalogue{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;font-family:Georgia,serif;font-size:14px;color:#dfd0a5!important;text-decoration:none;text-shadow:0 2px #000}
.mi-catalogue .mi-icon{width:17px;height:17px}.mi-catalogue:hover{color:#ffebaf!important}
.mi-cards{display:grid;width:100%;min-height:0;justify-content:center;align-items:center;gap:clamp(20px,2.8vw,40px)}
.mi-two{grid-template-columns:repeat(2,minmax(0,360px));max-width:800px}
.mi-three{grid-template-columns:repeat(3,minmax(0,310px));max-width:1000px;gap:clamp(18px,3vw,46px)}
.mi-card{--gem:#d84348;display:flex;position:relative;flex-direction:column;justify-content:flex-end;align-items:center;gap:0;min-width:0;border:0;background:transparent;padding:0;color:#f6df9d!important;outline-offset:6px;isolation:isolate;transition:transform .2s ease,filter .2s ease;overflow:visible}
.mi-card:hover{transform:translateY(-5px);filter:brightness(1.075)}.mi-card:active{transform:translateY(1px)}
.mi-card:focus-visible{border-radius:10px}
.mi-round .mi-medallion{max-width:min(100%,34vh,310px);transition:filter .18s}
.mi-card:hover .mi-medallion{filter:drop-shadow(0 8px 10px #0009) drop-shadow(0 0 8px #b188342d)}
.mi-plaque{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:102px;padding:21px 16px 23px;background:linear-gradient(140deg,#262922,#111c15 60%,#1e271d);clip-path:polygon(6% 0,94% 0,100% 16%,100% 84%,94% 100%,6% 100%,0 84%,0 16%);isolation:isolate}
.mi-plaque::before{content:'';position:absolute;inset:0;background:url('assets/menu/carved-stone.webp') center/170px 116px;opacity:.18;z-index:-1;mix-blend-mode:luminosity;pointer-events:none}
.mi-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.mi-round .mi-plaque{margin-top:-19px;z-index:2;filter:drop-shadow(0 7px 7px #0009)}
.mi-label{position:relative;display:block;z-index:1;font-weight:600;font-size:clamp(19px,2.15vw,29px);line-height:1.15;text-transform:uppercase;text-align:center;text-wrap:balance;letter-spacing:.4px;text-shadow:0 2px 2px #000d}
.mi-detail{font-size:12px;color:#c6bc9a;margin-top:9px;font-family:system-ui,sans-serif}
.mi-plaque-line{width:78%;max-width:185px;height:13px;position:relative;margin-top:9px;display:flex;align-items:center;justify-content:center}
.mi-plaque-line::before,.mi-plaque-line::after{content:'';position:absolute;top:6px;width:calc(50% - 9px);height:1px;background:linear-gradient(90deg,transparent,#b9a466)}
.mi-plaque-line::before{left:0}.mi-plaque-line::after{right:0;transform:scaleX(-1)}
.mi-plaque-line i{display:block;width:5px;height:5px;transform:rotate(45deg);background:#d7b76a;box-shadow:0 0 0 2px #1b2318}
.mi-card-arrow{display:none}
.mi-landscape{padding:9px 9px 0;filter:drop-shadow(0 10px 12px #0009);background:linear-gradient(120deg,#473c24,#191e15);clip-path:polygon(6% 0,94% 0,100% 5%,100% 95%,94% 100%,6% 100%,0 95%,0 5%)}
.mi-picture{display:block;width:100%;aspect-ratio:1.16;position:relative;overflow:hidden;border-radius:8px 8px 0 0}
.mi-picture::after{content:'';position:absolute;inset:0;box-shadow:inset 0 -2px 8px #0006;pointer-events:none}
.mi-landscape .mi-plaque{min-height:96px;padding-top:17px;padding-bottom:24px;clip-path:none}
.mi-landscape .mi-plaque>.mi-frame{display:none}
.mi-gem{position:absolute;top:0;left:50%;transform:translate(-50%,-1px) rotate(45deg);width:16px;height:16px;display:block;background:#ffe4a0;border:2px solid #8b6427;box-shadow:0 1px 1px #000;z-index:3}
.mi-gem>i{position:absolute;inset:2px;display:block;background:linear-gradient(135deg,#fff9,var(--gem) 36%,#111 95%)}
.mi-saved{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;max-height:94px;overflow:auto;padding:4px 8px}
.mi-saved-button{min-height:42px;border:1px solid #93805377;background:#152419d9;border-radius:6px;display:flex;align-items:center;gap:6px;padding:9px 12px;font-family:system-ui,sans-serif!important;font-size:11px!important;letter-spacing:.3px;color:#eee0b6!important}
.mi-saved-button .mi-icon{width:15px;height:15px}.mi-saved-button:hover{border-color:#e1bc63}
/* Clean scenery carries into setup pages without reskinning the game tables. */
.page{background:radial-gradient(ellipse at top,#30452d88,#0c1710e8 65%),url('assets/menu/carved-stone.webp') center/230px 157px}
.page>.page-content{position:relative}
/* Menu dialogs are native <dialog>, with live text and tabs on parchment. */
#dialog.menu-dialog{color:#2a251a;background:linear-gradient(120deg,#e6d4a4,#f1e3bd 48%,#d7c596);border:3px solid #ab8440;box-shadow:0 0 0 2px #4c3a1b,0 18px 80px #000b;border-radius:12px;width:min(580px,calc(100vw - 26px));max-height:calc(100dvh - 32px)}
#dialog.menu-dialog::backdrop{background:#07120cdc;backdrop-filter:blur(5px)}
.menu-dialog #dialogContent{padding:24px 26px}
.menu-dialog .dialog-head{align-items:center;border-bottom:1px solid #816f4944;padding-bottom:13px;margin-bottom:15px}
.menu-dialog .dialog-head h2{color:#3a301b;font-size:25px;font-family:Georgia,serif}
.menu-dialog .dialog-head .icon-button{color:#46371e;background:#c6ad7470;border:1px solid #a08b59;min-height:40px;min-width:40px}
.mi-rule-tabs{display:flex;gap:8px;margin:0 0 15px}
.mi-rule-tabs button{flex:1;min-height:44px;border:1px solid #8d793e;background:#d9c596;color:#463618;padding:8px;border-radius:5px;font-weight:600}
.mi-rule-tabs button[aria-pressed='true']{background:#243421;color:#f4d89b;border-color:#3e4d28}
.mi-rule-list{display:grid;gap:14px;margin:0;padding:3px 0 5px;list-style:none;font-family:system-ui,sans-serif}
.mi-rule-list li{font-size:13px;line-height:1.6;padding-left:20px;position:relative}
.mi-rule-list li::before{content:'◆';position:absolute;left:0;color:#8b6425;font-size:9px;top:5px}
.mi-setting{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid #92784544;font-family:system-ui,sans-serif;font-size:14px}
.mi-setting button{border:1px solid #755d30;border-radius:5px;background:#283c27;color:#f7dda1;padding:9px 14px;min-height:44px}
@keyframes miFire{0%,100%{opacity:.3;transform:scale(.99)}50%{opacity:.64;transform:scale(1.08)}}
/* Phone portrait: cards become generous horizontal controls, never squeezed ovals. */
@media(max-width:600px) and (orientation:portrait){
 .ll-menu{min-height:490px;padding:8px 14px 10px}
 .mi-nav{min-height:44px}.mi-nav-button{font-size:13px!important;padding:8px 6px;gap:6px}.mi-nav-right{gap:8px}.mi-nav-button .mi-icon{width:19px;height:19px}
 .mi-content{gap:18px;padding:0 5px 4px;justify-content:center}
 .mi-heading h1{font-size:clamp(28px,8.2vw,44px);letter-spacing:-.9px}.mi-crown{width:53px}.mi-divider{height:13px;margin-top:2px;width:174px}
 .mi-arch{min-height:540px;opacity:.62}.mi-wing{max-width:24vw;height:100%;object-fit:cover;opacity:.55}.mi-floor{height:12%;opacity:.7}
 .mi-hero-portraits{display:grid;grid-template-columns:repeat(2,minmax(0,130px));gap:10px 18px;margin:0;width:auto}
 .mi-hero-portraits .mi-medallion{width:min(29vw,16.8vh,136px);min-width:0}
 .mi-play{width:80%;min-height:60px;padding:13px 30px;margin-top:10px}
 .mi-play>span{font-size:27px;letter-spacing:4px}
 .mi-footer{min-height:37px;gap:4px 15px}.ll-home .mi-footer{flex-direction:column;gap:0}.mi-publisher{font-size:9px;letter-spacing:2.2px}.mi-catalogue{font-size:12px;min-height:34px}
 .mi-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;max-width:100%}
 .mi-landscape{padding:5px 5px 0}.mi-picture{aspect-ratio:.78}
 .mi-landscape .mi-plaque{padding:14px 7px 12px;min-height:93px}
 .mi-landscape .mi-label{font-size:clamp(17px,4.3vw,22px);line-height:1.17;letter-spacing:0}
 .mi-plaque-line{width:74%;margin-top:7px}
 .mi-three{display:flex;flex-direction:column;gap:14px;width:min(100%,400px)}
 .mi-round{width:100%;display:grid;grid-template-columns:104px 1fr;align-items:center;justify-content:initial;padding-right:0;min-height:100px}
 .mi-round .mi-medallion{width:106px;max-width:106px;height:106px;z-index:2;grid-column:1;grid-row:1}
 .mi-round .mi-plaque{grid-column:2;grid-row:1;margin:0 0 0 -13px;width:calc(100% + 13px);min-height:85px;padding:20px 15px 16px 21px;z-index:1}
 .mi-round .mi-label{font-size:clamp(17px,4.6vw,22px);letter-spacing:.2px}
 .mi-round .mi-plaque-line{margin-top:7px;width:68%}
 .mi-saved{gap:5px;max-height:86px;padding:2px 0}.mi-saved-button{font-size:10px!important;padding:8px;min-height:37px}
 .mi-cards.mi-three+.mi-saved{margin:0}
 #dialog.menu-dialog .mi-rule-tabs button{font-size:12px}.menu-dialog #dialogContent{padding:18px}
}
@media(max-width:600px) and (orientation:portrait) and (max-height:680px){
 .mi-content{gap:13px}.mi-crown{width:42px}.mi-heading h1{font-size:32px}.mi-heading .mi-divider{margin-top:0}
 .mi-three{gap:10px}.mi-round{grid-template-columns:89px 1fr;min-height:88px}.mi-round .mi-medallion{width:92px;height:92px}.mi-round .mi-plaque{min-height:77px}.mi-round .mi-label{font-size:18px}
 .ll-home .mi-hero-portraits .mi-medallion{width:min(27vw,15.5vh)}
 .mi-landscape .mi-picture{aspect-ratio:.97}.mi-landscape .mi-plaque{min-height:82px}
}
@media(min-width:601px) and (max-height:740px){
 .ll-menu{padding-top:8px;padding-bottom:10px;min-height:410px}.mi-nav{min-height:41px}.mi-content{gap:12px;padding-bottom:4px}.mi-crown{width:48px}.mi-heading h1{font-size:46px}.mi-divider{margin-top:0}
 .mi-two{grid-template-columns:repeat(2,minmax(0,min(33vw,40vh)));max-width:660px}
 .mi-picture{max-height:33vh;aspect-ratio:1.3}.mi-landscape .mi-plaque{min-height:78px;padding:15px 9px}
 .mi-round .mi-medallion{max-width:min(100%,32vh)}.mi-round .mi-plaque{min-height:89px}.mi-label{font-size:23px}.mi-three{max-width:860px;gap:28px}
 .mi-play{min-height:56px;margin-top:6px}.mi-play>span{font-size:27px}.mi-footer{min-height:31px}.mi-hero-portraits .mi-medallion{width:min(19%,22vh)}
}
/* Small landscape phones: no scroll to choose any of the three modes. */
@media(orientation:landscape) and (max-height:500px){
 .ll-menu{min-height:280px;padding:5px 17px 6px}
 .mi-nav{min-height:37px}.mi-nav-button{font-size:12px!important;min-height:36px;padding:6px 10px}.mi-nav-button .mi-icon{width:17px;height:17px}
 .mi-content{justify-content:center;gap:8px;padding:0;position:relative}
 .mi-heading{flex-direction:row;gap:8px}.mi-crown{width:34px;margin:0}.mi-heading h1{font-size:31px;padding:0;letter-spacing:-.6px}.mi-heading .mi-divider{display:none}
 .mi-two{max-width:550px;grid-template-columns:repeat(2,minmax(0,240px));gap:24px}.mi-landscape{padding:5px 5px 0;display:grid;grid-template-columns:44% 56%;align-items:center;min-height:135px}
 .mi-picture{aspect-ratio:.82;height:100%;max-height:152px}.mi-landscape .mi-plaque{min-height:115px;padding:10px 8px}.mi-landscape .mi-label{font-size:19px}.mi-gem{display:none}
 .mi-three{max-width:780px;gap:18px}.mi-round .mi-medallion{max-width:min(100%,31vh)}.mi-round .mi-plaque{min-height:67px;margin-top:-10px;padding:17px 7px 14px}.mi-round .mi-label{font-size:17px}.mi-plaque-line{height:8px;margin-top:4px}
 .ll-home .mi-hero-portraits{margin:0;gap:20px}.mi-hero-portraits .mi-medallion{width:min(17%,28vh);min-width:0}
 .mi-play{min-height:46px;padding:8px 34px;width:260px;margin:3px 0}.mi-play>span{font-size:24px}
 .mi-footer{min-height:27px;gap:18px}.mi-publisher{font-size:9px}.mi-catalogue{min-height:27px;font-size:11px}.mi-saved{max-height:43px}.mi-saved-button{min-height:31px;padding:5px 8px;font-size:10px!important}
 .mi-floor{height:10%}.mi-wing{max-width:17vw;opacity:.5}
}
@media(prefers-reduced-motion:reduce){.ll-menu *,.ll-menu *::before,.ll-menu *::after{animation:none!important;transition:none!important}.mi-card:hover,.mi-play:hover,.mi-play:active{transform:none}}

/* Final material and label fit adjustments. */
.mi-label{max-width:100%;min-width:0;white-space:normal;overflow-wrap:normal}
.mi-landscape .mi-label{font-size:clamp(19px,2vw,27px);max-width:92%}
.mi-plaque::before{opacity:.23}
.mi-scenery::before{opacity:.16}
.mi-heading .mi-crown{width:clamp(55px,8.5vh,91px);margin-bottom:1px}
@media(max-width:600px) and (orientation:portrait){.mi-heading .mi-crown{width:57px}.mi-landscape .mi-label{font-size:clamp(16px,4.4vw,21px)}}
@media(max-height:680px){.mi-heading .mi-crown{width:44px}}
@media(orientation:landscape) and (max-height:500px){.mi-heading .mi-crown{width:35px}.mi-landscape .mi-label{font-size:18px}}
/* Keep touch targets comfortable even with browser chrome reducing the viewport. */
.ll-menu .mi-nav-button,.ll-menu .mi-catalogue{min-height:44px}
@media(max-width:600px) and (orientation:portrait){.ll-menu{min-height:480px}}
@media(max-width:600px) and (orientation:portrait) and (max-height:580px){.mi-content{gap:10px}.mi-three{gap:7px}.mi-round{grid-template-columns:79px 1fr;min-height:79px}.mi-round .mi-medallion{width:83px;height:83px}.mi-round .mi-plaque{min-height:72px}.mi-heading .mi-crown{width:39px}.mi-heading h1{font-size:29px}.ll-home .mi-hero-portraits{gap:7px 14px}.mi-play{min-height:53px}}
