/* Interior pages only: Contact + Executive Board.
   Rooms and storefront index are frozen. Do not edit room.css from here.
   Loaded AFTER room.css. Board/contact extras only. */

/* Contact and Board nav clone the room pill — no current-page pink edge. */

/* Contact email — room gift-card type, no extra scale. */
body.room-contact .mail{
  margin:0;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
body.room-contact .mail a{color:var(--ink)}
body.room-contact:not(.room-index) .hall > .lede{
  margin-top:0;
  width:min(80vw,1100px);
  max-width:min(80vw,1100px);
}
body.room-contact:not(.room-index) .hall > .gift{margin-top:var(--space-title-tagline)}

/* Board grid uses the same 980 plate as rooms, so side sky stays open.
   Stack gaps come from room.css --rhythm / --space-nav-gutter. */
body.room-board{
  --board-card-w:680px;
  --board-gap:var(--card-gap);
  --board-w:calc(var(--board-card-w) * 2 + var(--board-gap));
  --board-plate:var(--plate);
  --board-text-h:400px;
  --text-name-row:calc(var(--text-name-size) * 1.2);
  --text-role-row:calc(var(--text-role-size) * 1.3 * 2);
  --board-char-h:956px;
  --text-name-h:108px;
  --text-role-h:80px;
  --char-name-h:152px;
  --char-role-h:84px;
  --text-name-size:96px;
  --text-role-size:28px;
  --char-name-size:60px;
  --char-role-size:28px;
}
body.room-board:not(.room-index) .hall > .pill:not(.free):not(.price){
  margin-top:0 !important;
  width:var(--board-plate) !important;
  min-width:var(--board-plate) !important;
  max-width:var(--board-plate) !important;
}
body.room-board:not(.room-index) .hall > .pill + h1{
  margin-top:var(--rhythm) !important;
  margin-inline:auto;
  box-sizing:border-box;
  width:max-content;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
body.room-board:not(.room-index) .hall > .lede{
  margin-top:var(--rhythm) !important;
  margin-inline:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:min(80vw,1100px);
  text-align:center;
}
body.room-board:not(.room-index) .hall > .lede .lede-line{
  display:block;
  width:100%;
  text-align:center;
}
body.room-board:not(.room-index) .hall > .board{
  display:grid !important;
  grid-template-columns:repeat(2, var(--board-card-w));
  justify-content:center;
  gap:var(--board-gap);
  width:var(--board-w);
  max-width:100%;
  margin-inline:auto;
  margin-top:var(--rhythm) !important;
}
body.room-board .board .card{
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:center;
  width:var(--board-card-w);
  max-width:var(--board-card-w);
  min-width:var(--board-card-w);
  height:var(--board-char-h);
  min-height:var(--board-char-h);
  max-height:var(--board-char-h);
  margin:0;
  padding:16px 28px 28px;
  border-radius:32px;
  border:2px solid var(--edge);
  background:#fff;
  box-shadow:var(--lift);
  gap:0;
  overflow:hidden;
}
body.room-board .board .card.text-only{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  height:var(--board-text-h);
  min-height:var(--board-text-h);
  max-height:var(--board-text-h);
  padding:28px 28px 32px;
  border-radius:999px;
}
body.room-board .board .card.text-only h3{
  box-sizing:border-box;
  width:100%;
  height:var(--text-name-row);
  min-height:var(--text-name-row);
  max-height:var(--text-name-row);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:var(--text-name-size);
  line-height:1;
  letter-spacing:-.03em;
  white-space:nowrap;
  overflow:visible;
  flex-shrink:0;
  padding:0;
}
body.room-board .board .card.text-only .role{
  box-sizing:border-box;
  width:100%;
  height:var(--text-role-row);
  min-height:var(--text-role-row);
  max-height:var(--text-role-row);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  font-size:var(--text-role-size);
  line-height:1.3;
  overflow:visible;
  margin:12px 0 0;
  padding:0;
}
body.room-board .board-finale{
  grid-column:1 / -1;
  display:flex;
  justify-content:center;
  width:100%;
}
body.room-board .board .card.board-last{
  width:var(--board-card-w) !important;
  max-width:var(--board-card-w) !important;
  height:var(--board-char-h) !important;
  min-height:var(--board-char-h) !important;
  max-height:var(--board-char-h) !important;
  flex:0 0 var(--board-card-w);
}
body.room-board .board-stage{
  container-type:size;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:1 1 auto;
  width:100%;
  min-height:0;
  overflow:hidden;
}
body.room-board .portrait{
  --face-top-frac:0;
  --face-bottom-frac:0;
  --face-left-frac:0;
  --face-right-frac:0;
  --vis-h:calc(1 - var(--face-top-frac) - var(--face-bottom-frac));
  --vis-w:calc(1 - var(--face-left-frac) - var(--face-right-frac));
  display:block;
  width:min(100cqi, calc(100cqb * var(--vis-w) / var(--vis-h)));
  height:min(100cqb, calc(100cqi * var(--vis-h) / var(--vis-w)));
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  object-view-box:inset(
    calc(var(--face-top-frac) * 100%)
    calc(var(--face-right-frac) * 100%)
    calc(var(--face-bottom-frac) * 100%)
    calc(var(--face-left-frac) * 100%)
  );
  margin:0;
  transform:none;
}
/* Visible-art insets from each PNG alpha box — crop slack, never live pixels. */
body.room-board .portrait[src*="princess.png"]{
  --face-top-frac:0.11622;--face-bottom-frac:0.17500;
  --face-left-frac:0.11486;--face-right-frac:0.16014;
}
body.room-board .portrait[src*="datariffic.png"]{
  --face-top-frac:0.09277;--face-bottom-frac:0.15414;
  --face-left-frac:0.29270;--face-right-frac:0.25871;
}
body.room-board .portrait[src*="olivia.png"]{
  --face-top-frac:0.12800;--face-bottom-frac:0.13029;
  --face-left-frac:0.15379;--face-right-frac:0.14657;
}
body.room-board .portrait[src*="penelope.png"]{
  --face-top-frac:0.08600;--face-bottom-frac:0.11301;
  --face-left-frac:0.10676;--face-right-frac:0.11598;
}
body.room-board .portrait[src*="bubbles.png"]{
  --face-top-frac:0.12027;--face-bottom-frac:0.23784;
  --face-left-frac:0.09797;--face-right-frac:0.09865;
}
body.room-board .portrait[src*="betty.png"]{
  --face-top-frac:0.07663;--face-bottom-frac:0.10309;
  --face-left-frac:0.14132;--face-right-frac:0.11598;
}
body.room-board .portrait[src*="barnaboo.png"]{
  --face-top-frac:0.13471;--face-bottom-frac:0.14775;
  --face-left-frac:0.18788;--face-right-frac:0.15000;
}
body.room-board .portrait[src*="fifi.png"]{
  --face-top-frac:0;--face-bottom-frac:0.00586;
  --face-left-frac:0;--face-right-frac:0.00302;
}
body.room-board .portrait[src*="sparkles.png"]{
  --face-top-frac:0.13446;--face-bottom-frac:0.15405;
  --face-left-frac:0.14324;--face-right-frac:0.16284;
}
body.room-board .board .card:not(.text-only) h3{
  box-sizing:border-box;
  padding:16px 12px 10px;
}
body.room-board .board .card h3{
  width:100%;
  margin:0;
  height:auto;
  min-height:0;
  max-height:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  font-size:var(--char-name-size);
  font-weight:900;
  line-height:1.05;
  letter-spacing:-.02em;
  text-align:center;
  text-transform:uppercase;
  text-wrap:unset;
  overflow:visible;
  overflow-wrap:normal;
  flex-shrink:0;
}
body.room-board .board .card .role{
  margin:0;
  max-width:none;
  width:100%;
  height:auto;
  min-height:0;
  max-height:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  color:var(--pink);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:var(--char-role-size);
  line-height:1.2;
  text-align:center;
  overflow:visible;
  flex-shrink:0;
  padding:4px 8px 8px;
}

@media (max-width:1400px){
  body.room-board{
    --board-w:var(--board-card-w);
  }
  body.room-board:not(.room-index) .hall > .board{
    grid-template-columns:var(--board-card-w);
    width:var(--board-card-w);
  }
  body.room-board .board-finale{grid-column:auto}
}

@media (max-width:760px){
  body.room-board{
    --board-card-w:min(680px,100%);
    --board-w:var(--board-card-w);
    --board-stack-gap:36px;
    --board-text-h:248px;
    --board-char-h:720px;
    --text-name-h:96px;
    --text-role-h:80px;
    --char-name-h:112px;
    --char-role-h:76px;
    --text-name-size:48px;
    --text-role-size:22px;
    --char-name-size:36px;
    --char-role-size:22px;
  }
  body.room-board:not(.room-index) .hall > .board{
    grid-template-columns:1fr !important;
  }
  body.room-board .board-finale{grid-column:auto}
  body.room-board .board .card.board-last{
    width:100% !important;
    max-width:100% !important;
    flex:1 1 auto;
  }
  body.room-board .board .card.text-only{padding:16px 20px}
  body.room-contact .mail{font-size:18px;overflow-wrap:anywhere}
}
