/* Site-wide companion to portal-2007.css. Layout and pink palette stay shared. */
.portal-home { --portal-font: "돋움", Dotum, "굴림", Gulim, sans-serif; }
.portal-page .container, .portal-page .container *, .portal-null *, .portal-standalone *, .portal-menu * { box-sizing: border-box; }
.portal-page .right, .portal-null .null-right { overflow-wrap: anywhere; }
.portal-home .portal-brand {
  display: inline-block;
  color: #d24283;
  font: bold 32px/1.2 "굴림", Gulim, sans-serif;
  letter-spacing: -2px;
  text-decoration: none;
}
.portal-home .portal-brand:hover { color: #bd326f; text-decoration: none; }
.portal-home .portal-nav a[aria-current="page"],
.portal-home .portal-subnav a[aria-current="page"] { color: #a62b61; text-decoration: underline; text-underline-offset: 3px; }
.portal-breadcrumb { padding: 8px 2px; color: #888; font-size: 11px; }
.portal-breadcrumb a { color: #777; text-decoration: none; }
.portal-page .title-box {
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid #e3c1d1;
  background: #fff7fb;
  text-align: left;
}
.portal-page .title-box h1 { margin: 0 0 3px; color: #a73869; font: bold 18px/1.4 var(--portal-font); letter-spacing: 0; text-shadow: none; }
.portal-page .title-box p { margin: 0; color: #888; font-size: 11px; }
.portal-page .right > .notice { margin: 0 0 12px; }
.portal-page .right > .content-box,
.portal-page #diary-list > .content-box {
  width: 100%;
  margin: 0 0 12px;
  padding: 12px;
  border: 1px solid #ddd;
  background: #fff;
}
.portal-page .content-box h2 {
  margin: -12px -12px 10px;
  padding: 5px 10px;
  color: #a73869;
  background: #fff3f8;
  border-bottom: 1px solid #e2dce0;
  font: bold 12px/1.5 var(--portal-font);
}
.portal-page .content-box > p { margin: 5px 0; }
.portal-page .content-box ul { margin: 5px 0; padding-left: 20px; }
.portal-page .small-text { color: #888; font-size: 11px; }
.portal-page .content-box a { color: #476697; }
.portal-page .info-table { table-layout: fixed; }
.portal-page .info-table th { width: 135px; background: #fafafa; font-weight: normal; }
.portal-page .info-table td { overflow-wrap: anywhere; }
.portal-page .info-table tr > :last-child { width: auto; }
.portal-page .profile-card, .portal-page .force-self-intro {
  border: 1px solid #e4dce0;
  background: #fffafc;
  box-shadow: none;
  color: #666;
  font: 12px/1.7 var(--portal-font);
}
.portal-page .force-self-intro-title { color: #a73869; border-color: #ead8e1; text-shadow: none; }
/* Forms and server-rendered entries use the same quiet panel treatment. */
.portal-page .right :is(input, textarea, select, button) { font-family: var(--portal-font); font-size: 12px; }
.portal-page .guest-form-table { table-layout: fixed; }
.portal-page .guest-form-table th { width: 100px; background: #fff7fb; color: #a73869; border-color: #e3dce0; font-size: 12px; }
.portal-page .guest-form-table td { border-color: #e3dce0; }
.portal-page .guest-input, .portal-page .guest-textarea {
  width: 100%;
  max-width: 100%;
  padding: 6px 8px;
  color: #444;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 0;
}
.portal-page #admin-password { width: 260px; max-width: 100%; margin: 0 6px 6px 0; }
.portal-page :is(input, textarea, select):focus-visible { outline: 2px solid #c9789e; outline-offset: 1px; }
.portal-page .guest-textarea { min-height: 95px; resize: vertical; }
.portal-page .diary-admin-textarea { min-height: 210px; }
.portal-page :is(.guest-button, .profile-call-button, .retro-btn) {
  min-height: 28px;
  padding: 4px 14px;
  color: #a73869;
  background: #fff0f6;
  border: 1px solid #dca5bf;
  border-radius: 0;
  box-shadow: none;
  text-shadow: none;
  font: bold 12px/1.5 var(--portal-font);
  cursor: pointer;
}
.portal-page :is(.guest-button, .profile-call-button, .retro-btn):hover { background: #ffe5f0; color: #a62b61; }
.portal-page :is(.guest-reset-button, .guest-admin-danger) { background: #fafafa; color: #666; border-color: #ccc; }
.portal-page .guest-post { padding: 10px; border: 1px solid #e4dce0; background: #fff; }
.portal-page .guest-post-title { color: #a73869; font-size: 12px; }
.portal-page .guest-date { font-size: 11px; }
.portal-page .guest-message { color: #444; overflow-wrap: anywhere; }
.portal-page .diary-meta { padding: 5px 8px; border: 1px solid #eee; background: #fafafa; color: #888; font-size: 11px; }
.portal-page .diary-body { border: 0; padding: 4px 0; background: #fff; font: 12px/1.8 var(--portal-font); overflow-wrap: anywhere; }
.portal-page .diary-footer { padding-top: 8px; border-top: 1px dotted #ddd; }
/* Profile, gallery, questions, banners. */
.portal-page .character-profile-area { gap: 16px; }
.portal-page .character-profile-image { width: 250px; border: 1px solid #e3c1d1; background: #fff7fb; }
.portal-page .character-profile-info { min-width: 0; }
.portal-page .character-profile-info .info-table th { width: 110px; }
.portal-page .profile-call-area { margin-top: 12px; border: 1px solid #e3dce0; background: #fafafa; }
.portal-page .force-affection-ui { border: 1px solid #e3c1d1; outline: 0; box-shadow: none; background: #fff; font-family: var(--portal-font); }
.portal-page .force-exp-bar-wrap { height: 12px; border: 1px solid #dfc7d2; box-shadow: none; background: #fff5f9; }
.portal-page .force-exp-bar { background: #d775a0; box-shadow: none; }
.portal-page .album-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.portal-page .album-item { min-width: 0; padding: 8px; border: 1px solid #e4dce0; background: #fff; }
.portal-page .album-thumb { width: 100%; height: 168px; border: 0; background: #fff7fb; }
.portal-page .album-thumb img { object-fit: contain; }
.portal-page .album-title { font-size: 12px; color: #555; }
.portal-page .album-date { color: #999; }
.portal-page .easter-egg-area { margin-top: 36px; }
.portal-page .easter-egg-item { width: 205px; max-width: 100%; }
.portal-page .qa-list { border: 0; padding: 0; font-size: 12px; }
.portal-page .qa-list p:nth-child(odd) { margin-top: 10px; padding: 6px 9px; border-left: 2px solid #df85ac; background: #fff7fb; color: #a73869; }
.portal-page .qa-list p:nth-child(even) { padding: 7px 9px 10px; border-bottom: 1px dotted #ddd; color: #555; }
.portal-page .my-banner { box-sizing: content-box; border: 1px solid #dca5bf; background: #fff0f6; color: #a73869; font-family: var(--portal-font); }
/* Music and game catalogues remain interactive, but no longer mimic a separate OS. */
.portal-page .music-list-item { display: flex; flex-wrap: nowrap; gap: 16px; padding: 0; border: 0; background: #fff; box-shadow: none; }
.portal-page .music-list-item .album-area { flex: 0 0 180px; width: 180px; padding: 5px; border: 1px solid #e3dce0; background: #fff7fb; }
.portal-page .music-list-item .album-cover { display: block; width: 168px; height: 145px; margin: auto; padding: 0; border: 0; object-fit: contain; background: #fff7fb; }
.portal-page .music-list-item .player-area { flex: 1; min-width: 0; min-height: 0; padding: 0; border: 0; background: #fff; }
.portal-page .music-list-item .player-screen { padding: 8px 10px; margin-bottom: 8px; border: 1px solid #eee; background: #fafafa; box-shadow: none; font-family: var(--portal-font); }
.portal-page .music-list-item .player-screen::after { display: none; }
.portal-page .music-list-item .player-screen p { margin: 3px 0; }
.portal-page .music-list-item .track-label { color: #999; font: 10px/1.5 var(--portal-font); letter-spacing: 1px; }
.portal-page .music-list-item .track-title { color: #a73869; font: bold 14px/1.5 var(--portal-font); text-shadow: none; }
.portal-page .music-list-item .track-artist { color: #777; font-size: 11px; }
.portal-page .music-list-item .track-status { color: #9c7b37; font-size: 10px; }
.portal-page .music-list-item .player-time-box { display: inline-block; padding: 2px 7px; border: 1px solid #eadcb6; background: #fffdf4; color: #93712d; box-shadow: none; font-size: 10px; }
.portal-page .music-list-item .player-note { padding: 5px 0; border: 0; background: #fff; font-size: 11px; }
.portal-page .music-list-item .player-note p::before { color: #a73869; }
/* Character dialogue uses its original style.css and page-local styles,
   including beveled borders, portraits, type, choices and mobile geometry. */
.portal-home .vn-scene { color: #663344; font-size: 13px; line-height: normal; }
.portal-page :is(.easter-popup-box, .game-coming-popup-window) { background: #fff; border: 1px solid #dca5bf; box-shadow: 2px 2px 0 #0002; font-family: var(--portal-font); }
.portal-page .game-coming-popup-title { background: #fff0f6; color: #a73869; border-color: #e3c1d1; font-family: var(--portal-font); }
.portal-page .easter-popup-buttons button { border: 1px solid #dca5bf; background: #fff0f6; color: #a73869; font: 12px/1.5 var(--portal-font); }
/* Existing mobile menu doubles as navigation when JavaScript is unavailable. */
.portal-page > .mobile-menu { display: block; width: min(940px, calc(100% - 24px)); margin: 8px auto; padding: 8px; border: 1px solid #e3c1d1; box-shadow: none; background: #fff7fb; }
.portal-page > .mobile-menu::before { display: none; }
.portal-page > .mobile-menu .mobile-menu-btn { display: none; }
.portal-page > .mobile-menu .mobile-menu-links { display: flex; position: static; flex-wrap: wrap; gap: 7px 15px; border: 0; background: none; }
.portal-page > .mobile-menu .mobile-menu-links a { padding: 0; border: 0; background: none; color: #a73869; font-size: 12px; }
.portal-page.portal-ready > .mobile-menu { display: none; }
.portal-frame { width: min(960px, 100%); margin: 0 auto; padding: 0 10px; }
.portal-home .portal-footer { margin-top: 18px; }
/* Game canvas internals keep their original dimensions and animations. */
.cooking-body.portal-home { display: block; width: 100%; padding: 0; background: #fff; color: #444; font-family: var(--portal-font); font-size: 12px; }
.portal-cooking .cooking-page { min-height: 0; padding: 12px; }
.portal-cooking .cooking-game-shell { max-width: 100%; border: 1px solid #e3c1d1; outline: 0; box-shadow: none; }
.portal-cooking :is(.cooking-main-button, .cooking-nav-button, .cooking-option-button) { font-family: var(--portal-font); }
.portal-cooking :is(.cooking-main-button, .cooking-nav-button) { background: #fff0f6; border: 1px solid #dca5bf; color: #a73869; text-shadow: none; box-shadow: none; }
.portal-cooking :is(.cooking-main-button, .cooking-nav-button):hover:not(:disabled) { background: #ffe5f0; color: #a62b61; }
.portal-cooking .cooking-start-button { background: #d24283; color: #fff; animation: none; }
.portal-cooking .cooking-start-button:hover { background: #b93472; color: #fff; }
.portal-cooking .cooking-game-header { background: #fff3f8; border-bottom: 1px solid #e3c1d1; box-shadow: none; }
.portal-cooking .cooking-game-header h2 { font-size: 18px; color: #a73869; text-shadow: none; }
.portal-cooking .cooking-step-number { background: #fff; border: 1px solid #dca5bf; color: #a73869; font-size: 12px; text-shadow: none; box-shadow: none; }
.portal-cooking .cooking-option-button { background: #fff; border: 1px solid #dfc7d2; color: #765365; box-shadow: none; text-shadow: none; }
.portal-cooking .cooking-option-button.is-selected { background: #ffe5f0; border-color: #d84889; color: #a62b61; }
.portal-cooking .cooking-navigation { border-top: 1px solid #e3c1d1; background: #fff7fb; box-shadow: none; }
.portal-cooking .cooking-nav-button { padding: 8px; font-size: 12px; white-space: nowrap; }
.portal-cooking .cooking-selection-status { border: 1px solid #e3dce0; background: #fff; color: #987284; box-shadow: none; text-shadow: none; font-family: var(--portal-font); }
.portal-cooking :is(.cooking-main-button, .cooking-nav-button, .cooking-option-button):disabled { background: #fafafa; border-color: #ddd; color: #aaa; cursor: not-allowed; }
.portal-cooking .cooking-title-badge { background: #fff0f6; border: 1px solid #dca5bf; outline: 0; box-shadow: none; color: #a73869; letter-spacing: 1px; }
.portal-cooking .cooking-title-text h1 { color: #bd3976; font-family: var(--portal-font); font-size: 32px; letter-spacing: 0; text-shadow: 1px 1px 0 #fff; }
.portal-cooking .cooking-title-en { font-size: 11px; letter-spacing: 2px; }
.portal-cooking .cooking-title-sub { font-size: 12px; }
.portal-warmup { display: block; overflow: auto; min-height: 100vh; }
.portal-warmup .game-wrap { width: min(940px, calc(100% - 24px)); margin: 12px auto; border: 1px solid #e3c1d1; background: #fff7fb; }
.portal-warmup .ring { opacity: .18; background: #e5b0c8; }
.portal-warmup .ring.beige { opacity: .12; background: #e5c9b0; }
.portal-warmup .title { top: 9%; color: #a73869; font: bold 28px/1.2 var(--portal-font); letter-spacing: 1px; text-shadow: none; }
.portal-warmup .character { bottom: 19%; width: auto; height: 58%; max-width: 25%; object-fit: contain; }
.portal-warmup .miku { left: 20%; }
.portal-warmup .teto { right: 20%; }
.portal-warmup .loading-wrap { bottom: 10%; gap: 8px; }
.portal-warmup .loading-text { color: #987284; font: 11px/1.5 var(--portal-font); text-shadow: none; }
.portal-warmup .spinner { width: 12px; height: 12px; border-radius: 0; background: #df85ac; box-shadow: none; }
/* Compact popup player: retain song-specific full-window cinematic styles. */
.portal-player { font-family: "돋움", Dotum, "굴림", Gulim, sans-serif; font-size: 12px; }
.portal-player:not(.special-song) { background: #fff; }
.portal-player:not(.special-song) .player-box { width: 280px; max-width: calc(100% - 16px); padding: 10px; border: 1px solid #e3c1d1; background: #fff; box-shadow: none; }
.portal-player:not(.special-song) .player-titlebar { background: #fff0f6; border: 1px solid #e3c1d1; color: #a73869; }
.portal-player:not(.special-song) h1 { color: #a73869; font-size: 16px; text-shadow: none; }
.portal-player:not(.special-song) .album-frame { padding: 5px; border: 1px solid #e3dce0; background: #fff7fb; }
.portal-player:not(.special-song) .album-cover { border: 0; }
.portal-player:not(.special-song) .screen { border: 1px solid #eee; background: #fafafa; font-family: inherit; }
.portal-player:not(.special-song) .now-playing { color: #999; }
.portal-player:not(.special-song) .song-title { color: #a73869; font-size: 13px; }
.portal-player:not(.special-song) .song-artist { color: #777; }
.portal-player:not(.special-song) .status-line { color: #888; border-color: #ddd; }
.portal-player:not(.special-song) .audio-area { border: 1px solid #e3dce0; background: #fff7fb; }
.portal-player:not(.special-song) .custom-controls { border: 0; background: none; font-family: inherit; }
.portal-player:not(.special-song) .custom-buttons button { padding: 4px 7px; border: 1px solid #dca5bf; background: #fff0f6; color: #a73869; font-family: inherit; }
.portal-player:not(.special-song) :is(.progress-shell, .volume-shell) { border: 1px solid #dfc7d2; background: #fff; height: 10px; }
.portal-player:not(.special-song) .progress-fill { background: #d775a0; }
.portal-player:not(.special-song) .volume-fill { background: #c5b5c7; }
.portal-player:not(.special-song) .mini-footer { color: #999; border-color: #e3c1d1; }
.portal-player-links { display: flex; justify-content: center; gap: 14px; margin-top: 8px; font-size: 11px; }
.portal-player-links a { color: #a73869; }
.portal-player.special-song .portal-player-links a { color: #ddd; }
/* The hidden pages use a dark version of the same layout without new escape links. */
.portal-null { background: #080808; color: #aaa; }
.portal-null .null-container { display: block; width: min(960px, 100%); margin: 0 auto; border: 0; background: #080808; }
.portal-null .null-left { display: none; }
.portal-null .null-right { width: 100%; min-height: 0; padding: 0 10px 24px; }
.portal-null .portal-utility { border-color: #292329; color: #777; }
.portal-null .portal-utility a, .portal-null .portal-breadcrumb a { color: #999; }
.portal-null .retro-header { background: #080808; }
.portal-null .portal-brand, .portal-null .portal-brand:hover { color: #bc8ba3; }
.portal-null .retro-header p { color: #777; }
.portal-null .portal-nav { justify-content: flex-start; padding: 5px 8px; border-color: #4d3a44; background: #181217; gap: 4px 0; }
.portal-null .portal-nav a { padding: 3px 13px; border-color: #4d3a44; color: #b794a5; font-size: 12px; }
.portal-null .null-title-box { margin-bottom: 12px; padding: 10px 12px; border: 1px solid #3a2e34; background: #141014; text-align: left; }
.portal-null .null-title-box h1 { margin: 0; color: #aaa; font-size: 18px; }
.portal-null .null-notice { margin: 0 0 12px; padding: 4px 8px; border: 0; border-bottom: 1px dotted #333; font-size: 11px; overflow: hidden; }
.portal-null .null-content-box, .portal-null .null-image-box { margin: 0 0 12px; padding: 12px; border: 1px solid #292329; background: #0d0b0d; }
.portal-null .null-content-box h2 { margin: -12px -12px 10px; padding: 5px 10px; border-bottom: 1px solid #292329; background: #141014; color: #999; font-size: 12px; }
.portal-null .null-content-box p { color: #999; font-size: 12px; }
.portal-null .null-main-img { max-width: 100%; width: 320px; height: auto; }
.portal-null .null-back-box a { color: #b794a5; font-size: 12px; }
/* menu.html remains usable directly and inside legacy embeds. */
.portal-menu { box-sizing: border-box; width: 100%; min-width: 0; padding: 8px; text-align: left; background: #fff; }
.portal-menu :is(.side-site-title, .side-menu-title) { margin: 0 0 8px; padding: 5px; color: #a73869; border: 0; background: #fff0f6; font-size: 12px; letter-spacing: 0; }
.portal-menu .side-menu-item { margin: 7px 3px; font-size: 12px; }
.portal-menu .side-menu-item a { font-weight: normal; color: #476697; }
.portal-menu .diamond { color: #c9789e; font-size: 10px; }
.portal-menu :is(.side-banner-mini, .side-recruit-box) { padding: 6px; margin: 10px 0; border: 1px solid #e3c1d1; outline: 0; box-shadow: none; background: #fff7fb; color: #a73869; font-size: 12px; }
.portal-menu .side-footer { margin: 10px 0; border-color: #ddd; color: #999; font-size: 11px; }
@media (max-width: 979px) {
  .portal-null .null-right { padding: 0 12px 20px; }
  .portal-frame { padding: 0 12px; }
}
@media (max-width: 640px) {
  .portal-home .portal-brand { font-size: 28px; }
  .portal-page .title-box h1 { font-size: 16px; }
  .portal-page .info-table th, .portal-page .character-profile-info .info-table th { width: 88px; }
  .portal-page .guest-form-table th { width: 62px; padding: 6px; }
  .portal-page .guest-form-table td { padding: 6px; }
  .portal-page .guest-date { float: none; display: block; margin-top: 3px; }
  .portal-page .character-profile-area { flex-direction: column; }
  .portal-page .character-profile-image { width: 100%; }
  .portal-page .character-profile-image > img { max-height: 280px; margin: auto; }
  .portal-page .character-profile-info { width: 100%; }
  .portal-page .album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .portal-page .album-thumb { height: 140px; }
  .portal-page .music-list-item { flex-direction: column; gap: 10px; }
  .portal-page .music-list-item .album-area { flex: auto; width: 100%; }
  .portal-page .music-list-item .player-area { width: 100%; }
  .portal-page .music-list-item .album-cover { width: 100%; height: 150px; }
  .portal-null .null-mobile-menu { display: none; }
  .portal-null .portal-nav a { padding: 5px 9px; font-size: 11px; }
  .portal-warmup .title { font-size: 20px; }
  .portal-warmup .game-wrap { aspect-ratio: 4 / 3; }
  .portal-warmup .loading-text { font-size: 10px; }
}

/* Early-web surface treatment. Scoped to the site chrome and content panels:
   never target .vn-scene, .psyche-scene or their dialogue controls here. */
.portal-home:not(.portal-null) .retro-header {
  background: linear-gradient(to bottom, #fff 0%, #fff 65%, #fff6fa 100%);
  box-shadow: inset 0 1px 0 #fff;
}
.portal-home:not(.portal-null) :is(.retro-header h1, .portal-brand) {
  text-shadow: 0 1px 0 #fff, 1px 2px 0 #efd0df;
}
.portal-home:not(.portal-null) .portal-nav {
  border-color: #d18bab;
  border-top-color: #d84889;
  background: linear-gradient(to bottom, #fff9fc 0%, #ffe7f1 45%, #f3bfd7 49%, #f8cde1 53%, #fce1ee 100%);
  box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 #fff7fb, 0 1px 0 #ecd1de;
}
.portal-home:not(.portal-null) .portal-nav a {
  border-right-color: #dca4be;
  color: #92315e;
  text-shadow: 0 1px 0 #fff8fc;
  box-shadow: 1px 0 0 #fff7;
}
.portal-home:not(.portal-null) .portal-nav a:last-child { box-shadow: none; }
.portal-home:not(.portal-null) .portal-nav a:hover {
  background: linear-gradient(#fffdf4, #fff0d7);
  color: #ac326b;
  box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 #e8c7aa;
}
.portal-home:not(.portal-null) .portal-nav a:active {
  background: linear-gradient(#e9aac7, #f9dce9);
  box-shadow: inset 1px 1px 2px #ac62804d;
}
.portal-home:not(.portal-null) .portal-nav a[aria-current="page"] {
  background: linear-gradient(#efbed4, #fff0f7);
  box-shadow: inset 1px 1px 1px #ba78974d;
}
.portal-home:not(.portal-null) .portal-subnav {
  background: linear-gradient(to bottom, #fffef9, #faf5e8);
  border-color: #e4d4be;
  box-shadow: inset 0 1px 0 #fff;
}
.portal-home:not(.portal-null) .right :is(.retro-section, .content-box) {
  border-color: #d9bdca;
  background: #fff;
  box-shadow: inset 0 1px 0 #fff, 1px 1px 0 #f4e5ec;
}
.portal-home:not(.portal-null) .right :is(.retro-section h2, .content-box h2, .mini-title) {
  border-bottom-color: #cfa8bc;
  color: #96385f;
  background: linear-gradient(to bottom, #fff8fc 0%, #fbe1ed 48%, #f3cbde 50%, #fce7f1 100%);
  box-shadow: inset 0 1px 0 #fff;
  text-shadow: 0 1px 0 #fff;
}
.portal-home .right .update-panel {
  border-color: #d9bdca;
  box-shadow: 1px 1px 0 #f4e5ec;
}
.portal-home .right .portal-shortcuts {
  border-color: #d7bf87;
  background: #fffdf4;
  box-shadow: inset 0 1px 0 #fff;
}
.portal-home:not(.portal-null) .right .portal-shortcuts .mini-title {
  border-color: #dac48e;
  color: #88632a;
  background: linear-gradient(#fffef3 0%, #fff0c5 48%, #f5dfa6 50%, #fff5d6 100%);
}
.portal-home .right :is(.main-visual-box, .character-profile-image, .album-item) {
  border-color: #e3c0d1 #bb91a5 #bb91a5 #e3c0d1;
  background: linear-gradient(to bottom, #fffdfd, #fff5fa);
  box-shadow: inset 0 0 0 1px #fff, 1px 1px 0 #f0dce6;
}
.portal-home .right .album-thumb {
  background: #fff;
  box-shadow: 0 0 0 1px #e9d6df, inset 1px 1px 2px #d6bdca66;
}
.portal-home .right .main-visual-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  background: #fff9fc;
}
.portal-home .right .main-visual-caption { text-shadow: 0 1px 0 #fff; }
.portal-home .right .fake-counter {
  background: #e9e2e6;
  border-color: #a58d9a #fff #fff #a58d9a;
  box-shadow: inset 1px 1px 1px #7e60794d;
}
.portal-home .right .fake-counter span {
  background: linear-gradient(#30272e, #51414b 48%, #30272e 52%, #40313b);
  color: #ff9bc4;
  text-shadow: 0 0 1px #ff9bc4;
  box-shadow: inset -1px 0 0 #705c68;
}
.portal-home:not(.portal-null) .right .info-table th {
  background: linear-gradient(to bottom, #fff9fc, #f9edf3);
  border-bottom-color: #e7d8e0;
}
.portal-home:not(.portal-null) .right .info-table a {
  color: #315c9f;
  text-decoration: underline;
}
.portal-home:not(.portal-null) .right .info-table a:visited { color: #79598c; }
.portal-home:not(.portal-null) .right .info-table a:hover { color: #c13778; }
.portal-page .right .guest-form-table th {
  background: linear-gradient(to bottom, #fff9fc, #f8e9f1);
  box-shadow: inset 0 1px 0 #fff;
}
.portal-page .right :is(.guest-input, .guest-textarea) {
  border-color: #ad8e9e #e4d1db #e4d1db #ad8e9e;
  background: #fffefe;
  box-shadow: inset 1px 1px 2px #9f7c9226;
}
.portal-page .right :is(.guest-button, .profile-call-button, .retro-btn) {
  border: 1px solid;
  border-color: #fff #b77897 #b77897 #fff;
  background: linear-gradient(to bottom, #fffafd 0%, #ffe4ef 48%, #f4c7dc 50%, #fce3ef 100%);
  color: #96385f;
  box-shadow: 0 0 0 1px #d6a9bf, inset 0 1px 0 #fff;
  text-shadow: 0 1px 0 #fff;
}
.portal-page .right :is(.guest-button, .profile-call-button, .retro-btn):hover:not(:disabled) {
  background: linear-gradient(#fffef7, #fff1dc 48%, #f7dfc4 50%, #fff5e7);
  color: #a73869;
}
.portal-page .right :is(.guest-button, .profile-call-button, .retro-btn):active:not(:disabled) {
  border-color: #ae7f96 #fff #fff #ae7f96;
  background: linear-gradient(#e9b7cf, #fbe2ed);
  box-shadow: 0 0 0 1px #d6a9bf, inset 1px 1px 2px #a867862b;
  text-shadow: none;
}
.portal-page .right :is(.guest-reset-button, .guest-admin-danger) {
  background: linear-gradient(#fff, #eee9ed 48%, #ddd5dc 50%, #f0ebef);
  color: #6b5d66;
  box-shadow: 0 0 0 1px #c3b4be, inset 0 1px 0 #fff;
}
.portal-page .right :is(.guest-button, .profile-call-button, .retro-btn):disabled {
  background: #eee8eb;
  color: #a48e9a;
  text-shadow: 0 1px 0 #fff;
}
.portal-page .right :is(.guest-post, .profile-card, .profile-call-area, .force-self-intro, .force-affection-ui) {
  border-color: #d9bdca;
  box-shadow: inset 0 1px 0 #fff, 1px 1px 0 #f3e6ed;
}
.portal-page .right :is(.force-exp-bar-wrap, .music-list-item .player-screen) {
  border-color: #b899a9 #eadce4 #eadce4 #b899a9;
  background: linear-gradient(#f7f1f5, #fffafd);
  box-shadow: inset 1px 1px 2px #9b788a1f;
}
.portal-page .right .force-exp-bar {
  background: repeating-linear-gradient(90deg, #d57aa3 0 5px, #f2c6da 5px 6px);
  box-shadow: inset 0 2px 0 #ffffff70;
}
.portal-page .right .music-list-item .album-area {
  border-color: #ead5df #b99ba9 #b99ba9 #ead5df;
  background: linear-gradient(#fff, #fff3f8);
  box-shadow: inset 0 0 0 1px #fff;
}
.portal-page .right :is(.music-list-item .player-time-box, .diary-meta) {
  box-shadow: inset 0 1px 0 #fff;
}
.portal-page .right .my-banner {
  border-color: #fff #bd8ba3 #bd8ba3 #fff;
  background: linear-gradient(#fff7fc, #f2c7dc 50%, #ffe3f0);
  box-shadow: 0 0 0 1px #d6a9bf, 1px 2px 0 #efdae5;
  text-shadow: 0 1px 0 #fff;
}
.portal-home:not(.portal-null) .home-footer {
  border-top-color: #d6a9bf;
  background: linear-gradient(#fff7fb, #fff 34px);
  box-shadow: inset 0 1px 0 #fff;
}
/* The same light plastic finish on standalone controls; game art stays intact. */
.portal-cooking .cooking-main-button,
.portal-player:not(.special-song) .custom-buttons button {
  border-color: #fff #b77897 #b77897 #fff;
  background: linear-gradient(#fffafd, #ffe4ef 48%, #f4c7dc 50%, #fce3ef);
  color: #96385f;
  box-shadow: 0 0 0 1px #d6a9bf;
  text-shadow: 0 1px 0 #fff;
}
.portal-cooking .cooking-start-button {
  background: linear-gradient(#f3a9ce, #de679d 48%, #ca427f 50%, #df74a8);
  color: #fff;
  text-shadow: 0 -1px 0 #a03567;
}
.portal-cooking .cooking-main-button:active:not(:disabled),
.portal-player:not(.special-song) .custom-buttons button:active {
  border-color: #ae7f96 #fff #fff #ae7f96;
  box-shadow: inset 1px 1px 2px #a8678640;
}
.portal-player:not(.special-song) .player-box {
  border-color: #ead5df #b99ba9 #b99ba9 #ead5df;
  background: linear-gradient(#fffafd, #fff 80%);
  box-shadow: 1px 2px 0 #f0dce6, inset 0 0 0 1px #fff;
}
.portal-player:not(.special-song) .player-titlebar {
  background: linear-gradient(#fff6fb, #f6d1e3 48%, #edbbd3 50%, #ffe5f2);
  text-shadow: 0 1px 0 #fff;
}
.portal-player:not(.special-song) :is(.screen, .progress-shell, .volume-shell) {
  border-color: #b899a9 #eadce4 #eadce4 #b899a9;
  box-shadow: inset 1px 1px 2px #9b788a1f;
}
.portal-player:not(.special-song) .progress-fill {
  background: repeating-linear-gradient(90deg, #d57aa3 0 5px, #f2c6da 5px 6px);
  box-shadow: inset 0 2px 0 #ffffff70;
}
.portal-null .portal-nav {
  background: linear-gradient(#30252d, #191219 48%, #241a21 50%, #171217);
  box-shadow: inset 0 1px 0 #51404a, inset 0 -1px 0 #0a080a;
}
.portal-menu :is(.side-site-title, .side-menu-title) {
  background: linear-gradient(#fff8fc, #f6d3e4 48%, #edc0d6 50%, #ffe7f2);
  box-shadow: inset 0 1px 0 #fff, 0 1px 0 #d6a9bf;
  text-shadow: 0 1px 0 #fff;
}

/* Music room only: a rose-metal audio deck, with square cover art.
   These selectors intentionally exclude the game catalogue and dialogue UI. */
.portal-page.portal-music .right .music-list-item {
  position: relative;
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  align-items: start;
  gap: 10px 16px;
  padding: 12px;
  border: 2px solid;
  border-color: #fff #b591a4 #a97e94 #fff;
  background: repeating-linear-gradient(0deg, #ffffff18 0 1px, transparent 1px 3px), linear-gradient(110deg, #f7eff3, #e4d3dd 47%, #f9f0f5 100%);
  box-shadow: 0 0 0 1px #c9aabb, inset 0 0 0 1px #fdf8fb, 2px 2px 0 #e9d7e0;
}
.portal-page.portal-music .right .music-list-item::before {
  content: "EJIN AUDIO  /  CONTINUOUS MUSIC PLAYER";
  grid-column: 1 / -1;
  display: block;
  padding: 0 0 7px;
  border-bottom: 1px solid #cbb4c1;
  color: #8a687b;
  font: bold 10px/1.4 "Courier New", monospace;
  letter-spacing: 1px;
  text-shadow: 0 1px 0 #fff;
  box-shadow: 0 1px 0 #fff9;
}
.portal-page.portal-music .right .music-list-item .album-area {
  width: 100%;
  min-width: 0;
  padding: 6px;
  border: 1px solid;
  border-color: #b69aa9 #fff #fff #b69aa9;
  background: linear-gradient(#dccbd5, #eee2e9);
  box-shadow: inset 1px 1px 2px #8b6b7c33;
}
.portal-page.portal-music .right .music-list-item .album-cover {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: 1px solid #fff;
  object-fit: cover;
  object-position: center;
  background: #fff;
  box-shadow: 0 1px 2px #745c6d40;
}
.portal-page.portal-music .right .music-list-item .album-area::after {
  content: "";
  display: block;
  width: 62px;
  max-width: 100%;
  height: 15px;
  margin: 10px auto 3px;
  background: radial-gradient(circle, #9e8192 1px, #fff0 1.2px);
  background-size: 4px 4px;
  opacity: .65;
}
.portal-page.portal-music .right .music-list-item .player-area {
  min-width: 0;
  width: 100%;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.portal-page.portal-music .right .music-list-item .player-screen {
  position: relative;
  overflow: hidden;
  margin: 0 0 10px;
  padding: 10px 12px;
  border: 2px solid;
  border-color: #796f79 #f9f1f6 #f9f1f6 #796f79;
  background: linear-gradient(135deg, #29352f 0%, #1a2722 55%, #26342b 100%);
  color: #c8e4af;
  box-shadow: inset 2px 2px 5px #0008, 0 1px 0 #fff;
  font-family: "Courier New", "돋움", Dotum, monospace;
}
.portal-page.portal-music .right .music-list-item .player-screen::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, #0000 0 2px, #00000012 2px 3px), linear-gradient(165deg, #ffffff12, #fff0 45%);
}
.portal-page.portal-music .right .music-list-item .track-label {
  margin-bottom: 7px;
  color: #96b58d;
  font: 10px/1.4 "Courier New", monospace;
  letter-spacing: 2px;
}
.portal-page.portal-music .right .music-list-item .track-title {
  color: #e0edc0;
  font: bold 15px/1.5 "돋움", Dotum, sans-serif;
  text-shadow: 0 0 2px #c4f0ae35;
}
.portal-page.portal-music .right .music-list-item .track-artist {
  color: #a6c29d;
  font-size: 11px;
}
.portal-page.portal-music .right .music-list-item .track-status {
  margin-top: 7px;
  padding-top: 5px;
  border-top: 1px dotted #576a59;
  color: #efc8de;
  font: 10px/1.4 "Courier New", monospace;
  letter-spacing: 1px;
}
.portal-page.portal-music .right .music-list-item .track-status::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-right: 6px;
  background: #c9e5ad;
  box-shadow: 0 0 3px #b8d99d66;
  vertical-align: 1px;
}
.portal-page.portal-music .right .music-list-item .player-buttons { margin: 0 0 8px; }
.portal-page.portal-music .right .music-list-item .retro-btn {
  min-width: 98px;
  min-height: 31px;
  margin: 0;
  padding: 5px 14px;
  border: 1px solid;
  border-color: #fff #997d8e #997d8e #fff;
  background: linear-gradient(#fffafd 0%, #f2e4ec 45%, #d7becd 50%, #eedfe7 100%);
  color: #654a5b;
  box-shadow: 0 0 0 1px #ba9eae, inset 0 1px 0 #fff, 1px 2px 0 #c2a9b8;
  font: bold 12px/1.5 "Courier New", monospace;
  letter-spacing: 1px;
  text-shadow: 0 1px 0 #fff;
}
.portal-page.portal-music .right .music-list-item .retro-btn:hover {
  background: linear-gradient(#fffaf2, #f2e3d3 48%, #e1c7b2 50%, #fff1df);
  color: #a73869;
}
.portal-page.portal-music .right .music-list-item .retro-btn:active {
  border-color: #997d8e #fff #fff #997d8e;
  background: #ddc8d5;
  box-shadow: 0 0 0 1px #ba9eae, inset 1px 1px 2px #8d6d7e55;
}
.portal-page.portal-music .right .music-list-item .player-time-box {
  margin: 0;
  padding: 3px 7px;
  border-color: #b8a3af #fff #fff #b8a3af;
  background: #e6d9e1;
  color: #7f6574;
  font: 9px/1.4 "Courier New", monospace;
  letter-spacing: 1px;
  box-shadow: inset 1px 1px 1px #ad92a126;
}
.portal-page.portal-music .right .music-list-item .player-note {
  margin-top: 8px;
  padding: 6px 0 0;
  border-top: 1px solid #cdb7c3;
  background: transparent;
  color: #826575;
  font-size: 11px;
  box-shadow: inset 0 1px 0 #fff9;
}
@media (max-width: 640px) {
  .portal-page.portal-music .right .music-list-item {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 9px;
    padding: 10px;
  }
  .portal-page.portal-music .right .music-list-item::before { font-size: 9px; letter-spacing: .5px; }
  .portal-page.portal-music .right .music-list-item .album-area { padding: 4px; }
  .portal-page.portal-music .right .music-list-item .player-screen { padding: 8px; }
  .portal-page.portal-music .right .music-list-item .track-title { font-size: 12px; }
  .portal-page.portal-music .right .music-list-item .retro-btn { min-width: 0; width: 100%; min-height: 34px; }
}

/* Wallpaper sits behind the existing white content, without changing layout
   or any dialogue styles. The hidden section keeps its dark palette. */
body.portal-home:not(.portal-null):not(.portal-menu) {
  background-color: #f3e0eb;
  background-image:
    linear-gradient(90deg, #ffffff55 50%, transparent 50%),
    linear-gradient(#ffffff55 50%, transparent 50%),
    radial-gradient(circle at 1px 1px, #c79ab32b .65px, transparent .85px);
  background-size: 24px 24px, 24px 24px, 6px 6px;
  background-position: 0 0;
  background-repeat: repeat;
  background-attachment: scroll;
}
.portal-home:not(.portal-null) .container {
  background: #ffffffed;
  box-shadow: 0 0 0 1px #e2c7d6, 0 0 18px #9f6e8a14;
}
.portal-home.portal-standalone > .portal-frame { background: #ffffffed; }
body.portal-null {
  background-image: repeating-linear-gradient(135deg, #ffffff03 0 1px, transparent 1px 5px);
  background-size: 8px 8px;
}

/* Neutral silver shell only on music devices. Page headings remain pink. */
.portal-page.portal-music .right .music-list-item {
  border-color: #fff #919191 #7d7d7d #fff;
  background: repeating-linear-gradient(0deg, #ffffff20 0 1px, transparent 1px 3px), linear-gradient(110deg, #f1f1f1, #c9c9c9 47%, #ededed);
  box-shadow: 0 0 0 1px #a6a6a6, inset 0 0 0 1px #fafafa, 2px 2px 0 #d6d6d6;
}
.portal-page.portal-music .right .music-list-item::before { border-color: #b0b0b0; color: #666; }
.portal-page.portal-music .right .music-list-item .album-area {
  border-color: #999 #fff #fff #999;
  background: linear-gradient(#cecece, #e9e9e9);
  box-shadow: inset 1px 1px 2px #0002;
}
.portal-page.portal-music .right .music-list-item .album-cover { box-shadow: 0 1px 2px #0003; }
.portal-page.portal-music .right .music-list-item .album-area::after {
  background-image: radial-gradient(circle, #858585 1px, transparent 1.2px);
}
.portal-page.portal-music .right .music-list-item .player-screen {
  border-color: #656565 #f4f4f4 #f4f4f4 #656565;
  background: linear-gradient(135deg, #253129, #17221b 55%, #29362b);
}
.portal-page.portal-music .right .music-list-item .track-status { color: #b4dc9b; }
/* A decorative segmented level strip, not a fake seek control. Playback
   progress and volume remain the real interactive controls in the popup. */
.portal-page.portal-music .right .music-list-item .track-status::after {
  content: "";
  display: block;
  width: 100%;
  max-width: 220px;
  height: 7px;
  margin-top: 8px;
  border: 1px solid #0d190e;
  background: repeating-linear-gradient(90deg, #83c94d 0 6px, #203321 6px 8px);
  box-shadow: inset 0 1px 0 #bcf38570, 0 0 2px #65a83f33;
}
.portal-page.portal-music .right .music-list-item .retro-btn {
  border-color: #fff #777 #777 #fff;
  background: linear-gradient(#fff 0%, #e9e9e9 45%, #bebebe 50%, #e7e7e7);
  color: #393939;
  box-shadow: 0 0 0 1px #a0a0a0, inset 0 1px 0 #fff, 1px 2px 0 #a8a8a8;
}
.portal-page.portal-music .right .music-list-item .retro-btn:hover { background: linear-gradient(#fff, #ededed 48%, #c8c8c8 50%, #f3f3f3); color: #254c26; }
.portal-page.portal-music .right .music-list-item .retro-btn:active {
  border-color: #777 #fff #fff #777;
  background: #c9c9c9;
  box-shadow: 0 0 0 1px #a0a0a0, inset 1px 1px 2px #0003;
}
.portal-page.portal-music .right .music-list-item .player-time-box {
  border-color: #a0a0a0 #fff #fff #a0a0a0;
  background: #d5d5d5;
  color: #606060;
  box-shadow: inset 1px 1px 1px #0001;
}
.portal-page.portal-music .right .music-list-item .player-note { border-color: #b1b1b1; color: #646464; }
.portal-page.portal-music .right .music-list-item .player-note p::before { color: #5d5d5d; }

.portal-player:not(.special-song) { background: #e5e5e5; }
.portal-player:not(.special-song) .player-box {
  border-color: #fff #8b8b8b #777 #fff;
  background: linear-gradient(110deg, #f4f4f4, #d3d3d3 60%, #eaeaea);
  box-shadow: 1px 2px 0 #b5b5b5, inset 0 0 0 1px #fff;
}
.portal-player:not(.special-song) .player-titlebar {
  border-color: #a0a0a0;
  background: linear-gradient(#fff, #dedede 48%, #bbb 50%, #e4e4e4);
  color: #444;
}
.portal-player:not(.special-song) h1 { color: #555; }
.portal-player:not(.special-song) .album-frame { border-color: #999 #fff #fff #999; background: #d3d3d3; }
.portal-player:not(.special-song) .screen { border-color: #626262 #fff #fff #626262; background: linear-gradient(#26332a, #18221c); box-shadow: inset 1px 1px 3px #0007; }
.portal-player:not(.special-song) .now-playing { color: #91ae89; }
.portal-player:not(.special-song) .song-title { color: #d2eab3; }
.portal-player:not(.special-song) .song-artist { color: #a4c69b; }
.portal-player:not(.special-song) .status-line { color: #98bd8a; border-color: #526550; }
.portal-player:not(.special-song) .audio-area { border-color: #aaa; background: #e3e3e3; }
.portal-player:not(.special-song) .custom-buttons button {
  border-color: #fff #777 #777 #fff;
  background: linear-gradient(#fff, #dedede 48%, #bcbcbc 50%, #e9e9e9);
  color: #444;
  box-shadow: 0 0 0 1px #aaa;
}
.portal-player:not(.special-song) :is(.progress-shell, .volume-shell) { border-color: #666 #fff #fff #666; background: #233025; }
.portal-player:not(.special-song) :is(.progress-fill, .volume-fill) {
  background: repeating-linear-gradient(90deg, #83c94d 0 5px, #243826 5px 6px);
  box-shadow: inset 0 2px 0 #c6f99a70;
}
.portal-player:not(.special-song) :is(.time-row, .volume-row, .mini-footer, .warning, .portal-player-links a) { color: #666; }
.portal-player:not(.special-song) .mini-footer { border-color: #aaa; }

/* Home visitor counter: red LED digits behind an inset clock bezel.
   Seven-segment digits retain their numeric text and accessible label. */
.portal-home .right .visitor-box {
  box-sizing: border-box;
  display: block;
  width: 100%;
  margin: 0 0 12px;
  padding: 12px 10px 10px;
  border: 1px solid #e0bfd0;
  background: linear-gradient(to bottom, #fffdfd, #fff5fa);
  box-shadow: inset 0 1px 0 #fff, 1px 1px 0 #f2dfe8;
  text-align: center;
}
.portal-home .right .visitor-line {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}
.portal-home .right .visitor-text { color: #624450; font-size: 14px; font-weight: bold; }
.portal-home .right .fake-counter {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 2px;
  padding: 4px 6px;
  border: 3px solid;
  border-color: #87767e #eee7eb #eee7eb #87767e;
  background: #100609;
  box-shadow: 0 0 0 1px #b59ea9, inset 1px 1px 3px #000, 1px 2px 0 #e6d4dd;
  vertical-align: middle;
}
.portal-home .right .fake-counter span {
  display: inline-block;
  box-sizing: border-box;
  min-width: 24px;
  height: 34px;
  padding: 0 2px;
  border: 1px solid #570b15;
  background: linear-gradient(to bottom, #30050c, #130206 48%, #220309 51%, #34050c);
  color: #ff272e;
  box-shadow: inset 0 1px 2px #000, inset -1px 0 0 #6b0d1a;
  font: bold 30px/32px "Courier New", monospace;
  text-shadow: 0 0 2px #ff272e, 0 0 6px #ff132980;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.portal-home .right .visitor-subtext { margin: 8px 0 0; color: #947282; font-size: 11px; line-height: 1.7; }
.portal-home .right #total-visit-count { color: #c23e81; font: bold 12px/1.5 "Courier New", monospace; letter-spacing: 2px; }
@media (max-width: 480px) {
  .portal-home .right .visitor-box { padding: 10px 7px 8px; }
  .portal-home .right .visitor-line { gap: 6px; }
  .portal-home .right .visitor-text { font-size: 11px; }
  .portal-home .right .fake-counter { gap: 1px; padding: 3px 4px; border-width: 2px; }
  .portal-home .right .fake-counter span { min-width: 16px; height: 27px; padding: 0 1px; font-size: 23px; line-height: 25px; }
  .portal-home .right .visitor-subtext { margin-top: 7px; font-size: 10px; }
  .portal-home .right #total-visit-count { font-size: 11px; letter-spacing: 1px; }
}
.portal-home .right .fake-counter .counter-digit {
  position: relative;
  width: 27px;
  min-width: 27px;
  height: 40px;
  padding: 0;
  font-size: 0;
  color: transparent;
  text-shadow: none;
}
.counter-digit .counter-segment {
  position: absolute;
  display: block;
  background: #410a10;
  opacity: .65;
}
.counter-digit .segment-a,
.counter-digit .segment-g,
.counter-digit .segment-d {
  left: 5px;
  width: 15px;
  height: 5px;
  clip-path: polygon(18% 0,82% 0,100% 50%,82% 100%,18% 100%,0 50%);
}
.counter-digit .segment-a { top: 3px; }
.counter-digit .segment-g { top: 17px; }
.counter-digit .segment-d { top: 31px; }
.counter-digit .segment-b,
.counter-digit .segment-c,
.counter-digit .segment-e,
.counter-digit .segment-f {
  width: 5px;
  height: 14px;
  clip-path: polygon(50% 0,100% 18%,100% 82%,50% 100%,0 82%,0 18%);
}
.counter-digit .segment-b { right: 3px; top: 5px; }
.counter-digit .segment-c { right: 3px; top: 19px; }
.counter-digit .segment-f { left: 3px; top: 5px; }
.counter-digit .segment-e { left: 3px; top: 19px; }
.counter-digit:is([data-digit="0"],[data-digit="2"],[data-digit="3"],[data-digit="5"],[data-digit="6"],[data-digit="7"],[data-digit="8"],[data-digit="9"]) .segment-a,
.counter-digit:is([data-digit="0"],[data-digit="1"],[data-digit="2"],[data-digit="3"],[data-digit="4"],[data-digit="7"],[data-digit="8"],[data-digit="9"]) .segment-b,
.counter-digit:is([data-digit="0"],[data-digit="1"],[data-digit="3"],[data-digit="4"],[data-digit="5"],[data-digit="6"],[data-digit="7"],[data-digit="8"],[data-digit="9"]) .segment-c,
.counter-digit:is([data-digit="0"],[data-digit="2"],[data-digit="3"],[data-digit="5"],[data-digit="6"],[data-digit="8"],[data-digit="9"]) .segment-d,
.counter-digit:is([data-digit="0"],[data-digit="2"],[data-digit="6"],[data-digit="8"]) .segment-e,
.counter-digit:is([data-digit="0"],[data-digit="4"],[data-digit="5"],[data-digit="6"],[data-digit="8"],[data-digit="9"]) .segment-f,
.counter-digit:is([data-digit="-"],[data-digit="2"],[data-digit="3"],[data-digit="4"],[data-digit="5"],[data-digit="6"],[data-digit="8"],[data-digit="9"]) .segment-g {
  background: #ff252e;
  opacity: 1;
  filter: drop-shadow(0 0 2px #ff172c) drop-shadow(0 0 3px #ff172c99);
}

/* Compact visitor display shares the update column's exact width. */
.portal-home .home-update-column { min-width: 0; }
.portal-home .right .home-update-column .visitor-box {
  width: 100%;
  margin: 0 0 8px;
  padding: 8px 5px 6px;
}
.portal-home .right .home-update-column .visitor-line { gap: 5px; }
.portal-home .right .home-update-column .visitor-text { font-size: 11px; }
.portal-home .right .home-update-column .fake-counter { zoom: .7; transform: none; }
.portal-home .right .home-update-column .visitor-subtext { margin-top: 5px; font-size: 10px; }
.portal-home .right .home-update-column #total-visit-count { font-size: 10px; letter-spacing: 1px; }
