/* Abhi Arya Ludo Game. All selectors are prefixed .aal- */
.aal-root{--aal-bg:#FBF6EC;--aal-card:#FFFDF8;--aal-line:#E8DECB;--aal-ink:#2B2926;--aal-mute:#6B645A;--aal-or:#E87532;--aal-or2:#D2601F;--aal-r:#E5372E;--aal-g:#1FA34A;--aal-y:#F5B50A;--aal-b:#1F6FD8;box-sizing:border-box;position:relative;color:var(--aal-ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;margin:24px 0}
.aal-root *,.aal-root *::before,.aal-root *::after{box-sizing:border-box}
.aal-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.aal-shell{max-width:1180px;margin:0 auto;background:var(--aal-bg);border:1px solid var(--aal-line);border-radius:26px;padding:20px;box-shadow:0 10px 30px rgba(80,55,20,.10)}
:where(.aal-root) button{font:inherit;color:inherit;cursor:pointer}
.aal-root :focus-visible{outline:3px solid #1F6FD8;outline-offset:2px}
.aal-ic{width:22px;height:22px;flex:none;display:block}.aal-ic-s{width:16px;height:16px}

/* header */
.aal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--aal-card);border:1px solid var(--aal-line);border-radius:20px;padding:12px 18px;margin-bottom:18px}
.aal-brand{display:flex;align-items:center;gap:14px}
.aal-crownimg{width:52px;height:52px}
.aal-title{font-size:30px;font-weight:800;color:var(--aal-or);line-height:1.1;letter-spacing:-.01em}
.aal-tag{color:var(--aal-mute);font-size:15px}
.aal-nav{display:flex;gap:10px;flex-wrap:wrap}
.aal-nbtn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;background:#fff;border:1px solid var(--aal-line);border-radius:14px;text-decoration:none;color:var(--aal-ink);font-weight:600;font-size:15px;transition:background .15s,border-color .15s}
.aal-nbtn:hover{background:#FFF1E6;border-color:var(--aal-or)}

/* layout */
.aal-main{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,1fr);gap:18px;align-items:start}
.aal-boardcol{grid-row:1/3}
.aal-side{display:grid;gap:14px;min-width:0}
.aal-bottom{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px}
.aal-card{background:var(--aal-card);border:1px solid var(--aal-line);border-radius:18px;padding:14px 16px}
.aal-card h2{margin:0;font-size:17px;font-weight:800;color:var(--aal-ink)}
.aal-card p{margin:2px 0 0;color:var(--aal-mute);font-size:14px}

/* board */
.aal-frame{position:relative;background:linear-gradient(135deg,#E3AA66,#9A5A2B 50%,#E7B873);border:3px solid #70411F;border-radius:20px;padding:clamp(8px,2vw,16px);box-shadow:0 8px 20px rgba(80,45,10,.28),inset 0 0 0 2px rgba(255,255,255,.18)}
.aal-boardwrap{background:#F7F0E6;border:2px solid #6C452A;border-radius:10px;overflow:hidden;line-height:0}
.aal-board{display:block;width:100%;height:auto;aspect-ratio:1;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.aal-token{cursor:default;transition:transform .15s ease-out;outline:none}
.aal-token .aal-tk{transition:transform .15s}
.aal-token .aal-ring{opacity:0}
.aal-legal{cursor:pointer}
.aal-legal .aal-ring{opacity:1;stroke:#fff;stroke-width:4;filter:drop-shadow(0 0 4px rgba(0,0,0,.6));animation:aal-pulse 1s ease-in-out infinite}
.aal-legal:focus-visible .aal-ring{stroke:#1F6FD8;stroke-width:5}
.aal-legal .aal-pawn{animation:aal-bob .8s ease-in-out infinite}
.aal-dest{animation:aal-pulse 1s ease-in-out infinite}
@keyframes aal-pulse{50%{opacity:.45}}
@keyframes aal-bob{50%{transform:translateY(-3px)}}
.aal-toast{position:absolute;left:50%;bottom:calc(clamp(8px,2vw,16px) + 8px);transform:translate(-50%,8px);max-width:86%;background:rgba(43,41,38,.92);color:#fff;padding:8px 14px;border-radius:12px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;text-align:center}
.aal-toast.aal-show{opacity:1;transform:translate(-50%,0)}
.aal-toast.aal-cap{background:#B3261E}.aal-toast.aal-good{background:#1B7A3A}.aal-toast.aal-bad{background:#8A5A00}

/* players panel */
.aal-playerhead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.aal-select{min-height:42px;padding:6px 30px 6px 12px;border:1px solid var(--aal-line);border-radius:12px;background:#fff;font-weight:600}
.aal-prow{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--aal-line)}
.aal-dot{width:16px;height:16px;border-radius:50%;background:var(--pc);box-shadow:inset 0 -2px 0 rgba(0,0,0,.2),0 0 0 2px #fff,0 0 0 3px var(--pc);flex:none;display:inline-block}
.aal-pl{font-weight:700;font-size:14px;white-space:nowrap}.aal-pl small{display:block;font-weight:500;color:var(--aal-mute);font-size:12px}
.aal-name{position:relative;display:block;min-width:0}
.aal-name input{width:100%;min-height:42px;padding:6px 34px 6px 12px;border:1px solid var(--aal-line);border-radius:12px;background:#fff;font:inherit;font-size:15px}
.aal-pen{position:absolute;right:10px;top:50%;transform:translateY(-50%);opacity:.5;pointer-events:none;display:flex}
.aal-seg{display:inline-flex;border:1px solid var(--aal-line);border-radius:12px;overflow:hidden;background:#fff}
.aal-seg button{min-height:42px;padding:6px 12px;border:0;background:transparent;font-weight:600;font-size:14px}
.aal-seg button[aria-pressed=true]{background:var(--aal-or);color:#fff}
.aal-startrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}
.aal-hint{color:var(--aal-mute);font-size:13px}
.aal-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 18px;border:1px solid var(--aal-line);border-radius:14px;background:#fff;font-weight:700}
.aal-primary,.aal-roll{background:var(--aal-or);border-color:var(--aal-or2);color:#fff;box-shadow:0 3px 0 var(--aal-or2)}
.aal-primary:hover,.aal-roll:not(:disabled):hover{background:var(--aal-or2)}
.aal-flash{animation:aal-flash 1.2s}
@keyframes aal-flash{0%,60%{box-shadow:0 0 0 4px var(--aal-or)}100%{box-shadow:none}}

/* turn card */
.aal-turncard{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.aal-turnbox{display:flex;align-items:center;gap:12px;margin-top:6px}
.aal-bigpawn{width:64px;height:64px}
.aal-tname{font-size:20px;font-weight:800;color:var(--pc);filter:brightness(.82)}
.aal-badge{display:inline-block;margin-top:4px;padding:3px 12px;border-radius:99px;font-size:13px;font-weight:700}
.aal-turn{background:#FDE7D6;color:#9B3F0B}.aal-wait{background:#ECE7DC;color:#5B544A}.aal-win{background:#DDF3E3;color:#14622D}
.aal-dicecol{display:flex;align-items:center;gap:12px}
.aal-dicewrap{position:relative;width:84px;height:84px}
.aal-dicewrap::after{content:"";position:absolute;left:14%;right:14%;bottom:-6px;height:9px;border-radius:50%;background:rgba(70,45,20,.22);filter:blur(3px);transition:transform .2s}
.aal-die{position:relative;z-index:1;width:84px;height:84px;display:block;transform-origin:50% 60%}
.aal-rolling .aal-die{animation:aal-toss .95s cubic-bezier(.22,.7,.3,1) both}
.aal-rolling::after{animation:aal-shadow .95s ease-out both}
.aal-land .aal-die{animation:aal-land .26s ease-out both}
@keyframes aal-toss{0%{transform:translateY(0) rotate(0) scale(1)}18%{transform:translateY(-26px) rotate(150deg) scale(1.12)}42%{transform:translateY(-8px) rotate(330deg) scale(1.05)}62%{transform:translateY(-15px) rotate(470deg) scale(1.06)}82%{transform:translateY(-3px) rotate(560deg) scale(1.02)}100%{transform:translateY(0) rotate(576deg) scale(1)}}
@keyframes aal-shadow{0%,100%{transform:scale(1);opacity:1}18%{transform:scale(.6);opacity:.5}62%{transform:scale(.75);opacity:.7}}
@keyframes aal-land{0%{transform:translateY(0) scale(1.1,.9)}45%{transform:translateY(-6px) scale(.97,1.04)}100%{transform:none}}
.aal-roll{min-height:52px;font-size:17px;padding:8px 22px}
.aal-roll:disabled{background:#CDC5B6;border-color:#B5AC9B;box-shadow:none;color:#5A5348;cursor:not-allowed}
.aal-ready:not(:disabled){animation:aal-ready 1.4s ease-in-out infinite}
@keyframes aal-ready{50%{transform:scale(1.04)}}

/* info + status */
.aal-twocol{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:14px}
.aal-info dl{margin:8px 0 0;display:grid;gap:6px}
.aal-info dl div{display:flex;justify-content:space-between;gap:10px;font-size:14px;border-top:1px dashed var(--aal-line);padding-top:5px}
.aal-info dt{color:var(--aal-mute)}.aal-info dd{margin:0;font-weight:700;text-align:right;overflow-wrap:anywhere}
.aal-status ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.aal-status li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 10px;border-radius:12px;border:2px solid transparent;background:#fff}
.aal-status li.aal-active{border-color:var(--pc);background:color-mix(in srgb,var(--pc) 12%,#fff)}
.aal-status li.aal-won{background:#DDF3E3;border-color:#1B7A3A}
.aal-sname{min-width:0}.aal-sname b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aal-kind{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--aal-mute)}
.aal-nums{display:flex;gap:10px;font-size:12px;color:var(--aal-mute)}.aal-nums b{display:block;font-size:15px;color:var(--aal-ink);text-align:center}

/* bottom */
.aal-modes{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:space-between}
.aal-modebtns{display:flex;gap:8px;flex-wrap:wrap}
.aal-mode{display:flex;flex-direction:column;align-items:center;gap:0;min-width:104px;min-height:64px;padding:8px 12px;border:2px solid var(--aal-line);border-radius:14px;background:#fff}
.aal-mode b{font-size:14px}.aal-mode small{font-size:11px;color:var(--aal-mute)}
.aal-mode[aria-pressed=true]{border-color:var(--aal-or);background:#FFF1E6}
.aal-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-around;align-items:center}
.aal-act{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:64px;min-height:56px;padding:6px 8px;border:0;background:transparent;border-radius:12px;font-size:13px;font-weight:600}
.aal-act:hover{background:#FFF1E6}

/* modals */
.aal-backdrop{position:fixed;inset:0;z-index:99999;background:rgba(30,22,10,.55);display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}
.aal-modal{position:relative;background:var(--aal-card);border-radius:22px;padding:24px 24px 20px;width:100%;max-width:440px;max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 20px 50px rgba(0,0,0,.35);animation:aal-pop .2s ease-out}
.aal-modal.aal-wide{max-width:600px}
@keyframes aal-pop{from{transform:scale(.95);opacity:0}}
.aal-modal h2{margin:0 0 8px;font-size:24px;color:var(--aal-or)}
.aal-modal h3{margin:14px 0 4px;font-size:15px}
.aal-mclose{position:absolute;top:10px;right:10px;width:44px;height:44px;border:0;background:transparent;border-radius:12px;display:flex;align-items:center;justify-content:center}
.aal-mclose:hover{background:#FFF1E6}
.aal-mtext{color:var(--aal-ink);font-size:15px}.aal-mtext p{margin:0 0 8px}.aal-mtext ul{padding-left:20px;margin:6px 0}.aal-mtext li{margin:5px 0}
.aal-small-note{font-size:13px;color:var(--aal-mute)}
.aal-mbtns{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.aal-tablewrap{overflow:auto}.aal-table{width:100%;border-collapse:collapse;font-size:14px}
.aal-table th,.aal-table td{padding:8px 6px;text-align:center;border-bottom:1px solid var(--aal-line)}.aal-table th:first-child{text-align:left}
.aal-table th[scope=row]{display:flex;gap:8px;align-items:center}
.aal-setlist{display:grid;gap:4px}
.aal-setrow{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--aal-line);position:relative;cursor:pointer}
.aal-setrow small{display:block;color:var(--aal-mute);font-size:13px}
.aal-setrow input{position:absolute;opacity:0;width:52px;height:30px;right:0;margin:0;cursor:pointer}
.aal-sw{flex:none;width:52px;height:30px;border-radius:99px;background:#CDC5B6;position:relative;transition:background .15s}
.aal-sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.aal-setrow input:checked+.aal-sw{background:var(--aal-or)}.aal-setrow input:checked+.aal-sw::after{transform:translateX(22px)}
.aal-setrow input:focus-visible+.aal-sw{outline:3px solid #1F6FD8;outline-offset:2px}
.aal-winmodal{text-align:center;overflow:hidden}
.aal-winhero .aal-crownimg{width:84px;height:84px;animation:aal-bob 1s ease-in-out infinite}
.aal-winlist{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:6px;text-align:left}
.aal-winlist li{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#fff;border-radius:10px}.aal-winlist span:last-child{margin-left:auto;color:var(--aal-mute)}
.aal-winmodal .aal-mbtns{justify-content:center}
.aal-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.aal-confetti i{position:absolute;top:-12px;width:9px;height:14px;border-radius:2px;animation:aal-fall linear forwards}
@keyframes aal-fall{to{transform:translateY(560px) rotate(540deg);opacity:.8}}


/* Desktop: bigger board, compact side column, controls under the board */
@media (min-width:1021px){
  .aal-main{grid-template-columns:minmax(0,1.62fr) minmax(300px,1fr);grid-template-areas:"board side" "bottom side";grid-template-rows:auto 1fr;gap:12px 14px}
  .aal-boardcol{grid-area:board;grid-row:auto}.aal-side{grid-area:side}.aal-bottom{grid-area:bottom;grid-column:auto;grid-template-columns:1fr;gap:8px;align-self:start}
  .aal-modes{justify-content:space-between}.aal-actions{justify-content:space-between}
  .aal-shell{padding:14px}
  .aal-header{padding:6px 12px;margin-bottom:12px;border-radius:16px}
  .aal-crownimg{width:34px;height:34px}.aal-title{font-size:21px}.aal-tag{font-size:13px}
  .aal-nbtn{min-height:36px;padding:4px 12px;font-size:14px;border-radius:12px}.aal-nbtn .aal-ic{width:18px;height:18px}
  
  .aal-card{padding:10px 12px;border-radius:14px}.aal-card h2{font-size:15px}
  .aal-side{gap:10px}
  .aal-playerhead{margin-bottom:2px}.aal-playerhead p{display:none}.aal-select{min-height:34px;font-size:14px}
  .aal-prow{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding:5px 0}.aal-pl{display:none}
  .aal-name input{min-height:34px;font-size:14px;padding:4px 10px}.aal-seg button{min-height:34px;padding:4px 10px;font-size:13px}
  .aal-startrow{margin-top:6px}.aal-hint{display:none}.aal-btn{min-height:38px;padding:6px 14px;font-size:14px}
  .aal-turncard{padding:8px 12px;flex-wrap:nowrap}.aal-turnleft h2{display:none}.aal-turnbox{margin:0;gap:8px}
  .aal-bigpawn{width:40px;height:44px}.aal-tname{font-size:17px}.aal-badge{font-size:12px;margin-top:2px;padding:2px 10px}
  .aal-dicecol{gap:10px}.aal-dicewrap,.aal-die{width:60px;height:60px}.aal-roll{min-height:44px;font-size:15px;padding:6px 16px}
  .aal-twocol{grid-template-columns:1fr;gap:10px}
  .aal-info dl{grid-template-columns:1fr 1fr;gap:2px 14px;margin-top:4px}.aal-info dl div{font-size:13px;padding-top:3px}
  .aal-info dl div:last-child{grid-column:1/-1}
  .aal-status ul{gap:4px;margin-top:4px}.aal-status li{padding:4px 8px;grid-template-columns:auto minmax(0,1fr) auto}
  .aal-sname b{font-size:13px;display:inline}.aal-kind{display:inline-flex;margin-left:6px}.aal-sname{display:flex;align-items:center;flex-wrap:wrap}
  .aal-nums{gap:8px;font-size:11px}.aal-nums b{display:inline;margin-left:2px;font-size:13px}
  
  .aal-modes{padding:6px 10px;gap:10px}.aal-modehead{display:none}
  .aal-mode{flex-direction:row;gap:6px;min-width:0;min-height:38px;padding:4px 12px;border-width:2px}.aal-mode small{display:none}.aal-mode .aal-ic{width:18px;height:18px}
  .aal-actions{padding:6px 10px;flex-wrap:nowrap;justify-content:space-between}
  .aal-act{flex-direction:row;gap:6px;min-height:38px;padding:4px 10px;font-size:13px}.aal-act .aal-ic{width:18px;height:18px}
  .aal-frame{padding:10px}
}
/* tablet */
@media (max-width:1020px){
  .aal-main{grid-template-columns:1fr}.aal-boardcol{grid-row:auto}
  .aal-board,.aal-frame{max-width:640px;margin-inline:auto}
}
/* mobile */
@media (max-width:640px){
  .aal-root{margin:12px 0}
  .aal-shell{padding:6px;border-radius:16px}
  .aal-header{padding:6px 8px;gap:6px;margin-bottom:8px;border-radius:14px;flex-wrap:nowrap;flex-direction:column;align-items:stretch}
  .aal-brand{gap:8px}.aal-crownimg{width:30px;height:30px}.aal-title{font-size:20px}.aal-tag{display:none}
  .aal-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%}
  .aal-nbtn{flex-direction:column;gap:2px;justify-content:center;min-height:48px;padding:4px 2px;font-size:11.5px;line-height:1.15;text-align:center;border-radius:12px}
  .aal-nbtn .aal-ic{width:20px;height:20px}
  .aal-main{display:flex;flex-direction:column;align-items:stretch;gap:10px}.aal-side{display:contents}
  .aal-boardcol,.aal-frame,.aal-boardwrap{width:100%;max-width:none;margin:0}
  .aal-boardcol{order:1}.aal-turncard{order:2}.aal-players{order:3}.aal-twocol{order:4}.aal-bottom{order:5}
  .aal-frame{padding:5px;border-radius:12px;border-width:2px}
  .aal-toast{position:static;transform:none;max-width:none;margin-top:5px;min-height:26px;padding:4px 8px;font-size:13px;line-height:1.25;background:transparent!important;color:#FFF3DC;opacity:0;border-radius:8px}
  .aal-toast.aal-show{opacity:1;transform:none}
  .aal-toast.aal-cap{background:#B3261E!important;color:#fff}.aal-toast.aal-good{background:#1B7A3A!important;color:#fff}
  .aal-card{padding:10px 12px}
  .aal-turncard{padding:8px 10px;flex-wrap:nowrap;gap:8px}.aal-turnleft h2{display:none}.aal-turnbox{margin:0;gap:8px}
  .aal-bigpawn{width:38px;height:42px}.aal-tname{font-size:17px}.aal-badge{font-size:12px}
  .aal-dicewrap,.aal-die{width:54px;height:54px}.aal-roll{min-height:48px;font-size:15px;padding:6px 12px;white-space:nowrap}.aal-roll .aal-ic{width:22px;height:22px}
  .aal-badge{white-space:nowrap}.aal-dicecol{gap:8px;margin-left:auto}
  .aal-prow{grid-template-columns:auto minmax(0,1fr);row-gap:6px}.aal-pl{display:none}.aal-name{grid-column:2}.aal-seg{grid-column:1/-1}.aal-seg button{flex:1}
  .aal-twocol,.aal-bottom{grid-template-columns:1fr}
  .aal-modebtns{width:100%}.aal-mode{flex:1;min-width:0}
  .aal-actions{display:grid;grid-template-columns:repeat(4,1fr)}.aal-act{min-width:0;font-size:12px}
  .aal-modal{padding:20px 16px}
}
@media (prefers-reduced-motion:reduce){.aal-root *,.aal-backdrop *{animation:none!important;transition:none!important}}

/* Compact page heading on the Ludo page: the same rules as the Abhi Arya Compact Page Header plugin, scoped to this page */
.aalu-has-game .intro{padding-top:20px!important;padding-bottom:18px!important}
.aalu-has-game .intro .wrap{max-width:1180px!important}
.aalu-has-game .intro .crumbs{margin-bottom:10px!important}
.aalu-has-game .intro .intro__title{font-size:clamp(1.65rem,1.05rem + 1.55vw,2.3rem)!important;line-height:1.15!important;letter-spacing:-.015em!important;font-weight:600!important;max-width:none!important;margin:0!important}
.aalu-has-game .intro .intro__lead{font-size:1rem!important;line-height:1.55!important;max-width:72ch!important;margin-top:.4rem!important;margin-bottom:0!important}
.aalu-has-game #main{overflow-x:clip}
@media (max-width:600px){.aalu-has-game .intro{padding-top:14px!important;padding-bottom:12px!important}.aalu-has-game .intro .crumbs{margin-bottom:8px!important}.aalu-has-game .intro .intro__lead{font-size:.95rem!important}}
