/* Access guide identity: aged brass, dark leather and clipped wooden tickets. */
:root{
  --access-leather:#22372d;
  --access-leather-dark:#17251e;
  --access-brass:#b39459;
  --access-pale:#e5c98b;
}
body{background-color:#100e0a}
.topbar{border-bottom:2px solid #8a6a3c;box-shadow:0 3px 0 #14130d,0 8px 18px #0006}
.brand small{letter-spacing:1.65px}
.search-wrap input{border-color:#685b3d;border-radius:3px;background:#24271b}
.btn{border-radius:3px;box-shadow:inset 0 0 0 1px #fff3a955,0 3px 0 #4c2e0c}
.btn.secondary{background:linear-gradient(#3b5340,#20372b);border-color:#9b885a;color:#f7e4b6;box-shadow:inset 0 0 0 1px #c5bc8a22,0 3px 0 #101c14}
.sidebar{border-right:2px solid #645038;background:linear-gradient(90deg,#211b11,#171710)}
.nav-link{border-bottom:1px solid #55402a;box-shadow:0 2px 0 #080b07;border-radius:2px;margin-bottom:3px}
.nav-link:hover,.nav-link.active{background:linear-gradient(90deg,#314736,#202b20);color:#ffe1a0;box-shadow:inset 3px 0 #cba763}
.nav-link svg{color:#cdb578}
.side-bottom{border:1px solid #74613c;border-radius:2px;background:#253126;outline:1px dashed #94825a66;outline-offset:-5px}

.hero{
  margin:23px 26px 0;
  padding:35px 4%;
  min-height:360px;
  border:1px solid #957342;
  border-radius:10px 2px 10px 2px;
  box-shadow:0 0 0 4px #19170f,0 0 0 5px #55402a,0 12px 24px #0005;
}
.hero:after{background:linear-gradient(90deg,#10221866,transparent 76%)}
.hero-bg{object-position:65% center}
.hero-copy{
  position:relative;
  width:54%;max-width:660px;
  padding:27px 31px 29px;
  border:1px solid #c2a36b;
  border-radius:12px 3px 12px 3px;
  outline:1px dashed #c5b17a99;
  outline-offset:-9px;
  background:radial-gradient(ellipse at 0 0,#52634644,transparent 70%),linear-gradient(120deg,#243d30f5,#17271ff2);
  box-shadow:inset 0 0 0 4px #13251d,0 0 0 4px #402c17,0 10px 20px #0007;
  transform:none;
  text-align:left;
}
.hero-copy:before,.hero-copy:after{
  content:'';position:absolute;top:13px;width:5px;height:5px;border-radius:50%;
  background:#d5b577;box-shadow:0 1px 2px #000,0 0 0 1px #70542d;
}
.hero-copy:before{left:13px}.hero-copy:after{right:13px}
.hero-copy h1{color:#ffe7b2;font-size:clamp(28px,2.35vw,34px);line-height:1.3;text-shadow:0 2px 0 #101c15;margin-bottom:16px}
.hero-copy p{margin-left:0;margin-right:0;color:#ecdfbf;font-size:18px;max-width:480px}
.hero-copy .eyebrow{color:#c9b77c;font-family:Podkova,Georgia,serif;font-size:11px;letter-spacing:1.8px;padding-right:8px}
.hero-actions{justify-content:flex-start;gap:12px}
.hero-note{bottom:12px;right:16px;border:1px solid #a78953;border-radius:2px;background:#1b251bd9;color:#efdfb6;letter-spacing:.4px;font-size:9px}

.category-bar{background:transparent;border-bottom:1px solid #51422a;padding-top:24px;padding-bottom:19px;gap:12px}
.head-tab{
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
  background:linear-gradient(#795534,#4b321e);
  box-shadow:inset 0 0 0 1px #a2814b,inset 0 -3px 0 #987543;
  padding:12px 20px;font-size:11px;
}
.head-tab:hover{background:linear-gradient(#866640,#594327);filter:none}
.head-tab svg{color:#ead4a0;width:22px;height:22px}
.section-heading{gap:16px;position:relative}
.section-heading:after{
  height:10px;
  background:linear-gradient(45deg,transparent 30%,#b39459 31% 69%,transparent 70%) left center/8px 8px no-repeat,linear-gradient(90deg,#826b41,transparent) 17px 3px/calc(100% - 17px) 1px no-repeat,linear-gradient(90deg,#4e432d,transparent) 17px 7px/calc(100% - 17px) 1px no-repeat;
}
.section-heading h2{color:#e8c585;font-size:22px;letter-spacing:.2px}
.filters{gap:8px;padding-bottom:16px}
.filter{border-color:#6e5b37;border-radius:3px 11px 3px 11px;background:#232319;padding:9px 17px;color:#cfc1a0;font-size:14px;position:relative}
.filter[aria-selected=true]{color:#f6e3b4;background:linear-gradient(#3f5740,#243d2d);border-color:#b99c61;box-shadow:inset 0 0 0 2px #192a1c,inset 0 -3px 0 #5b7149}
.filter[aria-selected=true]:before{content:'';display:inline-block;width:6px;height:6px;margin-right:9px;background:#dfbb70;transform:rotate(45deg);vertical-align:2px}

.game-card{padding:3px;border:1px solid #947342;border-radius:9px 9px 2px 2px;background:#2a2518;box-shadow:0 6px 12px #0005}
.game-card:before,.game-card:after{content:'';position:absolute;z-index:3;top:7px;width:4px;height:4px;border-radius:50%;background:#d7b879;box-shadow:0 0 0 1px #6c4c22,0 1px 3px #000;pointer-events:none}
.game-card:before{left:7px}.game-card:after{right:7px}
.game-art{border-radius:5px 5px 2px 2px}
.game-title{justify-content:flex-start;text-align:left;padding:12px 11px;min-height:57px;color:#e8d4a7;background:linear-gradient(90deg,#24372b,#19271f);border-top:1px solid #998052;font-size:15px;line-height:1.35}
.game-card:hover{background:#b9995e;transform:translateY(-3px);border-color:#d8bd7c}
.play-circle{background:linear-gradient(#f1da9d,#bd9550);border-color:#f5dda8;color:#253627}
.games-note{color:#b0a183}

.feature{border-radius:8px 2px 8px 2px;border-color:#7d6941;background:radial-gradient(ellipse at 95% 0,#7c754733,transparent 60%),linear-gradient(120deg,#2d3b2b,#1d291e);box-shadow:inset 0 0 0 4px #172218}
.feature h3{font-size:20px;color:#ebd4a2}
.feature .eyebrow{color:#baa672;font-family:Podkova,Georgia,serif;letter-spacing:1.4px}
.feature svg{color:#bda563;opacity:.25}
.feature:hover{border-color:#cfb36b;background-color:#35472f}
.sub-hero{border-radius:9px 2px 9px 2px;border-color:#9d8150;border-left:4px solid #b79b62;background:radial-gradient(ellipse at 90% 60%,#7b70412e,transparent 70%),linear-gradient(110deg,#293d2e,#201c13)}
.sub-hero .eyebrow{color:#bbaa77}
.sub-hero h1{color:#f1d6a3;text-shadow:0 2px 0 #172419;font-size:33px}
.article{border-radius:5px 1px 5px 1px;border-left:3px solid #9a8455;border-top-color:#8b7043;background:linear-gradient(135deg,#28261b,#1b1b13);box-shadow:inset 0 4px 0 #131a11;color:#dbcfb6}
.article h2{color:#e8c98b}
.read-label{display:inline-block;background:#26392a;color:#cbb77c;padding:6px 11px;border-left:2px solid #b59a5d;border-radius:0 3px 3px 0;line-height:1.6}
.toc{border-radius:6px 1px 6px 1px;border-color:#72613d;border-top:2px solid #b6995b;background:#1c2a20;box-shadow:inset 0 0 0 4px #172118}
.toc strong{color:#e6d2a1}.toc a{color:#cabf9f;border-bottom-color:#485038}
.library a{border-radius:5px 1px 5px 1px;border-color:#5f5838;background:linear-gradient(120deg,#272b1e,#1d2117);box-shadow:inset 2px 0 #7a7247;color:#d1c3a3}
.library a:hover{background:#2f3e2b;border-color:#baa16b}
.footer{border-top:2px solid #b3985b;background:linear-gradient(#18251b,#16130c 70%);box-shadow:0 -5px 0 #242c1d}
.footer-label{color:#b9a774}.footer-links{border-color:#495138}
.mark{background:#1c251b;border-color:#4f573b;border-radius:2px}
.legal{border-top-color:#495138}.age{border-color:#bba36e;color:#e0cc9e}
.bottom-nav{background:linear-gradient(#2c3c2a,#182419);border-top-color:#b29860}
.game-modal{border-radius:9px 2px 9px 2px;border-color:#b99e64;background:#202d21;box-shadow:0 24px 100px #000b,inset 0 0 0 4px #152217}
.game-modal-art{background:radial-gradient(ellipse at center,#74613b55,transparent 70%),#182117;border-color:#7a7047}
.game-modal-type{border-radius:3px;border-color:#8a8051;background:#162419;color:#d9c18c}
.game-modal-close{border-color:#a48f5b;background:#203021;color:#e2ca91}

@media(min-width:1600px){.hero{min-height:390px}.hero-copy{width:49%}}
@media(max-width:1100px){.hero{margin:20px 20px 0;padding:29px 4%;min-height:350px}.hero-copy{width:59%;padding:24px}.hero-copy h1{font-size:32px}.hero-copy p{font-size:17px}.section-heading h2{font-size:21px}.head-tab{padding:11px 17px}}
@media(max-width:820px){.hero{min-height:355px}.hero-copy{width:59%}.toc{box-shadow:none}.hero-copy h1{font-size:30px}.category-bar{padding-top:22px}.side-bottom{margin-top:22px}}
@media(max-width:560px){
  .hero{margin:15px 15px 0;padding:78px 14px 24px;min-height:420px;align-items:flex-end;border-radius:8px 2px 8px 2px}
  .hero-bg{object-position:69% center}
  .hero:after{background:linear-gradient(0deg,#12221988,transparent 90%)}
  .hero-copy{width:100%;padding:20px 21px 22px;border-radius:9px 2px 9px 2px;outline-offset:-7px;background:linear-gradient(120deg,#243d30f2,#17271ff0);box-shadow:0 0 0 3px #402c17,0 8px 16px #0006}
  .hero-copy h1{font-size:25px;line-height:1.3;margin-bottom:12px}
  .hero-copy p{font-size:16px;margin-bottom:18px;line-height:1.5}
  .hero-copy .eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:10px}
  .hero-copy:before,.hero-copy:after{width:4px;height:4px;top:10px}.hero-copy:before{left:10px}.hero-copy:after{right:10px}
  .hero-actions{gap:8px}.hero-actions .btn{font-size:9px;padding:11px 10px;min-height:42px}
  .hero-note{font-size:7px;bottom:5px;right:8px;padding:2px 5px;border:0;background:#192719dd;letter-spacing:0}
  .category-bar{padding:22px 15px 17px;gap:9px}.head-tab{font-size:10px;padding:11px 16px}.head-tab svg{width:20px;height:20px}
  .section-heading{gap:12px}.section-heading h2{font-size:19px;line-height:1.4}.section-heading:after{min-width:25px}
  .filter{font-size:13px;padding:9px 13px}.filter[aria-selected=true]:before{margin-right:7px;width:5px;height:5px;vertical-align:1px}
  .game-title{font-size:14px;padding:10px 9px;min-height:59px}.feature h3{font-size:20px}
  .sub-hero h1{font-size:28px}.sub-hero{border-left-width:3px}
  .read-label{font-size:8px;padding:5px 8px}.article{border-left-width:2px}
}

/* A grouped directory with raised headers and inset link lists. */
.library-directory{margin-top:35px;margin-bottom:40px}
.library-directory>.section-heading{margin-bottom:24px}
.library-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
.library-panel{min-width:0;position:relative;border:1px solid #8f7548;border-radius:10px 3px 10px 3px;background:linear-gradient(125deg,#29392a,#1a291e 60%,#162219);box-shadow:0 5px 0 #0e150e,0 12px 22px #0005,inset 0 0 0 4px #182317;overflow:hidden}
.library-panel:before,.library-panel:after{content:'';position:absolute;top:9px;z-index:2;width:4px;height:4px;border-radius:50%;background:#d0b274;box-shadow:0 1px 2px #000;pointer-events:none}
.library-panel:before{left:10px}.library-panel:after{right:10px}
.library-panel-head{display:flex;align-items:center;gap:13px;min-height:93px;padding:19px 19px 17px;border-bottom:1px solid #a58850;background:repeating-linear-gradient(0deg,#5b432d22 0 3px,transparent 4px 8px),linear-gradient(120deg,#665033,#3a3523 65%,#2c3928);box-shadow:0 4px 8px #0005,inset 0 1px 0 #c7b08044;position:relative}
.library-panel-head>div{min-width:0}
.library-panel-icon{width:41px;height:43px;flex:0 0 41px;display:grid;place-items:center;border:1px solid #bca16b;border-radius:6px 1px 6px 1px;background:linear-gradient(145deg,#364a31,#1b2b1f);box-shadow:inset 0 0 0 3px #1a281b,0 3px 5px #0006;color:#e6cc91}
.library-panel-icon svg{width:23px;height:23px}
.library-panel-head h3{font-family:Ultra,Georgia,serif;font-size:16px;line-height:1.45;font-weight:400;color:#f0d7a0;margin:0 0 5px;text-shadow:0 2px 0 #292419}
.library-panel-head p{font:13px/1.45 Podkova,Georgia,serif;color:#c5b58f;margin:0}
.library-panel-links{display:flex;flex-direction:column;padding:10px 15px 14px;position:relative}
.library-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;padding:10px 8px;border-bottom:1px solid #a5966133;color:#dacbab;font:15px/1.45 Podkova,Georgia,serif;transition:background .16s,color .16s,padding .16s;position:relative}
.library-row:last-child{border-bottom:0}
.library-row>span:first-child{min-width:0;overflow-wrap:break-word}
.library-row-arrow{display:grid;place-items:center;flex:0 0 23px;width:23px;height:23px;border:1px solid #8a815344;border-radius:50%;color:#ad985f;font:16px/1 Arial,sans-serif;background:#13201766;transition:background .16s,color .16s,border-color .16s}
.library-row:hover{background:linear-gradient(90deg,#62704a33,#3e503633);color:#ffe2a6;padding-left:12px;border-radius:3px}
.library-row:hover .library-row-arrow{background:#3c5134;border-color:#b69b5e;color:#f0cc7d}
.library-row:focus-visible{outline:2px solid #e8c67d;outline-offset:0;border-radius:2px}
@media(max-width:1160px){.library-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.library-panel-head h3{font-size:16px}}
@media(max-width:560px){.library-directory{margin-top:30px;margin-bottom:28px}.library-groups{grid-template-columns:1fr;gap:20px}.library-panel-head{min-height:86px;padding:17px 18px 15px}.library-panel-head h3{font-size:17px}.library-panel-head p{font-size:13px}.library-panel-links{padding:8px 14px 11px}.library-row{min-height:44px;padding:10px 8px;font-size:16px}.library-panel-icon{width:40px;height:42px;flex-basis:40px}}
@media(prefers-reduced-motion:reduce){.library-row,.library-row-arrow{transition:none}}

/* Keep long editorial tables within the article column on small screens. */
.article-layout>*{min-width:0}
.article{min-width:0;overflow-wrap:break-word}
.article .table-scroll{max-width:100%}
.toc a{overflow-wrap:anywhere}

/* Keep game covers complete in both the main lobby and the compact catalogues. */
.game-card .game-art,
.game-card.compact .game-art {
  aspect-ratio: var(--game-art-ratio, 3 / 4);
  background: #171c15;
}
.game-card .game-art img {
  width: 100%;
  height: 100%;
  object-fit: var(--game-art-fit, contain);
  object-position: var(--game-art-position, center);
  transform: none;
}
.game-card:hover .game-art img { transform: none; }
.game-card[data-preview-suppressed] .card-overlay { opacity: 0; }
.games-grid.games-grid--fitted {
  display: flex;
}
.games-grid--fitted > .game-card {
  flex: var(--game-card-grow, 0.75) 1 8px;
}
.games-grid--portrait > .game-card {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
}
.games-grid--portrait .game-card .game-art {
  aspect-ratio: 9 / 16;
  width: 100%;
  flex-shrink: 0;
}
.games-grid--portrait .game-art img {
  object-fit: cover;
}
.games-grid--portrait .game-title {
  flex: 1;
  min-height: 65px;
}
@media (max-width: 560px) {
  .games-grid.games-grid--fitted {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
  .games-grid.games-grid--portrait { align-items: stretch; }
}

.back-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 30;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: 62px;
  height: 62px;
  padding: 7px;
  border: 1px solid #c3a061;
  border-radius: 8px 2px 8px 2px;
  background: linear-gradient(#3c513d, #1c3023);
  box-shadow: inset 0 0 0 3px #16251c, 0 5px 16px #0007;
  color: #f4d69a;
  font: 12px/1.2 Podkova, Georgia, serif;
}
.back-to-top svg { width: 24px; height: 24px; }
.back-to-top:hover { background: linear-gradient(#536b4a, #293e2c); }
body.game-modal-open .back-to-top,
body.menu-open .back-to-top { display: none; }
@media (max-width: 820px) {
  .back-to-top {
    right: 16px;
    bottom: calc(80px + env(safe-area-inset-bottom));
    width: 54px;
    height: 54px;
  }
}
