:root{--Pink: #E08FB5FF;--Plum: #621B39FF;--Tangerine: #F57B35FF;--Poppy: #E64C35FF;--Wyrmwood: #7F6248FF;--Pebble: #DBDAD0FF;--Forest: #394338FF;--Black: #1B1B1BFF;--Iron: #3A342EFF;--GoblinSkin: #A0BD92FF;--player1-color: #ef4444;--player2-color: #3b82f6;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--square-size: 50px;--player-size: 20px;--dice-size: 60px;--border-radius: 12px;--border-radius-lg: 16px;--font-family: "Funnel Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--title-font-family: "UnifrakturCook", serif;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 700;--font-weight-black: 900;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--transition-fast: .15s ease-in-out;--transition-normal: .3s ease-in-out;--transition-slow: .5s ease-in-out}*{box-sizing:border-box}body{font-family:var(--font-family);margin:0;padding:0;background:#5b4b3d;min-height:100vh}.pregame-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;position:relative;overflow:hidden;padding:var(--space-xl)}.pregame-card{background:var(--Black);border-radius:20px;padding:var(--space-2xl) var(--space-2xl);max-width:520px;width:100%;text-align:center;position:relative;z-index:10;box-shadow:0 20px 60px #00000080;border:2px solid var(--Iron)}.pregame-title{font-family:var(--title-font-family);font-size:3.2rem;color:var(--Pebble);margin:0 0 var(--space-xs) 0;line-height:1.1}.pregame-subtitle{color:var(--Wyrmwood);font-size:1rem;margin:0 0 var(--space-xl) 0;letter-spacing:.15em;text-transform:uppercase;font-weight:var(--font-weight-medium)}.pregame-players{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl)}.pregame-player-input{display:flex;align-items:center;gap:var(--space-md);background:var(--Iron);border-radius:var(--border-radius);padding:var(--space-md)}.pregame-token{width:44px;height:44px;flex-shrink:0}.pregame-input-group{flex:1;text-align:left}.pregame-label{display:block;font-size:.7rem;color:var(--Wyrmwood);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;font-weight:var(--font-weight-bold)}.pregame-input{width:100%;background:transparent;border:none;border-bottom:2px solid var(--Wyrmwood);color:var(--Pebble);font-family:var(--font-family);font-size:1.1rem;font-weight:var(--font-weight-bold);padding:4px 0;outline:none;transition:border-color var(--transition-normal)}.pregame-input:focus{border-bottom-color:var(--Pebble)}.rowan-input:focus{border-bottom-color:var(--Tangerine)}.isolde-input:focus{border-bottom-color:var(--Pink)}.pregame-vs{color:var(--Wyrmwood);font-family:Anton,sans-serif;font-size:1.2rem;letter-spacing:.15em}.pregame-start-btn{width:100%;padding:var(--space-md) var(--space-xl);background:linear-gradient(135deg,var(--Tangerine),#E6A855);border:none;border-radius:var(--border-radius);color:var(--Black);font-family:Anton,sans-serif;font-size:1.25rem;letter-spacing:.05em;cursor:pointer;transition:all var(--transition-normal);text-transform:uppercase}.pregame-start-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #f57b3559}.pregame-start-btn:active{transform:translateY(0)}.pregame-links{display:flex;justify-content:center;gap:var(--space-xl);margin-top:var(--space-lg)}.pregame-link{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--Wyrmwood);font-family:var(--font-family);font-size:.85rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all var(--transition-fast)}.pregame-link:hover{color:var(--Pebble);background:#ffffff0d}.pregame-characters{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-between;pointer-events:none;z-index:1;opacity:.15}.pregame-char-left,.pregame-char-right{height:50vh;max-height:500px}.pregame-char-left{transform:translate(-20%)}.pregame-char-right{transform:translate(20%)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--space-xl);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--Black);border-radius:20px;padding:var(--space-2xl);max-width:480px;width:100%;position:relative;border:2px solid var(--Iron);animation:modalSlideUp .3s cubic-bezier(.34,1.56,.64,1);max-height:85vh;overflow-y:auto}@keyframes modalSlideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:absolute;top:var(--space-md);right:var(--space-md);background:none;border:none;color:var(--Wyrmwood);cursor:pointer;padding:4px;border-radius:6px;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.modal-close:hover{color:var(--Pebble);background:#ffffff1a}.modal-title{font-family:Anton,sans-serif;font-size:1.5rem;color:var(--Pebble);margin:0 0 var(--space-lg) 0;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:var(--space-sm)}.rules-list{display:flex;flex-direction:column;gap:var(--space-md)}.rule-item{display:flex;align-items:flex-start;gap:var(--space-md);text-align:left}.rule-number{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--Iron);color:var(--Pebble);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold);font-size:.85rem}.rule-item p{margin:0;color:var(--Pebble);font-size:.9rem;line-height:1.5;padding-top:3px}.text-ladder{color:var(--Tangerine);font-weight:var(--font-weight-bold)}.text-chute{color:#888;font-weight:var(--font-weight-bold)}kbd{background:var(--Iron);padding:2px 6px;border-radius:4px;font-family:var(--font-family);font-size:.8rem;color:var(--Pebble);border:1px solid var(--Wyrmwood)}.leaderboard-empty{color:var(--Wyrmwood);text-align:center;padding:var(--space-xl) 0;font-size:.95rem}.leaderboard-table{width:100%;border-collapse:collapse}.leaderboard-table th{color:var(--Wyrmwood);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;padding:var(--space-sm) var(--space-sm);text-align:left;border-bottom:1px solid var(--Iron);font-weight:var(--font-weight-bold)}.leaderboard-table td{color:var(--Pebble);font-size:.9rem;padding:var(--space-sm) var(--space-sm);border-bottom:1px solid rgba(58,52,46,.5)}.leaderboard-table .rank-cell{font-weight:var(--font-weight-bold);width:30px}.leaderboard-table .name-cell{font-weight:var(--font-weight-bold)}.leaderboard-table tr.top-1 td{color:#ffbc2e}.leaderboard-table tr.top-2 td{color:var(--Pebble)}.leaderboard-table tr.top-3 td{color:#cd7f32}.game-toolbar{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-sm) var(--space-md)}.toolbar-btn{background:var(--Iron);border:none;color:var(--Pebble);width:36px;height:36px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.toolbar-btn:hover{background:var(--Wyrmwood)}.turn-indicator{color:var(--Pebble);font-weight:var(--font-weight-bold);font-size:1rem;display:flex;align-items:center;gap:var(--space-sm);letter-spacing:.02em}.turn-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.player-1-dot{background:var(--Tangerine)}.player-2-dot{background:var(--Pink)}.turn-counter{color:var(--Wyrmwood);font-size:.85rem;font-weight:var(--font-weight-medium)}.game-container{max-width:1200px;margin:0 auto;padding:var(--space-xl);min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:var(--space-md);background:#5b4b3d}.game-main{display:grid;grid-template-columns:200px 1fr 200px;gap:var(--space-md);align-items:start;justify-items:center}.player-panel{background:var(--Black);border-radius:var(--border-radius-lg);padding:var(--space-xl);padding-left:10px;padding-right:10px;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);position:relative;border:3px solid transparent;transition:all var(--transition-normal);perspective:1000px}.player-panel:nth-child(1).active{border-color:var(--Tangerine);box-shadow:0 0 20px #f57b354d}.player-panel:nth-child(3).active{border-color:var(--Pink);box-shadow:0 0 20px #e08fb54d}.player-title{font-size:1.5rem;font-weight:var(--font-weight-black);color:var(--Pebble);text-transform:uppercase;letter-spacing:.05em;margin:0}.player-panel.inactive .player-title{color:var(--Pebble)}.character-illustration{flex:1;display:flex;align-items:center;justify-content:center;width:100%;min-height:300px;margin-top:-20px;background-size:contain;background-repeat:no-repeat;background-position:center}.player-info-display{text-align:center;color:var(--Pebble);font-weight:var(--font-weight-medium)}.player-dice{width:60px;height:60px;border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-normal);margin-top:auto;position:relative;transform-style:preserve-3d;perspective:1000px}.dice-face{position:absolute;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);font-weight:700;font-size:14px;color:var(--Black)}.player-panel:nth-child(1) .dice-face{background:#ffbc2e}.player-panel:nth-child(3) .dice-face{background:var(--Pink)}.dice-face.front{transform:rotateY(0) translateZ(30px)}.dice-face.back{transform:rotateY(180deg) translateZ(30px)}.dice-face.right{transform:rotateY(90deg) translateZ(30px)}.dice-face.left{transform:rotateY(-90deg) translateZ(30px)}.dice-face.top{transform:rotateX(90deg) translateZ(30px)}.dice-face.bottom{transform:rotateX(-90deg) translateZ(30px)}.dice-face img{width:95%;height:95%}.player-panel.inactive .player-dice{opacity:.7}.player-dice:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.player-dice:disabled{opacity:.6;cursor:not-allowed}.player-dice.rolling{animation:rollDice3D 2.2s cubic-bezier(.4,0,.2,1) forwards;transform-style:preserve-3d}@keyframes rollDice3D{0%{transform:translateY(-30px) rotateX(0) rotateY(0) rotate(0) scale(1)}10%{transform:translateY(-30px) rotateX(180deg) rotateY(90deg) rotate(45deg) scale(1.05)}20%{transform:translateY(-30px) rotateX(360deg) rotateY(180deg) rotate(90deg) scale(1.1)}30%{transform:translateY(-30px) rotateX(540deg) rotateY(270deg) rotate(135deg) scale(.95)}40%{transform:translateY(-30px) rotateX(720deg) rotateY(360deg) rotate(180deg) scale(1.08)}50%{transform:translateY(-30px) rotateX(900deg) rotateY(450deg) rotate(225deg) scale(.92)}60%{transform:translateY(-30px) rotateX(1080deg) rotateY(540deg) rotate(270deg) scale(1.06)}70%{transform:translateY(-30px) rotateX(1260deg) rotateY(630deg) rotate(315deg) scale(.96)}80%{transform:translateY(-30px) rotateX(1440deg) rotateY(720deg) rotate(360deg) scale(1.03)}90%{transform:translateY(-30px) rotateX(1620deg) rotateY(810deg) rotate(405deg) scale(.98)}95%{transform:translateY(-30px) rotateX(1800deg) rotateY(900deg) rotate(450deg) scale(1.01)}to{transform:translateY(-30px) rotateX(1800deg) rotateY(900deg) rotate(450deg) scale(1)}}.player-dice.settling{animation:diceSettle3D .5s cubic-bezier(.34,1.56,.64,1) forwards;transform-style:preserve-3d}@keyframes diceSettle3D{0%{transform:translateY(-30px) rotateX(1800deg) rotateY(900deg) rotate(450deg) scale(1)}25%{transform:translateY(-30px) rotateX(1800deg) rotateY(900deg) rotate(450deg) scale(1.04)}50%{transform:translateY(-30px) rotateX(1800deg) rotateY(900deg) rotate(450deg) scale(.97)}75%{transform:translateY(-30px) rotateX(1800deg) rotateY(900deg) rotate(450deg) scale(1.01)}to{transform:translateY(-30px) rotateX(1800deg) rotateY(900deg) rotate(450deg) scale(1)}}.player-dice:hover:not(:disabled):not(.rolling):not(.settling){transform:translateY(-2px) scale(1.05) rotateX(-5deg) rotateY(5deg);transition:all .3s cubic-bezier(.25,.46,.45,.94);box-shadow:var(--shadow-lg);transform-style:preserve-3d}.player-panel.active .player-dice{transform:translateY(-30px)}.player-panel.active .player-dice:hover:not(:disabled):not(.rolling):not(.settling){transform:translateY(-32px) scale(1.05) rotateX(-5deg) rotateY(5deg)}.game-board{display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(10,1fr);gap:1px;background:var(--Black);padding:1px;border-radius:var(--border-radius);aspect-ratio:1;max-width:900px;max-height:90vh;width:100%;border:#1B1B1B solid 4px}.game-square{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:var(--space-xs);transition:all var(--transition-fast);min-height:var(--square-size);font-weight:var(--font-weight-bold);border-radius:5px}.game-square:nth-child(10n+1),.game-square:nth-child(10n+3),.game-square:nth-child(10n+5),.game-square:nth-child(10n+7),.game-square:nth-child(10n+9){background:var(--Iron);color:var(--Pebble)}.game-square:nth-child(10n+2),.game-square:nth-child(10n+4),.game-square:nth-child(10n+6),.game-square:nth-child(10n+8),.game-square:nth-child(10n+10){background:var(--Black);color:var(--Pebble)}.game-square:nth-child(n+11):nth-child(-n+20):nth-child(odd),.game-square:nth-child(n+31):nth-child(-n+40):nth-child(odd),.game-square:nth-child(n+51):nth-child(-n+60):nth-child(odd),.game-square:nth-child(n+71):nth-child(-n+80):nth-child(odd),.game-square:nth-child(n+91):nth-child(-n+100):nth-child(odd){background:var(--Black);color:var(--Pebble)}.game-square:nth-child(n+11):nth-child(-n+20):nth-child(2n),.game-square:nth-child(n+31):nth-child(-n+40):nth-child(2n),.game-square:nth-child(n+51):nth-child(-n+60):nth-child(2n),.game-square:nth-child(n+71):nth-child(-n+80):nth-child(2n),.game-square:nth-child(n+91):nth-child(-n+100):nth-child(2n){background:var(--Iron);color:var(--Pebble)}.game-square.highlighted-square{outline-offset:-2px;z-index:10}.game-square.highlight-player-1{outline:2px solid rgba(245,123,53,.6);background:#f57b3526!important}.game-square.highlight-player-2{outline:2px solid rgba(224,143,181,.6);background:#e08fb526!important}.square-number{font-size:1rem;font-weight:var(--font-weight-bold);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.45;z-index:1}.square-badge{position:absolute;bottom:2px;right:3px;font-size:.55rem;z-index:2;opacity:.6;line-height:1}.hole-overlay{position:absolute;left:12%;right:12%;bottom:4%;height:33%;border-radius:50%;background:radial-gradient(ellipse at 40% 30%,#1e1208,#0a0503,#000);box-shadow:inset 0 3px 8px #000,inset 0 0 10px #000000e6,0 2px 4px #0009,0 0 0 1.5px #462d148c;z-index:3;pointer-events:none}.hole-overlay:before{content:"";position:absolute;top:18%;left:20%;width:30%;height:22%;border-radius:50%;background:#ffc8780f}@keyframes token-fall-in{0%{transform:scale(1);opacity:1}40%{transform:scale(.7);opacity:.9}75%{transform:scale(.3) scaleY(.5);opacity:.5}to{transform:scale(.05) scaleY(.2);opacity:0}}.token-falling{animation:token-fall-in .55s ease-in forwards;transform-origin:center center;width:calc(var(--player-size) + 5px)!important;height:calc(var(--player-size) + 5px)!important;min-width:47px!important;z-index:10!important}.ladder-badge{color:var(--Tangerine)}.players-container{display:flex;gap:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:200}.player-piece{min-width:42px;width:var(--player-size);height:var(--player-size);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-weight-bold);font-size:.75rem;border:2px solid white;box-shadow:var(--shadow-sm);transition:all var(--transition-normal);animation:pieceAppear var(--transition-normal) ease-out;z-index:200}@keyframes pieceAppear{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.player-piece:hover{transform:scale(1.1);box-shadow:var(--shadow-md)}.floating-indicator{position:absolute;font-family:Anton,sans-serif;font-size:1.4rem;pointer-events:none;z-index:300;animation:floatUp 1.8s ease-out forwards;text-shadow:0 2px 8px rgba(0,0,0,.5);transform:translate(-50%)}.floating-indicator.chute{color:#ff6b6b}.floating-indicator.ladder{color:#51cf66}@keyframes floatUp{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}70%{opacity:1;transform:translate(-50%) translateY(-40px) scale(1.2)}to{opacity:0;transform:translate(-50%) translateY(-70px) scale(.8)}}.move-log{width:100%;background:#3a342e80;border-radius:8px;overflow:hidden;margin-top:var(--space-sm)}.move-log-entries{max-height:calc(3 * 21px + var(--space-xs) * 2);overflow-y:auto;padding:var(--space-xs);scrollbar-width:thin;scrollbar-color:var(--Iron) transparent}.move-log-entries::-webkit-scrollbar{width:3px}.move-log-entries::-webkit-scrollbar-thumb{background:var(--Iron);border-radius:2px}.move-log-empty{color:var(--Wyrmwood);font-size:.7rem;text-align:center;padding:var(--space-sm);font-style:italic;margin:0}.move-log-entry{display:flex;align-items:flex-start;gap:4px;padding:3px 6px;border-radius:3px;font-size:.7rem;color:var(--Pebble);line-height:1.35}.move-log-entry:last-child{background:#ffffff0a}.move-log-icon{flex-shrink:0;font-size:.7rem;width:12px;text-align:center;padding-top:1px}.move-log-icon.chute{color:#ff6b6b}.move-log-icon.ladder{color:#51cf66}.move-log-icon.win{color:#ffbc2e}.move-log-icon.move{color:var(--Wyrmwood)}.move-log-text{flex:1}.player-1-log{border-top:2px solid rgba(245,123,53,.3)}.player-2-log{border-top:2px solid rgba(224,143,181,.3)}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1001;overflow:hidden}.confetti-piece{position:absolute;width:10px;height:10px;border-radius:2px;animation:confettiFall 3s ease-in forwards}@keyframes confettiFall{0%{opacity:1;transform:translateY(-10vh) rotate(0) scale(var(--scale, 1))}25%{opacity:1;transform:translateY(25vh) translate(var(--speed-x, 2vw)) rotate(180deg) scale(var(--scale, 1))}50%{opacity:.9;transform:translateY(50vh) translate(calc(var(--speed-x, 2vw) * -.5)) rotate(360deg) scale(var(--scale, 1))}75%{opacity:.6;transform:translateY(75vh) translate(var(--speed-x, 2vw)) rotate(540deg) scale(var(--scale, 1))}to{opacity:0;transform:translateY(110vh) translate(calc(var(--speed-x, 2vw) * .8)) rotate(720deg) scale(var(--scale, 1))}}.game-over{text-align:center;grid-column:1 / -1;position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;z-index:1000}.victory-modal{position:relative;border-radius:20px;padding:0;box-shadow:0 20px 40px #0000004d;animation:victoryAppear .8s cubic-bezier(.34,1.56,.64,1);overflow:visible}@keyframes victoryAppear{0%{transform:scale(.8) translateY(50px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.isolde-modal{background:linear-gradient(135deg,var(--Pink) 0%,#D67BA5 100%)}.rowan-modal{background:linear-gradient(135deg,#e6a855,#e6a855)}.victory-content{display:flex;align-items:center;position:relative;padding:var(--space-2xl);gap:var(--space-xl);padding-right:400px}.isolde-modal .victory-content{flex-direction:row}.isolde-modal .victory-text{flex:1;text-align:left;order:1}.isolde-modal .victory-character{position:absolute;right:0;order:2;bottom:0}.rowan-modal .victory-content{flex-direction:row}.rowan-modal .victory-text{flex:1;text-align:left;order:2}.rowan-modal .victory-character{position:absolute;right:0;order:2;bottom:0}.glory-title{min-width:400px}.victory-character{flex:1;display:flex;align-items:center;justify-content:center}.victory-character-image{width:100%;height:auto;filter:drop-shadow(0 10px 20px rgba(0,0,0,.2))}.victory-text{color:var(--Black)}.victory-subtitle{font-size:1.85rem;font-weight:var(--font-weight-bold);margin:0 0 var(--space-xl) 0;text-transform:uppercase;margin-top:.5rem;letter-spacing:.05rem}.isolde-modal .victory-subtitle{font-family:Anton,sans-serif;font-weight:400;color:#621b39}.rowan-modal .victory-subtitle{font-family:Anton,sans-serif;font-weight:400;color:#1b1b1b}.play-again-button{background:var(--Black);border:none;padding:var(--space-md) var(--space-lg);border-radius:5px;font-size:1rem;cursor:pointer;transition:all var(--transition-normal);text-transform:uppercase;letter-spacing:.025em;color:#fff;font-family:Anton,sans-serif}.rowan-modal .play-again-button{color:#ffbc2e}.isolde-modal .play-again-button{color:#e08fb5}.play-again-button:hover{background:var(--Iron);transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}@media (max-width: 1200px){.game-main{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:var(--space-lg)}.player-panel{min-height:auto;flex-direction:row;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);min-height:120px;gap:var(--space-md);flex-wrap:wrap;overflow:hidden}.player-title{flex:0 0 auto;max-width:150px;font-size:1.3rem;min-width:100px}.player-title img{width:100%;height:auto;max-height:50px;-o-object-fit:contain;object-fit:contain}.character-illustration{display:none}.player-info-display{flex:0 0 auto;text-align:center;min-width:80px}.player-dice{flex:0 0 auto;margin-left:0;width:60px;height:60px;flex-shrink:0;position:relative;margin-top:5%;margin-right:2%}.dice-face{width:60px;height:60px;font-size:14px}.dice-face.front{transform:rotateY(0) translateZ(30px)}.dice-face.right{transform:rotateY(90deg) translateZ(30px)}.dice-face.left{transform:rotateY(-90deg) translateZ(30px)}.dice-face.top{transform:rotateX(90deg) translateZ(30px)}.dice-face.bottom{transform:rotateX(-90deg) translateZ(30px)}.player-panel.active .player-dice{transform:translateY(-20px)}.player-panel.active .player-dice:hover:not(:disabled):not(.rolling):not(.settling){transform:translateY(-22px) scale(1.05) rotateX(-5deg) rotateY(5deg)}.game-container{padding:var(--space-lg);gap:var(--space-lg)}.game-board{max-width:100%}.move-log{flex-basis:100%;margin-top:var(--space-xs)}.pregame-characters{display:none}}@media (max-width: 768px){.player-panel{flex-direction:row;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);min-height:120px;gap:var(--space-md);flex-wrap:wrap;overflow:hidden}.player-title{flex:0 0 auto;max-width:120px;font-size:1.2rem;min-width:80px}.player-title img{width:100%;height:auto;max-height:40px;-o-object-fit:contain;object-fit:contain}.character-illustration{display:none}.player-info-display{flex:0 0 auto;text-align:center;min-width:60px}.player-dice{flex:0 0 auto;margin-top:0;margin-left:0;width:50px;height:50px;flex-shrink:0;position:relative}.dice-face{width:50px;height:50px;font-size:12px}.dice-face.front{transform:rotateY(0) translateZ(25px)}.dice-face.back{transform:rotateY(180deg) translateZ(25px)}.dice-face.right{transform:rotateY(90deg) translateZ(25px)}.dice-face.left{transform:rotateY(-90deg) translateZ(25px)}.dice-face.top{transform:rotateX(90deg) translateZ(25px)}.dice-face.bottom{transform:rotateX(-90deg) translateZ(25px)}.player-panel.active .player-dice{transform:translateY(-10px)}.player-panel.active .player-dice:hover:not(:disabled):not(.rolling):not(.settling){transform:translateY(-12px) scale(1.05) rotateX(-5deg) rotateY(5deg)}.game-container{padding:var(--space-md);gap:var(--space-md)}.game-board{max-width:100%}:root{--square-size: 35px;--player-size: 16px;--dice-size: 50px}.pregame-title{font-size:2.5rem}.pregame-card{padding:var(--space-xl)}.victory-content{flex-direction:column;text-align:center;padding:var(--space-xl)}.glory-title{min-width:300px}.isolde-modal .victory-text,.rowan-modal .victory-text{text-align:center;order:2}.isolde-modal .victory-character,.rowan-modal .victory-character{position:relative;left:auto;right:auto;order:1;min-height:auto;bottom:-5.9vh}.victory-subtitle{font-size:1rem;letter-spacing:.05em;margin-top:.5rem}.game-toolbar{gap:var(--space-md)}.turn-indicator{font-size:.85rem}}@media (max-width: 480px){.player-panel{min-height:auto;padding:var(--space-sm);flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);text-align:center}.player-title{max-width:none;width:100%;font-size:1rem;order:1;margin-bottom:3%}.player-title img{max-height:35px}.player-info-display{order:2;min-width:auto}.player-dice{width:45px;height:45px;order:3;margin-left:0}.dice-face{width:45px;height:45px;font-size:10px}.dice-face.front,.dice-face.back,.dice-face.right,.dice-face.left,.dice-face.top,.dice-face.bottom{transform:rotateY(0) translateZ(22.5px)}.dice-face.back{transform:rotateY(180deg) translateZ(22.5px)}.dice-face.right{transform:rotateY(90deg) translateZ(22.5px)}.dice-face.left{transform:rotateY(-90deg) translateZ(22.5px)}.dice-face.top{transform:rotateX(90deg) translateZ(22.5px)}.dice-face.bottom{transform:rotateX(-90deg) translateZ(22.5px)}.player-panel.active .player-dice{transform:translateY(0)}.player-panel.active .player-dice:hover:not(:disabled):not(.rolling):not(.settling){transform:translateY(-2px) scale(1.05) rotateX(-5deg) rotateY(5deg)}:root{--square-size: 30px;--player-size: 14px;--dice-size: 45px}.square-number{font-size:.8rem}.pregame-title{font-size:2rem}.pregame-card{padding:var(--space-lg)}.pregame-player-input{padding:var(--space-sm)}.pregame-token{width:36px;height:36px}.victory-modal{width:95%;margin:var(--space-md)}.victory-content{padding:var(--space-lg)}.floating-indicator{font-size:1rem}.game-toolbar{gap:var(--space-sm);flex-wrap:wrap}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.player-dice:focus-visible,.play-again-button:focus-visible,.toolbar-btn:focus-visible,.pregame-start-btn:focus-visible,.pregame-link:focus-visible{outline:2px solid white;outline-offset:2px}@media (prefers-contrast: high){:root{--Pink: #FF00FF;--Black: #000000;--player1-color: #ff0000;--player2-color: #0000ff}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.block{display:block}.flex{display:flex}.table{display:table}.min-h-screen{min-height:100vh}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.border{border-width:1px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}
