:root{color-scheme:dark;--bg:#090b10;--panel:rgba(24,18,15,.82);--panel-strong:rgba(12,14,18,.94);--ink:#f8ecd2;--muted:#b8ac98;--line:hsla(40,70%,70%,.22);--accent:#e2b760;--accent-2:#6f9270;--danger:#d47b88;--shadow:0 28px 90px rgba(0,0,0,.38);--hero:url(https://images.unsplash.com/photo-1518709268805-4e9042af2176?auto=format&fit=crop&w=1800&q=86)}html[data-palette=forest]{--accent:#84bf7d;--accent-2:#d5be78;--panel:rgba(13,25,18,.84);--hero:url(https://images.unsplash.com/photo-1448375240586-882707db888b?auto=format&fit=crop&w=1800&q=86)}html[data-palette=arcane]{--accent:#b98ae5;--accent-2:#99b7ec;--panel:rgba(22,15,31,.84)}html[data-palette=nocturne]{--accent:#82aee7;--accent-2:#cfb16b;--panel:rgba(11,18,30,.86)}html[data-palette=bloodmoon]{--accent:#e06b73;--accent-2:#caa45f;--panel:rgba(30,12,16,.86)}html[data-palette=storm]{--accent:#9fc5d4;--accent-2:#b7b0df;--panel:rgba(14,22,28,.86)}html[data-palette=sunlit]{--accent:#f1ca70;--accent-2:#76b996;--panel:rgba(34,26,15,.84)}html[data-palette=void]{--accent:#c0a7ff;--accent-2:#7bd6c8;--panel:rgba(10,9,18,.88)}html[data-palette=rose]{--accent:#e598b0;--accent-2:#e0bd77;--panel:rgba(31,16,25,.86)}html[data-palette=copper]{--accent:#d58b55;--accent-2:#82b4a6;--panel:rgba(31,20,14,.86)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 12% 8%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 20rem),radial-gradient(circle at 86% 12%,color-mix(in srgb,var(--accent-2) 18%,transparent),transparent 24rem),linear-gradient(rgba(5,7,10,.72),rgba(5,7,10,.92)),var(--hero) center /cover fixed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}h1,h2,h3{font-family:Georgia,Times New Roman,serif;letter-spacing:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.field-block{display:grid;grid-gap:.35rem;gap:.35rem;color:var(--muted);font-size:.86rem}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:hsla(0,0%,100%,.055);outline:none;padding:.72rem .85rem}textarea{min-height:120px;resize:vertical}input[type=file]{display:none}select option{color:#111}a{color:inherit;text-decoration:none}svg{width:18px;height:18px}.loading{min-height:100vh;display:grid;place-items:center;grid-gap:.8rem;gap:.8rem;font-size:1.4rem;font-weight:900}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr)}.login-art{display:flex;align-items:flex-end;padding:clamp(2rem,7vw,6rem);background:linear-gradient(rgba(3,5,8,.05),rgba(3,5,8,.72)),var(--hero) center /cover;animation:slow-pan 22s ease-in-out infinite alternate}.login-art h1{max-width:760px;margin:0;font-size:clamp(3rem,7vw,6.2rem);line-height:.94}.login-art p{color:var(--accent);font-weight:900;text-transform:uppercase}.login-card{display:grid;align-content:center;grid-gap:1rem;gap:1rem;padding:2rem;background:linear-gradient(180deg,rgba(21,15,12,.94),rgba(8,10,13,.96))}.login-card form,form{display:grid;grid-gap:.85rem;gap:.85rem}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:1.15rem;border-right:1px solid var(--line);background:rgba(8,10,13,.9);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:1.25rem}.action-row,.brand,.card-head,.customizer,.profile-card,.sheet-top,.topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.brand{justify-content:flex-start}.brand-mark,.profile-card span{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--accent) 22%,transparent);font-weight:950}.brand small,.empty-state,.muted,.panel p,.profile-card small,.table-card p{color:var(--muted)}.modal,.panel,.profile-card{border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,var(--panel),rgba(10,12,14,.84));box-shadow:var(--shadow);padding:1.15rem}.sidebar nav{display:grid;grid-gap:.45rem;gap:.45rem}.action-row button,.danger,.dice-rack button,.ghost,.primary,.secondary,.sidebar nav a,.sidebar nav button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:hsla(0,0%,100%,.045);padding:0 .9rem;font-weight:850}.active,.primary,.sidebar nav .active{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 34%,transparent),hsla(0,0%,100%,.04));color:var(--ink)}.primary{color:#211407;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,#fff),color-mix(in srgb,var(--accent) 62%,#5a3218))}.danger{border-color:color-mix(in srgb,var(--danger) 70%,transparent);background:rgba(212,123,136,.17)}.preferences{margin-top:auto;display:grid;grid-gap:.9rem;gap:.9rem;padding-top:1rem;border-top:1px solid var(--line)}.preferences label{display:flex;align-items:center;gap:.5rem}.swatches{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:.55rem;gap:.55rem}.swatch{position:relative;height:34px;border:1px solid hsla(0,0%,100%,.18);border-radius:8px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18),0 10px 24px rgba(0,0,0,.18)}.swatch:after{content:"";position:absolute;inset:5px;border:1px solid hsla(0,0%,100%,.22);border-radius:5px}.swatch.ember{background:linear-gradient(135deg,#e2b760,#6f9270 52%,#2f1a12)}.swatch.forest{background:linear-gradient(135deg,#84bf7d,#d5be78 48%,#102016)}.swatch.arcane{background:linear-gradient(135deg,#b98ae5,#99b7ec 50%,#201126)}.swatch.nocturne{background:linear-gradient(135deg,#82aee7,#cfb16b 48%,#0b1220)}.swatch.bloodmoon{background:linear-gradient(135deg,#e06b73,#caa45f 48%,#24070d)}.swatch.storm{background:linear-gradient(135deg,#9fc5d4,#b7b0df 48%,#111a20)}.swatch.sunlit{background:linear-gradient(135deg,#f1ca70,#76b996 48%,#2c2110)}.swatch.void{background:linear-gradient(135deg,#c0a7ff,#7bd6c8 48%,#080611)}.swatch.rose{background:linear-gradient(135deg,#e598b0,#e0bd77 48%,#25111c)}.swatch.copper{background:linear-gradient(135deg,#d58b55,#82b4a6 48%,#25160e)}.swatch.active{outline:2px solid var(--ink);outline-offset:3px;border-color:var(--accent)}.workspace{min-width:0;padding:clamp(1.25rem,2.4vw,2.35rem)}.topbar{margin-bottom:1.25rem}.eyebrow{margin:0 0 .3rem;color:var(--accent);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.card-head h3,.topbar h2{margin:0}.hero{min-height:380px;display:grid;align-content:flex-end;grid-gap:1.15rem;gap:1.15rem;border:1px solid var(--line);border-radius:10px;padding:clamp(1.5rem,3.2vw,2.6rem);background:linear-gradient(90deg,rgba(7,10,15,.18),rgba(7,10,15,.82)),var(--hero) center /cover;box-shadow:inset 0 0 100px rgba(0,0,0,.42);animation:rise .5s ease both}.hero h1{max-width:900px;margin:0;font-size:clamp(2.5rem,5vw,5rem);line-height:1}.hero>div{display:flex;flex-wrap:wrap;gap:.7rem}.card-grid,.metric-grid,.sheet-list{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));grid-gap:1.15rem;gap:1.15rem;margin-top:1.25rem}.compact-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:.75rem}.metric strong{display:block;margin-top:.5rem;font-size:2.2rem;color:var(--accent)}.character-card,.table-card,.user-card{display:grid;grid-gap:.95rem;gap:.95rem;align-content:start;transition:transform .18s ease,border-color .18s ease}.character-card:hover,.panel:hover,.table-card:hover{border-color:color-mix(in srgb,var(--accent) 48%,transparent)}.table-mini{display:grid;grid-gap:.6rem;gap:.6rem;border:1px solid var(--line);border-radius:8px;padding:.85rem;background:hsla(0,0%,100%,.03)}.table-mini span{color:var(--muted)}.toggle-grid{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));grid-gap:.5rem;gap:.5rem}.toggle-grid label{display:flex;align-items:center;gap:.4rem;border:1px solid var(--line);border-radius:8px;padding:.55rem;background:hsla(0,0%,100%,.035)}.toggle-grid input{width:auto}.dice-rack{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));grid-gap:.45rem;gap:.45rem}.dice-rack.rolling button,.suspense .physical-die{animation:dice-suspense .34s ease-in-out infinite alternate}.dice-options{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;border:1px solid var(--line);border-radius:8px;padding:.65rem;background:hsla(0,0%,100%,.035)}.dice-options>button{width:38px;height:38px;padding:0;font-size:1.15rem}.dice-options strong{min-width:2.4rem;text-align:center;font-size:1.25rem;color:var(--accent)}.dice-options label{width:auto;display:inline-flex;align-items:center;gap:.45rem;margin-left:auto}.dice-options input[type=checkbox]{width:auto}.sfiga-stepper{display:flex;align-items:center;gap:.55rem;border:1px solid var(--line);border-radius:8px;padding:.72rem;background:rgba(0,0,0,.18);color:var(--ink);min-height:72px}.sfiga-stepper span{margin-right:auto;color:var(--accent);font-weight:950}.sfiga-stepper button{width:38px;height:38px;padding:0}.sfiga-stepper strong{min-width:2.2rem;text-align:center;font-size:1.35rem}.gallery-strip{display:flex;gap:.5rem;overflow:auto}.character-card img,.gallery-strip img,.sheet-top img{width:86px;height:86px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.gallery-item{position:relative;flex:0 0 auto}.gallery-item>button{position:absolute;top:4px;right:4px;width:28px;height:28px;padding:0;border:1px solid hsla(0,0%,100%,.25);border-radius:999px;color:#fff;background:rgba(85,10,18,.86);display:grid;place-items:center}.gallery-item>button svg{width:14px;height:14px}.gallery-clickable button{border:0;background:transparent;padding:0}.gallery-clickable img{transition:transform .16s ease,border-color .16s ease}.gallery-clickable button:hover img{transform:translateY(-2px) scale(1.02);border-color:var(--accent)}.image-preview{width:min(980px,94vw)}.image-preview img{width:100%;max-height:78vh;object-fit:contain;border-radius:8px;border:1px solid var(--line);background:rgba(0,0,0,.35)}.image-field{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:.55rem;gap:.55rem;align-items:center}.file-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:hsla(0,0%,100%,.045);padding:0 .8rem;font-weight:850}.file-button.disabled{opacity:.55;pointer-events:none}.sketch-wrap{display:grid;grid-gap:.65rem;gap:.65rem}.sketch-wrap canvas{width:100%;aspect-ratio:15/7;height:auto;border:1px solid rgba(83,48,24,.38);border-radius:8px;background:#f4e7c8;cursor:crosshair;touch-action:none;box-shadow:inset 0 0 30px rgba(70,38,13,.18)}.board-sketch-image{width:100%;border:1px solid var(--line);border-radius:8px;background:#f4e7c8}.table-sheets{display:grid;grid-gap:.65rem;gap:.65rem;border-top:1px solid var(--line);padding-top:.85rem}.invite-list{display:grid;grid-gap:.55rem;gap:.55rem;border:1px solid var(--line);border-radius:8px;padding:.75rem;background:hsla(0,0%,100%,.025)}.invite-list h4{margin:.15rem 0;color:var(--accent)}.invite-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;border:1px solid hsla(0,0%,100%,.08);border-radius:8px;padding:.5rem .6rem}.invite-row span{display:grid;grid-gap:.1rem;gap:.1rem}.invite-row small,.suggestion-list small{color:var(--muted)}.invite-row button{width:36px;height:36px;padding:0}.suggestion-list{display:grid;grid-gap:.4rem;gap:.4rem}.suggestion-list button{display:flex;align-items:center;justify-content:space-between;gap:.7rem;text-align:left}.binder-layout{display:grid;grid-template-columns:320px minmax(0,1fr) 280px;grid-gap:1.15rem;gap:1.15rem}.binder-tree,.editor-panel,.graph-panel{min-height:72vh}.drop-root,.folder-block,.note-row{display:grid;grid-gap:.5rem;gap:.5rem;border:1px solid var(--line);border-radius:8px;padding:.72rem;margin-top:.72rem;background:hsla(0,0%,100%,.03)}.note-row{display:block;width:100%;color:var(--ink);text-align:left}.doc-editor,.markdown{min-height:48vh;line-height:1.65}.markdown{border:1px solid var(--line);border-radius:8px;padding:1rem;background:hsla(0,0%,100%,.035)}.markdown mark{color:var(--accent);background:rgba(226,183,96,.14)}.relations{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.graph-panel{position:relative;overflow:hidden}.graph-panel button{position:relative;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:rgba(0,0,0,.28);padding:.45rem .7rem}.character-card{color:var(--ink);text-align:left;min-height:150px}.sheet-open{display:grid;grid-gap:.65rem;gap:.65rem;width:100%;color:inherit;text-align:left;border:0;background:transparent;padding:0}.sheet-delete{justify-self:start}.confirm-box{display:grid;grid-gap:.85rem;gap:.85rem}.sheet-editor{display:grid;grid-gap:1rem;gap:1rem}.sheet-top input{border:0;background:transparent;font-size:clamp(1.8rem,4vw,3rem);font-family:Georgia,serif;font-weight:900}.customizer{align-items:stretch}.customizer label{flex:1 1}.sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));grid-gap:.85rem;gap:.85rem}.sheet-grid label{display:grid;grid-gap:.35rem;gap:.35rem;color:var(--muted);font-size:.86rem}.sheet-grid textarea{grid-column:span 2}.vaff-grid,.vaff-sheet{border-left:5px solid #b22c68;padding-left:1rem}.vaff-sheet{display:grid;grid-gap:1.15rem;gap:1.15rem}.sheet-section{display:grid;grid-gap:1rem;gap:1rem;border:1px solid var(--line);border-radius:8px;background:hsla(0,0%,100%,.025);padding:1.1rem}.sheet-section h3{margin:0;color:var(--accent)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.section-title span{border:1px solid var(--line);border-radius:999px;padding:.25rem .65rem;color:var(--accent);background:rgba(0,0,0,.18);font-weight:900}.section-help{margin:-.4rem 0 .1rem;color:var(--muted)}.vaff-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));grid-gap:.9rem;gap:.9rem}.vaff-stat{display:grid;grid-gap:.7rem;gap:.7rem;border:1px solid hsla(0,0%,100%,.1);border-radius:8px;padding:1rem;background:linear-gradient(180deg,rgba(0,0,0,.2),hsla(0,0%,100%,.025))}.vaff-stat strong{color:var(--ink)}.vaff-stat small{min-height:2.8em;color:var(--muted);line-height:1.4}.dot-score{display:flex;gap:.7rem;align-items:center;padding-top:.15rem}.stat-dot{width:36px;height:36px;display:grid;place-items:center;border-radius:999px;border:2px solid color-mix(in srgb,var(--accent) 62%,hsla(0,0%,100%,.18));background:rgba(0,0,0,.25);color:hsla(0,0%,100%,.22);padding:0;font-size:1.22rem;line-height:1}.stat-dot span{transform:translateY(-1px)}.stat-dot.filled{color:#271405;border-color:var(--accent);background:radial-gradient(circle at 34% 28%,#fff6cf 0 10%,var(--accent) 38%,color-mix(in srgb,var(--accent) 60%,#3a1609) 100%);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 42%,transparent),inset 0 0 0 1px hsla(0,0%,100%,.22)}.stat-dot:not(:disabled):hover{transform:translateY(-2px);border-color:var(--ink)}.stat-dot:disabled{opacity:.95;cursor:default}.dice-feed.compact{margin-top:.25rem}.dice-feed.compact .dice-card{padding:.55rem}.dice-feed.compact .physical-die{width:52px;height:52px}.sheet-guide{grid-column:1/-1;display:grid;grid-gap:.55rem;gap:.55rem;border:1px solid rgba(178,44,104,.38);border-radius:8px;background:linear-gradient(135deg,rgba(178,44,104,.16),hsla(42,67%,87%,.07));padding:1rem}.sheet-guide h3,.sheet-guide p{margin:0}.sheet-guide h3{color:var(--accent)}.sheet-guide p{color:var(--muted);line-height:1.55}.frame-classic{box-shadow:inset 0 0 0 1px rgba(226,183,96,.2),var(--shadow)}.frame-arcane{box-shadow:inset 0 0 0 2px rgba(185,138,229,.28),0 0 50px rgba(185,138,229,.12)}.frame-chaos{box-shadow:inset 0 0 0 2px rgba(212,75,118,.32),0 0 60px rgba(212,75,118,.16)}.frame-radiant{box-shadow:inset 0 0 0 2px rgba(130,174,231,.3),0 0 60px rgba(130,174,231,.14)}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1rem;background:rgba(2,4,7,.76);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal{width:min(560px,100%);animation:pop .18s ease both}.roll-stage{min-height:100vh;display:grid;place-items:center;padding:2rem;background:linear-gradient(rgba(6,8,12,.35),rgba(6,8,12,.78)),url(https://images.unsplash.com/photo-1605870445919-838d190e8e1b?auto=format&fit=crop&w=1600&q=85) 50% /cover}.roll-layout{width:min(1320px,100%);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);grid-gap:1rem;gap:1rem}.roll-board h1{font-size:clamp(2.8rem,7vw,5rem);margin:0}.dice-feed{display:grid;grid-gap:.7rem;gap:.7rem;margin-top:1rem}.dice-card{display:flex;align-items:center;gap:.8rem;border:1px solid var(--line);border-radius:10px;background:rgba(5,8,12,.68);padding:.75rem;animation:rise .25s ease both}.dice-card.private-roll{border-color:color-mix(in srgb,var(--danger) 62%,transparent);background:linear-gradient(180deg,rgba(95,22,34,.42),rgba(5,8,12,.68))}.dice-results{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;min-width:0}.dice-total{color:var(--accent);font-size:1.3rem;white-space:nowrap}.physical-die{width:70px;height:70px;display:grid;place-items:center;-webkit-clip-path:polygon(50% 0,92% 24%,92% 76%,50% 100%,8% 76%,8% 24%);clip-path:polygon(50% 0,92% 24%,92% 76%,50% 100%,8% 76%,8% 24%);background:linear-gradient(145deg,#f4e4bd,var(--accent));color:#1b1007;font-size:1.8rem;font-weight:950}.physical-die span{max-width:82%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.7rem,2vw,1.8rem)}.board-text{white-space:pre-wrap}.mini-sheet.full{display:grid;grid-gap:.45rem;gap:.45rem;max-height:62vh;overflow:auto}.mini-sheet.full p{white-space:pre-wrap;margin:.2rem 0}.mobile-menu{display:none;position:fixed;z-index:80;top:.8rem;left:.8rem;width:44px;height:44px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes slow-pan{0%{background-position:50%}to{background-position:58%}}@keyframes dice-suspense{0%{transform:translateY(0) rotate(-6deg) scale(1);filter:drop-shadow(0 0 0 rgba(226,183,96,0))}to{transform:translateY(-5px) rotate(8deg) scale(1.06);filter:drop-shadow(0 10px 22px rgba(226,183,96,.24))}}@media (max-width:900px){.app-shell,.binder-layout,.card-grid,.login-shell,.metric-grid,.roll-layout,.sheet-grid,.sheet-list,.toggle-grid{grid-template-columns:1fr}.mobile-menu{display:grid;place-items:center}.sidebar{position:fixed;inset:0 auto 0 0;z-index:70;width:min(86vw,320px);transform:translateX(-105%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.workspace{padding:4.2rem 1rem 1rem}.login-art{min-height:45vh}.login-card{min-height:55vh}.card-head,.customizer,.topbar{align-items:stretch;flex-direction:column}.vaff-stat-grid{grid-template-columns:1fr}}