:root{--font: "Iowan Old Style", "Palatino", Georgia, serif;--font-display: "Iowan Old Style", "Palatino", Georgia, serif}[data-theme=parchment]{--bg: #ece0c4;--bg-image: radial-gradient(ellipse at 20% 10%, #f5ecd6 0%, #ece0c4 55%, #dcca9f 100%);--panel: #f7efdb;--panel2: #efe4c9;--text: #3a2d1a;--muted: #8a7455;--accent: #8b2500;--accent-contrast: #fff8ec;--border: #c9b489;--danger: #9c2b1e;--heal: #3f6d34;--turn: #a67c00;--shadow: 0 2px 10px rgba(74, 55, 20, .18);--font: "Iowan Old Style", "Palatino", Georgia, serif;--font-display: "Iowan Old Style", "Palatino", Georgia, serif}[data-theme=dark]{--bg: #0e0e14;--bg-image: radial-gradient(ellipse at 50% 0%, #1a1826 0%, #0e0e14 60%, #08080c 100%);--panel: #191825;--panel2: #131220;--text: #e8e0cc;--muted: #8b8577;--accent: #d4a017;--accent-contrast: #14100a;--border: #2c2a3e;--danger: #c0392b;--heal: #3d8b4f;--turn: #d4a017;--shadow: 0 2px 14px rgba(0, 0, 0, .55);--font: "Iowan Old Style", "Palatino", Georgia, serif;--font-display: "Iowan Old Style", "Palatino", Georgia, serif}[data-theme=modern]{--bg: #f2f4f7;--bg-image: linear-gradient(180deg, #f7f8fa 0%, #eceff3 100%);--panel: #ffffff;--panel2: #f5f6f8;--text: #17202b;--muted: #64748b;--accent: #4f46e5;--accent-contrast: #ffffff;--border: #dfe4ea;--danger: #dc2626;--heal: #16a34a;--turn: #4f46e5;--shadow: 0 1px 6px rgba(20, 30, 50, .1);--font: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);background-image:var(--bg-image);background-attachment:fixed;color:var(--text);font-family:var(--font);min-height:100vh}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:4px 8px}input[type=number]{width:4.5em;text-align:center;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.muted{color:var(--muted)}.center{text-align:center}.spacer{flex:1}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.btn{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:6px 14px;font-weight:600;line-height:1.4;white-space:nowrap;cursor:pointer;transition:filter .1s,transform .05s}.btn:hover:not(:disabled){filter:brightness(1.06)}.btn:active:not(:disabled){translate:0 1px}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);font-weight:700}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.heal{color:var(--heal);border-color:var(--heal)}.btn.small{padding:4px 11px;font-size:.9em}.btn.tiny{padding:3px 9px;font-size:.85em;border-radius:7px}.btn.big{font-size:1.1em;padding:8px 20px}.btn.ghost{opacity:.55}.time-badge{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:20;background:var(--panel);border:1.5px solid var(--border);border-radius:999px;padding:4px 16px;font-weight:700;box-shadow:var(--shadow)}.app{max-width:1250px;margin:0 auto;padding:0 16px 60px}.app:has(>.page.dm){max-width:1600px}.topnav{display:flex;align-items:center;gap:18px;padding:12px 4px;border-bottom:2px solid var(--border);margin-bottom:18px}.topnav a{color:var(--text);text-decoration:none;font-weight:600}.topnav a.active{color:var(--accent);text-decoration:underline;text-underline-offset:5px}.topnav .brand{font-size:1.2em;margin-right:12px}.nav-right{margin-left:auto;display:flex;align-items:center;gap:12px}.home{text-align:center}.home h1{font-size:2.6em;margin-bottom:0}.tagline{color:var(--muted);margin-top:6px}.home-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:28px 0;text-align:left}.home-card{display:block;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:8px 20px 16px;color:var(--text);text-decoration:none;cursor:pointer;transition:transform .12s}.home-card:hover{transform:translateY(-2px)}.home-card h2{color:var(--accent)}.home-card p{color:var(--muted);line-height:1.45}.home-card.as-button{font:inherit;text-align:left}.home-help{max-width:640px;margin:0 auto;text-align:left;line-height:1.7}.home-help a{color:var(--accent)}.lib-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.lib-group{margin-top:8px}.lib-tabs{display:flex;gap:6px}.lib-tab{padding:6px 18px;border:1.5px solid var(--border);border-radius:999px;background:var(--panel2);cursor:pointer;font-weight:600;color:var(--muted)}.lib-tab.active{border-color:var(--accent);background:color-mix(in srgb,var(--panel) 82%,var(--accent));color:var(--accent)}.lib-group-title{border-bottom:1.5px solid var(--border);padding-bottom:6px}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.lib-card{display:flex;flex-direction:column;gap:3px;padding:10px;cursor:pointer;transition:transform .12s,border-color .12s}.lib-card:hover{transform:translateY(-3px);border-color:var(--accent)}.lib-portrait-wrap{position:relative;margin-bottom:6px}.lib-portrait{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1.5px solid var(--border);font-size:2.4em}.lib-delete{position:absolute;top:6px;right:6px;opacity:0;transition:opacity .15s}.lib-card:hover .lib-delete{opacity:1}.lib-corner-left{position:absolute;top:6px;left:6px;display:flex;gap:4px;opacity:0;transition:opacity .15s}.lib-card:hover .lib-corner-left{opacity:1}.ddb-link{margin-left:10px;font-size:.8em;font-weight:600;white-space:nowrap}.lib-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-sub{font-size:.78em;min-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-stats{font-size:.85em;margin-top:2px}.lib-stats em{color:var(--muted);font-style:normal}.library{display:grid;grid-template-columns:380px 1fr;gap:20px;align-items:start}.combat-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.enc-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:10px 0 6px}.enc-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:13px 15px;background:var(--panel2);border:1.5px solid var(--border);border-radius:11px;cursor:pointer;text-align:left;transition:border-color .15s,transform .15s,box-shadow .15s}.enc-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}.enc-card b{font-family:var(--font-display);font-size:1.1em}.enc-card-new{align-items:center;justify-content:center;border-style:dashed;background:transparent}.enc-card-new b{font-size:1.6em;line-height:1;color:var(--accent)}.campaign-title{margin:4px 0 10px;text-align:center;font-family:var(--font-display);font-size:1.9em;font-weight:900;color:var(--accent);text-shadow:0 0 24px color-mix(in srgb,var(--accent) 25%,transparent)}.user-chip{font-size:.85em;font-weight:600;white-space:nowrap;opacity:.85}.nav-menu-wrap{position:relative}.chip-caret{font-size:.8em;opacity:.7}.nav-menu-backdrop{position:fixed;inset:0;z-index:90}.nav-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:100;display:flex;flex-direction:column;gap:2px;min-width:15em;padding:8px}.nav-menu-item{display:block;text-align:left;background:none;border:none;border-radius:7px;padding:7px 10px;font:inherit;color:inherit;cursor:pointer;white-space:nowrap;text-decoration:none}.nav-menu-item:hover{background:var(--panel2)}.nav-menu-sep{height:1px;margin:4px 6px;background:var(--border)}.theme-item:hover{background:none}.sheet-editor{display:flex;flex-direction:column;gap:12px}.abilities-row{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.abilities-row label{display:flex;flex-direction:column;gap:3px;font-size:.78em;font-weight:700;color:var(--muted);text-align:center}.abilities-row input{width:100%;text-align:center}.picks-label{display:block;margin-bottom:5px;font-size:.8em;font-weight:700;color:var(--muted)}.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 12px}.check-grid label{display:flex;align-items:center;gap:6px;font-size:.85em;cursor:pointer}.computed-line{margin:0;font-size:.85em}.speeds-row{align-items:center}.speeds-label{font-size:.8em;color:var(--muted)}.speeds-row label{text-transform:capitalize}.speeds-row input{width:4em}.nd-list{display:flex;flex-direction:column;gap:6px}.nd-item{display:flex;gap:6px;align-items:flex-start}.nd-item .nd-name{width:11em;flex-shrink:0}.nd-item .nd-desc{flex:1;resize:vertical}.modal.dialog{width:26em;max-width:92vw;display:flex;flex-direction:column;gap:14px}.dialog-field{display:flex;flex-direction:column;gap:5px;font-size:.9em}.dialog-body{margin:0}.dialog-checks{display:flex;flex-direction:column;gap:8px;text-align:left}.dialog-checks .config-toggle{margin-top:0}.user-admin{margin-top:26px}.user-rows{display:flex;flex-direction:column;gap:6px;margin-top:10px}.user-row{display:flex;align-items:center;gap:10px;padding:7px 12px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}.user-row .config-toggle{margin-top:0}.demo-banner{display:flex;justify-content:center;align-items:center;gap:10px;padding:7px 14px;margin-bottom:12px;border:1.5px solid var(--accent);border-radius:10px;background:color-mix(in srgb,var(--panel) 85%,var(--accent));font-weight:600}.demo-banner a{color:var(--accent);font-weight:700}.demo-hint{font-size:.85em;margin:0}.login-page{display:flex;justify-content:center;padding-top:10vh}.login-panel{display:flex;flex-direction:column;gap:12px;width:22em;max-width:92vw;padding:26px 28px;text-align:center}.login-panel label{display:flex;flex-direction:column;gap:4px;text-align:left;font-size:.9em}.login-panel .btn{white-space:normal}.room-chip{padding:3px 12px;border:1.5px solid var(--accent);border-radius:999px;background:color-mix(in srgb,var(--panel) 82%,var(--accent));color:var(--accent);font-weight:700;font-size:.85em;white-space:nowrap;max-width:16em;overflow:hidden;text-overflow:ellipsis;cursor:pointer;font-family:inherit}.enc-card{position:relative}.campaign-actions{position:absolute;top:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity .15s}.enc-card:hover .campaign-actions{opacity:.9}.template-badge{font-size:.68em;font-weight:800;letter-spacing:.05em;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:1px 8px}.header-btns{display:flex;align-items:center;gap:6px}.row-between{display:flex;justify-content:space-between;align-items:center}.row-end{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.library-item{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 12px;margin-bottom:8px;cursor:pointer}.library-item:hover{border-color:var(--accent)}.library-item-body{display:flex;flex-direction:column;flex:1}.library-editor{padding:16px 20px;position:sticky;top:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:.9em;color:var(--muted)}.form-grid .span2{grid-column:span 2}.media-editor{display:flex;flex-wrap:wrap;gap:12px}.media-slot{width:170px}.media-slot-preview{width:170px;height:110px;border:1.5px dashed var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;background:var(--panel2)}.media-thumb{width:100%;height:100%;object-fit:cover}.media-empty{font-size:2em;color:var(--muted)}.media-slot-meta{display:flex;flex-direction:column;align-items:stretch;margin-top:4px;gap:4px}.media-slot-label{font-size:.75em;line-height:1.25;color:var(--muted)}.media-slot-actions{display:flex;align-items:center;gap:4px}.media-slot-actions .btn:first-child{flex:1}.config{max-width:1200px;display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.config>h2{grid-column:1 / -1;margin:0}.config-section{padding:6px 20px 16px}.config-wide{grid-column:1 / -1}@media(max-width:980px){.config{grid-template-columns:1fr}}.config-toggle{display:flex;align-items:center;gap:8px;margin-top:12px;cursor:pointer}.config-rows{display:flex;flex-direction:column;gap:10px;margin:14px 0}.config-row{display:flex;align-items:center;gap:14px}.config-row .status-word{width:6.5em}.config-row input{width:4.2em;text-align:center;margin:0 6px}.threshold-preview{display:flex;height:2em;border-radius:8px;overflow:hidden;border:1px solid var(--border);font-size:.78em;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}.tp{display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;transition:width .25s ease}.tp.critical{background:#b3352b}.tp.bloodied{background:#c0541b}.tp.wounded{background:#b8860b}.tp.healthy{background:#3f7d3a}.threshold-scale{display:flex;justify-content:space-between;color:var(--muted);font-size:.8em;margin-top:3px}.config-error{color:var(--danger)}.bg-slots{display:flex;gap:18px;margin:12px 0;flex-wrap:wrap}.bg-slot{display:flex;flex-direction:column;align-items:center;gap:4px;width:172px;text-align:center}.bg-desc{font-size:.78em;min-height:2.4em}.bg-preview{width:172px;height:100px;border:1.5px dashed var(--border);border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--panel2)}.bg-thumb{width:100%;height:100%;object-fit:cover}.bg-actions{display:flex;gap:6px}.bg-url{width:100%;font-size:.8em}.bg-url.invalid{border-color:var(--danger)}.builder{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}.library-item.selected{border-color:var(--accent)}.builder-editor{padding:14px 18px;display:flex;flex-direction:column;gap:12px}.builder-editor .toolbar-inner,.builder-editor .enc-bg-row{justify-content:center}.builder-editor>p.muted,.builder-editor .builder-group .section-label{text-align:center}.builder-editor .enc-name{width:14em;text-align:center}.toolbar-inner{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.builder-rows{display:flex;flex-direction:column;gap:8px}.b-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:6px 10px}.b-row .name{min-width:10em}.b-stats{font-size:.85em;white-space:nowrap}.builder-group{display:flex;flex-direction:column;gap:6px;margin-top:10px}.music-slot{display:flex;flex-direction:column;align-items:center;gap:6px}.music-start{display:flex;align-items:center;gap:6px;font-size:.85em;color:var(--muted)}.builder-hint{margin-top:60px}.enc-bg-row{display:flex;gap:18px;flex-wrap:wrap}.avatar{width:46px;height:46px;border-radius:9px;object-fit:cover;border:2px solid var(--border);flex-shrink:0}.initials{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),var(--panel2));color:var(--accent-contrast);font-weight:700}.initials.mystery{background:linear-gradient(135deg,#333,#111);color:#999}.inline-label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.9em}.round-badge{font-weight:700;display:flex;align-items:center;gap:5px;padding:0 8px}.count{width:3.2em}.enc-header{display:flex;flex-direction:column;align-items:center;gap:8px;margin:2px 0 12px}.enc-header .combat-controls{justify-content:center}.enc-title{width:15em;max-width:90%;text-align:center;padding:2px 8px;font-family:var(--font-display);font-size:1.25em;font-weight:700;background:transparent;border:1.5px solid transparent;border-radius:8px}.enc-title:hover{border-color:var(--border)}.enc-title:focus{outline:none;background:var(--panel2);border-color:var(--accent)}.enc-title::placeholder{color:var(--muted);font-weight:400}.lib-pick{width:14em;text-overflow:ellipsis}.scene-encounters{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.btn.armed{background:var(--danger);color:#fff;border-color:var(--danger)}.combatants{display:flex;flex-direction:column;gap:8px}.combatant{padding:14px 12px;border-left:5px solid transparent;position:relative}.combatant.active{border-left-color:var(--accent);background:color-mix(in srgb,var(--panel) 88%,var(--accent))}.combatant.down{opacity:.75}.combatant-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap;cursor:pointer;position:relative}.roll-init-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap}.drag-handle{cursor:grab;color:var(--muted);font-size:1.25em;padding:6px 8px;-webkit-user-select:none;user-select:none;border-radius:6px}.drag-handle:hover{background:var(--panel2);color:var(--text)}.drag-handle:active{cursor:grabbing}.avatar-drag{display:flex;cursor:grab}.avatar-drag:active{cursor:grabbing}.rolls-inline{display:flex;align-items:center;gap:3px}.row-pill{display:flex;align-items:center;gap:4px;padding:7px 10px;border:1.5px solid var(--border);border-radius:10px;background:var(--panel2)}.row-pill.targeted{border-color:var(--accent);background:color-mix(in srgb,var(--panel2) 85%,var(--accent))}.amount-input{width:3.4em;padding:3px 6px;text-align:center;font-size:1.05em;font-weight:700;font-variant-numeric:tabular-nums;background:var(--panel);border:1px solid var(--border);border-radius:6px}.amount-input::placeholder{color:var(--muted);font-weight:400}.amount-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2.5px color-mix(in srgb,var(--accent) 30%,transparent)}.pill-target-mark{font-size:.9em}.death-pill{gap:8px}.ds-group{display:flex;align-items:center;gap:4px;font-weight:700}.dm-panel-wrap{position:relative}.panel-grip{position:absolute;top:0;left:50%;transform:translate(-50%);z-index:15;padding:0 16px 2px;border:1.5px solid var(--border);border-top:none;border-radius:0 0 9px 9px;background:var(--panel2);color:var(--muted);font-size:.85em;line-height:1.3;cursor:grab;opacity:.35;-webkit-user-select:none;user-select:none;transition:opacity .15s}.dm-panel-wrap:hover .panel-grip{opacity:1}.panel-grip:active{cursor:grabbing}.dm-panel-wrap.drop-above:before,.dm-panel-wrap.drop-below:after,.combatant.drop-above:before,.combatant.drop-below:after{content:"";position:absolute;left:8px;right:8px;height:3px;border-radius:2px;background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 70%,transparent);pointer-events:none}.dm-panel-wrap.drop-above:before,.combatant.drop-above:before{top:-6px}.dm-panel-wrap.drop-below:after,.combatant.drop-below:after{bottom:-6px}.turn-marker{width:18px;color:var(--accent);font-size:1.1em}.init-wrap{display:flex;flex-direction:column;align-items:center;gap:1px}.init-label{font-size:.62em;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.init{width:4em;font-weight:700;text-align:center}.init:disabled{background:transparent;border-color:transparent;opacity:.85}.name-block{display:flex;flex-direction:column;gap:2px;min-width:170px}.name{font-weight:700;border:1px solid transparent;background:transparent;padding:2px 4px}input.name:hover,input.name:focus{border-color:var(--border);background:var(--panel2)}.badges{display:flex;align-items:center;gap:4px}.kind-chip{font-size:.62em;letter-spacing:.06em;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:0 6px}.ac-chip{font-size:.78em;color:var(--muted);white-space:nowrap}.cond-chip{font-size:.9em}.hp-wrap{display:flex;flex-direction:column;align-items:center;gap:1px}.hp-group{display:grid;grid-template-columns:auto auto;gap:4px 5px;align-items:center;justify-items:stretch;background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:4px 7px}.hp{font-weight:700;min-width:3.2em;text-align:center}.hp em{color:var(--heal);font-style:normal;font-size:.85em}.hp-group input{width:4.2em;text-align:center;background:var(--panel)}.hp-group .btn{width:100%}.hp-group .temp-btn{grid-column:1 / -1}.temp-btn{color:#2779b0;border-color:#2779b0}.ac{display:flex;align-items:center;gap:3px;color:var(--muted)}.ac input{width:4.2em;text-align:center}.events-wrap{display:flex;flex-direction:column;align-items:center;gap:1px}.btn-group{display:grid;gap:4px 5px;background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:4px 7px}.btn-group.two{grid-template-columns:1fr 1fr}.btn-group .btn{width:100%;white-space:nowrap}.event-crit{color:#b8860b;border-color:#b8860b}.event-fumble,.event-death{color:var(--danger);border-color:var(--danger)}.event-heal{color:var(--heal);border-color:var(--heal)}.combatant-detail{border-top:1px solid var(--border);margin-top:8px;padding-top:10px;display:flex;flex-direction:column;gap:10px}.detail-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.detail-row label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.9em}.conditions{gap:6px}.cond-toggle{border:1px solid var(--border);border-radius:999px;padding:3px 10px;cursor:pointer;font-size:.85em;-webkit-user-select:none;user-select:none}.cond-toggle input{display:none}.cond-toggle.on{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.death-saves{gap:10px}.pip{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid var(--muted);background:transparent;margin:0 2px;padding:0;cursor:pointer;vertical-align:middle}.pip.success.filled{background:var(--heal);border-color:var(--heal)}.pip.failure.filled{background:var(--danger);border-color:var(--danger)}.notes-label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:.9em}.target-bar{position:sticky;top:8px;z-index:20;display:flex;align-items:center;gap:8px;padding:8px 14px;margin-bottom:12px;border-color:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 30%,transparent),var(--shadow)}.target-bar input{width:4.2em;text-align:center}.target-line{white-space:nowrap}.target-arrow{color:var(--accent);margin:0 2px}.target-sep{width:1px;align-self:stretch;margin:2px 4px;background:var(--border)}.combatant.targeted{box-shadow:0 0 0 2px var(--accent),var(--shadow)}.party-panel{margin-top:14px;padding:8px 16px 14px}.party-cards{display:grid;gap:8px 12px}.party-cards .party-card{display:grid;grid-template-rows:subgrid;grid-row:span 9;min-width:0}@supports not (grid-template-rows: subgrid){.party-cards .party-card{display:flex;flex-direction:column;gap:8px}}.party-card .sb-abilities{gap:4px}.party-card .sb-ab{flex:1 1 0;min-width:0;padding:3px 2px}.party-card .statblock{font-size:.82em}.party-card{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:8px 12px}.avatar-sm{width:32px;height:32px;border-radius:7px;font-size:.75em}.party-card.down{opacity:.7}.party-card-body{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.party-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:nowrap}.party-card-name{display:block;min-height:1.25em;line-height:1.25}.pc-tagline{display:block;font-size:.75em;min-height:1.3em;line-height:1.3}.party-card-stats{margin-left:auto;display:flex;align-items:baseline;gap:10px;white-space:nowrap}.party-card .sb-title{display:none}.party-card .hp-bar{width:100%;height:.55em}.party-card-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.party-card-controls input{width:3.6em;text-align:center}.party-card-buttons{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px}.party-card-buttons .btn{width:100%;white-space:nowrap}.party-card-controls{min-height:1.9em}.party-card-buttons{min-height:1.6em}.party-ds-row{min-height:1.5em;display:flex;align-items:center}.party-cond-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-height:1.9em}.cond-chip-btn{background:var(--accent);color:var(--accent-contrast);border:1px solid var(--accent);border-radius:999px;padding:1px 8px;font-size:.75em;cursor:pointer}.cond-chip-btn:disabled{opacity:.75;cursor:default}.cond-chip-btn:not(:disabled):hover{filter:brightness(1.15)}.cond-add{font-size:.75em;padding:1px 4px;border-radius:999px;color:var(--muted)}.statblock{border-top:1px solid var(--border);padding-top:8px;display:flex;flex-direction:column;gap:6px;font-size:.9em}.sb-title{font-style:italic;color:var(--muted)}.sb-abilities{display:flex;gap:8px;flex-wrap:wrap}.sb-ab{display:flex;flex-direction:column;align-items:center;border:1px solid var(--border);border-radius:8px;padding:3px 8px;min-width:3.2em;background:var(--panel)}.sb-ab-name{font-size:.7em;color:var(--muted);letter-spacing:.06em}.sb-ab em{font-style:normal;color:var(--accent);font-size:.85em;font-weight:700}.sb-saves-row{flex-wrap:nowrap;align-items:center}.sb-row-label{display:block;font-size:.62em;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.sb-save{min-width:2.9em;padding:2px 6px}.sb-save.prof{border-color:var(--accent);background:color-mix(in srgb,var(--panel) 85%,var(--accent))}.sb-line{line-height:1.4}.row-actions{display:flex;gap:8px}.sb-actions summary{cursor:pointer;color:var(--muted);font-size:.9em}.sb-action{margin-top:6px;line-height:1.45;font-size:.92em}.monster-search{position:relative;display:inline-flex}.monster-search input{width:13em}.ms-results{position:absolute;top:100%;left:0;margin-top:4px;width:26em;max-width:80vw;max-height:300px;overflow-y:auto;z-index:60;padding:6px;display:flex;flex-direction:column;gap:4px}.ms-row{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:8px}.ms-row:hover{background:var(--panel2)}.ms-row-body{display:flex;flex-direction:column;flex:1;min-width:0}.ms-row-body .muted{font-size:.8em}.ms-error{color:var(--danger);font-size:.8em;align-self:center;margin-left:6px}.import-msg{font-size:.85em}.srd-browser{display:flex;flex-direction:column;gap:10px;padding:14px 16px;margin-bottom:18px}.srd-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.srd-filters .srd-q{flex:1;min-width:12em}.srd-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:6px 14px}.srd-row{display:flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}.srd-row-body{display:flex;flex-direction:column;flex:1;min-width:0}.srd-row-body .muted{font-size:.8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.srd-pager{display:flex;align-items:center;justify-content:center;gap:12px}.reminder-chip{border:none;border-radius:999px;padding:1px 8px;font-size:.72em;font-weight:700;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.4);cursor:pointer;white-space:nowrap}.reminder-chip:hover{filter:brightness(1.15)}.reminder-chip em{font-style:normal;opacity:.85}.rc-btn{background:none;border:none;color:inherit;cursor:pointer;padding:0 2px;font-size:1em;line-height:1}.rc-btn:hover{opacity:.7}.reminder-vis{display:flex;align-items:center;gap:4px;font-size:.8em;color:var(--muted);white-space:nowrap}.car-reminders{position:absolute;bottom:2px;left:0;right:0;display:flex;justify-content:center;flex-wrap:wrap;gap:2px;pointer-events:none}.mini-reminder{color:#fff;font-size:.6em;font-weight:700;border-radius:999px;padding:0 6px;text-shadow:0 1px 1px rgba(0,0,0,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.reminder-rows{display:flex;flex-direction:column;gap:8px;margin:10px 0}.reminder-row{display:flex;align-items:center;gap:8px}.reminder-row input[type=color]{width:34px;height:26px;padding:1px;border-radius:6px}.reminder-label{width:14em}.cond-icon{width:3.2em;text-align:center}.reminder-rounds{width:4.2em;text-align:center}.toasts{position:fixed;top:16px;right:16px;z-index:120;display:flex;flex-direction:column;gap:8px}.toast{background:var(--accent);color:var(--accent-contrast);font-weight:700;border-radius:10px;padding:10px 16px;box-shadow:0 4px 16px #0000004d;animation:toast-in .25s ease}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.modal-backdrop{position:fixed;inset:0;z-index:100;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:24px}.modal{width:min(680px,100%);max-height:88vh;overflow-y:auto;padding:14px 22px 18px}.add-media-modal{width:min(460px,100%)}.big-pick{width:100%;padding:14px;font-weight:700}.modal-or{text-align:center;margin:10px 0}.media-types{margin:4px 0 0;font-size:.78em;letter-spacing:.03em}.modal-url{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:.9em}.modal-url input.invalid{border-color:var(--danger)}.log{margin-top:14px;padding:8px 16px 12px}.log-lines{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;font-size:.88em}.log-time{color:var(--muted);font-size:.85em;margin-right:8px;font-variant-numeric:tabular-nums}.status-unharmed,.status-healthy{color:var(--heal)}.status-wounded{color:#b8860b}.status-bloodied{color:#c0541b}.status-critical{color:var(--danger)}.status-down{color:var(--muted)}.display{height:100vh;display:flex;overflow:hidden;font-size:clamp(11px,min(1.3vw,2.1vh),22px)}.display.splash{flex-direction:column;align-items:stretch}.splash-center{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}.display{position:relative;isolation:isolate}.backdrop{position:absolute;inset:0;z-index:-1;pointer-events:none}.backdrop-layer{position:absolute;inset:0;opacity:.35}.backdrop-layer video,.backdrop-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center}.backdrop-yt{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(1.35);width:max(100vw,calc(100vh * 16 / 9));height:max(100vh,56.25vw);border:0;pointer-events:none}.backdrop-layer.in{animation:bg-fade-in 1.2s ease both}.backdrop-layer.in:has(.backdrop-yt){animation-delay:3.2s}.backdrop-layer.out{animation:bg-fade-out 1.2s ease both}@keyframes bg-fade-in{0%{opacity:0}to{opacity:.35}}@keyframes bg-fade-out{0%{opacity:.35}to{opacity:0}}.splash-title{font-family:var(--font-display);font-size:4em;margin:0;color:var(--accent);text-align:center;animation:breathe 3.2s ease-in-out infinite}.splash-sub{color:var(--muted);font-size:1.3em}.splash-title.idle{font-size:6em;opacity:.85}.party-strip{flex-shrink:0;display:flex;justify-content:center;align-items:flex-end;gap:2em;flex-wrap:wrap;padding:0 2em 2.2em}.party-member{display:flex;flex-direction:column;align-items:center;gap:.4em;position:relative;width:10em;animation:member-bob 5s ease-in-out infinite}.party-member .party-name,.party-member .party-tagline{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.party-member .float-num{font-size:2em;top:15%}@keyframes member-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-.45em)}}.party-avatar{width:5.5em;height:5.5em;border-radius:.75em;object-fit:cover;border:2.5px solid var(--border);box-shadow:var(--shadow);font-size:1.4em}.party-name{font-weight:700;font-size:1em}.party-tagline{font-size:.72em;color:var(--muted);margin-top:-.3em}.party-avatar-wrap{position:relative;display:flex}.party-conds{position:absolute;top:3px;left:0;right:0;display:flex;justify-content:center;flex-wrap:wrap;gap:2px;font-size:.8em;pointer-events:none}.party-conds>span{background:#0000008c;border-radius:999px;padding:0 3px}.party-member .hp-num{font-size:.8em}@keyframes breathe{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.03)}}.carousel-layout{flex-direction:column;position:relative}.sound-toggle{position:absolute;top:14px;left:18px;z-index:20;background:var(--panel);border:1.5px solid var(--border);border-radius:999px;padding:6px 11px;cursor:pointer;opacity:.55;transition:opacity .2s}.sound-toggle:hover{opacity:1}.round-float{position:absolute;top:14px;right:22px;z-index:5;font-family:var(--font-display);font-size:1.4em;font-weight:700;color:var(--accent);background:var(--panel);border:1.5px solid var(--border);border-radius:999px;padding:4px 18px;box-shadow:var(--shadow)}.round-float.turn-float{top:60px;font-size:1.05em;padding:3px 14px;opacity:.85}.turn-float .turn-of{font-size:.75em;opacity:.7}.carousel{flex-shrink:0;display:flex;align-items:flex-end;padding:10px 20px 16px;position:relative;background:linear-gradient(to top,color-mix(in srgb,var(--panel) 70%,transparent),transparent)}.carousel:before{content:"";position:absolute;top:0;left:6%;right:6%;height:1.5px;background:linear-gradient(to right,transparent,color-mix(in srgb,var(--border) 85%,transparent) 18%,color-mix(in srgb,var(--accent) 45%,var(--border)) 50%,color-mix(in srgb,var(--border) 85%,transparent) 82%,transparent)}.carousel.ring{display:block;position:relative;height:13.2em;overflow:hidden}.ring-slot{position:absolute;left:50%;bottom:.9em;margin-left:-4.4em;transition:transform .7s cubic-bezier(.3,0,.2,1),opacity .7s ease;will-change:transform,opacity}.car-divider{width:2px;align-self:stretch;margin:.6em 16px 0;border-radius:2px;background:color-mix(in srgb,var(--border) 80%,transparent)}.car-card.done{opacity:.55;filter:saturate(.55);font-size:.92em}.car-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;width:8.5em;flex-shrink:0;background:var(--panel);border:1.5px solid var(--border);border-radius:12px;padding:10px 8px 8px;box-shadow:var(--shadow);transition:border-color .3s,box-shadow .3s,opacity .3s,filter .3s}.car-card.next{border-color:var(--turn);font-size:1.08em;margin-bottom:8px;box-shadow:0 0 18px color-mix(in srgb,var(--turn) 40%,transparent),var(--shadow)}.car-card.mystery{opacity:.8}.next-label{position:absolute;top:-1.5em;font-size:.8em;font-weight:700;color:var(--turn);white-space:nowrap}.car-avatar{width:4.2em;height:4.2em;border-radius:.65em;object-fit:cover;border:2px solid var(--border)}.car-card.next .car-avatar{border-color:var(--turn)}.init-badge{position:absolute;top:4px;right:7px;z-index:3;color:var(--muted);font-size:.58em;font-weight:600;letter-spacing:.04em;opacity:.85}.init-badge.inline{position:static;display:block;font-size:.32em;font-weight:600;letter-spacing:.06em;margin-bottom:.2em}.car-card.targeted{border-color:var(--danger);animation:target-pulse 1.8s ease-in-out infinite}@keyframes target-pulse{0%,to{box-shadow:0 0 6px color-mix(in srgb,var(--danger) 35%,transparent),var(--shadow)}50%{box-shadow:0 0 18px color-mix(in srgb,var(--danger) 65%,transparent),var(--shadow)}}.target-mark{position:absolute;top:-10px;left:-8px;z-index:4;filter:drop-shadow(0 1px 3px rgba(0,0,0,.4))}.stage-tagline{color:var(--muted);font-size:1em;margin-top:2px}.stage{transition:transform .55s cubic-bezier(.3,0,.2,1)}.stage.has-target{transform:translate(calc(-.5*min(44vh,36vw) - 2em));transform:translate(calc(-.5*min(56cqh,36vw) - 2em))}.stage-duel{position:relative}.stage-target{position:absolute;left:100%;top:0;display:flex;align-items:flex-start;gap:.5em;margin-left:.8em;animation:target-pop .55s cubic-bezier(.34,1.3,.45,1) both}.stage-target-arrow{margin-top:calc(.5*min(44vh,36vw) - .7em);margin-top:calc(.5*min(56cqh,36vw) - .7em)}.stage-target.out{animation:target-pop-out .4s ease both}@keyframes target-pop{0%{opacity:0;transform:translate(-1.6em) scale(.85)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes target-pop-out{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(-1.2em) scale(.9)}}.stage-target-arrow{font-size:2.6em;color:var(--danger);text-shadow:0 0 16px color-mix(in srgb,var(--danger) 60%,transparent);animation:arrow-nudge 1.2s ease-in-out infinite}@keyframes arrow-nudge{0%,to{transform:translate(0)}50%{transform:translate(.25em)}}.stage-target-body{position:relative;display:flex;flex-direction:column;align-items:center;gap:.3em}.stage-target-portrait-wrap{position:relative;width:min(44vh,36vw);height:min(44vh,36vw);width:min(56cqh,36vw);height:min(56cqh,36vw);border-radius:14px;overflow:hidden;border:3px solid var(--danger);animation:target-pulse 1.8s ease-in-out infinite}.stage-target-portrait{width:100%;height:100%;object-fit:cover;font-size:3.5em}.stage-target-name{font-weight:700;font-size:1.4em;color:var(--danger);white-space:nowrap;max-width:13em;overflow:hidden;text-overflow:ellipsis}.car-name{font-weight:700;font-size:.85em;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.car-sub{display:flex;align-items:center;gap:3px;font-size:.75em;min-height:1.2em}.car-card .health.compact,.car-card .status-word{font-size:.75em}.car-health-slot{min-height:1.05em;display:flex;align-items:center}.stage-area{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;container-type:size}.stage{display:flex;flex-direction:column;align-items:center;gap:.8em;max-width:90%;max-height:100%;position:relative}.float-num{position:absolute;left:50%;top:22%;font-family:var(--font-display);font-weight:900;font-size:3.2em;pointer-events:none;z-index:6;animation:float-up 1.6s ease-out forwards;text-shadow:0 2px 10px rgba(0,0,0,.45)}.float-num.damage{color:#e5453a}.float-num.heal{color:#45c95d}.car-card .float-num{font-size:1.6em;top:45%}@keyframes float-up{0%{opacity:0;transform:translate(-50%,.4em) scale(.7)}12%{opacity:1;transform:translate(-50%) scale(1.15)}25%{transform:translate(-50%,-.2em) scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-1.9em) scale(1)}}.fade-in{animation:fadein .5s ease-out}@keyframes fadein{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.stage-portrait-wrap{position:relative;width:min(44vh,36vw);height:min(44vh,36vw);width:min(56cqh,36vw);height:min(56cqh,36vw);border-radius:14px;overflow:hidden;border:3px solid var(--turn);box-shadow:0 0 40px color-mix(in srgb,var(--turn) 45%,transparent),var(--shadow);animation:glow 3s ease-in-out infinite}@keyframes glow{0%,to{box-shadow:0 0 28px color-mix(in srgb,var(--turn) 35%,transparent)}50%{box-shadow:0 0 55px color-mix(in srgb,var(--turn) 60%,transparent)}}.stage-portrait{width:100%;height:100%;object-fit:cover;font-size:3.5em}.stage-portrait-wrap.self-target{border-color:var(--danger);animation:target-pulse 1.8s ease-in-out infinite}.stage-self-mark{position:absolute;top:.35em;right:.35em;font-size:2.2em;filter:drop-shadow(0 0 10px color-mix(in srgb,var(--danger) 70%,transparent));animation:arrow-nudge 1.2s ease-in-out infinite}.stage-info{text-align:center;min-height:7.5em}.stage-name{font-family:var(--font-display);font-size:2.6em;margin:0}.stage-conds{position:absolute;top:0;left:0;right:0;display:flex;flex-wrap:wrap;justify-content:center;gap:4px;padding:8px;z-index:2;pointer-events:none}.stage-cond{background:#0009;color:#fff;border-radius:999px;padding:1px 10px;font-size:.8em;text-shadow:0 1px 2px rgba(0,0,0,.6)}.stage-health{margin-top:10px;font-size:1.4em}.health{display:inline-flex;align-items:center;gap:10px}.hp-bar{display:inline-block;width:9em;height:.75em;border-radius:999px;background:color-mix(in srgb,var(--border) 60%,transparent);overflow:hidden;vertical-align:middle}.health.compact .hp-bar{width:4.5em;height:.55em}.hp-fill{display:block;height:100%;border-radius:999px;transition:width .5s ease}.hp-fill[data-level=unharmed],.hp-fill[data-level=healthy]{background:var(--heal)}.hp-fill[data-level=wounded]{background:#b8860b}.hp-fill[data-level=bloodied]{background:#c0541b}.hp-fill[data-level=critical]{background:var(--danger)}.hp-fill[data-level=down]{background:var(--muted)}.hp-num{font-weight:700}.hp-num em{font-style:normal;color:var(--heal);font-size:.8em}.status-word{font-weight:700;letter-spacing:.04em}.death-saves-display{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:12px}.ds-label{color:var(--muted);font-size:.9em}.death-saves-display .pip{cursor:default;width:.9em;height:.9em}.death-saves-display.compact{margin-top:2px;gap:6px}.death-saves-display.compact .pip{width:.65em;height:.65em;border-width:1.5px;margin:0 1px}.greyed{filter:grayscale(1) brightness(.72);transition:filter .8s ease}.car-avatar-wrap{display:flex;border-radius:.65em;overflow:hidden}.showcase{position:absolute;inset:0;z-index:50;background:#000000e0;display:flex;align-items:center;justify-content:center;animation:overlay-in .4s ease}.showcase img,.showcase video{max-width:96%;max-height:96%;object-fit:contain;border-radius:6px}.showcase video{box-shadow:0 0 60px #000c}.showcase img{filter:drop-shadow(0 0 28px rgba(0,0,0,.75))}.showcase-yt{width:min(96vw,calc(96vh * 16 / 9));height:min(96vh,54vw);border:0}.showcase.out{animation:overlay-out .45s ease forwards}@keyframes overlay-out{to{opacity:0}}.ambience-ctl{display:inline-flex;align-items:center;gap:6px}.ambience-ctl input[type=range]{width:8em}.ambience-frame{position:fixed;width:2px;height:2px;left:-10px;top:-10px;opacity:0;pointer-events:none}.showing-badge{color:var(--heal);font-weight:700;font-size:.9em}.showcase-bar{padding:10px 14px;margin-bottom:12px;display:flex;flex-direction:column;gap:10px}.section-block{padding:8px 14px 12px;margin-bottom:12px;display:flex;flex-direction:column;gap:8px}.section-label{margin:0;font-size:.72em;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.media-queue{display:flex;gap:12px;flex-wrap:wrap}.queue-item{display:flex;flex-direction:column;gap:4px;width:140px}.queue-thumb{position:relative;width:140px;height:82px;border:2px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer;background:var(--panel2)}.queue-item.live .queue-thumb{border-color:var(--heal);box-shadow:0 0 10px color-mix(in srgb,var(--heal) 50%,transparent)}.queue-live-badge{position:absolute;top:3px;right:3px;background:var(--heal);color:#fff;font-size:.6em;font-weight:800;border-radius:4px;padding:1px 5px}.queue-bg-badge{position:absolute;top:3px;left:3px;background:var(--accent);color:var(--accent-contrast);font-size:.6em;font-weight:800;border-radius:4px;padding:1px 5px}.queue-actions{display:flex;gap:4px;min-width:0}.queue-actions .btn{padding-inline:7px}.queue-actions .btn:first-child{flex:1}.combat-intro{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;pointer-events:none;animation:intro-bg 2.6s ease-out forwards}@keyframes intro-bg{0%{background:var(--bg)}12%{background:color-mix(in srgb,var(--accent) 32%,var(--bg))}20%{background:var(--bg)}55%{background:color-mix(in srgb,var(--bg) 70%,transparent)}to{background:transparent}}.combat-intro-word{font-family:var(--font-display);font-size:5em;font-weight:900;color:var(--accent);text-align:center;text-shadow:0 0 45px color-mix(in srgb,var(--accent) 65%,transparent);animation:intro-word 2.6s cubic-bezier(.2,.9,.3,1) forwards}@keyframes intro-word{0%{transform:scale(2.8);opacity:0;filter:blur(10px)}16%{transform:scale(1);opacity:1;filter:blur(0)}20%{transform:scale(1.05)}24%{transform:scale(1)}78%{opacity:1}to{opacity:0;transform:scale(1.08)}}.introing .stage{animation:stage-enter .9s ease-out 1s backwards}.introing .carousel{animation:carousel-enter .9s ease-out 1.15s backwards}.introing .round-float{animation:carousel-enter .9s ease-out 1.3s backwards}@keyframes stage-enter{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:none}}@keyframes carousel-enter{0%{opacity:0;transform:translateY(45px)}to{opacity:1;transform:none}}.roll-intro{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3em;pointer-events:none;animation:intro-bg 2.4s ease-out forwards}.roll-intro-die{font-size:7em;animation:die-tumble 2.4s cubic-bezier(.25,.8,.35,1) forwards}.roll-intro-die .d20{display:block;width:1.1em;height:1.1em;filter:drop-shadow(0 0 18px color-mix(in srgb,var(--accent) 55%,transparent))}.d20-hex{fill:color-mix(in srgb,var(--accent) 14%,var(--panel));stroke:var(--accent);stroke-width:4;stroke-linejoin:round}.d20-face{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}.d20 text{fill:var(--accent);font-family:var(--font-display);font-weight:900;font-size:30px;text-anchor:middle;dominant-baseline:central}@keyframes die-tumble{0%{transform:translateY(-90vh) rotate(0)}32%{transform:translateY(0) rotate(2.6turn)}44%{transform:translateY(-.4em) rotate(2.85turn)}54%{transform:translateY(0) rotate(2.95turn)}62%{transform:translateY(-.12em) rotate(3turn)}68%{transform:translateY(0) rotate(3turn)}82%{opacity:1}to{transform:translateY(0) rotate(3turn);opacity:0}}.roll-intro-word{font-family:var(--font-display);font-size:3.2em;font-weight:900;color:var(--accent);text-shadow:0 0 35px color-mix(in srgb,var(--accent) 60%,transparent);animation:roll-word 2.4s ease forwards}@keyframes roll-word{0%,32%{opacity:0;transform:scale(.7)}46%{opacity:1;transform:scale(1.1)}54%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(1.04)}}.roll-introing .splash-center{animation:fadein .8s ease 1.9s backwards}.roll-introing .party-strip{animation:fadein .8s ease 2s backwards}.combat-outro{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em;pointer-events:none;animation:outro-bg 3s ease forwards}@keyframes outro-bg{0%{background:var(--bg)}62%{background:var(--bg)}to{background:transparent}}.combat-outro-word{font-family:var(--font-display);font-size:4.5em;font-weight:900;color:var(--accent);text-shadow:0 0 40px color-mix(in srgb,var(--accent) 55%,transparent);animation:outro-word 3s ease forwards}.combat-outro-sub{font-size:1.3em;font-style:italic;color:var(--muted);animation:outro-sub 3s ease forwards}@keyframes outro-word{0%{opacity:0;transform:translateY(35px);letter-spacing:.02em}18%{opacity:1;transform:none}70%{opacity:1;letter-spacing:.08em}to{opacity:0;transform:translateY(-22px);letter-spacing:.12em}}@keyframes outro-sub{0%,22%{opacity:0}38%{opacity:1}70%{opacity:1}to{opacity:0}}.outroing .splash-title{animation:fadein 1s ease 2.2s backwards,breathe 3.2s ease-in-out 3.2s infinite}.outroing .splash-sub{animation:fadein 1s ease 2.4s backwards}.event-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:10;animation:overlay-in .25s ease-out}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.event-clip{width:100%;height:100%;object-fit:contain;background:#000000d9}.event-builtin{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3em}.event-word{font-family:var(--font-display);font-size:6em;font-weight:900;letter-spacing:.05em;animation:word-pop 2.4s ease-out forwards}.event-name{font-size:1.6em;color:var(--text);opacity:.9}@keyframes word-pop{0%{transform:scale(.3);opacity:0}12%{transform:scale(1.15);opacity:1}20%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(1.05)}}.fx-crit .event-builtin{background:radial-gradient(ellipse at center,rgba(255,215,0,.45) 0%,rgba(255,160,0,.15) 45%,transparent 75%)}.fx-crit .event-word{color:#fc3;text-shadow:0 0 30px #ff9900,0 0 60px #ffcc33}.fx-fumble .event-builtin{background:radial-gradient(ellipse at center,transparent 30%,rgba(120,0,0,.55) 100%);animation:shake .5s ease-in-out 2}.fx-fumble .event-word{color:#e05545;text-shadow:0 0 25px #7a0000}.fx-hit .event-builtin{background:radial-gradient(ellipse at center,rgba(255,255,255,.3) 0%,transparent 60%);animation:shake .35s ease-in-out 1}.fx-hit .event-word{color:#f0f0f0;text-shadow:0 0 20px rgba(255,255,255,.8)}.fx-miss .event-builtin{background:radial-gradient(ellipse at center,rgba(160,160,160,.22) 0%,transparent 60%)}.fx-miss .event-word{color:#b9b9b9;text-shadow:0 0 18px rgba(120,120,120,.7);font-style:italic}.fx-heal .event-builtin{background:radial-gradient(ellipse at 50% 90%,rgba(60,200,100,.4) 0%,transparent 65%)}.fx-heal .event-word{color:#57d977;text-shadow:0 0 30px #2c8c46}.fx-death .event-builtin{background:radial-gradient(ellipse at center,#0000008c,#3c0000bf)}.fx-death .event-word{color:#a22;text-shadow:0 0 40px #000}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-14px,6px)}40%{transform:translate(12px,-8px)}60%{transform:translate(-10px,-5px)}80%{transform:translate(8px,7px)}}
