/* Black and red film palette, with selective blue console details. */
:root{--bg:#0a080a;--panel:#181315;--steel:#9a8e8e;--line:#403034;--white:#f2eeee;--cyan:#ff6b5e;--red:#ed4439;--blue:#46bcea;--muted:#b6aaac;--vault-size:min(86vmin,920px)}
body{background-color:var(--bg);background-image:linear-gradient(#080709ed,#080709f5),url('assets/batman-robin-wallpaper.jpg');background-position:center;background-size:cover;background-attachment:fixed}
::selection{background:#a02a29;color:#fff}
.status-dot{background:var(--blue);box-shadow:0 0 9px #46bcea60}
.button{border-color:#694649;background:linear-gradient(135deg,#302025,#171114)}
.button:hover{border-color:var(--cyan);background:#48272c}
.button.primary{color:#fff4f1;border-color:#ff8778;background:linear-gradient(110deg,#d73a32,#aa2229);box-shadow:0 2px 28px #ed443930}
.button.primary:hover{background:linear-gradient(110deg,#e94b3f,#c52b2d)}
.text-button{color:#cbbfc1}.text-button span{color:var(--blue)}
.masthead{background:linear-gradient(180deg,#1b1115ed,#0a080c);border-color:#493035}
.masthead:after{box-shadow:0 0 12px #ee443a}
.emblem{border-color:#b67b78;background:linear-gradient(145deg,#503537,#171013);box-shadow:0 0 0 5px #27171c,0 0 23px #ed443922}
.brand-name small,.header-meta .muted{color:#ad9fa3}.masthead nav a{color:#cdbfc3}.masthead nav span{color:var(--blue)}
.hero{background:linear-gradient(90deg,#09070bee 0%,#09070bcc 40%,#13070a95 72%,#09070ba8 100%),url('assets/batman-robin-wallpaper.jpg') center 48%/cover no-repeat}
.cave-scene{background:radial-gradient(ellipse at 70% 50%,transparent,#05040688)}
.cave-scene:after{background:linear-gradient(90deg,#09070bbb,transparent 50%),linear-gradient(0deg,#09070b 1%,transparent 28%,transparent 90%,#09070b60)}
.rock{background:linear-gradient(120deg,#2b2023,#10090e 45%,#342427 46%,#170e16 70%);opacity:.36}
.arch{border-color:#3a252b;border-bottom-color:#1f151b;box-shadow:inset 3px 0 2px #a8797955,5px 0 2px #94636444,inset 0 0 30px #0008,0 0 0 2px #10070c}
.arch:after{border-color:#d84d454a;border-bottom-color:transparent}
.arch-one{opacity:.53}.arch-two{opacity:.38}.arch-three{opacity:.23}
.floor-lines{background:repeating-linear-gradient(90deg,transparent 0 119px,#e47a6e15 120px 121px),repeating-linear-gradient(0deg,transparent 0 59px,#e47a6e15 60px 61px)}
.beam{background:linear-gradient(0deg,#ed5546,transparent);box-shadow:0 0 14px #e84037;opacity:.35}
.hero-copy h1{color:#f2eaea;text-shadow:0 3px 0 #080307}
.hero-copy h1>span:not(.title-stop){color:#ff6859;text-shadow:0 0 40px #ed443933}.title-stop{color:var(--blue)}
.description{color:#c9bcbf}.hero-note{color:#b2a5a9}.note-divider{color:#78535b}
.screen-caption{color:#baaaaf}.monitor{border-color:#977878;background:linear-gradient(135deg,#826567 0,#39282f 3%,#171018 18%,#302029 80%,#695055 100%);box-shadow:0 0 0 5px #0c080d,0 0 0 6px #624049,0 26px 50px #0009,inset 0 1px 0 #d9b6b644}
.group-trigger img{background:#100a10;border-color:#130810;box-shadow:0 0 0 1px #ab878b55}
.monitor-footer{color:#ccb7bf;box-shadow:0 -3px 14px #ed44392c}.screen-total{color:var(--blue)}
.platform{background:linear-gradient(#5c4049,#312029 45%,#09050b 48%,#50313e 70%,#1b101b);border-color:#957277;box-shadow:0 10px 0 #09040b,0 12px 0 #784650,0 19px 0 #0b050b,0 21px 0 #4a2230,0 32px 55px #f044382d}
.platform-ring{border-color:#fa6555b0;box-shadow:0 0 12px #ef493b55,inset 0 0 18px #ed443935;background:radial-gradient(ellipse,#f6685733,transparent 70%)}
.stage-label{color:#ae929c}.stage-label span{color:var(--blue)}
.hero-bottom{color:#b49ca8;border-color:#53333e}.hero-bottom a{color:#c5b0ba}.hero-bottom a span{color:var(--blue)}
.batch-console{border-color:#573b47;border-top-color:#9b7d88;background:linear-gradient(180deg,#3e283433,#160e18);box-shadow:inset 0 1px 0 #bfa3b422,0 6px 0 #07050b}
.console-label{color:#c8b4c1}.metric{border-color:#493040}.metric b{color:#efe6ee}.metric span{color:#bfa6b7}
.section-heading h2 span{color:#b294a4}.section-heading>p{color:#bfabb7}.toolbar{border-color:#573847}.toolbar-right .search,.sort select{background:#150e19;border-color:#52364a}.search input::placeholder{color:#b4a1b0}.search>span{color:var(--blue)}
.filter{color:#bfa9b9}.filter span{color:#a48d9d}.filter.active{color:#ff8172;border-color:#883d4b;background:#301421}.filter.active span{color:#ff8172}.filter:hover{background:#2d1b2a}.sort select{color:#c8b5c5}
.inventory-meta{color:#9caaba}.inventory-meta>span:first-child{color:#77c6e8}
.bay{background:linear-gradient(135deg,#453440,#211422 10%,#1b121e 80%,#432638);border-color:#604257;border-top-color:#987a8b}
.bay:hover{border-color:#ff776b;box-shadow:0 10px 40px #ec463a24}.bay-image{background:#0b070e;border-color:#78596955}
.bay-light{background:linear-gradient(90deg,transparent,#e2443a 25%,#ff9e89 50%,#e2443a 75%,transparent);box-shadow:0 0 14px #ed443980}
.bay h3{color:#f0e7ed}.bay-record{color:#7bc9eb}.bay-record small{border-color:#5c4154;color:#cbb9c6}.bay-edition{color:#bfa9ba}.bay-bottom{color:#bc8fa7}.bay-bottom span:last-child{color:var(--blue)}
.vault-end{color:#a2859a}.end-rule{background:linear-gradient(90deg,#674052,transparent)}
footer{border-color:#523447;color:#b39daf}footer>a:last-child span{color:var(--blue)}
dialog{background:linear-gradient(145deg,#422937,#1a0e1d 30%);border-color:#aa7b91;box-shadow:0 0 0 6px #180c1b,0 0 0 7px #694054,0 0 70px #000c}
dialog::backdrop{background:#07030bdc}.inspection-header{background:#281322ed;border-color:#87455e}.inspection-header .kicker>span{color:#ceb1c3}.close-button{border-color:#7c455e;background:#261223;color:#e8c8dd}
.detail-media{background:#0d0711}.detail-media img{border-color:#6a3f55}.detail-copy>p:not(.kicker){color:#c7a7bc}.detail-copy dl,.detail-copy dl>div{border-color:#66405a}.detail-copy dt{color:#89b5d0}.detail-copy dd{color:#ecdae8}
/* This frame stays mounted when the entry is replaced by the video. */
.intro{isolation:isolate;background:#080609;overflow:hidden}
.intro:before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(#080408a8,#080408c9),url('assets/batman-robin-wallpaper.jpg') center/cover no-repeat}
.vault-rings{position:absolute;left:50%;top:50%;width:var(--vault-size);height:var(--vault-size);transform:translate(-50%,-50%);pointer-events:none;z-index:0}
.vault-rings>span{position:absolute;border:1px solid #953a3e;border-radius:50%;box-shadow:inset 0 0 70px #a42c2713,0 0 32px #d3393010}
.vault-rings>span:nth-child(1){inset:0;border-color:#6b2c31;background:#0b060b8f}
.vault-rings>span:nth-child(2){inset:5.5%;border-color:#91403f;background:#14090e33}
.vault-rings>span:nth-child(3){inset:11%;border-color:#c05a4e;background:radial-gradient(circle,#35141b55,#0c060b60 70%);box-shadow:0 0 25px #ed44391b,inset 0 0 60px #ed443915}
.entry{z-index:2;max-width:min(430px,76vw);transition:opacity .32s ease,transform .45s ease}
.entry:before{display:none}
.entry-emblem{border-color:#ec6457;background:linear-gradient(150deg,#70453f,#291114);box-shadow:0 0 35px #ef44332b}
.entry>p:not(.kicker){color:#c8aaa8}
.entry-skip{color:#d0b7b6}.entry-skip span{color:var(--blue)}
.video-well{position:absolute;top:50%;left:50%;width:calc(var(--vault-size) * .72);height:calc(var(--vault-size) * .72);transform:translate(-50%,-50%);overflow:hidden;border-radius:50%;opacity:0;pointer-events:none;z-index:1;transition:opacity .55s ease .12s;background:transparent;mix-blend-mode:screen}
.intro video{inset:0;width:100%;height:100%;object-fit:cover;background:#000;opacity:1;transition:none}
.intro.playing .entry{display:flex;opacity:0;transform:scale(.97);pointer-events:none;visibility:hidden;transition:opacity .3s ease,transform .45s ease,visibility 0s .3s}
.intro.playing .video-well{opacity:1}
.intro-controls{z-index:4}.intro-controls .button{background:#190a10e6;border-color:#91433f}
.video-error{z-index:4;background:#170a10dd}
@media(max-width:720px){:root{--vault-size:min(96vw,82svh)}body{background-attachment:scroll}.hero{background-position:60% 80%;background-size:auto 100%}.cave-scene:after{background:linear-gradient(180deg,#09070bee 10%,transparent 55%,#09070b 100%)}.entry{max-width:76vw;padding:16px}.entry-emblem{width:74px;height:74px;margin-bottom:17px}.entry h2{font-size:clamp(28px,7vw,42px)}.entry .kicker{font-size:6px;letter-spacing:.12em}.entry>p:not(.kicker){font-size:10px;margin:13px 0 18px}.entry .button{font-size:10px;padding:12px 18px}.entry-skip{font-size:8px;padding:15px 0}.video-well{width:calc(var(--vault-size) * .74);height:calc(var(--vault-size) * .74)}}
@media(max-height:560px) and (min-width:721px){:root{--vault-size:92vmin}.entry-emblem{width:55px;height:55px;margin-bottom:12px}.entry h2{font-size:34px}.entry .kicker{font-size:7px;margin-bottom:8px}.entry>p:not(.kicker){font-size:10px;margin:12px 0 16px}.entry .button{padding:10px 15px}.entry-skip{padding:12px 0;font-size:8px}}
@media(prefers-reduced-motion:reduce){.entry,.intro.playing .entry,.video-well{transition:none}}
/* Film palette supplied for this design: black, graphite, deep blue,
   icy white and deep red. Saturated light is kept to edges and controls. */
:root{--bg:#0a0a0a;--panel:#171515;--line:#302f2f;--white:#f8f9fa;--muted:#b3aaab;--film-black:#0a0a0a;--film-graphite:#302f2f;--film-blue:#090e2e;--film-white:#f8f9fa;--film-red:#2b1613}
body{background-color:var(--film-black)}
.masthead{background:linear-gradient(180deg,#1c1717ee,#0a0a0a);border-color:#403232}
.emblem{background:linear-gradient(145deg,#484242,#191414)}
.hero{background:linear-gradient(90deg,#0a0a0aef 0%,#0a0a0acf 40%,#2b16138f 72%,#0a0a0aa8 100%),url('assets/batman-robin-wallpaper.jpg') center 48%/cover no-repeat}
.arch{border-color:#302f2f;border-bottom-color:#191717;box-shadow:inset 3px 0 2px #91817b55,5px 0 2px #6c555044,inset 0 0 30px #0008,0 0 0 2px #0a0a0a}
.monitor{background:linear-gradient(135deg,#655c59 0,#302f2f 3%,#121111 18%,#252222 80%,#4d3935 100%)}
.group-trigger img{background:#0a0a0a}
.batch-console{background:linear-gradient(180deg,#302f2f50,#131212);border-color:#4e3833}
.metric b,.hero-copy h1,.bay h3{color:var(--film-white)}
.metric span,.console-label{color:#bcb3b0}
.search,.sort select{background:#111318!important;border-color:#343a4e!important}
.filter.active{background:#2b1613;border-color:#a54d42}
.bay{background:linear-gradient(135deg,#3a3432,#191717 10%,#141313 80%,#2b1613);border-color:#55413d;border-top-color:#92847f}
.bay-image{background:var(--film-black)}
.bay-edition{color:#beb5b2}.bay-record small{border-color:#4b4441;color:#c9c1be}
footer{border-color:#3f3331;color:#afa5a2}
dialog{background:linear-gradient(145deg,#302f2f,#141212 30%);border-color:#94736b;box-shadow:0 0 0 6px #0a0a0a,0 0 0 7px #4d3530,0 0 70px #000c}
.inspection-header{background:#2b1613ed;border-color:#8e493d}.detail-media{background:#0a0a0a}.detail-copy dl,.detail-copy dl>div{border-color:#45312b}.detail-copy dd{color:var(--film-white)}
.intro{background:var(--film-black)}
.vault-rings>span:nth-child(1){background:#0a0a0a8f}.vault-rings>span:nth-child(2){background:#2b161333}.vault-rings>span:nth-child(3){background:radial-gradient(circle,#2b161366,#0a0a0a60 70%)}
.close-button{background:var(--film-blue);border-color:#4c536e}
.group-trigger{display:block;width:100%;padding:0;margin:0;border:0;background:#0a0a0a;cursor:pointer;line-height:0}
.group-trigger:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
dialog.cave-dialog{position:fixed;inset:auto;left:var(--clip-left);top:var(--clip-top);width:var(--clip-width);height:var(--clip-height);max-width:none;max-height:none;margin:0;padding:0;overflow:hidden;border:0;background:#000;box-shadow:0 0 0 1px #e0524844,0 15px 50px #0009}
dialog.cave-dialog::backdrop{background:rgba(0,0,0,.45);backdrop-filter:none}
.cave-dialog video{display:block;width:100%;height:100%;object-fit:contain;background:#000}
.cave-close{position:absolute;top:8px;right:8px;z-index:2;width:32px;height:32px;padding:0;border:1px solid #b1a6a680;border-radius:3px;background:#080808bb;color:#fff;font:24px/1 var(--body);box-shadow:0 2px 10px #0007}
.cave-close:hover{background:#4e1617;border-color:var(--cyan)}
.cave-error{position:absolute;left:15px;right:15px;top:40%;margin:0;padding:12px;background:#180b0ee8;color:#f8f9fa;font:11px/1.6 var(--body);text-align:center}
/* The logo reveal replaces the film inside the same persistent ring frame. */
.intro #introVideo{opacity:1;transition:opacity .5s ease}
.intro #brandVideo{opacity:0;object-fit:cover;transition:opacity .6s ease}
.intro.brand-playing #introVideo{opacity:0}
.intro.brand-playing #brandVideo{opacity:1}
@media(prefers-reduced-motion:reduce){.intro #introVideo,.intro #brandVideo{transition:none}}
.vault-rings>span:nth-child(3)::after{content:'';position:absolute;inset:0;border-radius:inherit;background:#000;opacity:0;transition:opacity .52s ease}
.intro.brand-transition .vault-rings>span:nth-child(3)::after{opacity:1}
.intro.brand-transition #introVideo{opacity:0}
@media(prefers-reduced-motion:reduce){.vault-rings>span:nth-child(3)::after{transition:none}}
/* Collection teaser closing the docket page: a short Batcave shelf of key slabs. */
.collection-teaser{max-width:1232px;margin:0 auto 75px;display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;align-items:center;padding:34px 32px 32px;border:1px solid #57364c;border-left:2px solid var(--blue);background:radial-gradient(ellipse at 80% 15%,#ed44391c,transparent 60%),#140d12}
.teaser-copy .kicker{font-size:8px;margin:0 0 10px}
.teaser-copy h2{font:700 44px/.95 var(--display);margin:0}
.teaser-copy p:not(.kicker){font:12px/1.8 var(--body);color:#c9bcbf;margin:14px 0 24px;max-width:390px}
.teaser-shelf{display:block;min-width:0;padding-top:12px;-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
.teaser-books{position:relative;z-index:1;display:flex;align-items:flex-end;gap:14px;height:190px;padding:0 14px;margin-bottom:-5px;overflow:hidden}
.teaser-books img{display:block;height:100%;width:auto;flex-shrink:0;box-shadow:0 7px 9px -3px #000c;transition:transform .2s}
.teaser-shelf:hover img{transform:translateY(-4px)}
.teaser-board{position:relative;display:block;height:14px;background:linear-gradient(#2c2326,#130f11);box-shadow:inset 0 1px 0 #7a676c,inset 0 -2px 0 #ed4439,0 0 18px #ed443938,0 16px 24px #000c}
.teaser-board:before{content:'';position:absolute;left:0;right:0;bottom:100%;height:9px;background:linear-gradient(#4a3f43,#2a2226)}
footer>a.footer-link{color:#cdbfc3}footer>a.footer-link span{color:var(--blue)}
@media(max-width:1300px){.collection-teaser{margin-left:38px;margin-right:38px}}
@media(max-width:1000px){.collection-teaser{grid-template-columns:1fr;gap:26px}}
@media(max-width:720px){.collection-teaser{margin:0 20px 48px;padding:24px 20px}.teaser-copy h2{font-size:34px}.teaser-copy .button{width:100%;font-size:10px;padding:13px 12px}.teaser-books{height:128px;gap:9px;padding:0 8px}}
@media(prefers-reduced-motion:reduce){.teaser-shelf:hover img{transform:none}}
/* The intro turns visible at once when it opens, so its controls can take focus,
   and stays visible through its fade when it closes. */
.intro{transition:opacity .7s,visibility 0s}.intro.finished{transition:opacity .7s,visibility 0s .7s}
/* A visitor who has already seen the intro this session skips its entry gate. */
.intro-seen .intro:not(.playing){display:none}
