:root{
  --paper:#f3ead8;
  --ink:#2a2218;
  --oxblood:#7f2630;
  --dust:#8a7460;
  --sage:#5c6b4a;
  --rule:rgba(42,34,24,.16);
  --store-bg:#14120e;
  --store-ink:#f0dfbb;
  --store-gold:#d9b25a;
  --store-dim:#8c7350;
  --ease:cubic-bezier(.22,.8,.22,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Georgia,"Times New Roman",serif;color:var(--ink);background:var(--paper);line-height:1.55}
img{max-width:100%;display:block}
a{color:inherit}
button,input,select{font:inherit}
.skip{position:absolute;left:12px;top:-80px;background:#fff;padding:8px 12px;z-index:9}
.skip:focus{top:12px}

.brand-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 5vw;border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:20}
.cream-header{background:rgba(243,234,216,.94);backdrop-filter:blur(8px)}
.store-header{background:rgba(20,18,14,.96);color:var(--store-ink);border-bottom-color:rgba(217,178,90,.2)}
.brandmark img{height:52px;width:auto}
.brand-nav{display:flex;flex-wrap:wrap;gap:14px 20px;font:800 10px/1.2 Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.brand-nav a{text-decoration:none;opacity:.72}
.brand-nav a:hover,.brand-nav a.active{opacity:1}
.register-link{border:1px solid currentColor;padding:8px 10px}
.nav-toggle{display:none;background:none;border:1px solid currentColor;color:inherit;padding:8px 10px;text-transform:uppercase;letter-spacing:.12em;font:800 10px/1 Arial,sans-serif}

.site-footer{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:36px 5vw;border-top:1px solid var(--rule);font-size:.95rem}
.store-world .site-footer{background:#100e0b;color:var(--store-ink);border-top-color:rgba(217,178,90,.18)}
.footer-links{display:flex;flex-direction:column;gap:8px}
.footer-links .curtain-link{font-size:.78rem;opacity:.7}
.footer-links .uba-laureate{display:inline-flex;align-items:center;gap:10px;margin-top:8px;text-decoration:none;color:#b8923a;font-size:.8rem;line-height:1.25}
.store-world .footer-links .uba-laureate{color:#d9b25a}
.footer-links .uba-laureate img{width:38px;height:64px;display:block}

.page-hero,.cream-page-title,.store-sign-copy{padding:48px 5vw 20px;max-width:980px}
h1{font-size:clamp(2.6rem,6vw,5.2rem);line-height:.9;letter-spacing:-.04em;margin:0 0 16px}
.scriptline,.kicker,.eyebrow{display:block;font:800 10px/1.3 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--oxblood);margin-bottom:12px}
.store-world .kicker,.store-world .eyebrow{color:var(--store-gold)}
.store-world .cream-page-title,.store-world .lede{color:var(--store-ink)}
.store-world .cream-page-title h1,.store-world .cream-page-title h2{color:var(--store-gold)}
.store-world{background:var(--store-bg);color:var(--store-ink)}
.store-world .catalog-card,.store-world .dept-grid a,.store-world .staff-card,.store-world .map-grid article,.store-world .weekday,.store-world .calendar-day{background:#1c1914;border-color:rgba(217,178,90,.22);color:var(--store-ink)}
.store-world .quiet-wrong{border-color:rgba(217,178,90,.35);color:var(--store-ink)}
.store-world .filter-row button{border-color:rgba(217,178,90,.35);color:var(--store-ink)}
.store-world .filter-row button.active{background:var(--store-gold);color:#16120c}
.lede{font-size:1.12rem;max-width:62ch;color:#4a4034}

.btn,.store-button,.add-button,input[type=submit]{
  display:inline-block;text-decoration:none;border:1px solid currentColor;background:var(--oxblood);color:#fff;
  padding:12px 16px;font:800 10px/1 Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer
}
.store-button,.store-world .add-button{background:var(--store-gold);color:#16120c;border-color:var(--store-gold)}
.text-link{font:800 11px/1 Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}

/* portal */
.portal{min-height:100vh;display:grid;grid-template-rows:1fr 1fr}
.half{position:relative;min-height:50vh;overflow:hidden;display:flex;align-items:flex-end;padding:36px 5vw 40px;text-decoration:none;color:inherit}
.half img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.half::after{content:"";position:absolute;inset:0}
.cream-half{color:#2a2218}
.cream-half::after{background:linear-gradient(180deg,rgba(243,234,216,.15),rgba(243,234,216,.92))}
.store-half{color:var(--store-ink)}
.store-half::after{background:linear-gradient(180deg,rgba(16,14,11,.2),rgba(16,14,11,.94))}
.half-copy{position:relative;z-index:1;max-width:720px}
.half h1{font-size:clamp(3rem,7vw,6rem)}
.store-half h1{font-family:Impact,"Arial Narrow",Arial,sans-serif;text-transform:uppercase;color:var(--store-gold);text-shadow:0 3px 0 #3a2418}
.choose-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;background:rgba(20,18,14,.88);color:#f0dfbb;padding:10px 16px;border:1px solid rgba(240,223,187,.35);font:800 10px/1.3 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}

.split-note{padding:28px 5vw;text-align:center;background:#2a2218;color:#f0dfbb;font-size:.95rem}
.split-note b{display:block;letter-spacing:.16em;text-transform:uppercase;font:800 10px/1.2 Arial,sans-serif;color:var(--store-gold);margin-bottom:8px}

.cream-hero,.store-hero{display:grid;grid-template-columns:1.1fr .9fr;min-height:68vh}
.cream-hero img,.store-hero img{width:100%;height:100%;object-fit:cover;min-height:360px}
.cream-hero-card,.store-sign-copy{padding:48px 8% 48px;display:flex;flex-direction:column;justify-content:center}
.button-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

.board{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#c9b89a;border:1px solid #c9b89a;margin:0 5vw 48px}
.board div{background:#fff8ee;padding:16px}
.board b{display:block;font-size:1.15rem}
.board span{color:var(--dust);font-size:.86rem}
.board strong{display:block;margin-top:8px;color:var(--sage)}

.photo-products,.dept-grid,.girls-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:0 5vw 56px}
.photo-products article,.dept-grid a,.girl-card{background:#fff8ee;border:1px solid #d7c4a2;text-decoration:none;color:inherit}
.photo-products img,.dept-grid img{width:100%;aspect-ratio:4/3;object-fit:cover}
.photo-products div,.dept-grid a,.girl-card > div{padding:14px 16px}
.girl-card{display:flex;flex-direction:column}
.girl-card img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 8%;filter:saturate(.88) contrast(1.04)}
.mono{height:220px;display:flex;align-items:flex-end;padding:18px;font-size:5rem;line-height:1;color:#fff;font-family:Georgia,serif}
.mono.d{background:#7f2630}.mono.b{background:#3e4a32}.mono.c{background:#5a4636}
.mono.u{background:#6d3a2e}.mono.m{background:#2f3f38}.mono.h{background:#8a5a28}
.mono.l{background:#4a3a4e}.mono.r{background:#35505a}

.catalog-tools{display:flex;gap:16px;flex-wrap:wrap;padding:0 5vw 20px;align-items:end}
.filter-row{display:flex;flex-wrap:wrap;gap:8px}
.filter-row button{border:1px solid var(--rule);background:transparent;padding:8px 10px;cursor:pointer}
.filter-row button.active{background:var(--ink);color:#fff}
.catalog-group{padding:0 5vw 32px}
.catalog-list{display:grid;gap:16px}
.catalog-card{display:grid;grid-template-columns:160px 1fr;gap:16px;background:#fff8ee;border:1px solid #d7c4a2}
.catalog-card img{width:160px;height:100%;object-fit:cover}
.catalog-card > div{padding:14px 16px}
.catalog-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:10px}
.tag{font:800 10px/1.2 Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--oxblood)}

.ledger-row,.batch-rows > div{display:grid;grid-template-columns:80px 140px 1fr 180px;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule)}
.batch-hero{position:relative}
.batch-hero img{width:100%;height:380px;object-fit:cover;filter:saturate(.7)}
.board-overlay{position:absolute;inset:auto 5vw 28px;background:rgba(243,234,216,.92);padding:24px;max-width:720px}
.batch-table,.paper-section{padding:28px 5vw 48px}

.cart-row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--rule)}
.cart-controls{display:flex;gap:8px;align-items:center}
.empty-cart{padding:40px 5vw}
#hold-form{padding:0 5vw 48px;display:grid;gap:10px;max-width:480px}
#hold-form input{padding:10px;border:1px solid var(--rule);background:#fff}

.calendar-wrap{padding:0 5vw 56px}
.cal-nav{display:flex;gap:12px;align-items:center;margin-bottom:16px}
#calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.weekday,.calendar-day{background:#fff8ee;border:1px solid #e2d3b6;padding:8px;min-height:92px;font-size:.85rem}
.weekday{min-height:auto;font:800 10px/1 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.calendar-day.other{opacity:.4}
.event-chip{display:block;width:100%;margin-top:6px;border:0;background:#7f2630;color:#fff;font-size:.72rem;padding:4px;cursor:pointer;text-align:left}
dialog{border:1px solid #d7c4a2;padding:24px;max-width:480px}

.staff-grid,.visit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;padding:0 5vw 56px}
.staff-card{display:grid;grid-template-columns:160px 1fr;background:#fff8ee;border:1px solid #d7c4a2}
.staff-card img{width:160px;height:100%;object-fit:cover}
.staff-card div{padding:16px}
.story-body{padding:0 5vw 56px;max-width:820px}
.story-body article{margin-bottom:36px}
.story-hero{display:grid;grid-template-columns:1fr 1fr;min-height:50vh}
.story-hero img{width:100%;height:100%;object-fit:cover}
.story-hero div{padding:48px 8%;display:flex;flex-direction:column;justify-content:center}
.shared-header{display:flex;justify-content:space-between;align-items:center;padding:16px 5vw;background:#2a2218;color:#f0dfbb}
.shared-header img{height:46px}
.story-choice{display:grid;grid-template-columns:1fr 1fr}
.story-choice a{padding:36px 5vw;text-decoration:none}
.story-choice a:first-child{background:#efe4d2}
.story-choice a:last-child{background:#14120e;color:var(--store-ink)}

.quiet-wrong{margin:0 5vw 56px;padding:28px;border:1px dashed #b79a72;display:flex;justify-content:space-between;gap:24px;align-items:center}
.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 5vw 56px}
.map-grid article{background:#fff8ee;border:1px solid #d7c4a2;padding:16px}

@media(max-width:980px){
  .cream-hero,.store-hero,.story-hero,.staff-card,.catalog-card{grid-template-columns:1fr}
  .photo-products,.dept-grid,.girls-grid,.board{grid-template-columns:repeat(2,1fr)}
  .nav-toggle{display:block}
  .brand-nav{display:none;width:100%}
  .brand-nav.open{display:flex}
  .brand-header{flex-wrap:wrap}
  .ledger-row,.batch-rows > div{grid-template-columns:1fr 1fr}
  .staff-grid,.visit-grid,.story-choice,.map-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .photo-products,.dept-grid,.girls-grid,.board,#calendar-grid{grid-template-columns:1fr}
}

/* ---- split-site additions: links on cards, detail pages, people pages ---- */
.photo-products a{background:#fff8ee;border:1px solid #d7c4a2;text-decoration:none;color:inherit;display:block}
.board b a,.batch-rows b a,.ledger-row a,.cream-page-title h2 a,.quiet-wrong h2 a{text-decoration:none;border-bottom:1px dotted currentColor}
a.staff-card{text-decoration:none;color:inherit}
a.girl-card:hover,a.staff-card:hover,.photo-products a:hover,.related-card:hover{border-color:var(--oxblood)}
.store-world a.staff-card:hover,.store-world .related-card:hover{border-color:var(--store-gold)}
.catalog-card h3 a,.cart-row h3 a{text-decoration:none}
.catalog-card h3 a:hover,.cart-row h3 a:hover{text-decoration:underline}
.catalog-img{display:block}
.catalog-img img{width:160px;height:100%;object-fit:cover}
.staff-card.one-col{grid-template-columns:1fr}
.cart-total-line{padding:0 5vw}
.shared-mid{font:800 10px/1.3 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.store-world .quiet-wrong a,.store-world .map-grid a{color:var(--store-gold)}

.crumbs{padding:22px 5vw 0;font:800 10px/1.3 Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.crumbs a{text-decoration:none}
.detail{display:grid;grid-template-columns:minmax(260px,.9fr) 1.1fr;gap:40px;padding:24px 5vw 56px;align-items:start}
.detail > img,.detail > .mono{width:100%;aspect-ratio:4/5;object-fit:cover;border:1px solid #d7c4a2}
.detail.person > img{object-position:center 10%}
.detail > .mono{height:auto;font-size:9rem}
.detail h1{font-size:clamp(2.4rem,5vw,4.2rem)}
.detail h2{font-size:1.1rem;margin:28px 0 8px}
.detail-price{font-size:1.25rem;margin:0 0 12px}
.detail-who{margin:16px 0}
.detail .button-row{margin-top:24px}
.board-note{margin-top:20px;padding:16px 18px;background:#fff8ee;border:1px solid #d7c4a2}
.board-note p{margin:0}
.lot-list{list-style:none;padding:0;margin:0}
.lot-list li{padding:8px 0;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;gap:12px}
.lot-list a{text-decoration:none;font-weight:bold}
.related{padding:0 5vw 56px}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.related-card{display:flex;flex-direction:column;gap:6px;background:#fff8ee;border:1px solid #d7c4a2;text-decoration:none;color:inherit;padding:0 0 14px}
.related-card img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:6px}
.related-card .tag,.related-card b,.related-card small{padding:0 14px}
.store-world .detail > img,.store-world .detail > .mono{border-color:rgba(217,178,90,.3)}
.store-world .detail h1{color:var(--store-gold)}
.store-world .related-card,.store-world .board-note{background:#1c1914;border-color:rgba(217,178,90,.22);color:var(--store-ink)}
.store-world .lot-list li{border-bottom-color:rgba(217,178,90,.18)}
.store-world .tag{color:var(--store-gold)}
@media(max-width:980px){
  .detail{grid-template-columns:1fr}
  .detail > img,.detail > .mono{max-width:480px}
  .related-grid{grid-template-columns:1fr 1fr}
  .catalog-img img{width:100%;height:220px}
}
@media(max-width:620px){.related-grid{grid-template-columns:1fr}}

/* Counter tickets and practical small-screen layouts. */
.counter-ticket{margin:24px 5vw 48px;padding:28px;max-width:720px;border:1px solid var(--rule);background:#fff8ee;color:var(--ink)}
.counter-ticket ul{list-style:none;padding:0}.counter-ticket li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--rule)}
button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ab7132;outline-offset:4px}
#month-agenda{display:none}.agenda-event{display:block;width:100%;padding:16px;text-align:left;background:#1c1914;color:var(--store-ink);border:1px solid var(--store-dim);margin:8px 0}
.batch-hero{padding:28px 5vw;background:#d7c4a2;display:grid;grid-template-columns:1fr 2fr;gap:24px;align-items:start}.batch-hero img{height:100%;min-height:360px}.board-overlay{position:static;max-width:none;min-width:0}.batch-rows>div{grid-template-columns:1fr 1fr 1.4fr}.batch-hero h1{font-size:clamp(2.5rem,5vw,4.5rem)}
.floor-plan{counter-reset:aisle}.floor-plan article{position:relative;border-top:4px solid var(--store-gold)}.floor-plan article:before{counter-increment:aisle;content:counter(aisle,decimal-leading-zero);display:block;color:var(--store-gold);font:700 12px Arial,sans-serif;margin-bottom:12px}
.upcoming-card{display:grid;gap:8px;padding:18px 0;border-bottom:1px solid var(--store-dim)}.upcoming-card button{background:none;color:inherit;text-align:left;border:0;padding:0;text-decoration:underline;font-size:1.15rem}
@media(max-width:980px){.batch-hero{grid-template-columns:1fr}.batch-hero img{height:200px;min-height:0}.staff-card img{width:100%;height:auto;max-height:460px}.quiet-wrong{flex-wrap:wrap}}
@media(max-width:620px){#calendar-grid{display:none}#month-agenda{display:block}.cart-row{grid-template-columns:1fr auto}.cart-row>div:first-child{grid-column:1/-1}.batch-rows>div,.ledger-row{grid-template-columns:1fr 1fr}.batch-rows strong{grid-column:1/-1}.shared-header{gap:12px;flex-wrap:wrap}.shared-header img{height:auto;width:130px}.shared-mid{display:none}.cal-nav h2{font-size:1.2rem}.counter-ticket{padding:18px}.catalog-meta{flex-wrap:wrap}.brand-nav a{padding:10px 0}}
@media print{body{background:white!important;color:black!important}body>*{display:none!important}body>main{display:block!important}main>*{display:none!important}main>#hold-confirmation{display:block!important}.counter-ticket{margin:0;border:0;max-width:none;background:white}.counter-ticket .button-row{display:none!important}}
