@font-face{font-family:TableSerif;src:local("Georgia")}@font-face{font-family:TableSans;src:local("Trebuchet MS")}
:root{color-scheme:dark;--ink:#f7ecd4;--muted:#d3c3a9;--paper:#f0e0bd;--dark:#29221d;--gold:#e7bd62;--red:#a83e2c;--green:#49623e;--radius:7px;font-family:TableSans,"Trebuchet MS",sans-serif;font-size:16px;line-height:1.4;background:#241d18;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;background:linear-gradient(#211b1699,#211b16bb),url('/assets/dungeon.png') center top/cover fixed}button,input,select{font:inherit}button{cursor:pointer;min-height:44px;border:1px solid #b1a08a;border-radius:var(--radius);padding:10px 16px;color:var(--ink);background:#3c3128;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#5d4730}button:active:not(:disabled){transform:translateY(2px)}button:disabled{cursor:default;opacity:.52}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #ffe39a;outline-offset:4px}input,select{min-height:46px;border:1px solid #aa987f;border-radius:5px;padding:10px 12px;background:#231f1a;color:var(--ink);width:100%;max-width:100%}input[type=checkbox]{width:21px;min-height:21px;accent-color:var(--gold)}input[type=range]{padding:0;accent-color:var(--gold);min-height:44px;cursor:pointer}label{display:block;color:var(--ink)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:TableSerif,Georgia,serif;line-height:1.13}h1{font-size:clamp(1.9rem,3.5vw,3.6rem)}h2{font-size:1.45rem}h3{font-size:1.25rem}p{line-height:1.5}a{color:#ffe29b}svg{display:block;max-width:100%}kbd{font:inherit;font-size:.75rem;padding:2px 5px;border:1px solid currentColor;border-radius:3px;margin-left:8px;opacity:.8}.primary{background:var(--gold);border:1px solid #f8d98e;color:#30231a;font-weight:700;box-shadow:0 4px 0 #765127}.primary:hover:not(:disabled){background:#f5d383}.secondary{background:#443729;color:#fff1d4;border-color:#ab9269}.quiet,.text-button{background:none;border-color:transparent;box-shadow:none;color:#f8dfad}.text-button{text-decoration:underline;text-underline-offset:4px}.icon-button{padding:6px 12px;font-size:1.5rem;min-width:44px;line-height:1}.skip-link{position:fixed;top:-80px;left:12px;z-index:1000;background:#171512;color:#fff;padding:10px}.skip-link:focus{top:8px}#topbar{display:flex;justify-content:space-between;align-items:center;padding:10px clamp(12px,3vw,44px);gap:12px;background:#211c17f0;border-bottom:1px solid #725b3c;min-height:70px;position:relative;z-index:10}.header-tools{display:flex;align-items:center;gap:8px}.wordmark{font-family:Impact,"Arial Black",serif;font-style:italic;font-weight:900;line-height:.87;letter-spacing:-.04em;color:#dd6b39;text-shadow:2px 3px 0 #5c251e,-1px -1px 0 #f4d781,4px 5px 0 #b08a38;transform:rotate(-5deg)}.wordmark.small{font-size:1.75rem;background:none;padding:3px;border:none;min-width:125px}.flag{width:45px;height:44px;padding:7px;background:#29231e;border:2px solid transparent}.flag svg{width:100%;height:100%;border-radius:1px}.flag.active{border-color:var(--gold)}.room-code{font-weight:bold;letter-spacing:.07em;color:var(--gold);font-size:.9rem}.connection{font-size:.8rem;color:#d9e4c0}.offline{color:#ffba9e}.initial-loading{text-align:center;padding:20vh 10px}#main{width:100%;margin:0 auto;min-height:calc(100dvh - 70px)}
.menu{min-height:calc(100dvh - 70px);display:grid;grid-template-columns:1.15fr 1fr;align-items:center;max-width:1350px;margin:0 auto;padding:36px clamp(20px,4vw,60px);gap:5vw;overflow:hidden}.menu-art{position:relative;height:650px;perspective:1000px}.menu-card{position:absolute;width:290px;aspect-ratio:2/3;top:100px;border-radius:16px;box-shadow:18px 26px 30px #0c0908a8;transform-style:preserve-3d;animation:card-breathe 8s ease-in-out infinite}.menu-card>img{width:100%;height:100%;object-fit:cover;border-radius:16px}.menu-card>svg{position:absolute;inset:0;width:100%;height:100%}.menu-card.first{left:0;rotate:-17deg;z-index:1}.menu-card.second{left:165px;rotate:11deg;top:145px;animation-delay:-4s;z-index:2}.menu-symbols{position:absolute;bottom:20px;left:0;right:0;display:flex;gap:7px;justify-content:center}.menu-symbols svg{background:#f8edcf;border-radius:5px;padding:2px}.menu-dragon{position:absolute;bottom:5px;left:20px;z-index:3;filter:drop-shadow(8px 12px 0 #291712)}.menu-copy{max-width:480px;padding:22px 0}.menu-copy h1{font-size:clamp(5.7rem,10vw,9rem);margin-bottom:32px}.menu-line{font-family:Georgia,serif;font-size:1.6rem;color:#ffe5ae;margin-bottom:9px}.menu-intro{color:var(--muted);max-width:400px;margin-bottom:24px}.menu-copy form{display:flex;flex-direction:column;gap:9px;max-width:365px}.menu-copy label{font-size:.93rem;margin-top:7px}.menu-copy form .primary{margin-top:10px}.menu-copy .text-button{margin:12px -16px 0}.entry-hint{color:var(--muted);font-size:.85rem;text-align:center;margin-top:8px}
.lobby{max-width:1450px;margin:auto;padding:40px clamp(18px,4vw,70px)}.lobby-heading{text-align:center}.lobby-heading p{margin:12px 0 18px;color:var(--muted)}.party{display:flex;justify-content:center;gap:18px;margin:30px auto;flex-wrap:wrap}.party-seat{width:190px;max-width:45%;text-align:center;position:relative;background:#ead4ad;color:#32261b;border-radius:8px;padding:0 10px 16px;box-shadow:5px 8px 0 #1f1715a0;overflow:hidden}.party-seat.my-seat{outline:3px solid #f3c463;outline-offset:4px}.party-portrait{height:170px;background:#f3e8d3;mask-image:linear-gradient(#000 82%,transparent);overflow:hidden}.portrait{width:100%;height:100%;object-fit:contain}.party-seat h2{font-size:1.3rem;margin-top:8px;overflow-wrap:anywhere}.party-seat p{font-size:.9rem;margin:5px 0}.party-seat .text-button{color:#663225}.ready-status{font-weight:bold;color:#3e5734;font-size:.9rem}.empty-seat{display:flex;flex-direction:column;justify-content:center;gap:15px;max-width:195px;text-align:center;color:var(--muted);padding:20px}.empty-seat p{font-size:.9rem}.lobby-options{max-width:920px;margin:28px auto;display:grid;grid-template-columns:1fr 1fr;gap:40px}.role-picker h2{margin-bottom:12px}.role-picker>div{display:flex;flex-wrap:wrap;gap:8px}.role-picker button{display:flex;align-items:center;gap:8px;min-height:49px}.role-picker button.selected{background:var(--gold);color:#2e2319;border-color:#ffe8a8}.scenario-picker>label{font-size:1.25rem;font-family:Georgia,serif;margin-bottom:12px}.scenario-picker p{font-size:.9rem;color:var(--muted);margin:10px 0}.checkbox{display:flex;align-items:center;gap:12px;font-family:TableSans,sans-serif!important;font-size:.9rem!important}.lobby-start{display:flex;justify-content:center;gap:12px;margin-top:30px;align-items:center}
.game-layout{max-width:1600px;display:grid;grid-template-columns:205px minmax(0,1fr);gap:22px;padding:20px clamp(12px,2vw,30px);margin:0 auto}.players-strip{padding-top:45px;display:flex;flex-direction:column;gap:17px;align-self:start}.player-summary{display:flex;gap:8px;align-items:center;padding:6px 0;min-width:0}.player-summary.local-player{background:#4a3b28;border-radius:6px;box-shadow:0 0 0 6px #4a3b28}.mini-portrait{height:72px;width:62px;flex-shrink:0;background:#e4d4b6;border-radius:50% 50% 7px 7px;overflow:hidden}.player-summary strong{font-size:.95rem;overflow-wrap:anywhere;display:block}.player-summary span{font-size:.77rem;color:var(--muted);display:block}.player-summary.wounded{border-bottom:2px solid #df8b73}.mini-dice{display:flex;gap:3px;margin-top:5px;flex-wrap:wrap}.mini-dice span{border-radius:4px;box-shadow:0 2px 0 #181411}.mini-dice span.committed{outline:1px solid #ddbe7c}.mini-dice svg{width:22px;height:22px}.offline-label{color:#ffba9e!important}.table-zone{min-width:0}.match-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 15px}.match-heading h1{font-size:clamp(1.4rem,2.2vw,2.1rem);margin-bottom:5px}.match-heading span{font-size:.9rem;color:var(--muted)}.table-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.table-tools button{font-size:.83rem;padding:8px}.start-banner{padding:14px 18px;text-align:center;margin-bottom:12px;background:#ded0a6;color:#392b1d;font-weight:bold;border-radius:5px}.dungeon-table{background:url('/assets/dungeon.png') center/100% 100%;padding:30px clamp(25px,4vw,65px);border-radius:14px;box-shadow:0 10px 0 #201712,0 18px 24px #120d0980;perspective:1200px}.card-lane{position:relative}.lane-label{display:flex;align-items:baseline;justify-content:space-between;font-family:Georgia,serif;font-size:1.15rem;color:#fff0c9;text-shadow:0 2px 2px #24180f;margin-bottom:8px}.lane-label span{font-family:TableSans,sans-serif;font-size:.8rem;margin-left:15px;color:#fff0d5}.lane-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) .58fr;gap:14px;align-items:center;max-width:900px;margin:auto}.game-card{position:relative;aspect-ratio:2/3;min-width:0;background:#ad8249;border-radius:9px;box-shadow:3px 5px 0 #1b1511,6px 9px 12px #120e0a8c;transform:perspective(850px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .15s;isolation:isolate;overflow:hidden}.game-card .illustration{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.card-frame{position:absolute;inset:0;z-index:1;pointer-events:none}.card-frame svg{width:100%;height:100%}.card-heading{position:absolute;z-index:3;top:0;left:0;right:0;padding:5px 7px;background:#241b16eb;display:flex;justify-content:space-between;align-items:center;gap:3px;border-radius:8px 8px 0 0;font-size:.75rem;color:#fff2d6}.inspect{padding:2px 5px;font-size:.72rem;min-height:32px;min-width:35px;border-color:#bd9e6d;background:#3e3021;border-radius:3px}.card-bottom{position:absolute;z-index:3;bottom:12px;left:6%;right:6%;display:flex;flex-direction:column;align-items:center;gap:4px}.requirements{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;max-width:156px}.skill-slot{padding:2px;width:44px;height:44px;min-height:44px;flex:0 0 44px;border:1px solid #b8a37a;background:#f8f0da;border-radius:5px;position:relative;box-shadow:0 2px 0 #291f18;touch-action:manipulation}.skill-slot svg{width:100%;height:100%}.skill-slot:disabled{opacity:1;cursor:default}.requirements.sorcerer .skill-slot{background:#1b1b1e;border-color:#9a8a73}.skill-slot.occupied{background:var(--die-color)!important;border-color:#c8b797;transform:translateY(-3px) rotate(-4deg);box-shadow:2px 4px 0 #17120f}.skill-slot.legal{outline:3px solid #d8ed9a;outline-offset:0;cursor:pointer;background:#fff7df}.skill-slot.preview-slot,.skill-slot.drag-over{outline:4px solid #72b96b;background:#ecffcb}.owner-mark{position:absolute;bottom:-7px;right:-5px;font-size:.62rem;width:16px;height:16px;line-height:16px;background:#31281e;color:#fff;border-radius:50%;text-align:center;font-weight:bold}.upper-requirements{position:absolute;top:48px;left:4%;right:4%;display:flex;justify-content:center;z-index:3}.upper-requirements .skill-slot{width:35px;height:35px;min-height:35px;flex-basis:35px}.upper-requirements .skill-slot.legal,.upper-requirements .skill-slot.occupied[data-owner]{width:44px;height:44px;min-height:44px;flex-basis:44px}.banner{position:absolute;top:42%;left:0;background:#17191d;padding:3px;border:1px solid #e0bc73;z-index:2}.afflicted-name{position:absolute;bottom:45%;left:8px;right:8px;background:#27231deb;text-align:center;font-size:.75rem;padding:3px;z-index:2}.effect-label{font-size:.72rem;color:#fff5de;line-height:1.2;text-align:center;background:#32251ee6;padding:4px;border-radius:2px}.blocked-label{position:absolute;z-index:4;top:34%;left:0;right:0;background:#842f24f0;color:#fff1d1;text-align:center;padding:7px 4px;font-size:.73rem;font-weight:bold}.dragon-blocked{outline:3px solid #d57752}.sealed-deck{aspect-ratio:2/3;background:repeating-radial-gradient(ellipse at 45% 45%,#504738 0 3px,#302b25 4px 7px);border:6px solid #746048;border-radius:7px;box-shadow:4px 5px 0 #201b16,7px 8px 0 #6a5439,10px 11px 0 #211b15;display:flex;justify-content:center;align-items:center;max-height:190px;rotate:3deg}.sealed-deck span{font-size:clamp(2rem,4vw,4rem);color:#cfb888}.sorcerer-deck{background:repeating-radial-gradient(ellipse at 55% 45%,#5d6057 0 3px,#373d35 4px 7px);rotate:-3deg}.dragon-track{position:relative;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;gap:4px;padding:14px 0;margin:8px 0;min-height:72px}.dragon-step{border-top:2px solid #c6a86a;padding:7px 3px 0;text-align:center;font-size:.74rem;color:#ffedc8;text-shadow:0 1px 2px #301f10}.dragon-step.current{font-weight:bold;color:#fff}.dragon-pawn{position:absolute;z-index:5;left:calc(var(--dragon-step)*20% + 10%);top:-15px;width:65px;transform:translateX(-50%) rotateY(-12deg);transition:left .8s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(3px 6px 0 #4a201ad0)}.dragon-track.no-dragon{display:flex;justify-content:center;color:#fff0d3;font-size:.85rem;min-height:45px;padding:6px 0}.soul-count,.life-count{position:absolute;bottom:-4px;font-size:.75rem;background:#34291f;padding:2px 6px;color:#fff2d6}.soul-count{left:0}.life-count{right:0}.extra-zone{padding:22px 0 7px}.extra-zone h2{font-size:1.1rem;margin:0 0 12px;color:#e0cba5}.extra-cards{display:flex;gap:15px;overflow-x:auto;padding:5px 5px 12px}.extra-cards>.game-card{width:166px;flex-shrink:0}.spell-art{position:absolute;inset:0;overflow:hidden;background:var(--spell-dark)}.spell-art>svg{width:100%;height:100%;object-fit:cover}.spell-center{position:absolute;inset:12% 10% 22%;display:flex;align-items:center;justify-content:center}.spell-center>.portrait{background:#e1d1af;mask-image:radial-gradient(ellipse,#000 30%,transparent 69%)}.spell-mark{font-size:clamp(2.4rem,7vw,5rem);font-family:Georgia,serif;color:#fff0d0;text-shadow:2px 3px 0 #3f2418}.crossed{position:relative}.crossed:after{content:"";position:absolute;left:45%;top:0;width:7px;height:100%;background:#df5b44;transform:rotate(40deg);box-shadow:0 0 0 2px #f3d8b6}.gold-coin{height:90px;width:90px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#d5aa49;color:#5a3d1b;border:5px double #ffdb79;font-size:3rem;box-shadow:6px 8px 0 #715326}.item-effect{display:flex;align-items:center;justify-content:center;gap:4px;background:#e5d0a5;color:#392d22;padding:5px}.item-effect svg{width:43px;height:43px}.cost{font-size:.78rem;color:#ffe3a1}
.tray{position:relative;margin:24px auto 10px;padding:14px 22px 18px;background:linear-gradient(120deg,#302d26,#3c3227);border:2px solid #b29866;border-radius:10px;box-shadow:0 7px 0 #1b1511;max-width:900px}.tray-head{display:flex;align-items:center;gap:13px;min-height:60px}.tray-character{width:64px;height:65px;overflow:hidden;flex-shrink:0;background:#e3d0aa;border-radius:5px}.tray-head strong{font-size:1rem}.tray-head p{font-size:.85rem;color:#e1cda8;margin-top:4px}.specialty{display:flex;align-items:center;gap:5px;margin-left:auto;background:#e9daba;color:#352c22;padding:3px 6px;border-radius:4px}.specialty>svg{width:30px;height:30px}.dice-row{position:relative;height:146px;max-width:560px;margin:0 auto}.dice-buttons{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:19px;padding-bottom:12px}.die-button{position:relative;width:76px;flex-shrink:0;height:107px;min-height:107px;padding:0;background:transparent;border:2px solid transparent;border-radius:9px;touch-action:none}.die-button:hover:not(:disabled){background:#e1bc6520}.die-button.selected-die{border-color:#f0d07e;background:#d8ba6320}.die-caption{position:absolute;bottom:-21px;left:50%;transform:translateX(-50%);font-size:.75rem;line-height:1.1;white-space:nowrap;color:#f2dfb9}.flat-face{display:none;border:1px solid #c0a77f;box-shadow:4px 5px 0 #161413;border-radius:11px;width:68px;height:68px;margin:auto;color:#493723;align-items:center;justify-content:center}.flat-dice .flat-face{display:flex}.flat-dice #dice-3d{display:none}.placed-die .flat-face,.locked-die .flat-face{display:flex;opacity:.75;transform:scale(.78)}.locked-die .flat-face:after{content:"×";position:absolute;color:#e7977f;font-size:3rem;text-shadow:1px 2px #211}.tray-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:12px}.roll-button{min-width:225px}#dice-3d{height:140px;width:100%;position:absolute;inset:0;pointer-events:none}#dice-3d canvas{width:100%;height:100%;display:block}.owned-items{display:flex;flex-direction:column;gap:5px;margin-top:10px}.owned-items button{font-size:.8rem;min-height:44px}.completion-controls,.pending-spell{padding:16px 18px;margin:16px 0;background:#e9d8b1;color:#30251a;border:2px solid #bf9c59;border-radius:6px}.completion-controls{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}.completion-controls select{margin-top:5px}.pending-spell p{font-size:.9rem;margin:8px 0}.pending-spell form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.pending-spell label{color:#382b20;flex:1;min-width:160px}.pending-spell strong{font-size:1.1rem}.placement-confirm{position:fixed;z-index:150;display:flex;gap:7px;padding:4px;background:#211c17;border:1px solid #dfc99f;border-radius:7px;box-shadow:2px 5px 10px #0008}.placement-confirm[hidden]{display:none}.placement-confirm button{padding:0;width:44px;height:44px;font-size:1.7rem}.confirm-placement{background:#355c32;border-color:#b5db8a;color:#fffbe8}.confirm-placement:hover{background:#476e39!important}.cancel-placement{background:#4b352b;color:#fff0d5}#drag-follower{position:fixed;pointer-events:none;z-index:200;display:flex;align-items:center;justify-content:center;border:2px solid #dbc595;border-radius:10px;box-shadow:6px 10px 12px #0009;opacity:1}.drag-over{transform:scale(1.07)}
.results{text-align:center;max-width:850px;margin:auto;padding:28px 20px 50px}.result-art{height:260px;display:flex;justify-content:center;filter:drop-shadow(8px 10px 6px #0005);animation:result-arrive 1.1s cubic-bezier(.2,.8,.2,1)}.result-art .portrait{width:260px;background:#ebdbb9;border-radius:50% 50% 12px 12px;mask-image:linear-gradient(#000 75%,transparent)}.result-round{font-size:1rem;color:#e2c996;margin:10px 0}.results h1{color:#ffe4a5;margin:10px 0 15px}.results>p{margin:12px 0;color:#e4d0ae}.trophy-score{display:flex;justify-content:center;gap:70px;margin:22px 0}.trophy-score span{display:flex;flex-direction:column;color:#dfc79d;font-size:1rem}.trophy-score strong{font-family:Georgia,serif;font-size:4rem;color:#f4d37f;line-height:1.2;animation:score-settle 1s ease-out}.result-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center;margin-top:24px}.results.settled *{animation:none!important}.review-return{margin:20px}.market{max-width:1300px;margin:auto;padding:40px clamp(18px,4vw,60px)}.market>p{max-width:800px;margin:15px 0;color:var(--muted)}.market>h2{margin:25px 0 15px}.market>label{max-width:330px}.shop-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:25px;margin:25px 0}.shop-item{min-width:0}.shop-item>.game-card{max-width:210px;margin:auto}.shop-item>p{font-size:.85rem;margin:13px 0;min-height:80px}.shop-item>button{width:100%}
dialog{max-width:min(1000px,calc(100vw - 30px));max-height:calc(100dvh - 40px);padding:22px;border:2px solid #b79a67;border-radius:9px;background:#30281f;color:var(--ink);box-shadow:0 20px 80px #000a;overscroll-behavior:contain}dialog::backdrop{background:#100c09bf;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:-22px;background:#30281f;z-index:8;padding-bottom:12px}.dialog-heading h2{font-size:clamp(1.4rem,3vw,2rem)}.settings{display:flex;flex-direction:column;gap:12px;width:min(420px,80vw)}.settings label:not(.checkbox){display:flex;justify-content:space-between}.settings .checkbox{padding:12px 0}.help{max-width:740px}.help p{margin:10px 0 20px;color:#e5d5b9}.help h3{color:#f0cf84;margin:24px 0 7px}.credits{font-size:.8rem;border-top:1px solid #786347;padding-top:18px}.card-inspection{display:grid;grid-template-columns:minmax(180px,330px) 1fr;gap:28px;align-items:center}.card-inspection .game-card{width:100%;min-width:180px}.card-inspection .inspect{visibility:hidden}.card-inspection p{margin:15px 0}.card-inspection .skill-slot{width:52px;height:52px;flex-basis:52px}.card-inspection .requirements{max-width:178px}.card-inspection .upper-requirements{top:65px}.gallery-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;margin:20px 0;width:min(880px,85vw)}.gallery-cards .game-card{width:100%}.gallery-cards .skill-slot{width:36px;height:36px;min-height:36px;flex-basis:36px}.gallery-cards .requirements{max-width:120px}.gallery-cards .inspect{min-height:44px}.gallery-cards .card-heading{font-size:.7rem}.gallery-cards .card-bottom{bottom:10px}.gallery-cards .effect-label{font-size:.7rem}#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);max-width:min(580px,calc(100vw - 30px));width:max-content;background:#f0ddaf;color:#34251a;padding:14px 22px;border:2px solid #947142;border-radius:7px;box-shadow:0 10px 25px #0008;opacity:0;pointer-events:none;z-index:300;transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}#fx{position:fixed;inset:0;pointer-events:none;z-index:90;overflow:hidden}.event-effect{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);animation:event-sweep 1.5s cubic-bezier(.2,.8,.2,1) forwards;text-align:center}.event-effect span{font:700 clamp(1.5rem,4vw,3.8rem) Georgia,serif;color:#ffe2a0;text-shadow:2px 3px #4a2319,0 4px 18px #000;background:#392519e8;padding:15px 25px;display:block;white-space:nowrap}.fx-confusion{filter:drop-shadow(0 0 15px #decab5)}.fx-dragon{animation:dragon-lunge 1.5s ease-out forwards}.fx-repel{animation:dragon-retreat 1.2s ease-out forwards}
@keyframes card-breathe{0%,100%{translate:0 0;transform:rotateY(-4deg)}50%{translate:0 -9px;transform:rotateY(3deg)}}@keyframes result-arrive{from{opacity:0;transform:translateY(50px) rotate(-6deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes score-settle{from{opacity:.3;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes event-sweep{0%{opacity:0;transform:translate(-50%,40%) scale(.8)}20%,65%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-100%) scale(1.1)}}@keyframes dragon-lunge{0%{opacity:0;transform:translate(-140%,-60%) scale(.3) rotate(-20deg)}35%{opacity:1;transform:translate(-50%,-50%) scale(2) rotate(10deg)}100%{opacity:0;transform:translate(130%,50%) scale(1.2)}}@keyframes dragon-retreat{0%{opacity:1;transform:translate(-50%,-50%) scale(1.8)}100%{opacity:0;transform:translate(-220%,-100%) scale(.3) rotate(-40deg)}}
@media(min-width:1500px){.dungeon-table{padding:36px 75px}.lane-cards{max-width:880px}.lane-label{max-width:880px;margin-left:auto;margin-right:auto}}
@media(max-width:1150px){.game-layout{grid-template-columns:1fr;padding:12px 20px;gap:10px}.players-strip{padding:0;flex-direction:row;justify-content:center;flex-wrap:wrap;gap:15px;order:0}.player-summary{padding:4px;gap:6px}.mini-portrait{height:52px;width:44px}.player-summary strong{font-size:.83rem}.player-summary span{font-size:.7rem}.mini-dice svg{width:18px;height:18px}.player-summary.local-player{box-shadow:none;padding:5px 9px}.table-zone{order:1}.dungeon-table{padding:28px 45px}.lane-cards{gap:16px;max-width:800px}.menu-art{height:570px}.menu-card{width:245px}.menu-card.second{left:110px}.menu-copy h1{font-size:7rem}.menu{gap:30px}.card-inspection{grid-template-columns:minmax(180px,300px) 1fr}}
@media(max-width:780px){#topbar{padding:9px 12px;gap:5px}.header-tools{gap:4px}.header-tools>.quiet{font-size:.8rem;padding:7px}.connection{display:none}.room-code{font-size:.8rem}.wordmark.small{font-size:1.5rem;min-width:105px}.menu{grid-template-columns:.8fr 1fr;padding:20px;gap:10px}.menu-art{height:500px}.menu-card{width:190px;top:100px}.menu-card.second{left:55px;top:160px}.menu-card.first{left:-35px}.menu-dragon{left:-10px;bottom:0}.menu-dragon svg{width:135px}.menu-copy h1{font-size:6rem}.menu-line{font-size:1.2rem}.menu-intro{font-size:.9rem}.lobby-options{gap:22px}.party-seat{width:150px}.party-portrait{height:140px}.game-layout{padding:10px}.players-strip{gap:7px}.player-summary{gap:4px}.mini-portrait{display:none}.player-summary strong{font-size:.8rem}.player-summary .mini-dice svg{width:17px;height:17px}.match-heading{gap:7px;margin:8px 4px 10px}.match-heading h1{font-size:1.4rem}.table-tools{max-width:200px}.table-tools button{font-size:.75rem}.dungeon-table{padding:26px 26px 24px}.lane-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sealed-deck{display:none}.lane-label span{font-size:.72rem}.game-card{border-radius:7px}.card-heading{font-size:.7rem;padding:3px 4px}.inspect{font-size:.65rem;min-height:32px;padding:2px 3px}.skill-slot{width:40px;height:40px;min-height:40px;flex-basis:40px}.skill-slot.legal,.skill-slot.occupied[data-owner]{width:44px;height:44px;min-height:44px;flex-basis:44px}.requirements{max-width:140px;gap:3px}.card-bottom{bottom:9px;left:4%;right:4%}.upper-requirements{top:38px}.upper-requirements .skill-slot{width:33px;height:33px;min-height:33px;flex-basis:33px}.tray{padding:13px;margin-top:20px}.dice-row{max-width:540px}.extra-cards>.game-card{width:170px}.card-inspection{gap:18px}.card-inspection .card-heading{font-size:.9rem}.gallery-cards{grid-template-columns:repeat(3,minmax(145px,1fr));width:85vw}.shop-cards{grid-template-columns:repeat(3,minmax(145px,1fr));gap:18px}.shop-item>p{min-height:120px}.tray-head strong{font-size:.9rem}.tray-head p{font-size:.8rem}.tray-character{width:47px;height:57px}}
@media(max-width:560px){#topbar{flex-wrap:wrap;justify-content:space-between}.header-tools>.quiet{max-width:85px;line-height:1.1}.wordmark.small{font-size:1.35rem;min-width:95px}.flag{width:39px;padding:7px 4px}.header-tools{gap:0}.room-code{display:none}.menu{display:flex;flex-direction:column;overflow:visible;gap:5px;padding:20px}.menu-art{height:200px;width:100%;order:1;margin-top:15px}.menu-copy{order:0;width:100%;max-width:400px;padding:4px 0}.menu-copy h1{font-size:5.3rem;line-height:.93;transform:rotate(-4deg);margin:8px 0 20px}.menu-copy h1 br{display:none}.menu-copy .menu-line{font-size:1.2rem}.menu-copy .menu-intro{margin-bottom:13px}.menu-copy form{max-width:none;gap:7px}.menu-copy label{margin-top:5px}.menu-card{width:145px;top:15px}.menu-card.first{left:calc(50% - 140px)}.menu-card.second{left:calc(50% - 10px);top:25px}.menu-symbols svg{width:27px}.menu-symbols{gap:3px;bottom:15px}.menu-dragon{bottom:0;left:calc(50% - 70px)}.menu-dragon svg{width:130px}.menu-copy .text-button{font-size:.9rem}.lobby{padding:25px 16px}.lobby-heading h1{font-size:2rem}.party{gap:13px}.party-seat{width:145px;max-width:46%}.party-seat h2{font-size:1.1rem}.party-portrait{height:120px}.empty-seat{max-width:46%;padding:8px;font-size:.85rem;gap:7px}.empty-seat p{font-size:.8rem}.empty-seat button{font-size:.8rem;padding:8px}.lobby-options{grid-template-columns:1fr;gap:25px}.lobby-start{flex-direction:column}.lobby-start button{width:100%}.game-layout{padding:6px;gap:4px}.players-strip{justify-content:flex-start;gap:4px}.player-summary{flex:1;min-width:95px;max-width:160px}.player-summary.local-player{padding:5px}.player-summary strong{font-size:.76rem}.player-summary span{font-size:.65rem}.mini-dice{gap:2px}.mini-dice svg{width:16px!important;height:16px!important}.match-heading{align-items:flex-start;margin:8px 5px 10px}.match-heading h1{font-size:1.25rem;max-width:220px}.match-heading span{font-size:.75rem}.table-tools{max-width:95px;gap:0;flex-direction:column}.table-tools button{line-height:1.1;min-height:44px;padding:4px}.dungeon-table{padding:25px 17px;background-size:auto 100%;border-radius:8px}.lane-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:390px}.lane-cards>.game-card:nth-child(3){grid-column:1/-1;width:calc(50% - 7px);justify-self:center}.lane-label{font-size:1rem;margin:0 0 10px}.lane-label span{font-size:.7rem;line-height:1.2;max-width:150px;text-align:right}.game-card{min-height:220px}.card-heading{font-size:.68rem;padding:3px 4px}.inspect{min-height:44px;min-width:40px;font-size:.65rem}.card-bottom{bottom:10px;left:3%;right:3%;gap:3px}.skill-slot{width:39px;height:39px;min-height:39px;flex-basis:39px}.skill-slot.legal,.skill-slot.occupied[data-owner]{width:44px;height:44px;min-height:44px;flex-basis:44px}.requirements{max-width:138px;gap:2px}.upper-requirements{top:51px}.upper-requirements .requirements{max-width:140px}.upper-requirements .skill-slot{width:33px;height:33px;min-height:33px;flex-basis:33px}.banner{top:40%}.banner svg{width:27px;height:27px}.card-heading>span{max-width:78px;line-height:1.1}.effect-label{font-size:.68rem}.dragon-track{margin:12px 0;min-height:65px}.dragon-pawn{width:55px;top:-10px}.dragon-step{font-size:.7rem}.soul-count,.life-count{font-size:.66rem;bottom:-4px}.extra-zone{padding:15px 5px}.extra-zone h2{font-size:1rem}.extra-cards{gap:12px;padding:5px 4px 12px}.extra-cards>.game-card{width:160px}.tray{margin:14px 2px;padding:10px 8px 14px;border-radius:7px}.tray-head{gap:7px;align-items:flex-start}.tray-head strong{font-size:.85rem}.tray-head p{font-size:.74rem;max-width:190px}.tray-character{width:40px;height:49px}.specialty{gap:2px;padding:2px;margin-left:auto}.specialty>svg{width:23px;height:23px}.dice-row{height:132px;max-width:100%}.dice-buttons{gap:7px;padding-bottom:8px}.die-button{width:58px;height:95px;min-height:95px;flex-shrink:1}.die-caption{font-size:.65rem;bottom:-14px}.flat-face{width:53px;height:53px}.flat-face svg{width:44px;height:44px}.tray-actions{gap:8px}.tray-actions>button{flex:1;font-size:.85rem;padding:9px 7px;min-width:140px}.roll-button{width:100%;min-width:200px!important}.tray-actions kbd{font-size:.65rem}.pending-spell{margin:12px 3px;padding:13px}.pending-spell form{display:block}.pending-spell label{margin:8px 0}.pending-spell .primary{width:100%;margin-top:10px}.completion-controls{margin:12px 3px;padding:12px}.completion-controls>button{width:100%}.completion-controls label{width:100%}.owned-items button{font-size:.75rem}.result-art{height:200px}.result-art svg{max-height:200px}.results{padding:25px 18px}.results h1{font-size:2.5rem}.trophy-score{gap:40px}.result-actions{gap:10px}.result-actions .primary{width:100%}.market{padding:28px 16px}.shop-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.shop-item>p{font-size:.8rem;min-height:125px}.shop-item>button{font-size:.85rem;padding:8px}.card-inspection{grid-template-columns:1fr;width:min(320px,80vw);gap:10px}.card-inspection .game-card{width:250px;min-height:375px;justify-self:center}.card-inspection .skill-slot{width:52px;height:52px;flex-basis:52px}.card-inspection .requirements{max-width:178px}.card-inspection .card-heading>span{max-width:none}.card-inspection p{font-size:.9rem}.gallery-cards{grid-template-columns:repeat(2,minmax(0,1fr));width:calc(100vw - 80px);gap:13px}.gallery-cards .game-card{min-height:200px}.gallery-cards .requirements{max-width:115px;gap:2px}.gallery-cards .skill-slot{width:34px;height:34px;min-height:34px;flex-basis:34px}.gallery-cards .card-heading>span{max-width:62px;font-size:.65rem}.gallery-cards .inspect{min-width:35px;font-size:.6rem}.gallery-cards .upper-requirements{top:50px}.gallery-cards .effect-label{font-size:.62rem}dialog{padding:16px;max-width:calc(100vw - 20px)}.dialog-heading{top:-16px}.dialog-heading h2{font-size:1.45rem}.settings{width:calc(100vw - 65px)}.help p{font-size:.9rem}#toast{bottom:14px;font-size:.9rem;padding:12px 15px}.event-effect span{white-space:normal;font-size:1.5rem;width:85vw;padding:15px}}
.inspect{min-height:44px}.spell-center>svg{max-width:85%;max-height:85%}.lane-label{background:#2a2019e8;padding:5px 8px;border-radius:3px}.lane-label span{color:#f5e5c8}
@media(min-width:1160px){.game-layout{grid-template-columns:1fr;gap:8px}.players-strip{flex-direction:row;justify-content:center;padding-top:0;gap:28px}.player-summary{padding:0}.player-summary.local-player{padding:3px 10px;box-shadow:none}.mini-portrait{height:53px;width:45px}.match-heading{margin:7px 0 12px}.dungeon-table{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 32px;padding:28px 40px 22px}.sorcerer-lane{grid-column:1;grid-row:1}.hero-lane{grid-column:2;grid-row:1}.dragon-track{grid-column:1/-1;grid-row:2;min-height:45px;margin:0;max-width:750px;width:100%;justify-self:center}.dragon-track.no-dragon{min-height:25px}.lane-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:600px}.sealed-deck{display:none}.lane-label{font-size:1rem}.lane-label span{font-size:.7rem;max-width:180px;text-align:right}.tray{max-width:760px;margin-top:18px;padding:10px 18px 15px}.tray-character{width:45px;height:49px}.tray-head{min-height:49px}.dice-row{height:127px}.extra-zone{padding:15px 0 0}.extra-zone h2{margin-bottom:8px}.extra-cards>.game-card{width:150px;min-height:225px}.extra-cards{padding-bottom:8px}.extra-zone:has(.extra-cards>.game-card:only-child){position:absolute;left:20px;top:210px;width:145px;display:none}}
@media(max-width:560px){.table-zone{padding-bottom:245px}.tray{position:fixed;left:6px;right:6px;bottom:5px;margin:0;z-index:30;box-shadow:0 -5px 18px #100b09c9;padding:9px 8px 12px}.tray-head p{display:none}.tray-head{min-height:40px;align-items:center}.tray-character{height:40px;width:34px}.tray-head strong{font-size:.78rem}.dice-row{height:113px}.dice-buttons{padding-bottom:10px}.die-button{height:82px;min-height:82px}.die-caption{bottom:-17px}.tray-actions{margin-top:9px}.owned-items{max-height:70px;overflow:auto}.tray-actions>button{min-height:44px}.tray-actions .primary{min-width:180px!important}.results+.tray{position:static}.extra-cards{padding-bottom:15px}.card-heading{min-height:48px}.upper-requirements{top:54px}.skill-slot{width:44px;height:44px;min-height:44px;flex-basis:44px}.requirements{max-width:136px}.effect-label{max-width:100%;overflow-wrap:anywhere}}
@media(min-width:1160px){.extra-zone:has(.extra-cards>.game-card:only-child){display:block;position:static;float:left;max-width:175px;width:175px;margin:15px 20px 0 0;padding:0}.extra-zone:has(.extra-cards>.game-card:only-child) h2{font-size:.85rem;line-height:1.2}.extra-zone:has(.extra-cards>.game-card:only-child)+.tray{margin-left:195px;max-width:none;width:calc(100% - 195px)}.extra-zone:has(.extra-cards>.game-card:only-child) .extra-cards{overflow:visible}}
.lane-tabs{display:none}.flag{min-width:44px}.gallery-cards .inspect{min-width:44px}
body{background-image:linear-gradient(#211b1699,#211b16bb),url('/assets/dungeon.webp')}.dungeon-table{background-image:url('/assets/dungeon.webp')}
@media(max-width:560px){.lane-tabs{display:flex;gap:5px;margin:7px 5px}.lane-tabs button{flex:1;font-size:.9rem;background:#30271e;color:#f4dfb9}.lane-tabs button[aria-pressed=true]{background:#dfbd74;color:#302419;border-color:#f2d798}.game-layout[data-active-lane=heroes] .sorcerer-lane,.game-layout[data-active-lane=sorcerer] .hero-lane{display:none}.lane-cards{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 4px 13px;max-width:none}.lane-cards>.game-card,.lane-cards>.game-card:nth-child(3){width:166px;min-width:166px;flex:0 0 166px;min-height:249px;scroll-snap-align:start}.dungeon-table{padding:19px 10px 15px}.lane-label{margin-bottom:9px}.dragon-track{margin-bottom:4px}.dragon-track.no-dragon{min-height:30px}.table-zone{padding-bottom:235px}.extra-zone{padding-top:12px}.extra-zone h2{font-size:.9rem}.extra-cards>.game-card{width:153px;min-height:230px}.tray{bottom:4px}.departing-card{display:none}}
.calm *,.calm *::before,.calm *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.calm .game-card{transform:none!important}.calm #fx{display:none}
@media(max-width:560px){.players-strip{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding-bottom:3px}.player-summary{flex:0 0 115px}.match-heading{min-height:50px;align-items:center}.match-heading h1{font-size:1.15rem}.table-tools{flex-direction:row;max-width:none;gap:3px}.table-tools button{width:44px;max-width:44px;font-size:0;white-space:nowrap;overflow:hidden}.table-tools [data-action=invite]::after{content:'↗';font-size:1.3rem}.table-tools [data-action=retrieveLast]::after{content:'↶';font-size:1.3rem}.dungeon-table{display:flex;flex-direction:column}.card-lane{order:0}.dragon-track{order:1;margin-top:12px}}
.gallery-cards .inspect{min-width:44px}
.whole-table-dice .dice-row:not(:has(.die-button:not(.table-die))){height:0}
#table-dice-surface{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}#table-dice-surface canvas{display:block;width:100%;height:100%}.flat-dice #table-dice-surface{visibility:hidden}.whole-table-dice .dice-row{height:82px;background:none}.dice-buttons .die-button.table-die{position:fixed;z-index:45}.table-die .die-caption{padding:2px 5px;background:#29221dec;border-radius:3px;box-shadow:0 1px 3px #0008}.dragging-die .table-die{pointer-events:none}.card-progress-holder{display:block}
@media(max-width:560px){.game-layout .table-zone{padding-bottom:340px}.dragging-die .tray-actions,.dragging-die .toss-hint,.dragging-die .tray-head{display:none}}
.spell-flight{border-color:#b5dbe5;background:#e7f2eb;box-shadow:0 0 14px #b9e2f580}
#toss-guide{position:fixed;inset:0;z-index:210;pointer-events:none}#toss-guide[hidden]{display:none}#toss-guide svg{width:100%;height:100%;overflow:visible}#toss-guide path{stroke:#ffe2a0;stroke-width:4;stroke-dasharray:8 7;fill:none;stroke-linecap:round}#toss-guide span{position:absolute;width:210px;padding:8px 10px;background:#f2dfb9;color:#302418;border-radius:5px;font-size:.8rem;box-shadow:2px 4px 10px #0006}.toss-hint{display:flex;align-items:center;gap:7px;margin-top:7px;font-size:.78rem;color:#f5dfb8}.toss-hint svg{width:27px;height:27px}.calm #toss-guide svg{display:none}
@media(min-width:1160px) and (max-width:1279px){.dungeon-table{padding:22px 18px;gap:18px}.lane-cards{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.game-card{transform:none!important}#fx{display:none}}
.dice-row{height:205px;max-width:620px;border-radius:45% 45% 18px 18px;background:radial-gradient(ellipse,#7e68402b 0 50%,transparent 71%)}#dice-3d{height:100%}.dice-buttons{display:block;padding:0}.dice-buttons .die-button{position:absolute;width:68px;height:88px;min-height:88px;transition:none}.die-caption{bottom:0}.flat-face{width:58px;height:58px;margin:0 auto 24px}.rolling-die .die-caption{opacity:.5}.play-guide{display:flex;gap:11px;align-items:center;margin:10px 0 12px;padding:9px 12px;background:#30271feb;border-left:4px solid #e7bd62;border-radius:5px}.guide-role{width:42px;height:45px;flex-shrink:0;background:#e8d8b4;border-radius:4px;overflow:hidden}.guide-goal{display:flex;flex:1;flex-direction:column;gap:3px}.guide-goal strong{font-size:.96rem;color:#fff0ce}.guide-goal>span{font-size:.8rem;color:#e3d2b6}.guide-flow{display:flex;align-items:center;gap:10px;color:#f0cc85}.guide-flow>span{display:flex;align-items:center;flex-direction:column;min-width:35px;gap:2px}.guide-flow small{font-size:.7rem;color:#f6e5c3}.guide-flow i{font-style:normal;font-size:1.5rem;line-height:27px;color:#c2df9a}.guide-match{background:#f1e3c5;color:#392c20;border-radius:4px;padding:2px 5px}.guide-match small{color:#392c20}.your-lane .lane-label{border-left:4px solid #e7bd62}.card-heading{height:50px;padding:3px 5px}.card-heading>span{display:flex;flex-direction:column;gap:1px;min-width:0}.card-progress{display:flex;gap:3px;font-size:.65rem;font-family:TableSans,sans-serif;line-height:1.2}.card-progress>span{display:flex;gap:2px;align-items:center;background:#302b25;padding:2px 3px;border-radius:2px;color:#e0d4bf;white-space:nowrap}.card-progress .in-progress{background:#e7bd62;color:#30231a}.card-progress i{font-style:normal}.progress-heroes i{color:#fff7dc}.in-progress.progress-heroes i{color:#30231a}.progress-sorcerer i{color:#b3aac6}.upper-requirements{top:54px}.table-feedback{display:flex;align-items:center;gap:12px;min-height:76px;margin:12px 0 5px;padding:8px 13px;background:#30271ff2;border:1px solid #998052;border-radius:5px}.table-feedback strong{font-family:Georgia,serif;font-size:1rem;color:#ffe5ab}.table-feedback p{font-size:.82rem;color:#e5d4b8;line-height:1.3;margin-top:3px}.cue-icon{width:43px;height:48px;flex:0 0 43px;display:flex;align-items:center;justify-content:center}.cue-icon>svg{width:100%;height:100%}.cue-avatar{width:30px;height:38px;overflow:hidden;background:#e7d7b5;border-radius:4px}.cue-flow{display:flex;align-items:center;gap:4px;flex-shrink:0}.cue-flow>b{color:#e7bd62}.cue-check{font-size:2.5rem;color:#c2df9a}.cue-coin{border:3px solid #f5da89;background:#ad7c27;color:#fff0be;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;font-weight:bold}.moving-symbol{position:fixed;z-index:85;width:38px;height:38px;padding:3px;background:#f1e1bb;border:1px solid #c6a873;border-radius:6px;pointer-events:none;box-shadow:3px 5px 10px #0007}.moving-symbol>svg{width:100%;height:100%}.needs-attention{border-width:3px;border-color:#edc567;box-shadow:0 0 0 3px #edc56722}
@media(max-width:780px){.guide-flow{gap:5px}.guide-goal strong{font-size:.84rem}.table-feedback p{font-size:.78rem}}
.flickable{outline:3px solid #b8dbeb;outline-offset:2px;cursor:grab;touch-action:none}.flickable::after{content:'↗';position:absolute;top:-16px;right:-8px;background:#e7f6ff;color:#234b60;border:1px solid #5a8091;border-radius:50%;width:23px;height:23px;font-size:18px;line-height:21px;text-align:center}.flick-instruction{display:flex;align-items:center;gap:12px;margin:12px 0;padding:9px;background:#f5e9cc;border-radius:4px}.flick-instruction>svg{flex-shrink:0}.flick-instruction>div{display:flex;flex-direction:column;gap:4px}.flick-instruction strong{font-size:1rem}.flick-instruction span{font-size:.8rem}#flick-follower{position:fixed;z-index:220;width:44px;height:44px;padding:3px;border:1px solid #d4bd91;border-radius:7px;box-shadow:4px 6px 10px #0008;pointer-events:none}.scattered-die{position:fixed;z-index:120;width:40px;height:40px;transform-style:preserve-3d;pointer-events:none}.cube-side{position:absolute;inset:0;background:var(--scatter-color);border:1px solid #a38e67;border-radius:5px;padding:4px;backface-visibility:hidden;box-shadow:inset 0 0 6px #fff5}.cube-side>svg{width:100%;height:100%}.side-0{transform:translateZ(20px)}.side-1{transform:rotateY(90deg) translateZ(20px)}.side-2{transform:rotateY(180deg) translateZ(20px)}.side-3{transform:rotateY(-90deg) translateZ(20px)}.side-4{transform:rotateX(90deg) translateZ(20px)}.side-5{transform:rotateX(-90deg) translateZ(20px)}.returning-die{opacity:0}.needs-reroll .flat-face{display:flex;opacity:.8}.needs-reroll .flat-face::after{content:'↻';position:absolute;right:0;top:-5px;font-size:1.2rem;color:#ffe1a0;background:#3a2c20;border-radius:50%;width:24px;height:24px;line-height:24px}.calm .scattered-die,.calm .moving-symbol{display:none}
@media(max-width:560px){.dice-row{height:155px;max-width:none}.dice-buttons .die-button{width:56px;height:78px;min-height:78px}.die-caption{font-size:.65rem;bottom:0}.flat-face{width:50px;height:50px;margin-bottom:20px}.play-guide{margin:5px 4px 7px;padding:7px;gap:7px;min-height:54px}.guide-role{width:29px;height:35px}.guide-goal strong{font-size:.76rem;line-height:1.2}.guide-goal>span{font-size:.66rem;line-height:1.2}.guide-flow{display:none}.table-feedback{margin:9px 3px 4px;padding:7px;gap:7px;min-height:70px}.table-feedback strong{font-size:.86rem;line-height:1.2}.table-feedback p{font-size:.71rem}.cue-icon{width:32px;height:38px;flex-basis:32px}.cue-avatar{width:24px;height:31px}.cue-flow{gap:2px}.card-heading>span{max-width:100px}.card-progress{font-size:.62rem}.tray-actions{margin-top:4px}.table-zone{padding-bottom:290px}}
