: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;--kind-monster: #6f3f96;--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;--kind-monster: #9b6bd1;--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;--kind-monster: #7c3aed;--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{color:var(--text);font-size:1em;background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:4px 8px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1;font-style:italic}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)}@media(max-width:640px){.time-badge{top:56px}}.app{max-width:1600px;margin:0 auto;padding:0 16px 60px}.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-tabs{display:flex;gap:8px;margin-bottom:14px}.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:contain;background:var(--panel2);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}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.asset-card{cursor:default}.asset-card:hover{transform:none;border-color:var(--border)}.asset-thumb{position:relative;margin-bottom:6px}.asset-media{display:block;width:100%;aspect-ratio:16 / 10;object-fit:contain;background:var(--panel2);border-radius:10px;border:1.5px solid var(--border)}.asset-name{width:100%;font-weight:600}.asset-storage{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-4px 0 4px;font-size:.88em}.saved-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px;max-height:232px;overflow-y:auto;margin-top:6px}.saved-asset{display:flex;flex-direction:column;gap:3px;padding:4px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);cursor:pointer;text-align:center}.saved-asset:hover{border-color:var(--accent)}.saved-asset-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:5px;background:var(--panel)}.saved-asset-name{font-size:.72em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cleanup-modal{width:min(760px,94vw);max-width:760px}.cleanup-all{display:inline-flex;align-items:center;gap:6px;font-size:.85em;margin-bottom:8px;cursor:pointer}.cleanup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;max-height:52vh;overflow-y:auto;padding:2px}.cleanup-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);cursor:pointer;font-size:.72em;opacity:.5;transition:opacity .1s,border-color .1s}.cleanup-item.sel{opacity:1;border-color:var(--danger)}.cleanup-item input[type=checkbox]{position:absolute;top:5px;left:5px;z-index:1}.cleanup-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:5px;background:var(--panel)}.cleanup-audio{display:flex;align-items:center;justify-content:center;font-size:2em}.cleanup-item-name{max-width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cleanup-item-size{font-size:.92em}.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{overflow:hidden;min-width:0}.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}.cr-input{width:3.5em;text-align:center;font-variant-numeric:tabular-nums}.speeds-row{align-items:center}.speeds-row label{text-transform:capitalize}.speed-chip{display:inline-flex;align-items:center;gap:.3em}.speed-chip input{width:4em}.speeds-add{align-self:flex-end;font-size:.9em}.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;min-height:2.2em;line-height:1.35}.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;white-space:pre-line}.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}.user-usage{font-variant-numeric:tabular-nums;white-space:nowrap}.user-usage.over{color:var(--danger);font-weight:700}.user-quota{display:inline-flex;align-items:center;gap:4px;font-size:.85em;color:var(--muted)}.user-quota input{width:5em;text-align:right}.account-storage{max-width:420px;margin:0 0 18px}.account-storage-note{margin:0 0 18px}.account-storage-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:.9em;margin-bottom:5px}.quota-bar{height:9px;border-radius:999px;background:color-mix(in srgb,var(--border) 60%,transparent);overflow:hidden}.quota-fill{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .3s ease}.quota-fill.high{background:#e0912f}.quota-fill.over{background:var(--danger)}.demo-banner{display:flex;flex-direction:column;align-items:center;gap:6px;padding:7px 14px;margin-bottom:22px;border:1.5px solid var(--accent);border-radius:10px;background:color-mix(in srgb,var(--panel) 85%,var(--accent));font-weight:600}.demo-banner>div{display:flex;align-items:center;gap:10px}.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 .detail-row label{flex-direction:column;align-items:stretch;gap:4px}.form-grid .detail-row label>span{text-align:center}.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-thumb-contain{object-fit:contain;background:var(--panel2)}.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}.battlemap-dm h2{margin-bottom:14px}.bmap-setup{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.bmap-setup-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.bmap-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.bmap-preview{position:relative;width:100%;aspect-ratio:16 / 9;max-height:60vh;background:#111;border-radius:10px;overflow:hidden;border:1.5px solid var(--border)}.bmap-preview-media{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform-origin:center center}.bmap-grid{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.bmap-grid line,.bmap-grid rect,.bmap-grid polygon{stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke}.bmap-grid.interactive{cursor:crosshair}.bmap-fogbrush{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.bmap-fogbrush.interactive{pointer-events:auto;cursor:crosshair;touch-action:none}.bmap-brush-cursor{position:absolute;border-radius:50%;box-sizing:border-box;border:1.5px solid rgba(255,255,255,.9);outline:1px solid rgba(0,0,0,.5);pointer-events:none}.bmap-shape-toggle{display:flex;gap:4px}.bmap-shape-toggle .btn.active,.bmap-fog-controls .btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.bmap-dual-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:4px}@media(max-width:700px){.bmap-dual-controls{grid-template-columns:1fr}}.bmap-view-controls{margin-bottom:0}.bmap-view-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.bmap-scale-label{display:flex;align-items:center;gap:10px;flex:1;min-width:200px}.bmap-scale-label input[type=range]{flex:1;background:none;border:none;padding:0;accent-color:var(--accent)}.bmap-scale-val{font-variant-numeric:tabular-nums;min-width:3.5em;color:var(--muted);font-size:.9em}.bmap-pan-pad{display:flex;flex-direction:column;align-items:center;gap:2px}.bmap-pan-mid{display:flex;gap:2px}.bmap-display{position:fixed;inset:0;background:#000;overflow:hidden}.bmap-inner{position:absolute;inset:0}.bmap-media{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform-origin:center center}.bmap-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#ffffff59;font-size:1.3em;pointer-events:none}.config{max-width:1200px;display:flex;flex-direction:column;gap:18px}.config>h2{margin:0}.config-cols{display:flex;align-items:flex-start;gap:18px}.config-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:18px}.config-section{padding:18px 22px 20px}.config-section h3{margin:0 0 10px;padding-bottom:9px;font-size:1.12em;border-bottom:1px solid var(--border)}.config-section h4{margin:22px 0 6px}.config-section>p.muted{margin:0 0 14px;line-height:1.5}@media(max-width:980px){.config-cols{flex-direction:column}}.config-toggle{display:flex;align-items:center;gap:8px;margin-top:12px;cursor:pointer}.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}.status-editor{display:flex;flex-direction:column;gap:8px;margin:14px 0 16px}.status-edit-row{display:grid;grid-template-columns:10em 1fr auto;align-items:center;gap:14px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);min-height:46px}.status-edit-row.readonly{background:transparent;border-style:dashed}.status-edit-row .status-preview{min-width:0}.status-label-input{width:100%}.status-row-mid{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.status-band-note{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;color:var(--muted)}.status-min-input{width:3.6em;text-align:center}.status-swatches{display:inline-flex;gap:6px}.status-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;box-shadow:0 0 0 1px var(--border);cursor:pointer;padding:0}.status-swatch:hover{transform:scale(1.12)}.status-swatch.sel{border-color:var(--text)}.status-remove{justify-self:end}.status-add{align-self:flex-start;margin-top:2px}.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 minmax(0,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>p.muted{text-align:center}.builder-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.builder-header-title{display:flex;align-items:center;gap:12px;min-width:0}.builder-header-icon{font-size:1.8em;flex-shrink:0}.builder-header-text{display:flex;flex-direction:column;gap:1px;min-width:0}.builder-editor .enc-name{font-size:1.3em;font-weight:700;font-family:var(--font-display);border:1px solid transparent;background:transparent;padding:2px 4px;border-radius:6px;min-width:12em}.builder-editor .enc-name:hover,.builder-editor .enc-name:focus{border-color:var(--border);background:var(--panel2)}.builder-header-sub{font-size:.78em;padding-left:5px}.setup-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.setup-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--panel2);border:1px solid var(--border);border-radius:10px;cursor:pointer;text-align:left;font:inherit;color:var(--text);transition:filter .1s,transform .05s}.setup-card:hover:not(:disabled){filter:brightness(1.05)}.setup-card:active:not(:disabled){transform:scale(.99)}.setup-card:disabled{opacity:.5;cursor:not-allowed}.setup-card-icon{font-size:1.5em;flex-shrink:0;line-height:1}.setup-card-body{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.setup-card-body b{font-size:.95em}.setup-card-body .muted{font-size:.76em;line-height:1.2}.setup-card-chevron{color:var(--muted);font-size:1.3em;flex-shrink:0}.setup-cards .lib-picker{width:100%;height:100%}.setup-cards .lib-picker .setup-card{width:100%;height:100%;box-sizing:border-box}.toolbar-inner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:relative}.builder-rows{display:flex;flex-direction:column;gap:8px}.b-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;overflow-x:auto;background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:6px 10px}.b-row .name{min-width:4em;flex:1 1 60px}.b-row-group{display:flex;flex-direction:column}.b-row-group.drag-over{box-shadow:0 -2px 0 var(--accent)}.b-row-group.dragging{opacity:.35}.b-desc-toggle{flex-shrink:0;min-width:1.8em;padding:0 4px}.b-desc-toggle:disabled{opacity:.25;cursor:default}.b-row-description{margin:2px 0 0;padding:8px 12px 8px 40px;font-size:.88em;line-height:1.4;white-space:pre-wrap}.b-stats{display:flex;align-items:center;gap:6px;flex-shrink:0}.stat-pill+.stat-pill{padding-left:8px;border-left:1px solid var(--border)}.stat-pill{display:inline-flex;align-items:center;gap:4px;font-size:.85em;white-space:nowrap;color:var(--text)}.stat-icon{font-size:.9em;line-height:1}.participants-header.shop-items-header{justify-content:flex-start;flex-wrap:nowrap;gap:10px;padding-right:11px;box-sizing:border-box}.shop-head-spacer{flex:1 1 auto;min-width:0}.shop-row-stats{display:flex;align-items:center;gap:6px;flex-shrink:0}.shop-stat{width:84px;display:inline-flex;align-items:center;justify-content:flex-end;white-space:nowrap;box-sizing:border-box}.shop-items-header .shop-stat{font-size:.74em;font-weight:700;color:var(--muted);padding-right:12px}.shop-items-header .shop-stat:last-child{justify-content:flex-start;padding-right:0;position:relative;left:32px}.shop-head-actions{width:84px;flex-shrink:0}.shop-item-rows .b-actions{width:84px;margin-left:0;justify-content:flex-end}.stat-input{width:3.6em;padding:1px 5px;border:1px solid var(--border);border-radius:6px;background:var(--panel2);font:inherit;color:inherit;text-align:right;-moz-appearance:textfield;appearance:textfield}.stat-input:focus{border-color:var(--accent);outline:none}.stat-input::-webkit-outer-spin-button,.stat-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.icon-ac,.icon-hp,.icon-init{width:1em;height:1em;flex-shrink:0;vertical-align:-.15em}.icon-no-audio{width:1.1em;height:1.1em;flex-shrink:0;vertical-align:-.22em;margin-left:5px;opacity:.75}.icon-hp{color:var(--danger)}.icon-init{color:var(--turn)}.icon-gold{width:1.25em;height:1.25em;flex-shrink:0;vertical-align:-.3em}.participants-header{justify-content:space-between;flex-wrap:wrap;gap:8px}.section-label-row-left{display:flex;align-items:center;gap:6px}.participant-counts{display:flex;gap:6px;flex-wrap:wrap}.count-pill{font-size:.72em;font-weight:700;letter-spacing:.03em;padding:2px 9px;border-radius:999px;border:1px solid var(--border);color:var(--muted);white-space:nowrap}.count-pill.count-pc{color:var(--heal);border-color:var(--heal);background:color-mix(in srgb,var(--heal) 14%,var(--panel2))}.count-pill.count-monster{color:var(--kind-monster);border-color:var(--kind-monster);background:color-mix(in srgb,var(--kind-monster) 14%,var(--panel2))}.count-pill.count-total{color:var(--text)}.group-label{text-align:left}.group-label.group-pc{color:var(--heal)}.group-label.group-monster{color:var(--kind-monster)}.b-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.builder-group{display:flex;flex-direction:column;gap:6px;margin-top:10px}.music-slot{display:flex;flex-direction:column;align-items:stretch;gap:6px;flex:1 1 220px}.music-start{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.85em;color:var(--muted)}.builder-hint{margin-top:60px}.enc-bg-row .bg-slot{width:auto;flex:1 1 220px;background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:0;overflow:hidden}.enc-bg-row .bg-slot>*:not(.bg-preview){padding:0 14px}.enc-bg-row .bg-slot>.bg-actions{padding-bottom:14px}.enc-bg-row .bg-preview,.enc-bg-row .bg-thumb{width:100%}.enc-bg-row .bg-preview{height:120px;border:none;border-radius:0}.enc-bg-row{display:flex;gap:18px;flex-wrap:wrap}.builder-panel{padding:10px 14px;display:flex;flex-direction:column;gap:10px}.builder-panel .enc-bg-row{padding-top:2px}.avatar.item-avatar{object-fit:contain;background:var(--panel2)}.avatar.avatar-pc{border-color:var(--heal)}.avatar.avatar-monster{border-color:var(--kind-monster)}.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}.initials.initials-full{font-size:.6em;font-weight:600;padding:6px;line-height:1.25;text-align:center;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4}.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{font-weight:400}.enc-title-static{margin:0;text-align:center;font-family:var(--font-display);font-size:1.25em;font-weight:700}.lib-pick{width:14em;text-overflow:ellipsis}.lib-picker{position:relative}.lib-picker-trigger{width:14em;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.lib-picker-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:30;width:max(16em,100%);max-width:22em;padding:8px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow)}.lib-picker-search{width:100%}.lib-picker-results{max-height:18em;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.lib-picker-empty{padding:10px 4px}.lib-picker-group{display:flex;flex-direction:column;gap:2px}.lib-picker-group-label{font-size:.72em;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:6px 4px 2px}.lib-picker-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border:none;border-radius:6px;background:none;cursor:pointer;text-align:left;width:100%;font:inherit}.lib-picker-row:hover{background:var(--panel2)}.lib-picker-avatar{width:1.8em;height:1.8em;border-radius:.4em;object-fit:cover;flex-shrink:0;font-size:.6em}.lib-picker-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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{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.kind-chip-pc{color:var(--heal);border-color:var(--heal)}.kind-chip.kind-chip-monster{color:var(--kind-monster);border-color:var(--kind-monster)}.kind-chip{font-size:.62em;letter-spacing:.06em;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:0 6px;flex-shrink:0;white-space:nowrap}.link-badge{font-size:.85em;opacity:.7;cursor:default;flex-shrink:0}.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{margin-top:10px;padding:12px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:10px}.combatant.active .combatant-detail{border-color:color-mix(in srgb,var(--border) 55%,var(--accent))}.combatant-detail.has-sheet{flex-direction:row;align-items:flex-start;gap:16px}.cd-main{display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}.combatant-detail.has-sheet>.cd-main,.combatant-detail.has-sheet>.cd-sheet{flex:1 1 0;min-width:0}.combatant-detail.has-sheet>.cd-sheet{border-left:1px solid var(--border);padding-left:16px}.cd-sheet .statblock{border-top:none;padding-top:0}@media(max-width:900px){.combatant-detail.has-sheet{flex-direction:column}.combatant-detail.has-sheet>.cd-sheet{flex:0 0 auto;border-left:none;padding-left:0}.cd-sheet .statblock{border-top:1px solid var(--border);padding-top:8px}}.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}.cond-imm-field{flex:1;min-width:16em}.cond-imm-field input{flex:1}.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 10;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-gold{display:flex;align-items:center;gap:4px;font-size:.8em;margin-bottom:4px}.party-card-gold input{width:4.5em}.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-cond-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-height:1.9em}.party-notes{display:flex;flex-direction:column;gap:4px;margin-top:6px}.party-notes-toggle{align-self:flex-start}.party-notes-toggle.has-notes{border-color:var(--accent);color:var(--accent)}.party-notes-field{width:100%;font-size:.85em;min-height:3.5em}.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)}.exh-track{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}.exh-pips{display:inline-flex}.exh-pip{cursor:default}button.exh-pip{cursor:pointer}button.exh-pip:hover{border-color:var(--fg)}.exh-pip.filled{background:#d4a017;border-color:#d4a017}.exh-pip.filled[data-lv="3"],.exh-pip.filled[data-lv="4"]{background:#c2691c;border-color:#c2691c}.exh-pip.filled[data-lv="5"],.exh-pip.filled[data-lv="6"]{background:var(--danger);border-color:var(--danger)}.exh-track.maxed b{color:var(--danger)}.exh-track.compact{gap:6px}.exh-track.compact .exh-pip{width:.65em;height:.65em;border-width:1.5px;margin:0 1px}.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}.sb-line b,.sb-action b{color:var(--accent)}.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-status{min-height:1.5em;margin:0}.srd-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:6px 14px}.srd-results.is-loading{opacity:.45;transition:opacity .12s ease}.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 b,.srd-row-body .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.srd-row-body .muted{font-size:.8em}.srd-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.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}.srd-import-modal{width:min(860px,100%)}.qr-modal{width:min(320px,100%);display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.qr-modal canvas{border-radius:8px}.qr-modal .muted{word-break:break-all;font-size:.85em}.add-media-modal{width:min(460px,100%)}.crop-modal{width:min(440px,100%);display:flex;flex-direction:column;align-items:center;gap:8px}.crop-box{position:relative;border-radius:10px;border:1.5px solid var(--border);background:var(--panel2);cursor:grab;touch-action:none;align-self:center;overflow:hidden}.crop-box:active{cursor:grabbing}.crop-box img{position:absolute;top:0;left:0;-webkit-user-select:none;user-select:none;max-width:none;pointer-events:none}.crop-dim{position:absolute;background:#0009;pointer-events:none}.crop-selection{position:absolute;border:2px solid #fff;box-shadow:0 0 0 1px #00000080,0 0 12px #00000080;pointer-events:none}.crop-load-error{padding:20px}.crop-zoom{display:flex;align-items:center;gap:8px;width:100%}.crop-zoom input[type=range]{flex:1}.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}.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-member .exh-track{margin-top:1px}.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:row}.display-main{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;overflow:hidden}.roster-sidebar{flex-shrink:0;width:15em;overflow-y:auto;padding:14px 10px;display:flex;flex-direction:column;gap:8px;background:color-mix(in srgb,var(--panel) 55%,transparent);border-left:1.5px solid var(--border)}.roster-row{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:8px;border:1.5px solid transparent;transition:opacity .2s,border-color .2s}.roster-row.active{border-color:var(--accent);background:color-mix(in srgb,var(--panel) 70%,var(--accent))}.roster-row.targeted{border-color:var(--danger)}.roster-row.mystery{opacity:.6}.roster-avatar{width:2.6em;height:2.6em;border-radius:.5em;flex-shrink:0;object-fit:cover;border:2px solid var(--border)}.roster-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.roster-name{font-weight:700;font-size:.92em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-conditions{display:flex;gap:3px;font-size:.85em;min-height:1.1em}.display-controls-left{position:absolute;top:14px;left:18px;z-index:20;display:flex;gap:8px}.sound-toggle,.fullscreen-toggle{background:var(--panel);border:1.5px solid var(--border);padding:6px 11px;cursor:pointer;opacity:.55;transition:opacity .2s}.sound-toggle{border-radius:999px}.fullscreen-toggle{border-radius:8px}.sound-toggle:hover,.fullscreen-toggle:hover{opacity:1}.sound-toggle.needs-gesture{opacity:1;border-color:var(--accent);animation:sound-needs-gesture 1.3s ease-in-out infinite}@keyframes sound-needs-gesture{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 55%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 0%,transparent)}}.you-are-badge{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1.5px solid var(--border);border-radius:999px;padding:6px 12px;font-weight:600;white-space:nowrap}.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-cond-exh{display:inline-flex;align-items:center;gap:5px}.stage-cond-exh .exh-pip:not(.filled){border-color:#ffffff8c}.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-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}}.invite-qr-overlay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:40;display:flex;flex-direction:column;align-items:center;gap:14px;background:#fff;border:1.5px solid var(--border);border-radius:20px;padding:28px 32px 24px;box-shadow:0 8px 48px #0000008c;animation:overlay-in .4s ease}.invite-qr-overlay canvas{display:block;width:min(320px,60vh,60vw);height:min(320px,60vh,60vw);border-radius:6px}.invite-qr-label{font-size:1.15em;font-weight:700;color:#111}.invite-qr-overlay.out{animation:overlay-out .45s ease forwards}.timer-overlay{position:absolute;top:56px;left:50%;transform:translate(-50%);z-index:48;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 20px 14px;border-radius:18px;background:#14100a9e;border:1.5px solid rgba(255,255,255,.14);box-shadow:0 8px 40px #00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;animation:overlay-in .4s ease}.timer-overlay.out{animation:overlay-out .45s ease forwards}.timer-label{max-width:22ch;text-align:center;font-size:1.05em;font-weight:700;letter-spacing:.02em;text-shadow:0 1px 3px rgba(0,0,0,.5)}.timer-dial{position:relative;width:150px;height:150px}.timer-ring{width:100%;height:100%;transform:rotate(-90deg)}.timer-ring-track{fill:none;stroke:#ffffff26;stroke-width:8}.timer-ring-fill{fill:none;stroke:var(--accent);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .2s linear,stroke .3s ease}.timer-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.timer-clock{font-size:2.5em;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px rgba(0,0,0,.6)}.timer-note{font-size:.72em;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.85}.timer-overlay.paused{opacity:.82}.timer-overlay.paused .timer-ring-fill{stroke:#d9a441}.timer-overlay.urgent{animation:timer-pulse 1s ease-in-out infinite}.timer-overlay.urgent .timer-ring-fill{stroke:#e5484d}.timer-overlay.urgent .timer-clock{color:#ff6b6f}.timer-overlay.expired{animation:timer-flash 1s steps(1) infinite}.timer-overlay.expired .timer-ring-fill{stroke:#e5484d}.timer-overlay.expired .timer-clock{color:#ff6b6f}@keyframes timer-pulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.05)}}@keyframes timer-flash{0%,to{border-color:#e5484de6;box-shadow:0 0 34px #e5484d99}50%{border-color:#ffffff24;box-shadow:0 8px 40px #00000080}}@media(max-width:640px){.timer-overlay{top:96px;padding:10px 16px 12px}.timer-dial{width:118px;height:118px}.timer-clock{font-size:2em}}.timer-control{position:relative;display:inline-flex;align-items:center;gap:4px}.timer-readout{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.timer-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:60;display:flex;flex-direction:column;gap:8px;padding:10px;min-width:214px;border-radius:10px;box-shadow:0 8px 28px #00000059}.timer-presets{display:flex;flex-wrap:wrap;gap:6px}.timer-custom{display:flex;align-items:center;gap:6px;font-size:.9em}.timer-num{width:3.5em}.timer-label-input{width:100%}.timer-menu-actions{display:flex;justify-content:flex-end;gap:6px}.shop-overlay{position:absolute;inset:0;z-index:45;background:#000000d1;display:flex;align-items:center;justify-content:center;padding:4vh 4vw;animation:overlay-in .4s ease}.shop-overlay.out{animation:overlay-out .45s ease forwards}.shop-overlay-card{background:var(--panel);border:1.5px solid var(--border);border-radius:14px;padding:22px 30px;width:min(1100px,94vw);max-height:88vh;overflow-y:auto;box-shadow:0 0 60px #0009}.shop-overlay-title{margin:0 0 16px;text-align:center}.personal-shop-prompt{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:40;animation:overlay-in .4s ease}.personal-shop-prompt.out{animation:overlay-out .45s ease forwards}.personal-shop-prompt-btn{display:inline-flex;align-items:center;white-space:nowrap;padding:10px 20px;border-radius:999px;box-shadow:0 4px 24px #00000073;text-decoration:none}.shop-overlay-items-wrap{position:relative}.shop-overlay-items{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.shop-overlay-items-wrap.fixed .shop-overlay-items{position:absolute;inset:0}.shop-overlay-items-sizer{position:relative!important;visibility:hidden;pointer-events:none}.shop-overlay-items.in{animation:shop-page-in 1.5s ease both}.shop-overlay-items.out{animation:shop-page-out 1.5s ease both;pointer-events:none}@keyframes shop-page-in{0%{opacity:0}to{opacity:1}}@keyframes shop-page-out{0%{opacity:1}to{opacity:0}}.shop-overlay-item{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);min-width:0}.shop-overlay-item-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:1.5px solid var(--border)}.shop-overlay-item-image.initials{font-size:2.5em}.shop-overlay-item-image.initials-full{font-size:.85em}.lib-portrait.initials-full{font-size:.9em}.shop-overlay-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.shop-overlay-item-head{display:flex;flex-direction:column;gap:2px;min-width:0}.shop-overlay-item-head .muted{font-size:.8em}.shop-overlay-item-desc{margin:0;font-size:.85em;opacity:.85;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.shop-overlay-item-price{margin-top:auto;font-weight:700}.shop-overlay-item-stock{font-weight:500;opacity:.75}.shop-overlay-item-stock.out{color:var(--danger);opacity:1}.marquee{overflow:hidden;white-space:nowrap;min-width:0}.marquee-track{display:inline-flex;white-space:nowrap;will-change:transform}.marquee-copy{font-weight:700;flex-shrink:0}.marquee-active .marquee-track{animation-name:marquee-scroll;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(calc(-1 * var(--marquee-distance, 0px)))}}.shop-overlay-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}.shop-overlay-dot{width:9px;height:9px;border-radius:50%;background:var(--border);transition:background .2s,transform .2s}.shop-overlay-dot.on{background:var(--accent);transform:scale(1.25)}.shop-overlay-hint{margin:16px 0 0;text-align:center;font-size:.85em;opacity:.75}.shop-overlay-enter{display:block;width:fit-content;margin:16px auto 0;text-decoration:none}@media(max-width:900px){.shop-overlay-items{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.shop-overlay-items{grid-template-columns:1fr}}.ambience-panel{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--panel) 70%,transparent);border:1px solid var(--border)}.ambience-panel.from-encounter{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.ambience-panel-head{display:flex;align-items:center;gap:8px;min-width:0}.ambience-badge{font-size:1.05em;flex:none}.ambience-title{flex:1 1 auto;min-width:0;font-weight:600;font-size:.92em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ambience-transport{display:flex;align-items:center;gap:8px}.ambience-play{flex:none;width:2.2em;padding:4px 0;font-size:1em;line-height:1}.ambience-time{flex:none;font-size:.78em;color:var(--muted);font-variant-numeric:tabular-nums;min-width:3em;text-align:center}.ambience-volrow{display:flex;align-items:center;gap:8px}.ambience-vol-icon{flex:none;opacity:.7}.ambience-seek,.ambience-vol{flex:1 1 auto;min-width:0;accent-color:var(--accent);cursor:pointer}.ambience-seek:disabled{cursor:default;opacity:.5}.ambience-volume-pct{flex:none;font-size:.8em;color:var(--muted);min-width:2.8em;text-align:right;font-variant-numeric:tabular-nums}.ambience-frame{position:fixed;width:2px;height:2px;left:-10px;top:-10px;opacity:0;pointer-events:none}.showing-badge{position:absolute;left:50%;transform:translate(-50%);white-space:nowrap;color:var(--heal);font-weight:700;font-size:.9em}.showcase-bar{padding:18px 14px 10px;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)}.section-label-row{display:flex;align-items:center;gap:6px}.collapse-toggle{background:none;border:none;padding:2px 4px;margin:0;cursor:pointer;color:var(--muted);font-size:1.3em;line-height:1}.collapse-toggle:hover{color:var(--text)}.media-queue{display:flex;gap:12px;flex-wrap:wrap}.queue-item{display:flex;flex-direction:column;gap:4px;width:140px;max-width:140px;flex:1 1 100px}.queue-thumb{position:relative;width:100%;aspect-ratio:1 / 1;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)}}.purchase-queue{margin-bottom:14px;padding:8px 16px 14px}.shop-display-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.shop-display-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.shop-display-name{font-weight:600}.shop-display-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;flex-shrink:0}.shop-view-modal{max-width:900px;max-height:85vh;overflow-y:auto}.purchase-queue-list{display:flex;flex-direction:column;gap:6px}.purchase-request-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);flex-wrap:wrap}.purchase-request-price{display:flex;align-items:center;gap:4px;font-size:.9em;white-space:nowrap}.purchase-request-price input{width:4em}.shop-page{max-width:640px;margin:0 auto;padding:14px 14px 60px}.shop-page-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 4px;margin-bottom:10px;background:var(--bg);border-bottom:1.5px solid var(--border)}.shop-page-head>div{display:flex;align-items:center;gap:8px}.shop-gold{font-weight:700;font-size:1.1em}.shop-pc-picker{display:flex;flex-direction:column;gap:10px;max-width:20em;margin:20px auto}.shop-pc-btn{padding:14px;font-size:1.1em}.shop-section{margin-bottom:22px}.shop-section h2{border-bottom:1.5px solid var(--border);padding-bottom:6px}.shop-item-cards{display:flex;flex-direction:column;gap:10px}.shop-item-card{padding:10px 14px}.shop-item-card-body{display:flex;gap:12px}.shop-item-card-image{width:72px;height:72px;flex-shrink:0;object-fit:contain;background:var(--panel2);border-radius:8px;border:1.5px solid var(--border)}.shop-item-card-image.initials{font-size:1.4em;background:linear-gradient(135deg,var(--accent),var(--panel2))}.shop-item-card-image.initials-full{font-size:.65em}.shop-item-card-main{flex:1;min-width:0}.shop-item-card-head{display:flex;flex-direction:column;gap:2px;min-width:0}.shop-item-card-head .muted{font-size:.8em}.shop-item-card-desc{margin:6px 0;font-size:.9em;white-space:pre-line}.shop-item-card-foot{display:flex;flex-direction:column;gap:8px;margin-top:8px}.shop-item-cost{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}.shop-item-price{font-weight:700}.shop-item-cost .muted{font-size:.85em}.shop-buy-row{display:flex;align-items:center;gap:10px}.shop-buy-row .btn.primary{margin-left:auto;min-height:40px;padding-inline:20px}.shop-qty{display:inline-flex;align-items:stretch;height:40px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);overflow:hidden}.shop-qty-btn{min-width:44px;padding:0;border:none;background:transparent;color:var(--text);font-size:1.4em;font-weight:700;line-height:1;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.shop-qty-btn:active:not(:disabled){background:var(--border)}.shop-qty-btn:disabled{opacity:.35;cursor:default}.shop-qty-input{width:3ch;box-sizing:content-box;padding:0 6px;border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);background:transparent;color:var(--text);text-align:center;font:inherit;font-weight:700;font-variant-numeric:tabular-nums}.shop-qty-input:focus{outline:none;background:var(--panel)}.shop-request-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.shop-request{padding:8px 12px;border-radius:8px;border:1px solid var(--border);background:var(--panel2)}.shop-request-approved{border-color:#2e7d32}.shop-request-denied{border-color:var(--danger);opacity:.75}
