:root{--ink:#e5eaf3;--muted:#a4b1c8;--paper:#101b30;--line:#334563;--gold:#d5b676;--green:#294a78;--dark:#080f1f;color-scheme:dark;background:#090f20;color:var(--ink)}
body{background:radial-gradient(ellipse at 75% 0,#17376a88,transparent 65%),#090f20}body:not([data-view=table]):before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(1px 1px at 23px 47px,#bbd6ff70 50%,transparent),radial-gradient(1px 1px at 131px 113px,#b2ccff50 50%,transparent);background-size:193px 211px,283px 307px;opacity:.5}.main{position:relative}.sidebar{background:linear-gradient(180deg,#101e38,#080f1f);border-right:1px solid #b59a593d}.brand{color:#edf3ff;gap:10px}.brand-emblem{width:46px;height:62px;object-fit:cover;object-position:25% 25%;border-radius:14px;border:1px solid #baa06470}.sidebar .nav.active{background:#294a784d;border:1px solid #aac4ee30;color:#f1dba7}.topline{color:#acbcd6;letter-spacing:.08em}.hero{background:linear-gradient(90deg,#081429ed 20%,#081429a6 65%,#08142935),url('assets/cardwarden-natural-splash-v1.png') center 36%/cover;border:1px solid #c5a76466;box-shadow:0 16px 42px #0005;min-height:270px}.hero h2{font-size:30px;text-shadow:0 2px 12px #000}.hero p{color:#d2dcec}.hero-art{opacity:.88}.hero .primary{background:linear-gradient(#ead6a5,#c7a564);color:#17223a}.eyebrow{color:#c6ab72}.deck-tile,.session-row{background:linear-gradient(145deg,#1c2c46ed,#101c32);border-color:#53688777;box-shadow:0 5px 16px #0003}.deck-tile h3{color:#f1ddb0}.deck-name{color:#f0dfb6}.review-panel{background:#14223a;border-color:#435678}.review-row{border-color:#354967}.primary{background:linear-gradient(#365b90,#28436c);color:#fff3d5;border:1px solid #91b0e14d}.primary:hover{background:#3c6296}button{background:#223551;color:#e8edf6}button:hover{background:#304866}.quiet{background:transparent}input,select{background:#0c172b;color:#eef2fa;border-color:#435675}input::placeholder{color:#9baac0}.filter{background:#17283e;color:#c2cfe2;border-color:#435675}.filter.active{background:#c8ad77;color:#101d31}.mobile-switch{background:#0c1729}.mobile-switch button.active{background:#30496c;color:#ffe6b3}.mobile-nav{background:#0c162aef;border-color:#526380}.mobile-nav .nav{color:#b4c1d7}.mobile-nav .nav.active{background:#284163;color:#f1d699}.card-label{color:#c6d2e6}.picker-quantity button,.stepper button{background:#253c59;color:#e9dfc4;border-color:#57708d}.card-tile.in-deck .picker-quantity{background:#2b3e54}.card-tile.in-deck .picker-quantity span{color:#efd7a2}.info-btn{color:#c1cfe3}dialog{background:linear-gradient(145deg,#1b2b46,#101b30);border:1px solid #bba06b88;box-shadow:0 25px 90px #0009}dialog h2{color:#f0dfb6}.file-label{background:#1e324d;border-color:#8093ad}.danger{background:#512d38;color:#ffd0cd}.danger:hover{background:#653341}.box-card[aria-pressed=true]{background:#334863}.badge{border-color:#647795;color:#dbc490}.notice,small,.muted{color:#a8b7cd}
#brand-splash{position:fixed;inset:0;width:100%;height:100dvh;max-height:none;padding:0;margin:0;border:0;border-radius:0;background:#020610;z-index:10000;display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .45s ease;cursor:pointer}#brand-splash img{width:100%;height:100%;object-fit:contain}#brand-splash span{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));color:#c7d6ef;font-size:11px;letter-spacing:.16em;background:#030915aa;padding:8px 14px;border-radius:20px}#brand-splash.leaving{opacity:0;pointer-events:none}#brand-splash:active{transform:none}
@media(max-width:700px){.hero{min-height:250px;padding:24px 20px;background-position:center,45% 32%}.hero h2{font-size:25px}.hero-art{opacity:.28}.hero p{max-width:215px}.mobile-switch button{color:#c4d0e2}.review-panel{background:transparent}.main{padding-top:22px}}
@media(prefers-reduced-motion:reduce){#brand-splash{transition:none}}
.hero{background-size:auto,auto 190%;background-position:center,right top;background-repeat:no-repeat;background-color:#0b1931}.brand-emblem{object-fit:cover}

html.splash-visible{overflow:hidden}#brand-splash picture{display:block;width:100%;height:100%}#brand-splash img{object-fit:cover;object-position:center}
.hero{position:relative}.library-hero-menu{position:absolute;top:12px;right:12px;z-index:3;color:#f1ddb0;background:#0c1932b3;border:1px solid #bba06b55;width:44px;height:44px;padding:10px}.hero .eyebrow{padding-right:42px;letter-spacing:.06em;text-transform:none}body[data-view="library"] .hero{margin-top:0}
.theme-options{display:grid;gap:14px}.theme-options button{display:grid;grid-template-columns:90px 1fr;text-align:left;column-gap:14px;padding:10px;border:1px solid var(--line)}.theme-options img{width:90px;height:68px;object-fit:cover;border-radius:7px;grid-row:span 2}.theme-options strong{align-self:end}.theme-options small{align-self:start;margin-top:5px}.theme-options [aria-pressed=true]{outline:2px solid #d5b676}
body[data-theme=fantasy]{--theme-base:#0c1c16;--theme-panel:#1b3026;--theme-control:#304b38;--theme-line:#6f7551;--theme-accent:#ecd398;--theme-image:url('assets/theme-fantasy.png');--muted:#b9c7b6}
body[data-theme=starship]{--theme-base:#0b141d;--theme-panel:#1b2b37;--theme-control:#294654;--theme-line:#507689;--theme-accent:#a6f1ff;--theme-image:url('assets/theme-starship.png');--muted:#b2c9d6}
body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]){background:radial-gradient(ellipse at top right,var(--theme-control),transparent 70%),var(--theme-base);--line:var(--theme-line)}body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]) :is(.sidebar,.mobile-nav){background:var(--theme-base);border-color:var(--theme-line)}body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]) :is(.deck-tile,.session-row,.review-panel,dialog){background:linear-gradient(130deg,var(--theme-panel),var(--theme-base));border-color:var(--theme-line)}body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]) :is(input,select,.mobile-switch){background:var(--theme-base);border-color:var(--theme-line)}body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]) :is(.deck-tile button,.primary,.filter,.mobile-switch button.active,.picker-quantity button,.stepper button,.file-label,.mobile-nav .nav.active,.sidebar .nav.active){background:var(--theme-control);color:var(--theme-accent);border-color:var(--theme-line)}body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]) :is(h2,h3,.eyebrow,.deck-name,dialog h2){color:var(--theme-accent)}body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]) .hero{background:linear-gradient(90deg,var(--theme-base),transparent 130%),var(--theme-image) center/cover;border-color:var(--theme-line)}body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]) .filter.active{background:var(--theme-accent);color:var(--theme-base)}body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]) .card-tile.in-deck .picker-quantity{background:var(--theme-control)}body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]) .card-tile.in-deck .picker-quantity span{color:var(--theme-accent)}
body[data-theme=fantasy] .sliding-drawer{border-color:#dec48c;box-shadow:inset 0 0 0 3px #281407,inset 0 0 0 6px #ad8e55,inset 0 0 0 8px #3b2818,0 14px 24px #0008}body[data-theme=fantasy] .sliding-drawer header span{background:linear-gradient(#dfc787,#9f7d3e);border-radius:12px 3px}
body[data-theme=starship] .sliding-drawer{background:repeating-linear-gradient(0deg,#ffffff03 0 1px,transparent 1px 3px),linear-gradient(125deg,#48606d,#1c2d38 45%,#384e5b);border:1px solid #95b9c9;border-radius:5px;box-shadow:inset 0 0 0 3px #16242e,inset 0 0 0 4px #75cde755,0 12px 24px #0008}body[data-theme=starship] .sliding-drawer header span{background:#142b37;color:#b6f5ff;border:1px solid #75cde7;box-shadow:0 0 8px #59ccea30;text-shadow:none;border-radius:3px}body[data-theme=starship] .sliding-drawer header button{background:#192c38;color:#c9f3ff;border-color:#75cde766}body[data-theme=starship] .drawer-surface{border-color:#172a36}body[data-theme=starship] .drawer-tab::before{background:linear-gradient(90deg,#1b2c37,#607c89 45%,#293f4d 60%,#162730);border:1px solid #82a6b5;box-shadow:inset 3px 0 #9be5f966,inset -3px 0 #08141e}body[data-theme=starship] .drawer-tab::after{content:'';position:absolute;top:22%;bottom:30%;width:4px;right:13px;border-radius:5px;background:#a7eeff;box-shadow:0 0 6px #83d9f1;pointer-events:none}body[data-theme=starship] .drawer-tab.right::after{left:13px;right:auto}body[data-theme=starship] .drawer-count{background:#233f50;color:#c8f7ff;border-color:#7fbbd0}

body[data-theme=space]{--theme-base:#100d24;--theme-panel:#25203c;--theme-control:#453664;--theme-line:#8872aa;--theme-accent:#e0c7ff;--theme-image:url("assets/theme-space.png")}
body[data-theme=space] .sliding-drawer{border-color:#8872aa}body[data-theme=space] .sliding-drawer header span{background:#453664;color:#e0c7ff;border-color:#8872aa;text-shadow:none}
body[data-theme=cyberpunk]{--theme-base:#150d20;--theme-panel:#2b183b;--theme-control:#493052;--theme-line:#ab528f;--theme-accent:#ffb2e3;--theme-image:url("assets/theme-cyberpunk.png")}
body[data-theme=cyberpunk] .sliding-drawer{border-color:#ab528f}body[data-theme=cyberpunk] .sliding-drawer header span{background:#493052;color:#ffb2e3;border-color:#ab528f;text-shadow:none}
body[data-theme=harvest]{--theme-base:#202014;--theme-panel:#353a23;--theme-control:#505334;--theme-line:#8f925c;--theme-accent:#f5de9b;--theme-image:url("assets/theme-harvest.png")}
body[data-theme=harvest] .sliding-drawer{border-color:#8f925c}body[data-theme=harvest] .sliding-drawer header span{background:#505334;color:#f5de9b;border-color:#8f925c;text-shadow:none}
body[data-theme=skies]{--theme-base:#162d42;--theme-panel:#23425a;--theme-control:#355e7d;--theme-line:#739db7;--theme-accent:#daf2ff;--theme-image:url("assets/theme-skies.png")}
body[data-theme=skies] .sliding-drawer{border-color:#739db7}body[data-theme=skies] .sliding-drawer header span{background:#355e7d;color:#daf2ff;border-color:#739db7;text-shadow:none}
body[data-theme=ancient]{--theme-base:#291c15;--theme-panel:#423025;--theme-control:#60462f;--theme-line:#a48054;--theme-accent:#ffe0a3;--theme-image:url("assets/theme-ancient.png")}
body[data-theme=ancient] .sliding-drawer{border-color:#a48054}body[data-theme=ancient] .sliding-drawer header span{background:#60462f;color:#ffe0a3;border-color:#a48054;text-shadow:none}
body[data-theme=seas]{--theme-base:#0b2530;--theme-panel:#153d49;--theme-control:#265867;--theme-line:#648c91;--theme-accent:#f0ddad;--theme-image:url("assets/theme-seas.png")}
body[data-theme=seas] .sliding-drawer{border-color:#648c91}body[data-theme=seas] .sliding-drawer header span{background:#265867;color:#f0ddad;border-color:#648c91;text-shadow:none}
body[data-theme=club]{--theme-base:#161b16;--theme-panel:#253528;--theme-control:#3e4934;--theme-line:#8c835f;--theme-accent:#eddfbb;--theme-image:url("assets/theme-club.png")}
body[data-theme=club] .sliding-drawer{border-color:#8c835f}body[data-theme=club] .sliding-drawer header span{background:#3e4934;color:#eddfbb;border-color:#8c835f;text-shadow:none}
.brand-mark{width:34px;height:44px;flex-shrink:0;color:#c6d9f3}.brand{gap:10px;font-size:20px}
body[data-theme=cardwarden] .hero{background:linear-gradient(90deg,#081429e8,#08142988 60%,#08142922),url('assets/cardwarden-natural-splash-v1.png') center 28%/cover;background-repeat:no-repeat}
body:is([data-theme=space],[data-theme=cyberpunk]) .sliding-drawer{background:linear-gradient(125deg,var(--theme-control),var(--theme-base));box-shadow:inset 0 0 0 3px #1118,0 0 9px var(--theme-line),0 12px 24px #0008}
body:is([data-theme=space],[data-theme=cyberpunk],[data-theme=skies]) .drawer-tab::before{background:linear-gradient(90deg,var(--theme-base),var(--theme-control),var(--theme-base));border:1px solid var(--theme-line);box-shadow:inset 3px 0 var(--theme-accent)}
body[data-theme=harvest] .sliding-drawer{background:linear-gradient(#b9893b33,#84602433),url('assets/drawer-walnut-grain-v1.png') center/360px}
body[data-theme=ancient] .sliding-drawer{background:repeating-linear-gradient(0deg,#b4936511 0 2px,transparent 2px 5px),linear-gradient(120deg,#806747,#483624);border:3px double #c5a369}
body[data-theme=skies] .sliding-drawer{background:linear-gradient(120deg,#b5cad7,#5e7c91);border-color:#d6e6ef}
body[data-theme=seas] .sliding-drawer{border:3px double #bfa06b}body[data-theme=club] .sliding-drawer{border:3px double #aa9159;background:linear-gradient(#130c0877,#130c0833),url('assets/drawer-walnut-grain-v1.png') center/360px}

.illustrated-icon{stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.illustrated-icon .icon-wash{fill:currentColor;fill-opacity:.13;stroke:none}.illustrated-icon .icon-detail{stroke-width:1.3}.sidebar .nav .illustrated-icon{width:28px;height:28px}.mobile-nav .nav .illustrated-icon{width:27px;height:27px}.nav.active .illustrated-icon{filter:drop-shadow(0 0 4px #d5c28c35)}
.library-hero-menu{width:auto;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 13px;background:linear-gradient(#f0dca9,#c8a96b);color:#13213a;border:1px solid #ffe9b7;box-shadow:0 3px 12px #0007;font-size:12px;font-weight:700}.library-hero-menu:hover{background:#ffe8b5}.library-hero-menu .icon{width:20px;height:20px}.hero .eyebrow{padding-right:145px;min-height:32px}body:not([data-theme=cardwarden]) .library-hero-menu{background:var(--theme-accent);color:var(--theme-base);border-color:var(--theme-line)}@media(max-width:700px){.hero .eyebrow{padding-right:0;margin-top:40px;min-height:0}.library-hero-menu{top:10px;right:10px}}

@media(max-width:700px){body[data-theme=cardwarden] .hero{background-position:center,center -100px;background-color:#081429}}

.hero .theme-wordmark{position:absolute;right:40px;bottom:24px;width:min(42%,440px);height:auto;pointer-events:none;opacity:.8;filter:drop-shadow(0 2px 5px #000b)}
.hero>div:not(.hero-art){position:relative;z-index:1}
@media(max-width:700px){.hero .theme-wordmark{left:50%;right:auto;bottom:100px;transform:translateX(-50%);width:80%;max-width:none}}

@media(max-width:700px){.hero .theme-wordmark{left:auto;right:12px;bottom:12px;transform:none;width:42%;max-width:220px}}

body[data-theme=cardwarden] .hero{background-image:linear-gradient(90deg,#081429e8,#08142988 60%,#08142922),url('assets/cardwarden-natural-sky-v1.png');background-position:center,center 28%}
.hero-title-row{display:flex;align-items:center;gap:18px}
.hero-title-row h2{flex:1;min-width:0}
.hero-title-row .header-wordmark{display:block;position:relative;width:220px;height:auto;flex-shrink:0;filter:drop-shadow(0 2px 5px #000b)}
@media(max-width:700px){.hero-title-row{gap:8px}.hero-title-row h2{max-width:none;flex:1 1 58%}.hero-title-row .header-wordmark{width:42%;flex:0 0 42%}.hero>div:not(.hero-art){width:100%;min-width:0}}

.hero>.header-wordmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:78%;max-width:720px;height:auto;opacity:.28;filter:brightness(.9);pointer-events:none;z-index:0}
.hero-title-row{display:block}
@media(max-width:700px){.hero-title-row h2{max-width:200px}.hero>.header-wordmark{width:88%}}

/* Compact, aligned import option; the entire label remains tappable. */
dialog .import-mask-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer}
dialog .import-mask-option span{min-width:0}
dialog .import-mask-option input[type="checkbox"]{width:20px;height:20px;min-width:20px;min-height:20px;flex:0 0 20px;padding:0;margin:0;appearance:auto;accent-color:var(--gold)}

/* Desktop: a quiet, illuminated cabinet for the collection. */
@media(min-width:701px){
body .sidebar{padding:0 16px 26px;overflow:hidden;background:linear-gradient(180deg,#08142722,var(--theme-base,#080f1f) 310px),var(--theme-image,url('assets/cardwarden-natural-sky-v1.png')) 42% top/auto 350px no-repeat,var(--theme-base,#080f1f)!important;border-right:1px solid #bfa57065;box-shadow:inset -5px 0 14px #0004,4px 0 24px #0002}
.sidebar:before{content:'';position:absolute;inset:12px 7px;pointer-events:none;border:1px solid #c9b57c24;border-radius:85px 85px 5px 5px}
.sidebar .sidebar-brand{position:relative;display:flex;flex-direction:column;gap:16px;padding:43px 0 25px;margin:0 -4px;text-align:center;border-bottom:1px solid #cab27b55}
.sidebar-brand:after{content:'◆';position:absolute;bottom:-8px;left:calc(50% - 10px);width:20px;color:#cfb575;font-size:12px;background:var(--theme-base,#0b172b)}
.sidebar .sidebar-brand img{width:100%;max-width:192px;height:auto;filter:drop-shadow(0 3px 7px #000)}
.sidebar .sidebar-brand span{font-family:Book,Georgia,serif;font-size:12px;line-height:1.5;color:#e2d5b7;letter-spacing:.025em;text-shadow:0 1px 4px #000}
.sidebar nav{position:relative;margin-top:30px;gap:10px}
.sidebar .nav{position:relative;min-height:58px;padding:12px 14px;gap:13px;border:1px solid transparent;border-radius:8px;background:linear-gradient(90deg,#ffffff05,transparent);color:#c3cbd0;transition:background .18s,border-color .18s}
.sidebar .nav:hover{background:linear-gradient(100deg,#b7a47124,#ffffff05);border-color:#bca57245}
body .sidebar .nav.active{background:linear-gradient(110deg,var(--theme-control,#304a70),#13203b99);border:1px solid #cbb57985;box-shadow:inset 3px 0 0 #dfc58a,inset 0 1px #ffffff10,0 5px 14px #0003;color:var(--theme-accent,#f3dcaa)}
.sidebar .nav.active:after{content:'◆';margin-left:auto;font-size:8px;color:currentColor;opacity:.65}
.sidebar .nav .illustrated-icon{width:28px;height:28px;flex-shrink:0;filter:drop-shadow(0 2px 3px #0005)}
.sidebar footer{position:relative;margin-top:auto;padding:18px 9px 0;border-top:1px solid #bba47730;font-size:10px;line-height:1.8;color:#a9b8bd}
}

@media(min-width:701px){.sidebar .sidebar-brand{border-bottom:0}.sidebar-brand:after{content:none}}

/* Matching slim rails and shallow frames, adapted from the approved drawer concept. */
body{--drawer-trim:#b99b64;--drawer-light:#ead8ab;--drawer-dark:#261d15;--drawer-material:linear-gradient(110deg,#120b0755,#ffffff12 42%,#0005),url('assets/drawer-walnut-grain-v1.png') center/360px}
body[data-theme=fantasy]{--drawer-trim:#c5a76c;--drawer-light:#f0dca5;--drawer-dark:#302113}
body[data-theme=harvest]{--drawer-trim:#a9ac81;--drawer-light:#e5d8b2;--drawer-dark:#343b25;--drawer-material:linear-gradient(110deg,#cfa06399,#af854855),url('assets/drawer-walnut-grain-v1.png') center/360px}
body[data-theme=skies]{--drawer-trim:#adc8d2;--drawer-light:#eef8ff;--drawer-dark:#354c59;--drawer-material:linear-gradient(110deg,#d4d7c1bb,#8ca6a3aa),url('assets/drawer-walnut-grain-v1.png') center/360px}
body[data-theme=seas]{--drawer-trim:#b99c65;--drawer-light:#e8d9ae;--drawer-dark:#16383d}
body[data-theme=club]{--drawer-trim:#af975f;--drawer-light:#f2e3b4;--drawer-dark:#211c17;--drawer-material:linear-gradient(#140c0999,#140c0966),url('assets/drawer-walnut-grain-v1.png') center/360px}
body[data-theme=ancient]{--drawer-trim:#c3a16b;--drawer-light:#f4deb3;--drawer-dark:#453322;--drawer-material:repeating-linear-gradient(0deg,#ffffff08 0 1px,transparent 1px 4px),linear-gradient(115deg,#927852,#463829)}
body:is([data-theme=starship],[data-theme=space],[data-theme=cyberpunk]){--drawer-trim:#81969f;--drawer-light:#a0e4f1;--drawer-dark:#17252e;--drawer-material:repeating-linear-gradient(0deg,#ffffff08 0 1px,transparent 1px 3px),linear-gradient(110deg,#60717a,#253038 40%,#47565f 65%,#1c262d)}
body[data-theme=space]{--drawer-light:#c2b2ff;--drawer-trim:#918ba9}
body[data-theme=cyberpunk]{--drawer-light:#f599d8;--drawer-trim:#ad668e;--drawer-dark:#241627}
body[data-theme] .sliding-drawer{padding:6px;border:1px solid var(--drawer-trim);border-radius:5px;background:var(--drawer-material);box-shadow:inset 0 1px 0 #ffffff70,inset 0 -2px 2px #0009,0 7px 15px #0007}
body[data-theme] .drawer-surface{border:1px solid var(--drawer-dark);border-radius:2px;box-shadow:inset 0 5px 9px #0006,0 1px 0 #ffffff30}
body[data-theme] .sliding-drawer header button{background:var(--drawer-dark);color:var(--drawer-light);border-color:var(--drawer-trim);opacity:.9}
body[data-theme] .drawer-tab,body[data-theme] .drawer-tab:hover{--edge-width:18px;width:30px;background:transparent;box-shadow:none;border-radius:3px;transition:none}
body[data-theme] .drawer-tab::before{width:18px;box-sizing:border-box;border:1px solid var(--drawer-trim);background:var(--drawer-material);box-shadow:inset 1px 0 #ffffff40,inset -2px 0 #0006,1px 2px 5px #0006}
body[data-theme] .drawer-tab.left::before{left:0;right:auto}
body[data-theme] .drawer-tab.right::before{right:0;left:auto}
body[data-theme] .drawer-tab::after{content:'›';position:absolute;top:34%;bottom:auto;left:0;right:auto;width:18px;height:auto;background:none;box-shadow:none;color:var(--drawer-light);font:20px/1 Georgia;text-align:center;pointer-events:none}
body[data-theme] .drawer-tab.right::after{content:'‹';left:auto;right:0}
body[data-theme] .drawer-tab .drawer-count{top:50%;bottom:auto;left:0;right:auto;transform:translateY(-50%);width:18px;height:22px;box-sizing:border-box;border-radius:9px;background:var(--drawer-dark);color:var(--drawer-light);border:1px solid var(--drawer-trim);font-size:10px;box-shadow:0 1px 3px #0008}
body[data-theme] .drawer-tab.right .drawer-count{left:auto;right:0}
body[data-theme] .drawer-tab[aria-expanded=true]::before{border-color:var(--drawer-light)}
body[data-theme] .drawer-tab:focus-visible{outline:2px solid var(--drawer-light);outline-offset:1px}

/* A consistent warm gold accent for voluntary support across themes. */
body button[data-action="support-cardwarden"],body .support-cardwarden .support-link{background:linear-gradient(180deg,#ead69f,#cfaf68);color:#142138;border:1px solid #f0dcaa;font-weight:700;box-shadow:0 2px 8px #0003}
body button[data-action="support-cardwarden"]:hover,body .support-cardwarden .support-link:hover{background:linear-gradient(180deg,#f2e1b5,#ddbe7b);color:#142138}

.current-box .box-name-edit{color:var(--theme-accent,var(--gold));font-weight:700;font-synthesis:weight}


.hero{position:relative}.hero>div:not(.hero-art){flex:1;min-width:0}.hero-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.hero-actions>.primary{flex-shrink:0}.hero .hero-handbook{margin-left:auto;min-height:44px;padding:8px 10px;background:#081429b8;color:var(--theme-accent,var(--gold));font-size:13px;text-decoration:underline;text-underline-offset:4px}.hero .hero-handbook:hover{background:#081429e8}

@media(max-width:700px){.hero-actions{gap:8px}.hero-actions>.primary{padding:10px 12px;font-size:13px}.hero .hero-handbook{max-width:150px;padding:8px 4px;text-align:right}}

.hero>.hero-art{position:absolute;right:36px;top:52px;pointer-events:none}.hero-actions{margin-right:-24px}
@media(max-width:700px){.hero>.hero-art{right:-14px}.hero-actions{margin-right:-10px}}

@media(min-width:701px){.sidebar .sidebar-brand{height:240px;box-sizing:border-box;padding:0;gap:0;align-items:center;justify-content:center}}

/* Align the Library heading with its menu and keep the hero compact. */
.hero{min-height:0;padding-top:12px;padding-bottom:20px;align-items:flex-start}.hero-title-row{padding-right:145px;min-height:44px;display:flex;align-items:center}.hero-title-row h2{margin:0;max-width:none}.hero p{margin:12px 0 18px}@media(max-width:700px){.hero{padding-top:10px;padding-bottom:18px}.hero-title-row{padding-right:140px}.hero-title-row h2{max-width:none;font-size:25px}}

.hero-handbook>span{white-space:nowrap}@media(max-width:700px){.hero .hero-handbook{width:min-content;max-width:none;flex:0 0 auto}}

.hero .hero-signature{display:block;margin-top:4px;text-align:right;color:var(--theme-accent,var(--gold));font-family:"Segoe Script","Apple Chancery","Brush Script MT",cursive;font-size:21px;font-style:italic;line-height:1.3}

.hero .hero-blessing{font-family:"Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;font-style:italic;font-size:18px;line-height:1.5}.hero .hero-blessing .hero-signature{font-family:"Snell Roundhand","Freestyle Script","Brush Script MT","Segoe Script",cursive;font-size:32px;font-style:normal;font-weight:400;line-height:1.15;margin-top:6px}

.hero .hero-blessing .hero-signature{display:inline;margin:0;white-space:nowrap;vertical-align:baseline}

.hero .hero-blessing .hero-signature{margin-left:.35em}

@media(max-width:700px){.hero .hero-blessing{max-width:none;width:100%;text-align:justify;text-align-last:left;font-size:17px;line-height:1.35}}

.hero .hero-blessing .hero-signature{line-height:0;position:relative;top:.04em}
.current-box-header>.box-import{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:14px 24px;background:linear-gradient(#ead6a5,#c7a564);color:#17223a;border:1px solid #efdda9;font-size:17px;font-weight:700;box-shadow:0 3px 12px #0003;margin-inline:20px}.current-box-header>.box-controls{margin-left:auto}
@media(max-width:700px){.current-box-header>.box-import{margin:0;padding:12px 10px;font-size:14px;gap:5px;max-width:120px}.current-box-header>.box-import svg{width:18px;flex-shrink:0}.current-box-header>.box-identity{flex:1 1 90px}.current-box-header>.box-controls{flex-basis:100%}}

.sidebar button.sidebar-brand{width:calc(100% + 8px);border:0;border-radius:0;background:transparent;box-shadow:none;cursor:pointer}.sidebar button.sidebar-brand:hover{background:transparent}.sidebar button.sidebar-brand:focus-visible{outline:2px solid var(--theme-accent,var(--gold));outline-offset:-3px}

.box-contents .section-head{flex-wrap:nowrap;gap:10px}.box-contents .section-head>button{margin-left:auto;flex-shrink:0}.box-contents .library-section-count{font-family:inherit;font-size:.8em;font-weight:inherit;color:inherit}.box-contents .section-head h2{min-width:0}@media(max-width:400px){.box-contents .section-head h2{font-size:23px}.box-contents .section-head>button{padding-left:10px;padding-right:10px;font-size:13px}}

.box-footer-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid #7285a055}.box-footer-actions>button{min-width:88px}.current-box-header>.box-import{margin-right:0}

.current-box.compact-box{padding:14px 18px}.compact-box-header{gap:14px}.compact-box-header>.box-image-button{width:52px;height:52px;flex-shrink:0}.compact-box-header .box-identity h2{margin:2px 0;font-size:24px}.compact-box-header .box-identity p{margin:2px 0 0;font-size:13px}.compact-box-header>.compact-box-open{margin:0 0 0 auto;flex-shrink:0}.compact-box-options{flex-shrink:0;min-width:44px;min-height:44px;padding:6px;font-size:24px}.compact-box-header .box-identity>small{font-size:11px}@media(max-width:700px){.current-box.compact-box{padding:12px}.compact-box-header{gap:8px}.compact-box-header>.box-image-button{width:36px;height:42px;padding:4px}.compact-box-header .box-identity h2{font-size:21px}.compact-box-header .box-identity p{font-size:12px}.compact-box-header>.compact-box-open{padding:10px;font-size:13px}.compact-box-options{min-width:36px}}

.compact-box-header>.compact-box-delete{flex-shrink:0;margin:0;min-height:44px}@media(max-width:700px){.compact-box-header>.compact-box-delete{padding:10px;font-size:13px}}

.hero .hero-blessing .hero-signature{font-size:1em;color:#fff}

@font-face{font-family:CardWardenSignature;src:url("assets/allura-regular-v1.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}.hero .hero-blessing .hero-signature{font-family:CardWardenSignature,cursive}

.compact-box[data-action="open-box-frame"]{cursor:pointer}.compact-box[data-action="open-box-frame"]:focus-visible{outline:2px solid var(--theme-accent,var(--gold));outline-offset:3px}

/* Expand the invisible switch hit area; the painted edge remains 18px wide. */
body[data-theme] .drawer-tab,body[data-theme] .drawer-tab:hover{width:38px}

.box-footer-actions>.undo-import{margin-right:auto;min-width:0}.box-footer-actions{flex-wrap:wrap}.undo-import:disabled{opacity:.4}

/* Windowed cards retain the width they had as direct grid children. */
.library-card-grid>[data-window-index]>.library-card-preview{width:100%}

.hero>.hero-art{opacity:.4}@media(max-width:700px){.hero>.hero-art{opacity:.22}}

.table-zoom-control{position:absolute;right:42px;bottom:90px;z-index:25;display:flex;align-items:center;gap:8px;flex-direction:row-reverse}.table-zoom-toggle{width:44px;height:44px;padding:10px;display:grid;place-items:center}.table-zoom-slider{width:190px;padding:12px;background:var(--theme-base,#142138);border:1px solid #bda771;border-radius:12px;box-shadow:0 4px 16px #0005}.table-zoom-slider[hidden]{display:none}.table-zoom-slider label{display:block;font-size:13px}.table-zoom-slider output{float:right}.table-zoom-slider input{display:block;width:100%;margin:8px 0 0;min-height:28px;touch-action:none}

.table-top .table-zoom-control{position:relative;right:auto;bottom:auto;display:block;flex-shrink:0;z-index:25}.table-top .table-zoom-toggle{display:grid;place-items:center;width:44px;height:44px;padding:10px}.table-top .table-zoom-slider{position:absolute;right:0;top:calc(100% + 8px);width:190px}.table-title{min-width:0}.table-title strong{overflow-wrap:anywhere}@media(max-width:700px){.table-top .table-zoom-toggle{width:42px;padding:9px}}

dialog:has(.zoom-stage){padding:6px}dialog:has(.zoom-stage) .dialog-head{margin-bottom:4px;gap:4px}dialog:has(.zoom-stage) .dialog-head h2{min-width:0;flex:1;margin:0}dialog:has(.zoom-stage) .zoom-controls{gap:4px;padding:0;margin-left:auto}dialog:has(.zoom-stage) .zoom-controls button{width:44px;height:44px;padding:4px;font-size:24px}dialog:has(.zoom-stage) .dialog-body{gap:0}dialog:has(.zoom-stage) .card-name-edit{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} @media(max-width:700px),(max-height:500px){dialog:has(.zoom-stage){width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;border:0;padding: max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))}}

/* Let drawer cards remain visible beneath the controls. */
body[data-theme] .sliding-drawer header button{background:color-mix(in srgb,var(--drawer-dark) 42%,transparent);border-color:color-mix(in srgb,var(--drawer-trim) 55%,transparent);opacity:1}body[data-theme] .sliding-drawer header button:hover,body[data-theme] .sliding-drawer header button:focus-visible{background:color-mix(in srgb,var(--drawer-dark) 65%,transparent)}body[data-theme] .sliding-drawer header button:disabled{opacity:.4}

/* A generous touch target while retaining keyboard focus indicators. */
.table-top .table-zoom-slider{width:min(260px,calc(100vw - 24px))}.table-zoom-slider input[type="range"]{appearance:none;-webkit-appearance:none;height:48px;min-height:48px;padding:0;border:0;background:transparent;cursor:pointer}.table-zoom-slider input[type="range"]:not(:focus-visible){outline:none}.table-zoom-slider input[type="range"]::-webkit-slider-runnable-track{height:8px;border-radius:8px;background:#9f9374}.table-zoom-slider input[type="range"]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:32px;height:32px;margin-top:-12px;border-radius:50%;background:#ead397;border:2px solid #fff0c6;box-shadow:0 2px 5px #0006}.table-zoom-slider input[type="range"]::-moz-range-track{height:8px;border-radius:8px;background:#9f9374}.table-zoom-slider input[type="range"]::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:#ead397;border:2px solid #fff0c6;box-shadow:0 2px 5px #0006}

/* Row separators occupy the existing gap, without changing card layout. */
.choose-panel .card-grid [data-row-divider]{position:relative}.choose-panel .card-grid [data-row-divider]::before{content:"";position:absolute;left:0;top:var(--row-divider-offset,-9px);width:var(--row-divider-width,100%);height:1px;background:#d8c38a66;pointer-events:none}

.folder-option .folder-card-preview{flex:0 0 36px;width:36px;display:flex;align-items:center;justify-content:center;pointer-events:none}.folder-option .folder-card-preview .card-face{flex:0 0 36px;width:36px}.folder-option .folder-card-name{min-width:0;overflow-wrap:anywhere}.folder-option input{flex-shrink:0}

.library-folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.library-folder-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:16px;border:1px solid #526784;border-radius:16px;background:#142138}.library-folder-tile strong{font-family:Book,Georgia,serif;font-size:20px;color:#ead397;overflow-wrap:anywhere;max-width:100%}.library-folder-tile small{color:#aebacd}.folder-tile-art{display:flex;height:82px;align-items:center;gap:5px;margin-bottom:6px}.folder-tile-art .card-face{width:48px;flex:0 0 48px}.folder-browse-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(85px,1fr));gap:12px;max-height:48vh;overflow:auto;padding:4px}.folder-browse-cards button{padding:4px;background:transparent;min-width:0}.folder-browse-cards .card-face{width:100%;max-width:110px;margin:auto}.folder-browse-cards button>span:last-child{display:block;font-size:12px;margin-top:6px;overflow-wrap:anywhere}@media(max-width:450px){.library-folder-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.library-folder-tile{padding:10px}.folder-tile-art{gap:0}.folder-tile-art .card-face{width:38px;flex-basis:38px}}

.large-hand-browser{padding:10px;background:var(--theme-base,#142138)}.large-hand-browser header{height:32px;justify-content:flex-end}.large-hand-browser header button{min-height:32px;height:32px;padding:0 10px}.large-hand-browser .ribbon-card{flex-basis:clamp(120px,52vw,230px);max-width:calc((100dvh - 230px)*.69)}.large-hand-browser .ribbon-card small{width:100%;font-size:13px}.large-hand-browser .ribbon-track{gap:16px}.large-hand-browser .ribbon-card .card-face{pointer-events:none}

.library-card-grid>.library-card-preview{width:100%;align-self:start}

.drawer-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.drawer-choice-grid button{min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:left}

.large-hand-browser .hand-browser-item{position:relative;flex:0 0 clamp(120px,52vw,230px);max-width:calc((100dvh - 230px)*.69);align-self:flex-start}.large-hand-browser .hand-browser-item>.ribbon-card{width:100%;max-width:none}.large-hand-token{position:absolute;transform:translate(-50%,-50%);width:46px;height:46px;min-height:0;padding:0;background:transparent;z-index:2;touch-action:none}.large-hand-token .token-disc{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:var(--token);color:white}.large-hand-token .mask-art img{width:100%;height:100%;object-fit:contain}.large-hand-browser [data-hand-token] .mask-art{display:block}.large-hand-browser [data-hand-token]>.token-disc{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--token);margin:20px auto;color:white}

.large-hand-browser .ribbon-card .mask-art img{width:100%;max-height:260px;object-fit:contain}.large-hand-browser .large-hand-token>.token-disc{width:46px;height:46px;margin:0}

/* Match token size to the enlarged hand card instead of a fixed pixel size. */
.large-hand-browser .large-hand-token{width:42%;height:auto;aspect-ratio:1}
.large-hand-browser .large-hand-token>.token-disc{width:100%;height:100%;margin:0;font-size:clamp(22px,5vw,34px)}
.large-hand-browser .large-hand-token .mask-art{width:100%;height:100%}
.large-hand-browser .ribbon-card[data-hand-token]>.token-disc{width:42%;height:auto;aspect-ratio:1;font-size:clamp(22px,5vw,34px)}

body[data-theme] .large-hand-browser .large-hand-token,body[data-theme] .large-hand-browser .large-hand-token:hover,body[data-theme] .large-hand-browser .large-hand-token:active,body[data-theme] .large-hand-browser .large-hand-token:focus{background:transparent;border:0;box-shadow:none}body[data-theme] .large-hand-browser .large-hand-token:active{transform:translate(-50%,-50%)}

dialog:has(#dice-stage) #dice-pool{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;max-height:none;overflow:visible}dialog:has(#dice-stage) #dice-pool:empty{display:none}dialog:has(#dice-stage) #dice-pool button{min-width:0;padding:6px 2px;min-height:40px;font-size:12px;white-space:nowrap}

.import-back-alternative{display:grid;gap:6px}.import-back-alternative>strong{font-size:15px}.import-back-alternative .import-mask-option{margin:0}.import-back-alternative small{line-height:1.4}

#import-back-options[hidden],#import-back-choice[hidden]{display:none}#import-back-toggle{text-align:left;width:100%;background:#0c172b;border:1px solid #435675}#import-back-options{margin:0}

.import-section{display:grid;gap:12px;min-width:0}.import-section+.import-section{border-top:1px solid #bda77166;padding-top:18px;margin-top:6px}.import-section>h3{margin:0;color:#ead397;font-size:21px}.import-section .import-destination{margin:0}.import-section>small{line-height:1.45}

.hand-browser-caption{position:absolute;bottom:0;left:0;width:100%;height:22px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.large-hand-browser .hand-browser-item>.ribbon-card:active{transform:inherit}.hand-strip .hand-card{position:relative}

.card-face{position:relative;container-type:inline-size}.card-description{position:absolute;inset:4%;display:flex;align-items:center;justify-content:center;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;overflow:hidden;background:transparent;isolation:isolate;color:#fff;padding:5%;border-radius:4px;font-family:Arial,sans-serif;font-style:normal;font-weight:500;font-size:clamp(4px,3.5cqw,14px);line-height:1.18;pointer-events:none;box-sizing:border-box}body:not([data-view="table"]) .card-description{display:none}body .zoom-piece .card-description{display:flex}#card-description-input{width:100%;resize:vertical;min-height:120px}

#ocr-result{width:100%;min-height:130px;resize:vertical}#ocr-review{border-top:1px solid #56657b;padding-top:12px}#ocr-review[hidden]{display:none}

.card-description{flex-direction:column;gap:.35em}.card-description-name{display:block;color:#e3c478;font-size:1.08em;line-height:1.15;font-weight:700}

.card-description{font-weight:400}.card-description-name{font-weight:800;flex-shrink:0}

.sheet-actions .table-setting-toggle{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;min-height:40px;margin:0;padding:4px 2px;cursor:pointer}.sheet-actions .table-setting-toggle input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;display:block;flex:0 0 18px;width:18px;height:18px;min-width:18px;min-height:18px;margin:0;padding:0;accent-color:#d9bd7c}

.card-with-back .card-text-badge{position:absolute;top:4px;right:4px;z-index:3;display:block;background:#142138e8;color:#dbc48c;border:1px solid #ad925d;border-radius:4px;padding:1px 4px;font:600 10px/1.4 Arial,sans-serif;pointer-events:none}

.card-description{line-height:1.22}.card-description>span,.card-description>.card-description-name{flex:0 0 auto;width:100%;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}

.ocr-region-dialog{width:min(600px,94vw);max-height:94dvh;text-align:center}.ocr-region-stage{display:inline-block;position:relative;max-width:100%;line-height:0;touch-action:none;overflow:hidden;user-select:none}.ocr-region-stage>img{display:block;max-width:100%;max-height:55dvh;width:auto;height:auto}.ocr-region-selection{position:absolute;border:2px solid #e3c478;box-shadow:0 0 0 2000px #0009;pointer-events:none;box-sizing:border-box}.ocr-region-selection button{position:absolute;width:36px;height:36px;min-height:36px;padding:0;background:transparent;border:0;pointer-events:auto;touch-action:none}.ocr-region-selection button:after{content:'';position:absolute;inset:11px;background:#e3c478;border:1px solid #162332;border-radius:3px}.ocr-region-selection [data-corner^="n"]{top:-18px}.ocr-region-selection [data-corner^="s"]{bottom:-18px}.ocr-region-selection [data-corner$="w"]{left:-18px}.ocr-region-selection [data-corner$="e"]{right:-18px}.ocr-region-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;justify-content:center}

.ocr-contrast-option{display:flex;align-items:center;justify-content:center;gap:10px;min-height:40px;margin-top:10px;cursor:pointer}.ocr-contrast-option input[type="checkbox"]{width:18px;height:18px;min-height:18px;margin:0;padding:0;flex:0 0 18px;accent-color:#d9bd7c}

.library-search{position:relative;display:flex;align-items:center;margin:0 0 10px;gap:0}.library-search>.icon{position:absolute;left:10px;width:16px;height:16px;color:#aebacd;pointer-events:none}.library-search input{width:100%;height:36px;min-height:36px;padding:6px 36px 6px 34px;font-size:13px}.library-search input::-webkit-search-cancel-button{display:none}.library-search button{position:absolute;right:0;top:0;min-height:36px;height:36px;width:36px;padding:0;background:transparent;font-size:21px}.library-search button[hidden]{display:none}#library-cards>.empty{grid-column:1/-1}

#card-text-reference{width:100%;min-width:0;margin:0 0 12px}#card-text-reference .card-face{width:100%}

/* Preserve entered line breaks with centered card text. */
.card-description>span{white-space:pre-wrap;text-align:center;text-wrap:pretty}
.card-description>.card-description-name{white-space:normal;text-align:center;text-wrap:balance}

.card-description::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:rgba(9,18,29,.62);border-radius:inherit;-webkit-mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent);mask-composite:intersect}

.sliding-drawer header .drawer-zoom-percent{flex:0 0 auto;min-width:3.5ch;text-align:center;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--drawer-light,#e7cf98);pointer-events:none}

.card-text-rotation{display:flex;gap:8px;justify-content:center;margin-bottom:10px}.card-text-rotation button{flex:1;min-height:44px}

.clear-text-field{display:block;position:relative;min-width:0;flex:1;width:100%}.clear-text-field input,.clear-text-field textarea{width:100%;box-sizing:border-box;padding-right:40px!important}.clear-text-field .clear-text-button{position:absolute;right:3px;top:3px;width:34px;height:34px;min-height:34px;padding:0;background:transparent;color:inherit;font-size:22px;z-index:1}.clear-text-button[hidden]{display:none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}
@media(min-width:900px){dialog:has(#dice-stage){width:min(calc(100vw - 48px),max(640px,calc(100dvh - 120px)));max-width:1000px;height:calc(100dvh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column}dialog:has(#dice-stage):not([open]){display:none}dialog:has(#dice-stage) .dialog-body{display:flex;flex-direction:column;flex:1;min-height:0}dialog:has(#dice-stage) #dice-stage{flex:1;min-height:260px;height:auto;max-height:none}dialog:has(#dice-stage) .dice-controls,dialog:has(#dice-stage) .dice-roll-actions{flex-shrink:0}}

#card-menu-order{display:grid;gap:6px}.card-menu-row{display:flex;align-items:center;gap:6px;padding:5px;border:1px solid #56657b;border-radius:8px}.card-menu-row label{display:flex;align-items:center;gap:8px;flex:1;min-width:0;margin:0}.card-menu-row input[type=checkbox]{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:0}.card-menu-row button{width:36px;min-width:36px;min-height:44px;padding:0}.card-menu-drag{touch-action:none;cursor:grab}.card-menu-row.sorting{outline:2px solid #e3c478;background:#23354d}

/* Keep the splash lettering independently positioned above the lower edge. */
#brand-splash .splash-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%}
#brand-splash .splash-wordmark{position:absolute;left:50%;top:64%;transform:translate(-50%,-50%);width:90%;height:auto;max-height:60%;object-fit:contain}

.card-description>.card-description-name{overflow-wrap:normal;word-break:normal;hyphens:none}

.large-hand-browser{max-width:min(1000px,calc(100% - 24px));background:rgba(20,33,56,.8)}

.library-search-sort{display:flex;align-items:center;gap:8px;margin-bottom:10px}.library-search-sort .library-search{flex:1;min-width:0;margin-bottom:0}.library-search-sort .clear-text-field{min-width:0;width:100%}#library-card-sort{flex:0 0 120px;width:120px;min-height:36px;height:36px;padding:4px 6px;font-size:12px}

/* Theme ornament atlas: ten equally spaced rows, repeated along each edge. */
body{--trim-row:0}body[data-theme=fantasy]{--trim-row:1}body[data-theme=starship]{--trim-row:2}body[data-theme=space]{--trim-row:3}body[data-theme=cyberpunk]{--trim-row:4}body[data-theme=harvest]{--trim-row:5}body[data-theme=skies]{--trim-row:6}body[data-theme=ancient]{--trim-row:7}body[data-theme=seas]{--trim-row:8}body[data-theme=club]{--trim-row:9}
.current-box.selected-box{position:relative}.frame-trim{position:absolute;inset:0;pointer-events:none;z-index:2;border-radius:inherit}.frame-trim i{position:absolute;display:block;height:32px;background-image:url('assets/frame-trims-v1.png');background-size:512px 320px;background-position:0 calc(var(--trim-row) * -32px);background-repeat:repeat-x;pointer-events:none}.frame-trim-top{top:-16px;left:8px;right:8px}.frame-trim-bottom{bottom:-16px;left:8px;right:8px;transform:rotate(180deg)}.frame-trim-left{top:0;left:16px;width:var(--trim-length);transform-origin:0 0;transform:rotate(90deg)}.frame-trim-right{top:0;right:16px;width:var(--trim-length);transform-origin:100% 0;transform:rotate(-90deg)}body[data-frame-trim=off] .frame-trim{display:none}
@media(max-width:700px){.frame-trim{opacity:.85}}

body[data-theme=cardwarden] .frame-trim i{background-image:url('assets/frame-ivy-v1.png');background-size:440px 120px;background-position:0 center}

/* Compact, inline Library appearance control with a generous label hit area. */
.dialog-body label.table-setting-toggle:has(#frame-trim-toggle){display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:9px;min-height:36px;margin:0;padding:4px 2px;cursor:pointer}
.dialog-body #frame-trim-toggle{appearance:auto;-webkit-appearance:checkbox;flex:0 0 16px;width:16px;height:16px;min-width:16px;min-height:16px;margin:0;padding:0;accent-color:#d9bd7c}
/* Spread the ornament rhythm along the edge without increasing its thickness. */
body:is([data-theme=fantasy],[data-theme=starship],[data-theme=space],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=ancient]) .frame-trim i{background-size:820px 320px}
body[data-theme=skies] .frame-trim i{background-size:1100px 320px;opacity:.72}

/* Longer repeats keep the requested trims airy without making the frame thicker. */
body:is([data-theme=fantasy],[data-theme=starship],[data-theme=cyberpunk],[data-theme=harvest],[data-theme=ancient]) .frame-trim i{background-size:1250px 320px}
/* Fade straight artwork before the rounded corners instead of overlapping its ends. */
body:is([data-theme=starship],[data-theme=cyberpunk],[data-theme=skies],[data-theme=ancient],[data-theme=seas],[data-theme=club]) .frame-trim i{-webkit-mask-image:linear-gradient(to right,transparent 0,transparent 12px,#000 42px,#000 calc(100% - 42px),transparent calc(100% - 12px),transparent);mask-image:linear-gradient(to right,transparent 0,transparent 12px,#000 42px,#000 calc(100% - 42px),transparent calc(100% - 12px),transparent)}
.current-theme-name{display:block;margin-top:-5px;padding:0 3px;color:var(--muted,#aebacd)}

/* Moonlit ivy: sparse edge vines and fuller, mirrored corner clusters. */
body[data-theme=cardwarden] .frame-trim i{background-image:url('assets/frame-ivy-moonlit-v2.png');background-size:560px 120px;-webkit-mask-image:linear-gradient(to right,transparent,#000 70px,#000 calc(100% - 70px),transparent);mask-image:linear-gradient(to right,transparent,#000 70px,#000 calc(100% - 70px),transparent)}
.frame-trim-corner{display:none;position:absolute;width:120px;height:120px;background:url('assets/frame-ivy-corner-v2.png') center/contain no-repeat;pointer-events:none}
body[data-theme=cardwarden] .frame-trim-corner{display:block}
.frame-trim-tl{top:-18px;left:-18px}.frame-trim-tr{top:-18px;right:-18px;transform:scaleX(-1)}.frame-trim-bl{bottom:-18px;left:-18px;transform:scaleY(-1)}.frame-trim-br{bottom:-18px;right:-18px;transform:scale(-1)}
@media(max-width:700px){.frame-trim-corner{width:96px;height:96px}.frame-trim-tl,.frame-trim-tr{top:-14px}.frame-trim-bl,.frame-trim-br{bottom:-14px}.frame-trim-tl,.frame-trim-bl{left:-14px}.frame-trim-tr,.frame-trim-br{right:-14px}}

.deck-table-navigation{border-top:1px solid #56657b;margin-top:8px;padding-top:12px}.deck-table-navigation>button{width:100%}

/* Make the editable deck title and its clear control read as one input. */
.builder-heading #deck-name{border:1px solid #7185a5;border-radius:10px;background:rgba(9,19,36,.62);padding:8px 42px 8px 12px;min-height:48px;box-sizing:border-box}
.builder-heading #deck-name:focus{outline:2px solid #d9bd7c;outline-offset:2px;border-color:#d9bd7c}
.builder-heading .clear-text-field:has(#deck-name){margin-top:6px}
.builder-heading .clear-text-field:has(#deck-name) .clear-text-button{top:50%;transform:translateY(-50%);right:5px;border-radius:6px}
.builder-heading .clear-text-field:has(#deck-name) .clear-text-button:hover{background:#ffffff14}

/* Wooden drawer choices keep labels centered within the inset panel. */
.drawer-choice-grid button{display:flex;align-items:center;justify-content:center;text-align:center;min-height:58px;padding:12px 16px;border:1px solid #997249;border-radius:9px;background:#49301c url('assets/drawer-front-walnut-v1.png') center/100% 100% no-repeat;color:#fff0d2;text-shadow:0 1px 3px #000,0 0 5px #0009;box-shadow:0 2px 4px #0004;line-height:1.25}
.drawer-choice-grid button:hover{background:#49301c url('assets/drawer-front-walnut-v1.png') center/100% 100% no-repeat;filter:brightness(1.14)}
.drawer-choice-grid button:focus-visible{outline:2px solid #ead397;outline-offset:3px}
.drawer-choice-grid button:active{filter:brightness(.9)}

/* Cosmetic tray depth: overlays do not change layout or physics bounds. */
dialog:has(#dice-stage){background:linear-gradient(#0b172bc9,#081324de),url('assets/dice-midnight-leather-v1.png') center/380px 380px;border-color:#9dabb17a;box-shadow:0 25px 90px #0009,inset 0 1px 0 #d9e5ef45,inset 0 0 0 4px #050c1840}
#dice-stage{box-shadow:0 1px 0 #d9e5ef55,0 -1px 0 #0009}
#dice-stage::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 3px #513720,inset 0 4px 0 1px #a67b4f,inset 0 -4px 0 1px #291a10,inset 5px 0 0 #785333,inset -5px 0 0 #3b2719,inset 0 14px 16px #000a,inset 9px 0 15px #0006,inset -9px 0 15px #0006,inset 0 -8px 12px #0007}

.table-theme-choice{grid-column:1/-1;display:grid;gap:10px}.table-theme-choice>button{width:calc((100% - 12px)/2)}
/* Reuse the leather grain with theme-colored material layers. */
body[data-theme=fantasy]{--dice-leather:#193b28;--dice-rim:#a78b56}
body[data-theme=starship]{--dice-leather:#242c32;--dice-rim:#acbdc6}
body[data-theme=space]{--dice-leather:#302043;--dice-rim:#a694c7}
body[data-theme=cyberpunk]{--dice-leather:#111e24;--dice-rim:#4dafa9}
body[data-theme=harvest]{--dice-leather:#54321f;--dice-rim:#bd9555}
body[data-theme=skies]{--dice-leather:#425e72;--dice-rim:#b8ccda}
body[data-theme=ancient]{--dice-leather:#675039;--dice-rim:#b68e53}
body[data-theme=seas]{--dice-leather:#173745;--dice-rim:#b59a59}
body[data-theme=club]{--dice-leather:#451e2a;--dice-rim:#b79a62}
body:not([data-theme=cardwarden]) dialog:has(#dice-stage){background-color:var(--dice-leather,#172b40);background-image:linear-gradient(#0001,#0005),url('assets/dice-midnight-leather-v1.png');background-size:auto,380px 380px;background-blend-mode:multiply,luminosity;border-color:var(--dice-rim,#9dabb1)}
body:not([data-theme=cardwarden]) #dice-stage::after{box-shadow:inset 0 0 0 3px #34271e,inset 0 4px 0 1px var(--dice-rim,#a67b4f),inset 0 -4px 0 1px #211a16,inset 5px 0 0 var(--dice-rim,#785333),inset -5px 0 0 #3b3029,inset 0 14px 16px #000a,inset 9px 0 15px #0006,inset -9px 0 15px #0006,inset 0 -8px 12px #0007}

.builder-manage-controls{display:flex;align-items:center;gap:8px}.filter-count{display:inline-block;margin-left:7px;font-variant-numeric:tabular-nums;opacity:.85}

/* Collapse joins the header only when the box has enough horizontal room. */
.current-box.selected-box{container-type:inline-size}
.current-box-header{flex-wrap:wrap}
.current-box-header>.box-collapse{flex:0 0 100%;margin:6px auto 0;order:4}
@container(min-width:760px){.current-box-header{display:grid;grid-template-columns:80px minmax(180px,1fr) auto minmax(0,1fr);gap:18px}.current-box-header>.box-collapse{grid-column:3;grid-row:1;order:0;margin:0;white-space:nowrap}.current-box-header>.box-import{grid-column:4;grid-row:1;justify-self:end;margin:0;white-space:nowrap}}

.import-destination-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.import-destination-heading label{margin:0}.import-destination-heading button{width:auto;min-height:36px;padding:6px 12px;font-size:13px;white-space:nowrap}
/* Preview card-room presentation. Keep all gameplay geometry in style.css. */
body{--room-base:var(--theme-base,#091426);--room-panel:var(--theme-panel,#182b40);--room-control:var(--theme-control,#223c53);--room-accent:var(--theme-accent,#dfc58c);--room-line:var(--theme-line,#657a8b)}
body[data-theme] :is(.current-box,.deck-tile,.session-row,.review-panel){background:linear-gradient(135deg,#ffffff05,transparent 55%),linear-gradient(135deg,var(--room-panel),var(--room-base));border-color:var(--room-line);box-shadow:inset 0 1px #ffffff0c,0 8px 24px #0003}
body[data-theme] .current-box.selected-box{border-color:var(--room-accent)}
body[data-theme] .sidebar .nav{border-radius:10px;transition:background .15s,box-shadow .15s}
body[data-theme] .sidebar .nav.active{border-color:var(--room-accent);box-shadow:inset 3px 0 var(--room-accent),inset 0 1px #ffffff14;background:linear-gradient(120deg,var(--room-control),var(--room-base))}
body[data-theme=cardwarden] .hero{background:linear-gradient(90deg,#081427f5 0%,#081427dd 28%,#08142733 58%,#08142720),url('assets/cardwarden-natural-sky-v1.png') 65% 32%/cover;border-color:#b69c62}
.hero{box-shadow:inset 0 1px #ffffff12,0 10px 28px #0003}
.hero>.header-wordmark{left:65%;top:49%;width:37%;max-width:540px;opacity:1;filter:drop-shadow(0 3px 6px #000d);z-index:1}
.hero>div:not(.hero-art){position:relative;z-index:2;max-width:37%}
.hero .hero-blessing{max-width:100%}
.hero-art{z-index:1}
.hero-handbook{z-index:3}
body[data-theme] :is(.hero .primary,.box-import.primary,.builder-heading>.primary){background:linear-gradient(#f2dfb4,var(--room-accent));color:#142030;border-color:#f8e4b4;box-shadow:inset 0 1px #fff8,0 3px 9px #0003}
.library-card,.deck-tile{transition:box-shadow .16s}
.library-card:hover,.deck-tile:hover{box-shadow:0 8px 20px #0005}
body[data-theme] .review-panel{border:1px solid var(--room-line);border-radius:16px}
.builder-manage-controls button{color:var(--room-accent)}
body[data-theme] .card-tile.in-deck .card-face{outline-color:var(--room-accent)}
.card-tile .picker-quantity{border-radius:0 0 9px 9px}
body[data-theme] .filter{box-shadow:inset 0 1px #ffffff0a}
.session-row{gap:18px}
.save-preview{position:relative;display:block;flex:0 0 118px;width:118px;height:78px;overflow:hidden;border:1px solid var(--room-line);border-radius:9px;background:radial-gradient(ellipse at 40% 25%,#3b674b,#152d23);box-shadow:inset 0 3px 9px #0006}
.save-preview img{position:absolute;width:22px;height:32px;object-fit:cover;transform:translate(-50%,-50%) rotate(var(--preview-turn));border-radius:2px;box-shadow:1px 2px 2px #0008}
/* Shared dialogs: subtle material and ornament, unchanged wording and actions. */
body[data-theme] dialog:not(:has(#dice-stage)){background:radial-gradient(ellipse at 0 0,#ffffff07,transparent 65%),linear-gradient(135deg,var(--room-panel),var(--room-base));border:1px solid var(--room-accent);box-shadow:inset 0 0 0 3px #0002,inset 0 0 0 4px #dfc58c16,0 25px 90px #000a;scrollbar-width:thin;scrollbar-color:var(--room-line) var(--room-base)}
.dialog-head{border-bottom:1px solid color-mix(in srgb,var(--room-accent) 35%,transparent);padding-bottom:14px}
.dialog-head h2{color:var(--room-accent)}
.dialog-head>.quiet{flex-shrink:0}
body[data-theme] .menu-group-title{display:flex;align-items:center;gap:14px;color:var(--room-accent);font-family:Book,Georgia,serif;font-size:15px;font-weight:400;letter-spacing:.02em;border-top:0;margin-top:12px;padding-top:4px}
.menu-group-title::after{content:'';height:1px;flex:1;background:linear-gradient(90deg,var(--room-line),transparent)}
body[data-theme] .dialog-body>button:not([data-action="support-cardwarden"]):not(.danger):not(.primary):not(.quiet),body[data-theme] .sheet-actions>button:not(.danger){background:linear-gradient(155deg,#ffffff08,transparent 65%),linear-gradient(135deg,var(--room-control),var(--room-panel));border:1px solid color-mix(in srgb,var(--room-line) 70%,transparent);box-shadow:inset 0 1px #ffffff0d,0 2px 4px #0002}
body[data-theme] .dialog-body>button:not([data-action="support-cardwarden"]):not(.danger):hover,body[data-theme] .sheet-actions>button:not(.danger):hover{border-color:var(--room-accent);filter:brightness(1.08)}
.illustrated-menu-action{display:flex;align-items:center;gap:15px;min-height:48px}
.illustrated-menu-action>span{flex:1;min-width:0}
.menu-action-icon{width:24px;height:24px;flex:0 0 24px;fill:none;stroke:var(--room-accent);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}
.dialog-body>button[aria-pressed=true]{box-shadow:inset 3px 0 var(--room-accent)}
.table-view-choice{display:flex;gap:8px;border:1px solid var(--room-line);padding:10px;border-radius:12px;margin:0;min-width:0}
.table-view-choice legend{color:var(--muted);font-size:12px;padding:0 6px}
.table-view-choice button{flex:1;min-height:44px;background:var(--room-base);border:1px solid var(--room-line)}
.table-view-choice button[aria-pressed=true]{background:var(--room-accent);color:#142030;border-color:var(--room-accent)}
/* Table decoration is never an input surface; drawer selectors/geometry untouched. */
.table-screen::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 48% 35%,#fff8ca0c,transparent 50%,#0003 100%)}
.table-screen>.board{z-index:1}
.table-top button,.table-dock,.view-tools button{box-shadow:inset 0 1px #ffecc51a,0 3px 8px #0003}
.table-top button,.table-dock{border-color:color-mix(in srgb,var(--room-accent) 65%,transparent)}
.table-dock{background:linear-gradient(135deg,#152d25f0,#071a16f5)}
body:not([data-theme=cardwarden]) :is(.table-dock,.table-top button,.view-tools button){background:var(--room-base);color:var(--room-accent)}
.table-atmosphere{display:none;position:absolute;inset:0;pointer-events:none!important;z-index:0;overflow:hidden}
.table-atmosphere *{pointer-events:none!important}
[data-table-view="3d"] .table-atmosphere{display:block}
.room-scenery{position:absolute;top:0;left:0;width:100%;height:clamp(125px,20vw,260px);background:url('assets/table-room-scenery-v1.png') center/100% 100% no-repeat;mask-image:linear-gradient(#000 0 82%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0 82%,transparent 100%)}
.room-scenery::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,transparent,var(--room-base));opacity:.18;mix-blend-mode:color;pointer-events:none}
.candle-flame{position:absolute;left:13.2%;top:34%;width:clamp(5px,.65vw,10px);height:clamp(15px,2.2vw,29px);border-radius:65% 35% 42% 45%;background:radial-gradient(ellipse at 50% 75%,#fffde2 15%,#ffe294 45%,#ffae40 72%,#e8680b99);box-shadow:0 0 9px #ffce78,0 0 24px #ff9c3433;transform-origin:50% 100%;transform:translate(-50%,-100%);animation:candle-flicker 2.7s ease-in-out infinite alternate;z-index:2}
.candle-glow{position:absolute;left:13.2%;top:34%;width:150px;height:150px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(#ffbd6038,transparent 66%);mix-blend-mode:screen;animation:candle-light 3.3s ease-in-out infinite alternate}
@keyframes candle-flicker{0%,100%{transform:translate(-50%,-100%) rotate(-3deg) scale(.94,1)}35%{transform:translate(-50%,-100%) rotate(4deg) scale(1.04,.93)}70%{transform:translate(-50%,-100%) rotate(-1deg) scale(.98,1.06)}}
@keyframes candle-light{from{opacity:.6}to{opacity:1}}
[data-table-view="3d"] .world-piece:not(.token-target){filter:drop-shadow(2px 9px 5px #0006)}
[data-table-view="3d"] .world-piece>.card-face,[data-table-view="3d"] .world-piece>.pile-art{transform:perspective(650px) rotateX(14deg);transform-origin:50% 50%;backface-visibility:hidden}
[data-table-view="3d"] .table-top{background:linear-gradient(#07121ad9,transparent);text-shadow:0 2px 4px #000}
@media(max-width:1100px){.hero>.header-wordmark{left:70%;width:40%;top:62%}.hero>div:not(.hero-art){max-width:49%}.hero-art{opacity:.55}.save-preview{flex-basis:88px;width:88px;height:66px}}
@media(max-width:700px){.hero{min-height:300px}.hero>div:not(.hero-art){max-width:100%}.hero .hero-blessing{max-width:65%}.hero>.header-wordmark{width:42%;left:77%;top:62%;opacity:.95}.hero h2{padding-right:0}.hero-art{opacity:.3}.save-preview{flex-basis:54px;width:54px;height:64px}.session-row{gap:10px}.session-row .grow{min-width:0}.session-row h3{overflow-wrap:anywhere}.session-row small{font-size:10px}.session-row>button{padding:10px}.room-scenery{height:130px;background-size:100% 100%}.candle-glow{width:80px;height:80px}.candle-flame{height:14px;width:5px}.illustrated-menu-action{gap:10px}.menu-action-icon{width:21px;height:21px;flex-basis:21px}}
@media(prefers-reduced-motion:reduce){.candle-flame,.candle-glow{animation:none!important}.sidebar .nav,.library-card,.deck-tile{transition:none}}

@media(min-width:701px){.hero h2{font-size:clamp(24px,2.2vw,30px)}.hero-art{right:18px;transform:scale(.72);transform-origin:right center}.hero>.header-wordmark{left:65%;width:34%;top:50%}.hero .hero-handbook{position:absolute;right:18px;bottom:16px}.hero>div:not(.hero-art){position:static;max-width:39%}.hero .hero-blessing{max-width:100%;text-align:left}}
@media(max-width:700px){.hero{padding:64px 20px 20px;min-height:370px}.hero h2{max-width:none;font-size:25px}.hero .hero-blessing{max-width:100%;text-align:left;font-size:13px}.hero>.header-wordmark{left:50%;top:auto;bottom:69px;width:65%;transform:translateX(-50%)}.hero-art{display:none}.hero .hero-actions{margin-top:88px;gap:8px}.hero .hero-handbook{position:static;font-size:10px;padding:8px;min-width:0}.hero .hero-actions>.primary{font-size:12px;padding:10px}}
/* Final spacing and restrained ornament, without changing hit targets. */
@media(min-width:701px){.hero>.header-wordmark{left:63%;width:31%}.hero-art{transform:scale(.62)}}
body[data-theme] dialog:not(:has(#dice-stage)) .dialog-head{position:relative}
body[data-theme] dialog:not(:has(#dice-stage)) .dialog-head::before{content:'';position:absolute;top:-13px;left:-13px;width:15px;height:15px;border-top:1px solid var(--room-accent);border-left:1px solid var(--room-accent);border-radius:5px 0 0;opacity:.7;pointer-events:none}
body[data-theme] dialog:not(:has(#dice-stage)) .dialog-head::after{content:'';position:absolute;top:-13px;right:-13px;width:15px;height:15px;border-top:1px solid var(--room-accent);border-right:1px solid var(--room-accent);border-radius:0 5px 0 0;opacity:.7;pointer-events:none}
body:not([data-theme=cardwarden]) .room-scenery::after{opacity:.45;background:linear-gradient(var(--room-control),var(--room-base));mix-blend-mode:color}
/* Library refinement: artwork-led cabinet and full banner ornament. */
body[data-view=library] .hero{overflow:visible;border:1px solid var(--room-accent);box-shadow:inset 0 0 0 4px #08142666,inset 0 0 0 5px #dfc58c22,0 12px 30px #0004}
body[data-view=library] .hero>.frame-trim{position:absolute;inset:0;width:auto;max-width:none;z-index:4;pointer-events:none}
.hero .frame-trim-corner{width:90px;height:90px}
.hero .frame-trim-tl,.hero .frame-trim-tr{top:-12px}.hero .frame-trim-bl,.hero .frame-trim-br{bottom:-12px}
.hero .frame-trim-tl,.hero .frame-trim-bl{left:-12px}.hero .frame-trim-tr,.hero .frame-trim-br{right:-12px}
body[data-view=library] .hero>.header-wordmark{left:50%;top:50%;bottom:auto;width:64%;max-width:800px;transform:translate(-50%,-50%);opacity:.58;z-index:0;filter:drop-shadow(0 3px 8px #000a)}
body[data-view=library] .hero>div:not(.hero-art):not(.frame-trim){position:relative;z-index:2;text-shadow:0 2px 8px #030915}
body[data-view=library] .hero-art{z-index:1}
@media(min-width:701px){
 body:is([data-view=library],[data-view=decks],[data-view=games]) .sidebar{background:linear-gradient(180deg,#07132308 0%,#07132315 24%,var(--room-base) 62%,#07132377 100%),var(--theme-image,url('assets/cardwarden-natural-sky-v1.png')) 42% top/auto 480px no-repeat,var(--theme-image,url('assets/cardwarden-natural-sky-v1.png')) 55% bottom/auto 100% no-repeat,var(--room-base)!important}
 body:is([data-view=library],[data-view=decks],[data-view=games]) .sidebar nav{position:relative}
 body:is([data-view=library],[data-view=decks],[data-view=games]) .sidebar .nav{background:linear-gradient(110deg,#091525c9,#09152570);border:1px solid #b6cde018;backdrop-filter:blur(2px)}
 body:is([data-view=library],[data-view=decks],[data-view=games]) .sidebar .nav.active{background:linear-gradient(110deg,var(--room-control),#091525b8);border-color:var(--room-accent)}
 body:is([data-view=library],[data-view=decks],[data-view=games]) .sidebar footer{background:#07132377;border-radius:8px;padding:10px 8px;text-shadow:0 1px 3px #000}
 body[data-view=library] .hero{min-height:270px}
 body[data-view=library] .hero>div:not(.hero-art):not(.frame-trim){max-width:39%;position:static}
 body[data-view=library] .hero-title-row,body[data-view=library] .hero-blessing,body[data-view=library] .hero-actions>.primary{position:relative;z-index:2}
 body[data-view=library] .hero-blessing{background:linear-gradient(90deg,#07142680,transparent);border-radius:8px}
}
@media(max-width:700px){body[data-view=library] .hero>.header-wordmark{top:auto;bottom:72px;width:82%;transform:translateX(-50%);opacity:.62}.hero .frame-trim-corner{width:74px;height:74px}}
/* A modest contrast lift for the Library artwork and its gold framing. */
body[data-view=library][data-theme=cardwarden] .hero{background-image:linear-gradient(90deg,#06101ee8 0%,#06101ea6 28%,#07142712 58%,#0714270a),url('assets/cardwarden-natural-sky-v1.png');border-color:#e0c58b;box-shadow:inset 0 0 0 4px #08142655,inset 0 0 0 5px #e6c98744,0 12px 30px #0005}
body[data-view=library] .hero>.header-wordmark{opacity:.68;filter:contrast(1.08) drop-shadow(0 3px 7px #000c)}
body[data-view=library] .frame-trim{filter:brightness(1.14) contrast(1.12)}
body[data-view=library] .current-box.selected-box{border-color:var(--theme-accent,#e0c58b);box-shadow:inset 0 0 0 1px #dfc58c30,0 8px 24px #0004}
body:is([data-view=library],[data-view=decks],[data-view=games]) .sidebar-brand img{filter:contrast(1.1) brightness(1.08) drop-shadow(0 3px 6px #000)}
@media(min-width:701px){body:is([data-view=library],[data-view=decks],[data-view=games])[data-theme=cardwarden] .sidebar{background:linear-gradient(180deg,#030b1700 0%,#030b1708 24%,#091426e8 62%,#030b1755 100%),url('assets/cardwarden-natural-sky-v1.png') 42% top/auto 480px no-repeat,url('assets/cardwarden-natural-sky-v1.png') 55% bottom/auto 100% no-repeat,#091426!important;border-right-color:#d8bd7e99}}
body[data-view=library] .hero>.header-wordmark{opacity:.58}
/* Import Cards uses the same themed action panels as the Library menu. */
body[data-theme] dialog:has(.import-section){width:min(540px,calc(100% - 24px))}
body[data-theme] .import-section{padding:16px;border:1px solid color-mix(in srgb,var(--room-line) 65%,transparent);border-radius:14px;background:linear-gradient(135deg,#ffffff04,transparent),linear-gradient(135deg,var(--room-panel),var(--room-base));box-shadow:inset 0 1px #ffffff0b;gap:13px}
body[data-theme] .import-section+.import-section{margin-top:3px;padding-top:16px}
body[data-theme] .import-section>h3{display:flex;align-items:center;gap:12px;color:var(--room-accent);font-size:20px;margin:0 0 2px}
.import-section>h3::after{content:'';height:1px;flex:1;background:linear-gradient(90deg,var(--room-line),transparent)}
body[data-theme] .import-section .import-destination{padding:0;border:0;background:none;gap:10px}
body[data-theme] .import-section :is(select,input[type=text]){background:var(--room-base);border-color:var(--room-line);font-size:15px}
body[data-theme] .import-section button:not(.clear-text-button){background:linear-gradient(155deg,#ffffff08,transparent 65%),linear-gradient(135deg,var(--room-control),var(--room-panel));border:1px solid var(--room-line);box-shadow:inset 0 1px #ffffff0d,0 2px 4px #0002;text-align:left}
body[data-theme] .import-section button:not(.clear-text-button):hover{border-color:var(--room-accent);filter:brightness(1.08)}
body[data-theme] .import-destination-heading button{color:var(--room-accent);min-height:40px}
body[data-theme] .import-section .file-label{background:linear-gradient(135deg,var(--room-control),var(--room-panel));border:1px solid var(--room-line);border-left:3px solid var(--room-accent);padding:14px;border-radius:10px;box-shadow:inset 0 1px #ffffff0c;font-weight:700;gap:12px}
body[data-theme] .import-section .file-label:hover{border-color:var(--room-accent)}
.import-section .file-label input{font-weight:400;color:var(--muted);min-width:0;width:100%}
.import-section input[type=file]::file-selector-button{background:var(--room-base);color:var(--room-accent);border:1px solid var(--room-line);border-radius:7px;padding:8px 10px;margin-right:10px;cursor:pointer}
.import-section #import-back-preview{margin:4px auto 0;box-shadow:0 5px 14px #0006;outline:1px solid color-mix(in srgb,var(--room-accent) 50%,transparent);outline-offset:3px}
.import-section #import-back-status{text-align:center;font-size:12px}
.import-section .import-back-alternative{padding:12px;border:1px solid var(--room-line);border-radius:10px;background:#00000012}
.import-section .import-back-alternative>strong{font-family:Book,Georgia,serif;color:var(--room-accent);text-align:center;font-weight:400}
body[data-theme] .import-section .back-choice{background:var(--room-base);border-color:var(--room-line)}
body[data-theme] .import-section .back-choice:has(input:checked){border-color:var(--room-accent);box-shadow:inset 3px 0 var(--room-accent)}
.import-section .notice{margin:0}
@media(max-width:420px){body[data-theme] .import-section{padding:13px;gap:12px}.import-destination-heading{gap:8px}.import-destination-heading button{padding:7px 9px}.import-section .file-label{padding:12px}}
/* Deck builder: the same illuminated cabinet materials as the Library. */
body[data-view=decks] .builder-heading{padding-bottom:22px;margin-bottom:24px;border-bottom:1px solid color-mix(in srgb,var(--room-accent) 45%,transparent);align-items:flex-end}
body[data-view=decks] .builder-heading .eyebrow{color:var(--room-accent);margin-bottom:8px}
body[data-view=decks] #deck-name{background:linear-gradient(120deg,var(--room-base),var(--room-panel));border-color:color-mix(in srgb,var(--room-accent) 65%,var(--room-line));box-shadow:inset 0 1px #ffffff12,0 3px 10px #0002;color:#f3e4c1;min-height:54px}
body[data-view=decks] .builder-deck-actions button,body[data-view=decks] .library-toolbar>button{background:linear-gradient(145deg,var(--room-control),var(--room-panel));border:1px solid var(--room-line);box-shadow:inset 0 1px #ffffff14;color:var(--room-accent)}
body[data-view=decks] .builder-heading>.primary{min-height:46px;border:1px solid var(--room-accent);box-shadow:inset 0 1px #fff5,0 3px 12px #0004}
body[data-view=decks] .library-toolbar input{background:linear-gradient(120deg,var(--room-base),#0a172580);border-color:var(--room-line);box-shadow:inset 0 2px 5px #0003}
body[data-view=decks] .builder-manage-controls{gap:8px;padding:10px 0 7px;flex-wrap:wrap}
body[data-view=decks] .builder-manage-controls button{font-size:13px;min-height:40px;border:1px solid transparent;padding:8px 12px}
body[data-view=decks] .builder-manage-controls button:hover{border-color:var(--room-line);background:var(--room-panel)}
body[data-view=decks] .filter{background:linear-gradient(145deg,var(--room-panel),var(--room-base));border:1px solid var(--room-line);box-shadow:inset 0 1px #ffffff10;color:var(--ink)}
body[data-view=decks] .filter.active{background:linear-gradient(#f1ddb1,var(--room-accent));color:#152032;border-color:var(--room-accent)}
body[data-view=decks] .filter-count{color:var(--room-accent);padding-left:5px;border-left:1px solid var(--room-line);margin-left:6px}
body[data-view=decks] .filter.active .filter-count{color:inherit}
body[data-view=decks] .card-grid{row-gap:22px}
body[data-view=decks] .card-add{box-shadow:0 4px 9px #0005;transition:box-shadow .15s}
body[data-view=decks] .card-tile.in-deck .card-add{outline:2px solid var(--room-accent);outline-offset:2px;box-shadow:0 0 0 4px #dfc58c18,0 5px 10px #0004}
body[data-view=decks] .card-add:hover{box-shadow:0 0 0 2px var(--room-accent),0 6px 12px #0005}
body[data-view=decks] .picker-quantity{background:linear-gradient(145deg,var(--room-control),var(--room-panel));border:1px solid color-mix(in srgb,var(--room-line) 60%,transparent);border-radius:9px;overflow:hidden}
body[data-view=decks] .picker-quantity button{background:#00000018;color:var(--room-accent);border:0;border-right:1px solid var(--room-line);border-radius:0}
body[data-view=decks] .picker-quantity span{color:var(--room-accent)}
body[data-view=decks] .card-label{color:#d2dceb}
body[data-view=decks] .review-panel{background:radial-gradient(ellipse at 0 0,#ffffff08,transparent 70%),linear-gradient(150deg,var(--room-panel),var(--room-base));border:1px solid color-mix(in srgb,var(--room-accent) 65%,var(--room-line));box-shadow:inset 0 0 0 3px #0002,inset 0 1px #ffffff18,0 10px 26px #0004;scrollbar-width:thin;scrollbar-color:var(--room-line) var(--room-base)}
body[data-view=decks] .review-panel h2{color:var(--room-accent)}
body[data-view=decks] .review-panel .badge{color:var(--room-accent);background:var(--room-base);border-color:var(--room-line)}
body[data-view=decks] .review-row{border-bottom-color:color-mix(in srgb,var(--room-line) 65%,transparent);padding-top:12px;padding-bottom:12px}
body[data-view=decks] .review-row .card-face{box-shadow:0 3px 7px #0005;border-radius:5px}
body[data-view=decks] .stepper button{background:linear-gradient(145deg,var(--room-control),var(--room-panel));border-color:var(--room-line);color:var(--room-accent);box-shadow:inset 0 1px #ffffff12}
body[data-view=decks] .mobile-switch{border:1px solid var(--room-line);background:var(--room-base)}
body[data-view=decks] .mobile-switch button.active{background:linear-gradient(145deg,var(--room-control),var(--room-panel));color:var(--room-accent);box-shadow:inset 0 0 0 1px var(--room-line)}
@media(max-width:700px){body[data-view=decks] .builder-heading{padding-bottom:16px;margin-bottom:16px}body[data-view=decks] #deck-name{min-height:48px}body[data-view=decks] .review-panel{padding:16px 12px}body[data-view=decks] .picker-quantity{font-size:10px;gap:1px}body[data-view=decks] .builder-manage-controls{padding-top:4px}}
/* Saved games: illuminated rows with actual miniature table layouts. */
body[data-view=games] .main>.eyebrow{color:var(--room-accent);margin-top:8px}
body[data-view=games] .main>h1{color:#f0e6d1;margin-top:12px}
body[data-view=games] .main>p.muted{padding-bottom:23px;margin-bottom:26px;border-bottom:1px solid color-mix(in srgb,var(--room-accent) 45%,transparent)}
body[data-view=games] .session-row{position:relative;gap:22px;padding:20px;margin-bottom:16px;background:radial-gradient(ellipse at 0 0,#ffffff08,transparent 65%),linear-gradient(120deg,var(--room-panel),var(--room-base));border:1px solid var(--room-line);box-shadow:inset 0 1px #ffffff12,0 7px 20px #0003;border-radius:15px;transition:border-color .15s,box-shadow .15s}
body[data-view=games] .session-row:hover{border-color:var(--room-accent);box-shadow:inset 0 1px #ffffff18,0 9px 24px #0004}
body[data-view=games] .session-row h3{color:var(--room-accent);font-size:22px;margin:0 0 8px;overflow-wrap:anywhere}
body[data-view=games] .session-row small{display:block;line-height:1.6;font-size:12px;color:var(--muted)}
body[data-view=games] .save-preview{flex-basis:144px;width:144px;height:90px;border-color:color-mix(in srgb,var(--room-accent) 65%,var(--room-line));box-shadow:inset 0 2px 10px #0008,0 3px 7px #0004}
body[data-view=games] .session-row>.primary{background:linear-gradient(145deg,var(--room-control),var(--room-panel));border:1px solid var(--room-accent);box-shadow:inset 0 1px #ffffff16,0 3px 8px #0003;color:#f3e6c7;min-width:86px;min-height:46px}
body[data-view=games] .session-row>.primary:hover{filter:brightness(1.15)}
body[data-view=games] .session-row>.quiet{width:44px;min-width:44px;min-height:44px;padding:8px;border:1px solid transparent;color:var(--muted)}
body[data-view=games] .session-row>.quiet:hover{border-color:#c9898966;background:#512d3833;color:#ffd0cd}
body[data-view=games] .empty{padding:48px 24px;border:1px solid var(--room-line);border-radius:15px;background:linear-gradient(135deg,var(--room-panel),var(--room-base));line-height:1.8}
@media(max-width:700px){body[data-view=games] .session-row{display:grid;grid-template-columns:66px minmax(0,1fr) 44px;gap:10px 12px;padding:14px}body[data-view=games] .save-preview{width:66px;height:78px;grid-row:1/3}body[data-view=games] .session-row>.grow{grid-column:2;grid-row:1}body[data-view=games] .session-row h3{font-size:18px;margin-bottom:5px}body[data-view=games] .session-row small{font-size:11px}body[data-view=games] .session-row>.primary{grid-column:2;grid-row:2;justify-self:start;min-width:80px;min-height:44px;padding:8px 18px}body[data-view=games] .session-row>.quiet{grid-column:3;grid-row:1;align-self:start}body[data-view=games] .main>p.muted{padding-bottom:18px;margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){body[data-view=games] .session-row{transition:none}}
/* A shared perspective plane: cards, stacks, grid and surface occupy one scene. */
.table-plane{position:absolute;inset:0;pointer-events:none;transform-origin:50% 50%;transform-style:preserve-3d}
.table-floor{display:none;position:absolute;inset:0;pointer-events:none;transform:translateZ(-10px);border-radius:12px}
[data-table-view="3d"] .table-floor{display:block;box-shadow:0 8px 0 #1b1713,0 15px 32px #0009,inset 0 2px 6px #e9d6a21a}
[data-table-view="3d"] .table-floor::after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at 35% 30%,#f7d9a919,transparent 60%),linear-gradient(#0005,transparent 25%,#0002);pointer-events:none}
[data-table-view="3d"] .table-world{transform-style:preserve-3d}
[data-table-view="3d"] .world-piece{transform-style:preserve-3d;filter:none!important;overflow:visible}
[data-table-view="3d"] .world-piece>.card-face,[data-table-view="3d"] .world-piece>.pile-art{transform:none;backface-visibility:visible}
[data-table-view="3d"] .world-piece>.card-face,.perspective-held>.card-face{box-shadow:0 .35px 0 #c8c1ad,0 .65px 0 #948b79,1px 3px 5px #0007}
[data-table-view="3d"] .pile-art{position:relative;transform-style:preserve-3d;overflow:visible;box-shadow:none!important}
[data-table-view="3d"] .pile-art>.card-face{position:relative;transform:translateZ(.1px);box-shadow:0 1px 1px #0005}
.stack-layer{position:absolute;inset:0;border-radius:5px;background:#e3dfd1;border:1px solid #a09c8e;pointer-events:none;box-shadow:0 2px 3px #0003}
[data-table-view="3d"] .stack-layer:first-child{box-shadow:1px 8px 9px #0008}
[data-table-view="3d"] .table-dot-grid{transform:translateZ(-.2px)}
[data-table-view="3d"] .pile-label{color:#f1e3c3;text-shadow:0 2px 3px #0008}
[data-table-view="3d"] .room-scenery{height:clamp(160px,26vh,300px)}
[data-table-view="3d"] .sliding-drawer{box-shadow:inset 0 0 0 3px #28190e,inset 0 0 0 5px #ae895c77,0 8px 0 #24170f,0 14px 25px #0009}
[data-table-view="3d"] .drawer-surface{box-shadow:inset 0 10px 16px #0008,inset 7px 0 12px #0005,inset -5px 0 10px #0004;border-color:#22190f}
[data-table-view="3d"] .drawer-tab::before{box-shadow:inset 2px 0 #f1d1a155,inset -2px 0 #100c09,2px 3px 4px #0007}
[data-table-view="2d"] .table-screen::after{opacity:.8}
@media(max-width:700px){[data-table-view="3d"] .room-scenery{height:clamp(125px,24vh,200px)}[data-table-view="3d"] .table-floor{border-radius:6px}}

/* Inset drawer joinery: decorative layers retain the original button hit rectangles. */
body[data-theme] [data-table-view="3d"] .drawer-tab::before{width:30px;border:1px solid var(--drawer-trim);border-radius:3px;background:linear-gradient(90deg,#0008,transparent 24%,#ffffff12 45%,#0006),var(--drawer-material);box-shadow:inset 0 0 0 3px #16100c,inset 0 0 0 4px var(--drawer-trim),inset 5px 0 8px #0009,5px 4px 0 #21180f,8px 7px 10px #000b;transform:none;transform-origin:left center}
body[data-theme] [data-table-view="3d"] .drawer-tab.right::before{transform:none;transform-origin:right center;box-shadow:inset 0 0 0 3px #16100c,inset 0 0 0 4px var(--drawer-trim),inset -5px 0 8px #0009,-5px 4px 0 #21180f,-8px 7px 10px #000b}
[data-table-view="3d"] .sliding-drawer::before{content:'';position:absolute;inset:-8px -7px;z-index:-1;border:7px solid #241a12;border-top-color:#8d6a43;border-bottom-color:#17110d;border-radius:8px;box-shadow:0 16px 20px #0009;pointer-events:none}
[data-table-view="3d"] .drawer-surface{border:5px solid #34261a;border-top:9px solid #1d1711;box-shadow:inset 0 12px 16px #000a,inset 6px 0 10px #0007,0 1px #c49e6866}
.perspective-held{transform-style:preserve-3d;filter:drop-shadow(5px 18px 8px #0008)}
.perspective-held>.card-face,.perspective-held>.pile-art{transform:none!important}
[data-table-view="3d"] .room-scenery{height:100%;background-image:url('assets/table-stone-alcove-v6.png');background-size:100% 70%;background-position:center top;background-repeat:no-repeat;mask-image:none;-webkit-mask-image:none;background-color:#151a1e}
[data-table-view="3d"] .candle-flame{left:17.35%;top:8.3%;height:clamp(16px,3.5vh,38px);width:clamp(4px,.5vw,8px)}
[data-table-view="3d"] .candle-glow{left:17.35%;top:7%;width:180px;height:180px}
[data-table-view="3d"] .table-floor{box-shadow:0 6px 0 #1c1712,0 10px 16px #0007,inset 0 1px 4px #e9d6a122}
@media(max-width:700px){[data-table-view="3d"] .room-scenery{background-size:auto 62%;background-position:47% top}[data-table-view="3d"] .candle-flame,[data-table-view="3d"] .candle-glow{display:none}}
@media(max-width:700px){[data-table-view="3d"] .room-scenery{background-position:17% top}}

/* Drawer front and box share their exact top and bottom edges. */
body[data-theme] [data-table-view="3d"] .drawer-tab::before{width:18px;transform:none}
body[data-theme] [data-table-view="3d"] .drawer-tab.right::before{transform:none}
[data-table-view="3d"] .sliding-drawer::before{inset:0 -7px}
.sheet-actions:has(.illustrated-menu-action){gap:9px}
.sheet-actions>.illustrated-menu-action{text-align:left;padding:12px 15px;border-radius:10px}
.sheet-actions>.illustrated-menu-action.danger .menu-action-icon{stroke:currentColor}

@media(max-width:700px){[data-table-view="3d"] .candle-flame,[data-table-view="3d"] .candle-glow{display:block;left:calc(17% + .3255vh);top:7.35%}}
/* Keep the drawer box flush with its stationary front; depth stays inside the rim. */
[data-table-view="3d"] .sliding-drawer::before{content:none}
body[data-theme] [data-table-view="3d"] .sliding-drawer{border-radius:3px;box-shadow:inset 0 1px #ffffff45,inset 0 -2px #0008,0 8px 14px #0007}
body[data-theme] [data-table-view="3d"] .drawer-tab::before,body[data-theme] [data-table-view="3d"] .drawer-tab.right::before{border-radius:3px;box-shadow:inset 0 0 0 2px #16100c,inset 0 0 0 3px var(--drawer-trim),inset 4px 0 7px #0007,0 8px 14px #0007}
body[data-theme] dialog.ornate-menu[open]{display:flex;flex-direction:column;overflow:hidden;border-radius:13px;padding:28px 20px 22px;max-height:94dvh;border-color:#cda45d;background:repeating-linear-gradient(35deg,#ffffff02 0 1px,transparent 1px 3px),radial-gradient(ellipse at 25% 0,#35526b33,transparent 70%),linear-gradient(120deg,var(--room-panel),var(--room-base));box-shadow:inset 0 0 0 3px #09131d,inset 0 0 0 4px #b998554d,0 22px 70px #000b}
.ornate-menu .dialog-head{flex:none;border:0;padding:0 4px 10px;margin-bottom:8px}
.ornate-menu .dialog-head h2{font-size:30px;text-shadow:0 1px #000}
body[data-theme] dialog.ornate-menu .dialog-head::before,body[data-theme] dialog.ornate-menu .dialog-head::after{content:none}
.ornate-menu .dialog-body{overflow-y:auto;min-height:0;padding:0 2px 3px;scrollbar-width:thin;scrollbar-color:#9b8353 #101f2c}
.menu-corner{position:absolute;width:30px;height:30px;fill:none;stroke:#d8b56f;stroke-width:1;pointer-events:none;z-index:4;filter:drop-shadow(0 1px 1px #000)}
.menu-corner .corner-leaf{fill:#b99451;stroke-width:.6}.menu-corner.tl{top:3px;left:3px}.menu-corner.tr{top:3px;right:3px;transform:scaleX(-1)}.menu-corner.bl{bottom:3px;left:3px;transform:scaleY(-1)}.menu-corner.br{bottom:3px;right:3px;transform:scale(-1)}
.ornate-menu .illustrated-menu-action{font-family:Book,Georgia,serif;font-size:16px;font-weight:400;min-height:50px;border-radius:8px;text-shadow:0 1px 2px #000;gap:16px}
.ornate-menu .illustrated-menu-action::after{content:'›';font:20px Georgia;color:var(--room-accent);margin-left:auto}
.ornate-menu .menu-action-icon{filter:drop-shadow(0 1px 1px #000);stroke-width:1.35}
body[data-theme] .ornate-menu .menu-group-title{font-size:16px;margin-top:14px;margin-bottom:3px;color:#e6d8ba}.ornate-menu .menu-group-title::after{background:linear-gradient(90deg,#ac874e, #ac874e55)}
@media(max-width:450px){body[data-theme] dialog.ornate-menu[open]{padding:26px 16px 20px}.ornate-menu .illustrated-menu-action{font-size:15px;gap:10px}}

[data-table-view="3d"].illustrated-felt .table-floor{opacity:0}
[data-table-view="3d"] .room-scenery::after{opacity:0!important}
body[data-theme] [data-table-view="3d"] .drawer-tab::before{background:linear-gradient(90deg,#2a150b,#806038 48%,#392213);border:1px solid #d0a15a;box-shadow:inset 0 0 0 2px #25150b,inset 0 0 0 3px #a9844f,0 3px 6px #0009}
body[data-theme] dialog.ornate-menu .dialog-body button[data-action="support-cardwarden"]{background:linear-gradient(#efdda7,#c9aa63);color:#13243e;border:1px solid #e1c888;text-shadow:none;font-family:Sans,Arial,sans-serif;font-weight:700;box-shadow:inset 0 1px #fff4}
body[data-theme] dialog.ornate-menu button[data-action="support-cardwarden"] .menu-action-icon{stroke:#183350;fill:#183350;filter:none}
body[data-theme] dialog.ornate-menu button[data-action="support-cardwarden"]::after{color:#183350}
/* The dice well keeps its geometry; the lining and joinery supply the depth. */
body[data-theme] dialog.dice-art-menu{border-color:var(--room-accent);border-radius:14px;box-shadow:inset 0 0 0 3px #080f19,inset 0 0 0 4px #be9b5155,0 24px 80px #000a}
body[data-theme] #dice-stage::after{border:1px solid #e0bc79;box-shadow:inset 0 0 0 3px #392719,inset 0 0 0 5px #b28b4b,inset 0 0 0 7px #573a22,inset 0 11px 0 #21170e,inset 0 19px 19px #0009,inset 12px 0 15px #0007,inset -12px 0 15px #0007,inset 0 -7px 11px #0007}
.dice-art-menu .dice-totals>div{border:1px solid #d0b27066;box-shadow:inset 0 1px #f5dc9a22,0 3px 7px #0004;background:linear-gradient(135deg,#122b22ed,#091c16ed)}
.dice-art-menu #roll-dice{background:linear-gradient(#e7cf91,#bb9650);border:1px solid #e7cb88;color:#15243b;text-shadow:none;box-shadow:inset 0 1px #fff4,0 2px 5px #0004}
.table-view-choice{flex-wrap:wrap}.table-view-hint{flex:0 0 100%;font-size:12px;color:var(--muted);line-height:1.4;margin:0 0 3px}
body[data-theme] #dice-stage{--tray-rim:32px;border:0;background-color:#10291d;box-shadow:0 6px 16px #0008,0 1px 0 #e6bf7b55}
body[data-theme] #dice-stage::after{inset:0;border:var(--tray-rim) solid transparent;border-image:url('assets/dice-walnut-brass-frame-v3.png') 14% / var(--tray-rim) / 0 stretch;box-shadow:inset 0 16px 22px #000b,inset 12px 0 18px #0008,inset -10px 0 16px #0007,inset 0 -7px 12px #0008;z-index:1}
#dice-stage::before{content:'';position:absolute;inset:var(--tray-rim);z-index:1;pointer-events:none;background:radial-gradient(ellipse at 20% 14%,#ffdc9233,transparent 65%),radial-gradient(ellipse at 35% 28%,transparent 35%,#020b0966 100%);border-radius:3px}
.dice-art-menu #dice-result{top:calc(var(--tray-rim) + 6px);max-width:calc(100% - 2 * var(--tray-rim) - 12px);z-index:2}
.dice-art-menu .dice-totals{inset:auto calc(var(--tray-rim) + 5px) calc(var(--tray-rim) + 5px);z-index:2}
.dice-art-menu .dice-totals>div{border:1px solid #c69c54;box-shadow:inset 0 0 0 2px #25190f,inset 0 0 0 3px #c69c5444,0 3px 9px #0008;background:linear-gradient(135deg,#102b20f5,#061910f5)}
@media(max-width:700px){body[data-theme] #dice-stage{--tray-rim:22px}}
/* Matching walnut joinery, without changing the drawer or touch geometry. */
body[data-theme] [data-table-view="3d"] .drawer-tab::before,body[data-theme] [data-table-view="3d"] .drawer-tab.right::before{background:url('assets/drawer-brass-sprig.svg') center 12px / 10px 25px no-repeat,url('assets/drawer-brass-sprig.svg') center calc(100% - 12px) / 10px 25px no-repeat,linear-gradient(90deg,#140a0866,#d7a96922 40%,#09060488),url('assets/drawer-walnut-grain-v1.png') center / 160px 240px;border-color:#bd9450;box-shadow:inset 0 0 0 1px #261608,inset 0 0 0 2px #d9ae6655,inset 3px 0 2px #efcf8b33,inset -3px 0 3px #0008,0 6px 10px #0008}
body[data-theme] [data-table-view="3d"] .sliding-drawer{background:linear-gradient(#180c0844,#0e080677),url('assets/drawer-walnut-grain-v1.png') center / 300px;border-color:#bd9450}
[data-table-view="3d"] .sliding-drawer::after{content:'';position:absolute;inset:0;border:7px solid transparent;border-image:url('assets/dice-walnut-brass-frame-v3.png') 14% / 7px / 0 stretch;pointer-events:none;z-index:2}

.save-preview.save-snapshot{background:#091426}.save-preview.save-snapshot img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;transform:none;border-radius:0;box-shadow:none}

/* Scene artwork and user-selected surface share one geometry, independent of camera pan. */
.room-scenery{isolation:isolate}
.scene-surface-tint,.scene-custom-surface{position:absolute;pointer-events:none;z-index:1}
.scene-surface-tint,.scene-custom-clip{clip-path:polygon(10.4% 13.7%,89.2% 13.7%,90% 14.1%,100% 63%,100% 91.8%,0 91.8%,0 63%,9.6% 14.1%)}
.scene-surface-tint{mix-blend-mode:color}
.scene-custom-clip{position:absolute;pointer-events:none;z-index:1;overflow:hidden}
.scene-custom-surface{transform-origin:0 0;overflow:hidden}
.scene-custom-surface::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 15% 0,#ffdf9b18,transparent 55%),linear-gradient(transparent,#0005);box-shadow:inset 0 3px 10px #0008}
body:not([data-theme=cardwarden]) .room-scenery :is(.candle-flame,.candle-glow){display:none!important}

.table-playfield{position:absolute;inset:0;pointer-events:none}.table-playfield .table-world{pointer-events:auto}

.table-zoom-toggle{touch-action:none;-webkit-touch-callout:none;user-select:none}
.table-loupe{position:fixed;width:220px;height:220px;border-radius:50%;overflow:hidden;z-index:10000;pointer-events:auto!important;touch-action:none;cursor:grab;isolation:isolate;background:#10251c;box-shadow:0 15px 28px #0009,0 4px 7px #000b;animation:loupe-appear .14s ease-out}
.table-loupe *{pointer-events:none!important}
.table-loupe::after{content:'';position:absolute;inset:0;border-radius:50%;border:10px solid #b68c39;box-shadow:inset 0 0 0 2px #4f3614,inset 0 0 0 4px #e9d18c,inset 0 5px 12px #0008,0 0 0 1px #f8e5a7;background:linear-gradient(135deg,#fff8 0%,#fff0 22%,transparent 76%,#fff1);box-sizing:border-box}
.table-loupe::before{content:'';position:absolute;inset:2px;border:4px ridge #dfbe6c;border-radius:50%;z-index:2;box-shadow:0 0 0 2px #624218}
.table-loupe .loupe-scene{display:block;contain:layout style;animation:none!important}
@keyframes loupe-appear{from{opacity:0}to{opacity:1}}
@media(max-width:700px){.table-loupe{width:180px;height:180px}}
@media(prefers-reduced-motion:reduce){.table-loupe{animation:none}}

.loupe-overhead .table-atmosphere{display:none!important}.loupe-overhead .table-floor{opacity:1!important;transform:none!important}.loupe-overhead .table-plane{transform-style:flat}

[data-table-view="3d"] .table-world,[data-table-view="3d"] .table-world .world-piece,[data-table-view="3d"] .table-world .world-piece *{pointer-events:none!important}

.drag-ghost.perspective-held{transform-style:flat;backface-visibility:visible;-webkit-backface-visibility:visible}

.loupe-scene .table-plane,.loupe-scene .table-world,.loupe-scene .world-piece{transform-style:flat!important;will-change:auto!important}

.table-loupe.loupe-large{width:275px;height:275px}
@media(max-width:700px){.table-loupe.loupe-large{width:225px;height:225px}}

.pile-label{display:block;left:50%;right:auto;width:max-content;max-width:none;transform:translateX(-50%);text-align:center;margin:0}
.zoom-browse{display:flex;flex:0 0 auto;justify-content:center;align-items:center;gap:16px;padding:6px}.zoom-browse button{min-width:44px;min-height:44px}.zoom-browse span{min-width:65px;text-align:center}
