/* Room objects use the same night palette, with readable body copy. */
.building-room>article.object-panel{border:0;box-shadow:none;background:transparent;padding:16px 0;text-shadow:none;--ink:#d5c6d8;--mint:#9dc6b6}
.object-panel>p:first-child{font:9px/1.8 var(--px);letter-spacing:.08em;color:#91a7ce;margin:0 0 20px}
.object-panel h2{line-height:1.7!important;margin:0 0 20px}
.object-panel .room-copy,.object-panel .object-intro,.object-panel>p:not(:first-child){font:16px/1.7 ui-monospace,Consolas,monospace!important;color:#c2cadb;margin:0 0 22px}
.object-intro i{display:none}.object-panel .chapter-link{font:10px/1.9 var(--px);margin-top:24px;min-height:44px;display:flex;align-items:center}
.object-panel button{cursor:pointer}.object-panel button:focus-visible,.table-card button:focus-visible,.object-pages:focus-visible,.object-pages [role=tabpanel]:focus-visible{outline:3px solid #b5ddc7;outline-offset:4px}
.desk-monitor{border:8px solid #39425d;border-bottom-width:18px;box-shadow:4px 4px 0 #050915;background:#111a27;position:relative;margin:30px 0 38px}
.desk-monitor:after{content:'';position:absolute;width:42%;height:8px;background:#56617b;left:29%;bottom:-30px;box-shadow:0 -6px #222c42}
.device-bar{display:flex;justify-content:space-between;gap:10px;padding:13px 16px;border-bottom:1px solid #344052;color:#8396b4;font:8px/1.7 var(--px)}
.device-led{color:#a5ccae}.device-led:before{content:'';display:inline-block;width:5px;height:5px;background:#a5ccae;margin-right:7px}
.object-tabs{display:flex;gap:0;border-bottom:1px solid #3c4a5b;padding:0 12px}
.object-tabs button{flex:1;min-height:46px;border:0;border-bottom:3px solid transparent;background:transparent;color:#9baabd;font:12px/1.5 ui-monospace,Consolas,monospace;padding:10px 8px}
.object-tabs button[aria-selected=true]{color:#b6ddc5;border-bottom-color:#9dc6b6;background:#a7d8c509}
.object-tabs button:hover{color:#e9e1d1;background:#b8c8df0c}
.object-pages{padding:22px;min-height:220px}.object-pages [hidden]{display:none!important}
.object-pages h3{font:17px/1.6 ui-monospace,Consolas,monospace;color:#e0e5db;margin:15px 0 12px;font-weight:700}
.object-pages p{font:15px/1.75 ui-monospace,Consolas,monospace;color:#aebdc9;margin:0}
.screen-command{font:11px/1.5 ui-monospace,Consolas,monospace;color:#9dc6b6}
.desk-tags{display:flex;gap:8px;margin-top:20px}.desk-tags span{padding:6px 9px;border:1px solid #3e5354;color:#b3c7c0;font:9px/1.5 var(--px)}
.object-link{display:inline-block;color:#a6cabb;font:13px/1.6 ui-monospace,Consolas,monospace;margin-top:18px;padding:8px 0}
.sketchbook{background:#d4ccba;color:#313749;border-left:12px solid #7f8395;box-shadow:3px 3px #aba48f,7px 7px #050915;position:relative;margin:26px 0}
.sketchbook .object-tabs{border-color:#9e9c91;padding:0;background:#b9b9ac}
.sketchbook .object-tabs button{color:#424a56;border-color:transparent;font-weight:700}
.sketchbook .object-tabs button[aria-selected=true]{background:#ded6c5;border-bottom-color:#586a60;color:#223b37}
.sketchbook .object-pages{padding:22px 20px;min-height:250px;background:repeating-linear-gradient(0deg,transparent 0 25px,#57677812 25px 26px)}
.sketch-sheet{display:grid;grid-template-columns:100px minmax(0,1fr);gap:20px;align-items:center}
.sketch-sheet svg{width:100%;fill:none;stroke:#526c68;stroke-width:2;stroke-linejoin:bevel}
.sketch-sheet h3{color:#343b48;font-size:19px}.sketch-sheet p{color:#4c5360}.paper-number{font:9px/1.8 ui-monospace,Consolas,monospace;color:#6d6b67;letter-spacing:.12em}
.sketch-panel>small{font:12px/1.8 ui-monospace,Consolas,monospace;color:#a6afc2}
.arcade-panel .game-slots{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:26px 0 0}
.arcade-panel .game-slot{padding:10px 10px 0;border:0;background:#39415c;box-shadow:4px 5px #060b15;transform:none;min-width:0;position:relative}
.arcade-panel .game-slot:before{display:none}
.cabinet-screen{background:#101925;border:5px solid #222b41;padding:16px 10px;min-height:216px;text-align:center}
.arcade-panel .slot-code{display:block;font:7px/1.8 var(--px);color:#9db8b7;min-height:30px}
.arcade-panel .slot-lock{font:34px/1 var(--px);color:#b7a6d6;display:grid;place-items:center;margin:20px auto}
.arcade-panel .game-slot h3{font:12px/1.8 ui-monospace,Consolas,monospace;color:#e0d8dc;margin:14px 0 6px}
.arcade-panel .game-slot p{font:11px/1.7 ui-monospace,Consolas,monospace;color:#9baac0;margin:0}
.cabinet-controls{height:46px;background:#566078;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:0 14px;transform:skewX(-4deg);border-top:3px solid #798299}
.cabinet-controls i{margin-right:auto;width:6px;height:14px;background:#c0c3c7;position:relative}.cabinet-controls i:before{content:'';position:absolute;width:12px;height:10px;background:#ae99c2;top:-7px;left:-3px}
.cabinet-controls b{width:9px;height:6px;background:#98baae;box-shadow:0 3px #243842}.cabinet-controls b:last-child{background:#caa398}
.cabinet-label{display:block;text-align:center;font:7px/1.8 var(--px);color:#d4c6db;padding:15px 3px;min-height:47px}
.game-slot--future{opacity:1!important}.game-slot--future .cabinet-screen{background:#171b2b}.game-slot--future .slot-lock{color:#8fa59d}
.table-invite{display:flex;width:100%;flex-direction:column;gap:12px;align-items:flex-start;margin-top:22px;padding:20px;background:#202b39;border:1px solid #667b78;border-left:4px solid #a3c0ac;color:#ddd4c2;text-align:left}
.table-invite span{font:9px/1.8 var(--px);color:#a5c1b4}.table-invite b{font:15px/1.6 ui-monospace,Consolas,monospace}.table-invite:hover{background:#293744}
.cafe-stage .table-card{position:absolute;z-index:6;left:18%;top:53%;width:64%;max-width:420px;margin:0;padding:20px;background:#172231f5;border:2px solid #a6b4a2;box-shadow:5px 6px #080d18b3;color:#d5c6d8;text-shadow:none}
.table-card[hidden]{display:none!important}.table-card .cafe-friend__label{padding-right:26px;font-size:8px}.table-card img{width:90px;max-height:50px;object-fit:contain;background:#ece7d9;padding:5px}.table-card h3{font:16px/1.5 ui-monospace,Consolas,monospace;margin:10px 0}.table-card p{font:13px/1.65 ui-monospace,Consolas,monospace!important}.sga-visit{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;min-height:42px;padding:9px 12px;border:2px solid #8fbeb0;background:#8fbeb0;color:#11182a;font:8px/1.5 var(--px);text-decoration:none;box-shadow:3px 3px #080d18}.sga-visit__domain{font:700 13px/1 ui-monospace,Consolas,monospace;letter-spacing:.01em;text-transform:lowercase}.sga-visit:hover,.sga-visit:focus-visible{background:#b6d9bc;border-color:#b6d9bc;color:#11182a;translate:0 -1px}.table-close{position:absolute;right:5px;top:5px;width:36px;height:36px;background:transparent;border:0;color:#d5c6d8;font:24px/1 monospace;cursor:pointer}
.radio-panel .signal-display{border:3px solid #5c6e7f;background:#101d26;box-shadow:inset 0 0 0 5px #1b2a33;margin:26px 0 16px;padding:20px}
.radio-panel .signal-display__hint{font:12px/1.7 ui-monospace,Consolas,monospace;margin-top:12px}
.radio-panel .contact-lines{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;margin:0}
.radio-panel .contact-lines a{display:grid;grid-template-columns:24px minmax(0,1fr);gap:5px 10px;padding:14px 12px;background:#232e40;border:1px solid #48576d;box-shadow:0 3px #070e19;min-width:0;min-height:70px}
.radio-panel .contact-lines a .channel-icon{grid-row:1/3;align-self:center;width:24px;height:24px}.radio-panel .contact-lines a span{font:8px/1.6 var(--px);color:#a8b9cf}.radio-panel .contact-lines a b{font:11px/1.6 ui-monospace,Consolas,monospace;overflow-wrap:anywhere;color:#d6d8de}
.radio-panel .contact-lines .email-channel{grid-column:1/-1;background:#2c403f;border-color:#8aa99c}.radio-panel .email-channel b{font-size:16px!important;color:#d7e6d9!important}
.radio-panel .radio-label{margin-top:24px}
/* Override the legacy transition artwork without affecting other site motion. */
.transition.has-threshold{background:transparent!important;pointer-events:all}
.transition.has-threshold>div,.transition.has-threshold>p{display:none!important}
.transition.has-threshold>.threshold-veil{display:block!important;position:absolute;inset:0;background:#0c0f19;opacity:0}
.threshold-light{position:fixed;width:28px;height:42px;translate:-50% -95%;background:#efd3a0;box-shadow:0 0 24px 10px #ddbb8255;clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);opacity:0;pointer-events:none}
@media(max-width:900px){.building-room>article.object-panel{max-width:620px;width:100%;padding:0 4px 20px}.object-panel h2{font-size:20px!important}.object-panel .object-intro,.object-panel .room-copy{font-size:15px!important}.desk-monitor{margin-top:24px}}
@media(max-width:480px){.object-pages{padding:18px;min-height:230px}.device-bar{padding:10px;font-size:7px}.sketch-sheet{grid-template-columns:70px minmax(0,1fr);gap:12px}.sketchbook .object-pages{padding:18px 12px;min-height:260px}.sketch-sheet h3{font-size:17px}.sketch-sheet p{font-size:14px}.object-tabs button{font-size:11px}.arcade-panel .game-slots{gap:10px}.arcade-panel .game-slot{padding:6px 6px 0}.cabinet-screen{padding:12px 4px;min-height:218px}.cabinet-label{font-size:6px}.cafe-stage .table-card{left:3%;top:44%;width:94%;padding:14px}.table-card .cafe-greeting{display:none}.radio-panel .contact-lines{gap:8px}.radio-panel .contact-lines a{padding:12px 8px;gap:4px 6px}.radio-panel .contact-lines a span{font-size:7px}.radio-panel .contact-lines a b{font-size:10px}}
@media(prefers-reduced-motion:reduce){.object-panel *, .table-card *{animation:none!important;transition:none!important}}

/* Mounted facade signs: visually attached to each building, not floating near the entrance. */
.building-sign{
  position:absolute;
  left:var(--sign-left,50%);
  top:var(--sign-top,-45%);
  translate:-50% 0;
  display:grid;
  justify-items:center;
  z-index:8;
  pointer-events:none;
  filter:drop-shadow(3px 4px #080d18aa);
}
.building-sign:before,
.building-sign:after{
  content:'';
  position:absolute;
  top:-10px;
  width:3px;
  height:10px;
  background:#6f7896;
  box-shadow:1px 0 #11182a;
}
.building-sign:before{left:18px}
.building-sign:after{right:18px}
.building-sign strong,
.building-sign small{
  position:static!important;
  left:auto!important;
  top:auto!important;
  right:auto!important;
  translate:none!important;
  margin:0!important;
  white-space:nowrap;
  text-align:center;
  box-sizing:border-box;
}
.building-sign strong{
  min-width:104px;
  padding:6px 11px 5px!important;
  color:#f5ead8!important;
  background:#232b44!important;
  border:3px solid #7789b5!important;
  border-bottom:0!important;
  box-shadow:inset 0 0 0 2px #11182a,3px 3px #0b101c!important;
  font:10px/1.35 var(--px)!important;
}
.building-sign small{
  min-width:132px;
  padding:4px 9px 5px!important;
  color:#d8deeb!important;
  background:#141d31!important;
  border:2px solid #536487!important;
  box-shadow:inset 0 0 0 1px #0d1321,3px 3px #0b101c!important;
  font:8px/1.3 ui-monospace,Consolas,monospace!important;
}

/* Higher, facade-specific mounting points. */
.landmark--studio{--sign-left:55%;--sign-top:-58%}
.landmark--principles{--sign-left:52%;--sign-top:-72%}
.landmark--games{--sign-left:52%;--sign-top:-62%}
.landmark--friends{--sign-left:49%;--sign-top:-64%}
.landmark--contact{--sign-left:51%;--sign-top:-70%}

/* Give each building its own subtle storefront accent. */
.landmark--studio .building-sign strong{border-color:#7f9fd8!important}
.landmark--principles .building-sign strong{border-color:#8fbeb0!important}
.landmark--games .building-sign strong{border-color:#b8a1d1!important}
.landmark--friends .building-sign strong{border-color:#d8af94!important}
.landmark--contact .building-sign strong{border-color:#8fbeb0!important}

/* Keep the proximity cue away from the facade sign itself. */
.landmark.is-near:before{
  top:auto!important;
  bottom:-19px!important;
  left:50%!important;
  translate:-50% 0!important;
  z-index:9;
  padding:3px 6px!important;
  font-size:7px!important;
}

/* Compact pixel-door icon for the top back button. */
.return-portal,
.return-portal--light{
  align-items:center;
  gap:9px;
}
.return-portal i,
.return-portal--light i{
  position:relative;
  width:22px;
  height:28px;
  flex:0 0 22px;
  border:3px solid currentColor;
  border-bottom-width:4px;
  background:#11182a99;
  box-shadow:3px 3px #11182a66;
  transition:translate .12s steps(2),background .12s;
}
.return-portal i:before,
.return-portal--light i:before{
  content:'';
  position:absolute;
  inset:4px 4px 5px;
  border:1px solid currentColor;
  opacity:.55;
}
.return-portal i:after,
.return-portal--light i:after{
  content:'';
  position:absolute;
  right:3px;
  top:13px;
  width:3px;
  height:3px;
  background:#8fbeb0;
  box-shadow:none;
}
.return-portal:hover i,
.return-portal--light:hover i{
  translate:-2px 0;
  background:#394563;
  box-shadow:4px 3px #11182a66;
}

@media(max-width:600px){
  .building-sign{scale:.74;transform-origin:top center}
  .building-sign strong{min-width:88px;font-size:8px!important;padding:4px 7px 3px!important}
  .building-sign small{min-width:108px;font-size:7px!important;padding:3px 6px 4px!important}
  .building-sign:before,.building-sign:after{top:-8px;height:8px}
  .landmark--studio{--sign-top:-52%}
  .landmark--principles{--sign-top:-62%}
  .landmark--games{--sign-top:-56%}
  .landmark--friends{--sign-top:-58%}
  .landmark--contact{--sign-top:-60%}
  .landmark.is-near:before{bottom:-15px!important;font-size:6px!important}
  .return-portal i,
  .return-portal--light i{width:20px;height:25px;flex-basis:20px}
}

/* Near-building feedback: highlight ONLY the facade sign. */
.landmark,
.landmark:hover,
.landmark.is-near,
.landmark:focus-visible{
  background:transparent!important;
  border-color:transparent!important;
  outline:0!important;
  box-shadow:none!important;
  filter:none!important;
  transform:none!important;
}
.landmark.is-near:before,
.landmark.is-near:after{
  display:none!important;
  content:none!important;
}
.building-sign{
  transition:filter .14s ease;
}
.building-sign strong,
.building-sign small{
  transition:background .14s ease,color .14s ease,border-color .14s ease,box-shadow .14s ease;
}
.landmark.is-near .building-sign{
  filter:
    drop-shadow(0 0 3px #b5ddc7)
    drop-shadow(0 0 8px #8fbeb080)!important;
}
.landmark.is-near .building-sign strong{
  color:#11182a!important;
  background:#b5ddc7!important;
  border-color:#dff3e9!important;
  box-shadow:
    inset 0 0 0 2px #8fbeb0,
    3px 3px #0b101c!important;
}
.landmark.is-near .building-sign small{
  color:#dff3e9!important;
  background:#1f3a38!important;
  border-color:#8fbeb0!important;
  box-shadow:
    inset 0 0 0 1px #10201f,
    3px 3px #0b101c!important;
}

@media(max-width:600px){
  .cafe-stage .table-card{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    top:76px!important;
    bottom:auto!important;
    translate:-50% 0!important;
    width:min(92vw,340px)!important;
    max-width:340px!important;
    max-height:calc(100dvh - 96px)!important;
    overflow:auto!important;
    overscroll-behavior:contain;
    margin:0!important;
    padding:14px!important;
    z-index:90!important;
    box-sizing:border-box;
  }
  .table-card .cafe-friend__label{padding-right:34px}
  .table-card img{width:82px;max-height:46px}
  .table-card h3{font-size:14px;line-height:1.4;margin:9px 0}
  .table-card p{font-size:11px!important;line-height:1.55!important;margin-bottom:10px!important}
  .sga-visit{width:100%;box-sizing:border-box;margin-top:8px}
  .table-close{position:sticky;float:right;top:0;margin:-5px -5px 0 8px;background:#172231}
}

/* Clean return control: curved back arrow instead of the door icon. */
.return-portal i,
.return-portal--light i{
  width:auto!important;
  height:auto!important;
  flex:0 0 auto!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  translate:none!important;
}
.return-portal i:before,
.return-portal--light i:before{
  content:'↩';
  position:static!important;
  display:block;
  inset:auto!important;
  border:0!important;
  opacity:1!important;
  color:#8fbeb0;
  font:18px/1 var(--px);
  text-shadow:2px 2px #11182a88;
}
.return-portal i:after,
.return-portal--light i:after{
  display:none!important;
  content:none!important;
}
.return-portal:hover i,
.return-portal--light:hover i{
  translate:-2px 0!important;
  background:transparent!important;
  box-shadow:none!important;
}
@media(max-width:600px){
  .return-portal i:before,
  .return-portal--light i:before{font-size:16px}
}
