@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root {
  --pink-1: #112844;
  --pink-2: #081427;
  --ink-0: #081427;
  --ink-1: #0e2036;
  --ink-2: #112844;
  --brown-1: #2c527a;
  --brown-2: #18324f;
  --brown-3: #081427;
  --brown-edge-light: #2c527a;
  --brown-edge-dark: #081427;
  --panel-bg: #0e2036;
  --panel-line: #2c527a;
  --text-main: #e9e1d2;
  --text-muted: #b8a88e;
  --text-active: #f6b23c;
  --alert: #d95c4a;
  --ok: #78b7ff;
  --window-shadow: 0 16px 30px rgba(0, 0, 0, 0.38);
  --focus-outline: #f6b23c;
  --highlight-ring: rgba(246, 178, 60, 0.45);
  --icon-active-shadow: rgba(246, 178, 60, 0.48);
  --interactive-fill-start: #f6b23c;
  --interactive-fill-end: #d97a1e;
  --interactive-fill-text: #081427;
  --desktop-wallpaper: url("/static/img/desktop/monkey-barrel.png?v=1");
  --menu-panel-start: #112844;
  --menu-panel-end: #081427;
  --menu-link-start: #112844;
  --menu-link-end: #0e2036;
  --menu-link-border: #2c527a;
  --status-pill-bg: #112844;
  --status-pill-text: #e9e1d2;
  --status-pill-border: #2c527a;
  --status-clock-font-family: "IBM Plex Mono", "Courier New", monospace;
  --status-clock-font-size: 0.68rem;
  --status-clock-letter-spacing: 0.07em;
  --status-clock-font-weight: 600;
  --status-pill-size: 0.68rem;
  --status-pill-letter-spacing: 0.07em;
  --window-frame-start: #112844;
  --window-frame-end: #081427;
  --window-title-start: #112844;
  --window-title-end: #081427;
  --window-title-border: #18324f;
  --window-title-text: #ffd36a;
  --window-control-bg: #081427;
  --window-control-border-light: #2c527a;
  --window-control-text: #ffd36a;
  --window-content-start: #0e2036;
  --window-content-end: #081427;
  --window-content-border: #18324f;
  --window-sidebar-start: #112844;
  --window-sidebar-end: #0e2036;
  --surface-card-border: #2c527a;
  --surface-card-bg: #0e2036;
  --surface-item-border: #2c527a;
  --surface-item-bg: #112844;
  --surface-title-text: #e9e1d2;
  --surface-muted-text: #b8a88e;
  --link-chip-border: #2c527a;
  --link-chip-bg: #112844;
  --link-chip-text: #e9e1d2;
  --button-border-main: #18324f;
  --button-border-light: #2c527a;
  --button-start: #112844;
  --button-end: #0e2036;
  --button-text: #e9e1d2;
  --form-field-border: #2c527a;
  --form-field-bg: #112844;
  --form-label: #b8a88e;
  --fieldset-border: #18324f;
  --fieldset-bg: rgba(17, 40, 68, 0.72);
  --fieldset-legend: #ffd36a;
  --dock-shell-bg: transparent;
  --dock-shell-border: transparent;
  --dock-start: #112844;
  --dock-end: #081427;
  --dock-border: #2c527a;
  --dock-btn-start: #18324f;
  --dock-btn-end: #112844;
  --dock-btn-border-light: #2c527a;
  --dock-btn-border-dark: #081427;
  --dock-label: #e9e1d2;
  --dock-label-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
  --dock-label-size: 0.68rem;
  --dock-label-active: #f6b23c;
  --dock-base-bg: #0e2036;
  --dock-base-text: #b8a88e;
  --dock-height: 106px;
  --base-height: 0px;
  --header-height: 42px;
  --status-header-btn-height: 38px;
  --font-ui: "IBM Plex Mono", "Courier New", monospace;
  --font-display: "VT323", "Courier New", monospace;
  --settings-lead-size: 0.74rem;
  --settings-label-size: 0.62rem;
  --settings-btn-size: 0.72rem;
  --settings-palette-btn-size: 0.82rem;
  --settings-tagline-size: 0.62rem;
  --settings-btn-letter-spacing: 0.03em;
  --settings-label-letter-spacing: 0.05em;
  --window-lead-size: 0.74rem;
  --window-item-title-size: 1.3rem;
  --window-item-meta-size: 0.7rem;
  --window-empty-size: 0.78rem;
  --home-summary-count-size: 2.2rem;
  --home-hero-title-size: clamp(1.78rem, 4.1vw, 3.08rem);
  --home-hero-title-size-laptop: clamp(1.64rem, 3.55vw, 2.82rem);
  --home-hero-title-size-short: clamp(1.46rem, 2.65vw, 2.22rem);
  --home-hero-title-size-tablet: clamp(1.54rem, 6.9vw, 2.48rem);
  --home-hero-title-size-phone: clamp(1.22rem, 6.9vw, 1.98rem);
  --window-title-font-size: 22px;
  --window-title-font-size-mobile: 18px;
  --home-carousel-frame-aspect-ratio: 104 / 23;
  --calendar-selected-day-accent: #ff9fcb;
  --calendar-selected-day-glow: rgba(255, 159, 203, 0.46);
  --calendar-show-count-accent: #ffcb63;
  --calendar-open-mic-count-accent: #79ead8;
  --dot-matrix-panel-step: 3px;
  --dot-matrix-control-step: 3px;
  --dot-matrix-panel-light: rgba(220, 226, 235, 0.26);
  --dot-matrix-panel-dark: rgba(165, 173, 184, 0.16);
  --dot-matrix-panel-opacity: 0.62;
  --dot-matrix-control-light: rgba(228, 233, 240, 0.34);
  --dot-matrix-control-dark: rgba(172, 180, 192, 0.2);
  --dot-matrix-control-opacity: 0.56;
  --scrollbar-size: 12px;
  --scrollbar-track: rgba(74, 88, 108, 0.45);
  --scrollbar-track-edge: rgba(213, 221, 233, 0.26);
  --scrollbar-thumb-start: rgba(232, 236, 242, 0.9);
  --scrollbar-thumb-end: rgba(188, 197, 210, 0.92);
  --scrollbar-thumb-border: rgba(43, 55, 72, 0.75);
  --scrollbar-thumb-hover-start: rgba(245, 248, 252, 0.96);
  --scrollbar-thumb-hover-end: rgba(203, 213, 226, 0.96);
  --boot-screen-bg: #081427;
  --cursor-arrow-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http://www.w3.org/2000/svg%27%20width%3D%2716%27%20height%3D%2724%27%20viewBox%3D%270%200%2016%2024%27%20shape-rendering%3D%27crispEdges%27%3E%3Cpath%20d%3D%27M1%201L1%2019L5%2015L8%2023L11%2022L8%2014H15L1%201Z%27%20fill%3D%27%23ffffff%27%20stroke%3D%27%23000000%27%20stroke-width%3D%271%27%20stroke-linejoin%3D%27miter%27/%3E%3C/svg%3E");
  --cursor-pointer-image: var(--cursor-arrow-image);
  --cursor-window-close-image: url("/static/img/icons/system/3floppy_unmount_mirror.png");
  --cursor-mic-image: url("/static/img/icons/system/cursor-mic-32-left.png");
  --cursor-s-image: url("/static/img/icons/system/middle-s-icon-cursor.png");
  --cursor-trail-image: var(--cursor-arrow-image);
  --cursor-trail-width: 16px;
  --cursor-trail-height: 24px;
  --cursor-trail-size: 16px 24px;
}

body[data-palette="midnight"] {
  --pink-1: #0f1624;
  --pink-2: #141f32;
  --ink-0: #06090f;
  --ink-1: #0a1020;
  --ink-2: #0e1830;
  --brown-1: #21354f;
  --brown-2: #152535;
  --brown-3: #0f1a28;
  --brown-edge-light: #527099;
  --brown-edge-dark: #07101d;
  --panel-bg: #0f1828;
  --panel-line: #264164;
  --text-main: #e9eef8;
  --text-muted: #9fb2cb;
  --text-active: #8dd1ff;
  --focus-outline: #8dd1ff;
  --highlight-ring: rgba(141, 209, 255, 0.45);
  --icon-active-shadow: rgba(141, 209, 255, 0.52);
  --interactive-fill-start: #26496f;
  --interactive-fill-end: #153250;
  --interactive-fill-text: #e4f2ff;
  --desktop-wallpaper: url("/static/img/desktop/middle-s-midnight-90.png?v=3");
  --menu-panel-start: #11233b;
  --menu-panel-end: #0b1626;
  --menu-link-start: #284b74;
  --menu-link-end: #17314d;
  --menu-link-border: #1b3550;
  --status-pill-bg: #0b1a2d;
  --status-pill-text: #d7ebff;
  --status-pill-border: #3e6b95;
  --window-frame-start: #1f3856;
  --window-frame-end: #13263e;
  --window-title-start: #244265;
  --window-title-end: #173150;
  --window-title-border: #0c1d31;
  --window-title-text: #dcedff;
  --window-control-bg: #0d1828;
  --window-control-border-light: #4f78a2;
  --window-control-text: #d9eeff;
  --window-content-start: #0d1a2b;
  --window-content-end: #09121e;
  --window-content-border: #16273d;
  --window-sidebar-start: #0e1a2b;
  --window-sidebar-end: #081321;
  --surface-card-border: #2a4766;
  --surface-card-bg: #0f2033;
  --surface-item-border: #2b4765;
  --surface-item-bg: #101f30;
  --surface-title-text: #eff6ff;
  --surface-muted-text: #9fb4cd;
  --link-chip-border: #385574;
  --link-chip-bg: #12263b;
  --link-chip-text: #8fd1ff;
  --button-border-main: #081321;
  --button-border-light: #5b83af;
  --button-start: #26496f;
  --button-end: #153250;
  --button-text: #e4f2ff;
  --form-field-border: #375679;
  --form-field-bg: #11253b;
  --form-label: #bcd2ea;
  --fieldset-border: #355a82;
  --fieldset-bg: rgba(11, 27, 46, 0.7);
  --fieldset-legend: #a9d6ff;
  --dock-shell-bg: transparent;
  --dock-shell-border: transparent;
  --dock-start: #12233a;
  --dock-end: #0d1728;
  --dock-border: #315377;
  --dock-btn-start: #224162;
  --dock-btn-end: #142d48;
  --dock-btn-border-light: #4e749d;
  --dock-btn-border-dark: #0f2339;
  --dock-label: #e9f2ff;
  --dock-label-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
  --dock-label-size: 0.68rem;
  --dock-label-active: #8dd1ff;
  --dock-base-bg: #0f1b2a;
  --dock-base-text: #95acc7;
  --window-lead-size: 0.72rem;
  --window-item-title-size: 1.08rem;
  --window-item-meta-size: 0.66rem;
  --window-empty-size: 0.74rem;
  --home-summary-count-size: 2.08rem;
  --dot-matrix-panel-light: rgba(220, 226, 235, 0.26);
  --dot-matrix-panel-dark: rgba(165, 173, 184, 0.16);
  --dot-matrix-control-light: rgba(228, 233, 240, 0.34);
  --dot-matrix-control-dark: rgba(172, 180, 192, 0.2);
  --scrollbar-track: rgba(10, 17, 30, 0.88);
  --scrollbar-track-edge: rgba(87, 120, 157, 0.42);
  --scrollbar-thumb-start: #4c79a8;
  --scrollbar-thumb-end: #2e4f74;
  --scrollbar-thumb-border: rgba(194, 224, 255, 0.4);
  --scrollbar-thumb-hover-start: #5b8cc0;
  --scrollbar-thumb-hover-end: #385f8a;
}

body[data-palette="mint"] {
  --pink-1: #c9f2e1;
  --pink-2: #bde8d7;
  --ink-0: #0f1c19;
  --ink-1: #122624;
  --ink-2: #1a332f;
  --brown-1: #1f4c43;
  --brown-2: #183c35;
  --brown-3: #122e28;
  --brown-edge-light: #6ca597;
  --brown-edge-dark: #0c1f1c;
  --panel-bg: #122923;
  --panel-line: #2f6a5c;
  --text-main: #eaf8f3;
  --text-muted: #b2d8cb;
  --text-active: #8fd3bf;
  --focus-outline: #8fd3bf;
  --highlight-ring: rgba(143, 211, 191, 0.48);
  --icon-active-shadow: rgba(143, 211, 191, 0.56);
  --interactive-fill-start: #5a9383;
  --interactive-fill-end: #3e7062;
  --interactive-fill-text: #e7fff7;
  --desktop-wallpaper: url("/static/img/desktop/mint_white_pink_gradient_8k.png?v=2");
  --menu-panel-start: #2d5d52;
  --menu-panel-end: #21473f;
  --menu-link-start: #5f9585;
  --menu-link-end: #3c6d61;
  --menu-link-border: #2f5f53;
  --status-pill-bg: #2a5a4d;
  --status-pill-text: #ddf7ef;
  --status-pill-border: #7aaf9f;
  --window-frame-start: #5e9c8a;
  --window-frame-end: #3f7063;
  --window-title-start: #659f8e;
  --window-title-end: #447568;
  --window-title-border: #2f5b50;
  --window-title-text: #e7fff6;
  --window-control-bg: #315d52;
  --window-control-border-light: #9cc8bb;
  --window-control-text: #e4fff8;
  --window-content-start: #2f5a4f;
  --window-content-end: #23483f;
  --window-content-border: #315e52;
  --window-sidebar-start: #315f53;
  --window-sidebar-end: #244a40;
  --surface-card-border: #4f8878;
  --surface-card-bg: #305e52;
  --surface-item-border: #4a8172;
  --surface-item-bg: #315f54;
  --surface-title-text: #ecfff9;
  --surface-muted-text: #c3ddd4;
  --link-chip-border: #5f9988;
  --link-chip-bg: #37685c;
  --link-chip-text: #d8f5ea;
  --button-border-main: #2b564b;
  --button-border-light: #97c6b9;
  --button-start: #5a9383;
  --button-end: #3e7062;
  --button-text: #e7fff7;
  --form-field-border: #5b9384;
  --form-field-bg: #35675a;
  --form-label: #d3ece4;
  --fieldset-border: #588f80;
  --fieldset-bg: rgba(35, 84, 72, 0.72);
  --fieldset-legend: #c8e9de;
  --dock-shell-bg: transparent;
  --dock-shell-border: transparent;
  --dock-start: #3b6f61;
  --dock-end: #275347;
  --dock-border: #4f8a7a;
  --dock-btn-start: #5e9686;
  --dock-btn-end: #3f7062;
  --dock-btn-border-light: #9ccbbd;
  --dock-btn-border-dark: #2f5d52;
  --dock-label: #e8fff7;
  --dock-label-shadow: 0 1px 0 rgba(0, 0, 0, 0.45);
  --dock-label-size: 0.68rem;
  --dock-label-active: #8fd3bf;
  --dock-base-bg: #25493f;
  --dock-base-text: #c4e4d9;
  --status-clock-font-size: 0.685rem;
  --status-pill-size: 0.685rem;
  --window-lead-size: 0.77rem;
  --window-item-title-size: 1.34rem;
  --window-item-meta-size: 0.72rem;
  --window-empty-size: 0.8rem;
  --home-summary-count-size: 2.25rem;
  --settings-lead-size: 0.76rem;
  --settings-label-size: 0.63rem;
  --settings-btn-size: 0.73rem;
  --settings-palette-btn-size: 0.83rem;
  --settings-tagline-size: 0.63rem;
  --news-detail-frame-border: var(--surface-item-border);
  --news-detail-frame-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  --dot-matrix-panel-light: rgba(220, 226, 235, 0.26);
  --dot-matrix-panel-dark: rgba(165, 173, 184, 0.16);
  --dot-matrix-control-light: rgba(228, 233, 240, 0.34);
  --dot-matrix-control-dark: rgba(172, 180, 192, 0.2);
  --scrollbar-track: rgba(26, 56, 49, 0.85);
  --scrollbar-track-edge: rgba(132, 182, 166, 0.46);
  --scrollbar-thumb-start: #78b9a6;
  --scrollbar-thumb-end: #4f8f7d;
  --scrollbar-thumb-border: rgba(223, 248, 239, 0.44);
  --scrollbar-thumb-hover-start: #8cd1bc;
  --scrollbar-thumb-hover-end: #5fa592;
}

body[data-palette="nes"] {
  --pink-1: #d9d8d1;
  --pink-2: #c6c4bc;
  --ink-0: #171719;
  --ink-1: #212125;
  --ink-2: #2a2a2f;
  --brown-1: #e7e6de;
  --brown-2: #d2d1c9;
  --brown-3: #bbb9b1;
  --brown-edge-light: #f6f5ee;
  --brown-edge-dark: #676660;
  --panel-bg: #dddcd4;
  --panel-line: #7f7e78;
  --text-main: #18181b;
  --text-muted: #504f49;
  --text-active: #c93b33;
  --focus-outline: #cf3f37;
  --highlight-ring: rgba(201, 59, 51, 0.42);
  --icon-active-shadow: rgba(201, 59, 51, 0.4);
  --interactive-fill-start: #f4f3ec;
  --interactive-fill-end: #cecdc5;
  --interactive-fill-text: #17171a;
  --desktop-wallpaper: url("/static/img/desktop/denver-8bit.png?v=1");
  --menu-panel-start: #ecebe3;
  --menu-panel-end: #cac9c1;
  --menu-link-start: #f7f6ef;
  --menu-link-end: #d6d5cd;
  --menu-link-border: #6d6c66;
  --status-pill-bg: #e5e4dc;
  --status-pill-text: #1b1b1f;
  --status-pill-border: #77766f;
  --window-frame-start: #e9e8e0;
  --window-frame-end: #c7c6be;
  --window-title-start: #e0ded6;
  --window-title-end: #bab8b0;
  --window-title-border: #6f6e68;
  --window-title-text: #1b1b1e;
  --window-control-bg: #e4e3db;
  --window-control-border-light: #f7f6ef;
  --window-control-text: #17171a;
  --window-content-start: #efeee7;
  --window-content-end: #d7d5cc;
  --window-content-border: #7e7d77;
  --window-sidebar-start: #e7e6de;
  --window-sidebar-end: #d1d0c8;
  --surface-card-border: #7e7d77;
  --surface-card-bg: #e9e8e0;
  --surface-item-border: #8b8a83;
  --surface-item-bg: #dfded6;
  --surface-title-text: #111114;
  --surface-muted-text: #4f4e48;
  --link-chip-border: #77766f;
  --link-chip-bg: #d6d5cd;
  --link-chip-text: #1c1c1f;
  --button-border-main: #5f5e58;
  --button-border-light: #f6f5ee;
  --button-start: #f4f3ec;
  --button-end: #cecdc5;
  --button-text: #17171a;
  --form-field-border: #75746e;
  --form-field-bg: #f4f3ec;
  --form-label: #44433e;
  --fieldset-border: #7d7c76;
  --fieldset-bg: rgba(229, 228, 219, 0.84);
  --fieldset-legend: #242428;
  --dock-shell-bg: transparent;
  --dock-shell-border: transparent;
  --dock-start: #cdcbc4;
  --dock-end: #b2b0a8;
  --dock-border: #76756e;
  --dock-btn-start: #f2f1ea;
  --dock-btn-end: #c8c7bf;
  --dock-btn-border-light: #faf9f3;
  --dock-btn-border-dark: #66645f;
  --dock-label: #18181c;
  --dock-label-shadow: none;
  --dock-label-size: 0.78rem;
  --dock-label-active: #121216;
  --dock-base-bg: #b3b2aa;
  --dock-base-text: #1e1e22;
  --status-clock-font-size: 0.67rem;
  --status-pill-size: 0.66rem;
  --window-lead-size: 0.68rem;
  --window-item-title-size: 0.8rem;
  --window-item-meta-size: 0.58rem;
  --window-empty-size: 0.7rem;
  --home-summary-count-size: 1.95rem;
  --settings-lead-size: 0.72rem;
  --settings-label-size: 0.61rem;
  --settings-btn-size: 0.71rem;
  --settings-palette-btn-size: 0.84rem;
  --settings-tagline-size: 0.61rem;
  --cursor-arrow-image: url("/static/img/icons/system/NES/cursor.png");
  --cursor-pointer-image: url("/static/img/icons/system/NES/cursor-click.png");
  --settings-btn-letter-spacing: 0.03em;
  --settings-label-letter-spacing: 0.05em;
  --nes-frame-light: #f6f6ef;
  --nes-frame-mid: #b8b7b0;
  --nes-frame-dark: #6f6e68;
  --nes-accent-red: #c93b33;
  --nes-accent-red-dark: #8f241f;
  --window-shadow: 0 0 0 2px rgba(27, 27, 30, 0.95), 10px 10px 0 rgba(0, 0, 0, 0.36);
  --dot-matrix-panel-step: 3px;
  --dot-matrix-control-step: 3px;
  --dot-matrix-panel-light: rgba(220, 226, 235, 0.26);
  --dot-matrix-panel-dark: rgba(165, 173, 184, 0.16);
  --dot-matrix-control-light: rgba(228, 233, 240, 0.34);
  --dot-matrix-control-dark: rgba(172, 180, 192, 0.2);
  --dot-matrix-panel-opacity: 0.62;
  --dot-matrix-control-opacity: 0.56;
  --scrollbar-track: rgba(190, 189, 180, 0.9);
  --scrollbar-track-edge: rgba(108, 107, 100, 0.5);
  --scrollbar-thumb-start: #f0efe7;
  --scrollbar-thumb-end: #c8c7bf;
  --scrollbar-thumb-border: rgba(108, 107, 100, 0.7);
  --scrollbar-thumb-hover-start: #f7f6ef;
  --scrollbar-thumb-hover-end: #d5d4cc;
}

/* Palette now owns typography and shell styling (replaces separate OS skin mode). */
body[data-palette="midnight"] {
  --font-ui: "IBM Plex Mono", "Courier New", monospace;
  --font-display: "IBM Plex Mono", "Courier New", monospace;
  --home-hero-title-size: clamp(1.5rem, 3.3vw, 2.52rem);
  --home-hero-title-size-laptop: clamp(1.4rem, 2.95vw, 2.24rem);
  --home-hero-title-size-short: clamp(1.26rem, 2.18vw, 1.86rem);
  --home-hero-title-size-tablet: clamp(1.3rem, 5.4vw, 1.96rem);
  --home-hero-title-size-phone: clamp(0.96rem, 5.3vw, 1.38rem);
  --window-title-font-size: 20px;
  --window-title-font-size-mobile: 16px;
}

body[data-palette="mint"] {
  --font-ui: "IBM Plex Mono", "Courier New", monospace;
  --font-display: "VT323", "Courier New", monospace;
  --home-hero-title-size: clamp(1.72rem, 3.95vw, 2.96rem);
  --home-hero-title-size-laptop: clamp(1.58rem, 3.35vw, 2.68rem);
  --home-hero-title-size-short: clamp(1.42rem, 2.52vw, 2.12rem);
  --home-hero-title-size-tablet: clamp(1.48rem, 6.6vw, 2.38rem);
  --home-hero-title-size-phone: clamp(1.18rem, 6.6vw, 1.9rem);
  --window-title-font-size: 23px;
  --window-title-font-size-mobile: 19px;
}

body[data-palette="nes"] {
  --font-ui: "IBM Plex Mono", "Courier New", monospace;
  --font-display: "Press Start 2P", "VT323", "Courier New", monospace;
  --home-hero-title-size: clamp(1.16rem, 2.4vw, 2.16rem);
  --home-hero-title-size-laptop: clamp(1.12rem, 2.2vw, 1.92rem);
  --home-hero-title-size-short: clamp(1rem, 1.86vw, 1.62rem);
  --home-hero-title-size-tablet: clamp(1.04rem, 4.55vw, 1.56rem);
  --home-hero-title-size-phone: clamp(0.94rem, 4.45vw, 1.28rem);
  --window-title-font-size: 18px;
  --window-title-font-size-mobile: 15px;
  --status-clock-letter-spacing: 0.06em;
}

body[data-palette="copper"] {
  --pink-1: #b7632d;
  --pink-2: #4b250f;
  --ink-0: #2a1408;
  --ink-1: #3a1d0b;
  --ink-2: #4a2711;
  --brown-1: #bf6e2d;
  --brown-2: #8f4a1c;
  --brown-3: #4d260f;
  --brown-edge-light: #e3a55a;
  --brown-edge-dark: #4a220f;
  --panel-bg: #4a2812;
  --panel-line: #c47a34;
  --text-main: #ffe5b4;
  --text-muted: #e7c089;
  --text-active: #ffbf00;
  --alert: #e97451;
  --ok: #ffd36a;
  --focus-outline: #ffd86f;
  --highlight-ring: rgba(255, 191, 0, 0.45);
  --icon-active-shadow: rgba(255, 191, 0, 0.56);
  --interactive-fill-start: #ffbf00;
  --interactive-fill-end: #e97451;
  --interactive-fill-text: #2f1508;
  --menu-panel-start: #6a3415;
  --menu-panel-end: #3f1f0d;
  --menu-link-start: #82411c;
  --menu-link-end: #5a2b12;
  --menu-link-border: #c47a34;
  --status-pill-bg: #5a2d14;
  --status-pill-text: #ffe5b4;
  --status-pill-border: #c67a34;
  --window-frame-start: #7b3d17;
  --window-frame-end: #51260e;
  --window-title-start: #995022;
  --window-title-end: #653014;
  --window-title-border: #c47a34;
  --window-title-text: #ffe4a9;
  --window-control-bg: #4a220f;
  --window-control-border-light: #d89a4e;
  --window-control-text: #ffe4a9;
  --window-content-start: #3f210f;
  --window-content-end: #2c170a;
  --window-content-border: #8f4f23;
  --window-sidebar-start: #4e2912;
  --window-sidebar-end: #351b0c;
  --surface-card-border: #b86f2f;
  --surface-card-bg: #3f220f;
  --surface-item-border: #c67a34;
  --surface-item-bg: #4b2913;
  --surface-title-text: #fff0d2;
  --surface-muted-text: #e1bb93;
  --link-chip-border: #c67a34;
  --link-chip-bg: #5a3016;
  --link-chip-text: #ffe5bf;
  --button-border-main: #6f3515;
  --button-border-light: #e0a55a;
  --button-start: #c86b2f;
  --button-end: #a24e1f;
  --button-text: #fff1dd;
  --form-field-border: #c67a34;
  --form-field-bg: #5a3118;
  --form-label: #edc59d;
  --fieldset-border: #9c5828;
  --fieldset-bg: rgba(91, 49, 24, 0.76);
  --fieldset-legend: #ffd999;
  --dock-start: #613217;
  --dock-end: #3f1f0d;
  --dock-border: #b66f2f;
  --dock-btn-start: #8f4b23;
  --dock-btn-end: #5d2d14;
  --dock-btn-border-light: #e0a35a;
  --dock-btn-border-dark: #4a220f;
  --dock-label: #ffe8c7;
  --dock-label-active: #ffd264;
  --dock-base-bg: #3b1c0c;
  --dock-base-text: #d8aa7c;
  --scrollbar-track: rgba(35, 16, 8, 0.9);
  --scrollbar-track-edge: rgba(213, 145, 67, 0.48);
  --scrollbar-thumb-start: #c08a1f;
  --scrollbar-thumb-end: #8f6316;
  --scrollbar-thumb-border: rgba(255, 209, 127, 0.5);
  --scrollbar-thumb-hover-start: #d89d24;
  --scrollbar-thumb-hover-end: #a07118;
  background-color: #2f1609;
  background-image: url("/static/img/desktop/monkey-barrel.png?v=1");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

body[data-palette="midnight"] {
  background-color: #0c1524;
  background-image: url("/static/img/desktop/middle-s-midnight-90.png?v=3");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

body[data-palette="mint"] {
  background-color: #d8ede6;
  background-image: url("/static/img/desktop/mint_white_pink_gradient_8k.png?v=2");
  background-position: center bottom !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
}

body[data-palette="nes"] {
  background-color: #d9d8d1;
  background-image: url("/static/img/desktop/denver-8bit.png?v=1");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

@media (max-width: 980px) {
  body[data-palette="copper"] {
    background-image: url("/static/img/desktop/monkey-barrel-mobile.png?v=1");
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  body[data-palette="midnight"] {
    background-image: url("/static/img/desktop/middle-s-midnight-90-mobile.png?v=1");
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  body[data-palette="nes"] {
    background-image: url("/static/img/desktop/denver-8bit-mobile.png?v=1");
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
  }
}

body[data-palette="midnight"] .desktop-window,
body[data-palette="mint"] .desktop-window,
body[data-palette="nes"] .desktop-window {
  border-radius: 0;
}

* {
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
}

*::-webkit-scrollbar {
  width: var(--scrollbar-size);
  height: var(--scrollbar-size);
}

*::-webkit-scrollbar-track {
  background: linear-gradient(180deg, var(--scrollbar-track), rgba(35, 44, 58, 0.58));
  border-left: 1px solid var(--scrollbar-track-edge);
  border-right: 1px solid rgba(11, 19, 28, 0.5);
}

*::-webkit-scrollbar-thumb {
  border: 1px solid var(--scrollbar-thumb-border);
  border-radius: 999px;
  background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
}

*::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--scrollbar-thumb-hover-start), var(--scrollbar-thumb-hover-end));
}

*::-webkit-scrollbar-corner {
  background: var(--scrollbar-track);
}

html,
body {
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-height: 100vh;
  background-color: var(--pink-2);
  background-image:
    var(--desktop-wallpaper),
    linear-gradient(180deg, var(--pink-1) 0%, var(--pink-2) 100%);
  background-size: cover, cover;
  background-repeat: no-repeat, no-repeat;
  background-position: center center, center center;
  background-attachment: fixed, fixed;
  color: var(--text-main);
  font-family: var(--font-ui);
  overflow-x: hidden;
  isolation: isolate;
  filter: none;
  transition: filter 120ms ease;
}

/* Home desktop boot splash */
html.desktop-boot-pending body {
  background: var(--boot-screen-bg);
}

html.desktop-boot-pending body > :not(.desktop-boot-overlay) {
  visibility: hidden;
}

.desktop-boot-overlay {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: var(--boot-screen-bg);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 520ms ease, visibility 520ms step-end;
}

html.desktop-boot-pending .desktop-boot-overlay {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.desktop-boot-overlay.is-exiting {
  opacity: 0;
  visibility: visible;
  pointer-events: none;
}

body[data-display-mode="invert"] > :not(script):not(style) {
  filter: invert(1) hue-rotate(180deg);
}

.orientation-landscape-guard {
  position: fixed;
  inset: 0;
  z-index: 7000;
  display: none;
  place-items: center;
  padding: 1rem;
  background: rgba(3, 8, 18, 0.84);
  backdrop-filter: blur(3px);
}

.orientation-landscape-guard-card {
  width: min(460px, 94vw);
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  box-shadow: var(--window-shadow);
  padding: 0.86rem;
  display: grid;
  gap: 0.6rem;
}

.orientation-landscape-guard-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.12rem, 3.6vw, 1.46rem);
  letter-spacing: 0.05em;
  color: var(--window-title-text);
}

.orientation-landscape-guard-copy {
  margin: 0;
  color: var(--surface-title-text);
  font-size: 0.76rem;
  line-height: 1.4;
}

.orientation-landscape-guard-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.4rem;
}

body.mobile-landscape-warning .orientation-landscape-guard {
  display: grid;
}

body.mobile-landscape-blocked {
  overflow: hidden;
}

body.mobile-landscape-blocked > :not(.orientation-landscape-guard) {
  pointer-events: none;
  user-select: none;
  filter: blur(1px) saturate(0.72);
}

.desktop-boot-card {
  width: min(460px, 92vw);
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  box-shadow: var(--window-shadow);
  padding: 1rem 1rem 0.9rem;
  display: grid;
  justify-items: center;
  gap: 0.64rem;
  text-align: center;
}

.desktop-boot-mark {
  position: relative;
  width: 164px;
  height: 164px;
  display: grid;
  place-items: center;
}

.desktop-boot-mark img {
  width: 164px;
  height: 164px;
  box-sizing: border-box;
  object-fit: contain;
  border-radius: 50%;
  display: block;
  background: transparent;
  border: 1px solid transparent;
  box-shadow: none;
  opacity: 0;
}

.desktop-boot-mark.is-icon-ready img {
  background: #ffffff;
  border-top-color: var(--brown-edge-light);
  border-left-color: var(--brown-edge-light);
  border-right-color: var(--brown-edge-dark);
  border-bottom-color: var(--brown-edge-dark);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.4);
  opacity: 1;
}

.desktop-boot-ring {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.24);
  pointer-events: none;
}

.desktop-boot-ring::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 4px solid transparent;
  border-top-color: var(--text-active);
  border-right-color: var(--ok);
  filter: drop-shadow(0 0 10px rgba(241, 171, 197, 0.34));
  animation: desktop-boot-spin 1.15s linear infinite;
}

.desktop-boot-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.8vw, 1.9rem);
  letter-spacing: 0.05em;
  color: var(--window-title-text);
}

.desktop-boot-subtitle {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.73rem;
  letter-spacing: 0.06em;
  text-transform: none;
}

.desktop-boot-progress {
  width: min(360px, 84vw);
  height: 16px;
  padding: 2px;
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-content-start), var(--window-content-end));
}

.desktop-boot-progress-fill {
  width: 100%;
  height: 100%;
  display: block;
  transform-origin: left center;
  transform: scaleX(0);
  background:
    repeating-linear-gradient(
      90deg,
      rgba(16, 24, 36, 0.18) 0,
      rgba(16, 24, 36, 0.18) 8px,
      rgba(16, 24, 36, 0) 8px,
      rgba(16, 24, 36, 0) 10px
    ),
    linear-gradient(90deg, var(--ok) 0%, var(--text-active) 100%);
  transition: transform 180ms linear;
}

.desktop-boot-progress-label {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.66rem;
  letter-spacing: 0.08em;
}

@keyframes desktop-boot-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .desktop-boot-overlay {
    transition: none;
  }

  .desktop-boot-ring::after {
    animation: none;
  }

  .desktop-boot-progress-fill {
    transition: none;
  }
}

body[data-cursor-mode="classic"],
body[data-cursor-mode="laggy"] {
  cursor: var(--cursor-arrow-image) 1 1, default;
}

body[data-cursor-mode="mic"] {
  cursor: var(--cursor-mic-image) 2 12, default;
}

body[data-cursor-mode="s"] {
  cursor: var(--cursor-s-image) 2 2, default;
  --cursor-trail-image: var(--cursor-s-image);
  --cursor-trail-width: 24px;
  --cursor-trail-height: 24px;
  --cursor-trail-size: 24px 24px;
}

body[data-cursor-mode="classic"] a,
body[data-cursor-mode="classic"] button,
body[data-cursor-mode="classic"] summary,
body[data-cursor-mode="classic"] select,
body[data-cursor-mode="laggy"] a,
body[data-cursor-mode="laggy"] button,
body[data-cursor-mode="laggy"] summary,
body[data-cursor-mode="laggy"] select,
body[data-cursor-mode="s"] a,
body[data-cursor-mode="s"] button,
body[data-cursor-mode="s"] summary,
body[data-cursor-mode="s"] select {
  cursor: var(--cursor-pointer-image) 1 1, pointer;
}

body[data-cursor-mode="mic"] a,
body[data-cursor-mode="mic"] button,
body[data-cursor-mode="mic"] summary,
body[data-cursor-mode="mic"] select {
  cursor: var(--cursor-mic-image) 2 12, pointer;
}

body[data-cursor-mode="classic"] input[type="text"],
body[data-cursor-mode="classic"] input[type="search"],
body[data-cursor-mode="classic"] input[type="email"],
body[data-cursor-mode="classic"] input[type="password"],
body[data-cursor-mode="classic"] input[type="number"],
body[data-cursor-mode="classic"] input[type="url"],
body[data-cursor-mode="classic"] textarea,
body[data-cursor-mode="laggy"] input[type="text"],
body[data-cursor-mode="laggy"] input[type="search"],
body[data-cursor-mode="laggy"] input[type="email"],
body[data-cursor-mode="laggy"] input[type="password"],
body[data-cursor-mode="laggy"] input[type="number"],
body[data-cursor-mode="laggy"] input[type="url"],
body[data-cursor-mode="laggy"] textarea,
body[data-cursor-mode="s"] input[type="text"],
body[data-cursor-mode="s"] input[type="search"],
body[data-cursor-mode="s"] input[type="email"],
body[data-cursor-mode="s"] input[type="password"],
body[data-cursor-mode="s"] input[type="number"],
body[data-cursor-mode="s"] input[type="url"],
body[data-cursor-mode="s"] textarea,
body[data-cursor-mode="mic"] input[type="text"],
body[data-cursor-mode="mic"] input[type="search"],
body[data-cursor-mode="mic"] input[type="email"],
body[data-cursor-mode="mic"] input[type="password"],
body[data-cursor-mode="mic"] input[type="number"],
body[data-cursor-mode="mic"] input[type="url"],
body[data-cursor-mode="mic"] textarea {
  cursor: text;
}

.cursor-trail-layer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 15;
  display: none;
}

.cursor-trail-layer.is-active {
  display: block;
}

.cursor-trail-node {
  position: fixed;
  left: 0;
  top: 0;
  width: var(--cursor-trail-width);
  height: var(--cursor-trail-height);
  background-image: var(--cursor-trail-image);
  background-size: var(--cursor-trail-size);
  background-repeat: no-repeat;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  opacity: 0;
  transform: translate3d(-120px, -120px, 0);
  will-change: transform, opacity;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

.container {
  width: calc(100% - 1rem);
  max-width: none;
  margin: 0 auto;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

[hidden] {
  display: none !important;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: -9999px;
  background: var(--brown-1);
  color: #fff;
  padding: 0.45rem 0.7rem;
  border-radius: 0.2rem;
  z-index: 300;
}

.skip-link:focus {
  left: 0.8rem;
  top: 0.8rem;
}

.site-footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 130;
  pointer-events: none;
}

.site-footer-inner {
  margin: 0 auto;
  width: min(1160px, calc(100vw - 1rem));
  border: 1px solid var(--surface-card-border);
  background:
    linear-gradient(180deg, rgba(8, 18, 28, 0.82), rgba(5, 11, 18, 0.9)),
    var(--surface-card-bg);
  padding: 0.24rem 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  flex-wrap: wrap;
  pointer-events: auto;
}

.site-footer-copy {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.site-footer-nav {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.site-footer-nav a {
  color: var(--text-main);
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
  border-bottom: 1px solid transparent;
}

.site-footer-nav a:hover,
.site-footer-nav a:focus-visible {
  color: var(--text-active);
  border-bottom-color: currentColor;
}

body[data-active-window="home"] .site-footer--desktop {
  bottom: calc(var(--dock-height) + var(--base-height) + 4px);
}

@media (max-width: 980px) {
  [data-window="calendar-window"] [data-window-maximize] {
    display: none !important;
  }

  .site-footer {
    bottom: calc(env(safe-area-inset-bottom));
  }

  body[data-active-window="home"] .site-footer--desktop {
    display: none;
  }

  .site-footer-inner {
    width: calc(100vw - 0.58rem);
    padding: 0.24rem 0.34rem;
    gap: 0.35rem;
  }

  .site-footer-copy {
    font-size: 0.54rem;
  }

  .site-footer-nav {
    gap: 0.34rem;
  }

  .site-footer-nav a {
    font-size: 0.58rem;
  }
}

/* Dot-matrix texture layer for retro UI depth. */
.window-titlebar {
  position: relative;
  overflow: hidden;
}

.window-titlebar::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 1px 1px, var(--dot-matrix-control-light) 0.65px, transparent 0.85px),
    radial-gradient(circle at 2px 2px, var(--dot-matrix-control-dark) 0.65px, transparent 0.85px);
  background-size:
    var(--dot-matrix-control-step) var(--dot-matrix-control-step),
    var(--dot-matrix-control-step) var(--dot-matrix-control-step);
  opacity: var(--dot-matrix-control-opacity);
  z-index: 0;
}

.window-titlebar h2,
.window-titlebar .window-controls {
  position: relative;
  z-index: 1;
}

.window-content,
.window-body {
  position: relative;
}

.window-content::before,
.window-body::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 1px 1px, var(--dot-matrix-panel-light) 0.65px, transparent 0.9px),
    radial-gradient(circle at 2px 2px, var(--dot-matrix-panel-dark) 0.65px, transparent 0.9px);
  background-size:
    var(--dot-matrix-panel-step) var(--dot-matrix-panel-step),
    var(--dot-matrix-panel-step) var(--dot-matrix-panel-step);
  opacity: var(--dot-matrix-panel-opacity);
  z-index: 0;
}

.window-content > *,
.window-body > * {
  position: relative;
  z-index: 1;
}

.window-body.game-window-body::before {
  content: none;
}

.top-strip {
  position: sticky;
  top: 0;
  z-index: 6200;
  height: var(--header-height);
  padding-top: 5px;
  background: transparent;
  border-bottom: 0;
  isolation: isolate;
}

.top-strip-inner {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.status-cluster {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-left: 0;
}

.status-cluster--left {
  justify-content: flex-start;
}

.status-cluster--right {
  margin-left: auto;
  justify-content: flex-end;
}

.status-auth {
  justify-content: center;
}

.status-auth-btn {
  gap: 0;
  width: var(--status-header-btn-height);
  height: var(--status-header-btn-height);
  min-width: var(--status-header-btn-height);
  min-height: var(--status-header-btn-height);
  justify-content: center;
  align-items: center;
  padding: 0;
  line-height: 0;
  cursor: pointer;
  box-sizing: border-box;
  overflow: hidden;
  contain: paint;
  isolation: isolate;
  transition: box-shadow 120ms steps(2, end);
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.status-auth-btn:hover,
.status-auth-btn:focus-visible {
  box-shadow: inset 0 0 0 1px var(--highlight-ring), 0 0 0 1px var(--highlight-ring);
}

.status-auth-btn:active {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.status-auth-icon {
  width: 32px;
  height: 32px;
  min-width: 32px;
  min-height: 32px;
  max-width: 32px;
  max-height: 32px;
  flex: 0 0 32px;
  display: block;
  object-fit: contain;
  object-position: center;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  backface-visibility: hidden;
  pointer-events: none;
}

.status-auth-icon--preview {
  width: 32px;
  height: 32px;
}

.system-menu {
  position: relative;
}

.system-menu-trigger {
  list-style: none;
  cursor: pointer;
}

.system-menu-trigger::-webkit-details-marker {
  display: none;
}

.system-menu-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 0.35rem);
  width: min(320px, 92vw);
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--menu-panel-start), var(--menu-panel-end));
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.45);
  padding: 0.52rem;
  z-index: 230;
}

.system-menu-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.34rem;
  margin-bottom: 0.5rem;
}

.system-menu-link {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--menu-link-border);
  background: linear-gradient(180deg, var(--menu-link-start), var(--menu-link-end));
  color: var(--button-text);
  font-size: 0.66rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.system-menu-inline-form {
  margin: 0;
}

.system-menu-inline-form .system-menu-link {
  width: 100%;
  font-family: inherit;
  cursor: pointer;
}

.system-menu-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.64rem;
}

.desktop-context-menu {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 6100;
  min-width: 168px;
  display: grid;
  gap: 0.22rem;
  padding: 0.34rem;
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--menu-panel-start), var(--menu-panel-end));
  box-shadow: 0 14px 24px rgba(0, 0, 0, 0.4);
}

.desktop-context-menu[hidden] {
  display: none !important;
}

.desktop-context-item {
  min-height: 30px;
  border: 1px solid var(--menu-link-border);
  background: linear-gradient(180deg, var(--menu-link-start), var(--menu-link-end));
  color: var(--button-text);
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 0.54rem;
  font-size: 0.68rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}

.desktop-context-item:hover,
.desktop-context-item:focus-visible {
  filter: brightness(1.07);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.system-control {
  display: grid;
  gap: 0.38rem;
  padding: 0.42rem 0.46rem;
  border: 1px solid var(--fieldset-border);
  background: var(--fieldset-bg);
}

.system-control--wide {
  grid-column: 1 / -1;
}

.system-control span {
  display: block;
  color: var(--form-label);
  font-size: 0.62rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.system-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.36rem;
}

.system-choice-grid--dual {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.system-choice-grid--single {
  grid-template-columns: minmax(0, 1fr);
}

.system-choice-grid--palette {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.44rem;
}

.system-choice-grid--icons {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

[data-system-cursor-grid] {
  position: relative;
}

body[data-palette="nes"] [data-system-cursor-grid][data-nes-lock-message]::after {
  content: attr(data-nes-lock-message);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 6px);
  transform: translateX(-50%);
  z-index: 5;
  padding: 0.2rem 0.36rem;
  border: 1px solid #6f6e68;
  background: linear-gradient(180deg, #313136 0%, #25252a 100%);
  color: #f6f6ef;
  font-size: 0.56rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 0 0 1px #111115;
  opacity: 0;
  pointer-events: none;
  transition: opacity 120ms steps(2, end);
}

body[data-palette="nes"] [data-system-cursor-grid][data-nes-lock-message]:hover::after {
  opacity: 1;
}

[data-window="settings-window"] .system-choice-grid.system-choice-grid--icons {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.system-choice-btn {
  min-height: 34px;
  border: 1px solid var(--surface-card-border);
  background: var(--window-content-start);
  color: var(--text-main);
  font-size: 0.72rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
}

.system-choice-btn:disabled,
.system-choice-btn.is-disabled {
  cursor: not-allowed;
  opacity: 0.46;
  pointer-events: none;
  color: var(--surface-muted-text);
  border-color: var(--surface-item-border);
  box-shadow: none;
}

.system-choice-btn:disabled .system-choice-icon,
.system-choice-btn.is-disabled .system-choice-icon {
  filter: grayscale(1) brightness(0.72);
  opacity: 0.78;
}

.system-choice-grid--palette .system-choice-btn {
  min-height: 40px;
  padding: 0.24rem 0.4rem;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
}

.system-choice-btn.is-active {
  border-color: var(--highlight-ring);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
  color: var(--text-active);
}

.system-choice-btn--icon {
  min-height: 42px;
  padding: 0.2rem;
}

.system-choice-icon {
  width: 22px;
  height: 22px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.system-choice-icon--palette {
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.system-choice-icon--cursor {
  width: 16px;
  height: 24px;
  background-image: var(--cursor-arrow-image);
  background-size: 16px 24px;
  background-repeat: no-repeat;
  background-position: center;
  filter: none;
}

.system-choice-icon--controller {
  transform: scale(1.05);
  filter: drop-shadow(0 0 2px rgba(255, 232, 160, 0.35));
}

.system-choice-icon--mic {
  width: 24px;
  height: 24px;
  image-rendering: auto;
  filter: drop-shadow(0 0 2px rgba(255, 214, 78, 0.75));
}

.system-choice-icon--school-s {
  width: 24px;
  height: 24px;
  background-image: var(--cursor-s-image);
  background-size: 24px 24px;
  background-repeat: no-repeat;
  background-position: center;
  filter: none;
}

.system-menu-link--icon {
  gap: 0.25rem;
}

.system-menu-link-icon {
  width: 14px;
  height: 14px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.system-tagline {
  margin: 0.5rem 0 0;
  color: var(--text-active);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: none;
}

[data-window="settings-window"] .window-lead {
  font-size: var(--settings-lead-size);
}

[data-window="settings-window"] .system-control span {
  font-size: var(--settings-label-size);
  letter-spacing: var(--settings-label-letter-spacing);
}

[data-window="settings-window"] .system-choice-btn {
  font-size: var(--settings-btn-size);
  letter-spacing: var(--settings-btn-letter-spacing);
}

[data-window="settings-window"] .system-choice-grid--palette .system-choice-btn {
  font-size: var(--settings-palette-btn-size);
}

[data-window="settings-window"] .system-tagline {
  font-size: var(--settings-tagline-size);
}

[data-window="settings-window"] .settings-window-body {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

[data-window="settings-window"] .settings-window-footer {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
}

[data-window="settings-window"] .settings-footer-meta {
  display: flex;
  align-items: center;
  gap: 0.55rem 0.72rem;
  flex: 1 1 auto;
  min-width: 0;
  flex-wrap: wrap;
}

[data-window="settings-window"] .settings-window-footer .system-tagline {
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 0 1 auto;
}

[data-window="settings-window"] .settings-legal-links {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.38rem 0.56rem;
}

[data-window="settings-window"] .settings-legal-links a {
  color: var(--surface-muted-text);
  font-size: 0.56rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

[data-window="settings-window"] .settings-legal-links a:hover,
[data-window="settings-window"] .settings-legal-links a:focus-visible {
  color: var(--window-title-text);
}

[data-window="settings-window"] .settings-footer-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.3rem;
  flex-wrap: nowrap;
}

[data-window="settings-window"] .settings-window-action-btn {
  width: 36px;
  min-width: 36px;
  min-height: 36px;
  border: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  transition:
    box-shadow 120ms steps(2, end),
    filter 120ms steps(2, end),
    transform 120ms steps(2, end);
}

[data-window="settings-window"] .settings-window-action-btn:hover,
[data-window="settings-window"] .settings-window-action-btn:focus-visible {
  box-shadow: inset 0 0 0 1px var(--highlight-ring), 0 0 0 1px var(--highlight-ring);
}

[data-window="settings-window"] .settings-window-action-btn:active,
[data-window="settings-window"] .settings-window-action-btn.is-active {
  border: 0;
  background: transparent;
  box-shadow: none;
}

[data-window="settings-window"] .settings-window-action-icon {
  width: 34px;
  height: 34px;
  display: block;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  transition:
    filter 120ms steps(2, end),
    transform 120ms steps(2, end);
}

[data-window="settings-window"] .settings-window-action-btn:hover .settings-window-action-icon,
[data-window="settings-window"] .settings-window-action-btn:focus-visible .settings-window-action-icon {
  filter: drop-shadow(0 0 4px var(--icon-active-shadow));
  transform: translateY(-1px);
}

[data-window="settings-window"] .settings-game-over-btn {
  width: 36px;
}

.game-over-window-body {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  align-content: stretch;
  gap: 0;
  overflow: hidden;
}

.game-over-player-shell {
  border: 1px solid var(--surface-card-border);
  background: #060b13;
  padding: 0.24rem 0.24rem 0.56rem;
  overflow: hidden;
}

.game-over-video {
  display: block;
  width: 125%;
  height: 100%;
  margin-left: -12.5%;
  min-height: 0;
  border: 1px solid #121d2b;
  background: #000;
  object-fit: cover;
  object-position: center center;
}

.about-window .about-window-body {
  padding: 0.5rem;
  overflow: hidden;
  display: flex;
  align-items: stretch;
}

.about-window-canvas {
  position: relative;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 0.32rem;
  border: 1px solid var(--surface-item-border);
  background: #0d1219;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.about-window-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.about-window-audio {
  display: none;
}

.about-window-copyright {
  position: absolute;
  right: 0.42rem;
  bottom: 0.38rem;
  margin: 0;
  padding: 0.12rem 0.28rem;
  border: 1px solid color-mix(in srgb, var(--surface-item-border) 75%, transparent 25%);
  background: color-mix(in srgb, #000 58%, transparent 42%);
  color: var(--surface-muted-text);
  font-size: 0.56rem;
  letter-spacing: 0.06em;
  line-height: 1;
}

.status-pill {
  margin: 0;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  line-height: 1.15;
  padding: 0 0.55rem;
  background: var(--status-pill-bg);
  color: var(--status-pill-text);
  border-top: 1px solid var(--status-pill-border);
  border-left: 1px solid var(--status-pill-border);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  text-transform: uppercase;
  font-size: var(--status-pill-size);
  letter-spacing: var(--status-pill-letter-spacing);
}

.status-time {
  margin-left: auto;
  font-family: var(--status-clock-font-family);
  font-size: var(--status-clock-font-size);
  letter-spacing: var(--status-clock-letter-spacing);
  font-weight: var(--status-clock-font-weight);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.status-cluster .status-time {
  margin-left: 0;
}

.status-time-btn {
  display: inline-flex;
  align-items: center;
  height: var(--status-header-btn-height);
  min-height: var(--status-header-btn-height);
  gap: 0.34rem;
  cursor: pointer;
  box-sizing: border-box;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.status-time-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.status-time-label {
  display: inline-block;
  white-space: nowrap;
}

.desktop-main {
  min-height: calc(100vh - var(--header-height) - var(--dock-height) - var(--base-height));
  padding: 0.4rem 0 0.9rem;
}

body[data-active-window="home"] .desktop-main {
  padding-top: 0.08rem;
}

.desktop-canvas {
  position: relative;
  width: 100%;
  padding: 0 0.4rem;
  min-height: calc(100vh - var(--header-height) - var(--dock-height) - var(--base-height) - 1.3rem);
}

.home-desktop {
  min-height: calc(100vh - var(--header-height) - var(--dock-height) - var(--base-height) - 1.3rem);
  padding: 0.45rem;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}

body[data-active-window="admin"] .desktop-main {
  min-height: calc(100vh - var(--header-height) - var(--base-height));
}

body[data-active-window="admin"] .desktop-canvas {
  min-height: calc(100vh - var(--header-height) - var(--base-height) - 1.3rem);
}

body:not([data-active-window="home"]) .desktop-main {
  min-height: calc(100vh - var(--header-height) - var(--base-height));
}

body:not([data-active-window="home"]) .desktop-canvas {
  min-height: calc(100vh - var(--header-height) - var(--base-height) - 1.3rem);
}

.home-hint {
  max-width: 300px;
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  padding: 0.42rem 0.5rem;
}

.home-hint-title {
  margin: 0;
  color: var(--window-title-text);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.home-hint-copy {
  margin: 0.2rem 0 0;
  color: var(--surface-muted-text);
  font-size: 0.7rem;
}

.home-hint-links {
  margin: 0.32rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.38rem 0.62rem;
}

.home-hint-links a {
  color: var(--window-title-text);
  font-size: 0.66rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.home-hint-links a:hover,
.home-hint-links a:focus-visible {
  color: var(--surface-title-text);
}

.home-legal-links {
  margin: 0.35rem 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem 0.65rem;
}

.home-legal-links a {
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.home-legal-links a:hover,
.home-legal-links a:focus-visible {
  color: var(--window-title-text);
}

.full-page-shell {
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 0.55rem 0.2rem 1rem;
  display: grid;
  gap: 0.75rem;
}

.page-hero {
  padding: 0.9rem;
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  box-shadow: var(--window-shadow);
}

.page-kicker {
  margin: 0;
  color: var(--form-label);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.page-title {
  margin: 0.2rem 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.8vw, 3.2rem);
  line-height: 0.95;
  letter-spacing: 0.05em;
  color: var(--window-title-text);
}

.page-subtitle {
  margin: 0;
  max-width: 70ch;
  color: var(--surface-muted-text);
  font-size: 0.85rem;
  line-height: 1.35;
}

.page-seo-copy {
  margin: 0.42rem 0 0;
  max-width: 82ch;
  color: var(--surface-muted-text);
  font-size: 0.76rem;
  line-height: 1.45;
}

.page-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
}

.page-panel {
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  box-shadow: var(--window-shadow);
  padding: 0.45rem;
}

.page-panel-title {
  margin: 0;
  color: var(--window-title-text);
  font-family: var(--font-display);
  font-size: 1.65rem;
  letter-spacing: 0.04em;
}

.page-panel .window-lead {
  margin-top: 0.3rem;
}

.page-panel .window-list {
  margin-top: 0.45rem;
}

.legal-desktop-return {
  display: flex;
  justify-content: center;
}

.legal-desktop-return-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 170px;
  text-transform: uppercase;
}

.legal-desktop-return-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.admin-control-grid {
  grid-template-columns: minmax(188px, 248px) minmax(0, 1fr);
  gap: 0.72rem;
  align-items: start;
  position: relative;
}

.admin-nav-shell {
  position: sticky;
  top: 0.4rem;
  max-height: calc(100dvh - 1.1rem);
  overflow: auto;
  display: grid;
  gap: 0.6rem;
}

.admin-nav-group {
  display: grid;
  gap: 0.34rem;
}

.admin-workspace-picker {
  display: none;
  gap: 0.24rem;
  position: relative;
}

.admin-workspace-picker-label {
  margin: 0;
  font-size: 0.64rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--surface-muted-text);
}

.admin-workspace-select {
  width: 100%;
  min-height: 36px;
  font-size: 0.73rem;
  line-height: 1.15;
  letter-spacing: 0.015em;
  padding: 0 2.2rem 0 0.62rem;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 1rem) calc(50% - 0.02rem) / 0.34rem 0.34rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.76rem) calc(50% - 0.02rem) / 0.34rem 0.34rem no-repeat,
    linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(0, 0, 0, 0.12) 100%),
    linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  box-shadow:
    inset 0 0 0 1px rgba(7, 13, 23, 0.22),
    0 1px 0 rgba(0, 0, 0, 0.2);
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    filter 110ms steps(2, end);
}

.admin-workspace-select:focus-visible {
  filter: brightness(1.08);
  outline: 0;
  box-shadow:
    inset 0 0 0 1px rgba(7, 13, 23, 0.22),
    0 0 0 1px var(--focus-outline);
}

.admin-workspace-select::-ms-expand {
  display: none;
}

.admin-workspace-select option {
  color: var(--text-main);
  background: var(--form-field-bg);
}

.admin-panel-shell {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 0.56rem;
  overflow: visible;
  overscroll-behavior: auto;
}

.admin-panel-shell-head {
  display: none;
}

.admin-panel-backdrop {
  display: none;
  border: 0;
  padding: 0;
  margin: 0;
  background: rgba(7, 11, 19, 0.58);
  backdrop-filter: blur(2px);
}

.admin-panel-wide {
  grid-column: auto;
}

.admin-panel-window {
  grid-column: auto;
  margin: 0;
  display: grid;
  align-content: start;
  gap: 0.58rem;
}

.admin-panel-window[hidden] {
  display: none !important;
}

.admin-editor-shell {
  display: grid;
  gap: 0.56rem;
  min-width: 0;
}

.admin-editor-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.34rem;
  max-width: min(360px, 100%);
}

.admin-editor-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  border: 1px solid var(--button-border);
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  font-family: inherit;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 0 0.48rem;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end),
    color 110ms steps(2, end);
}

.admin-editor-tab.is-active {
  border-color: var(--highlight-ring);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
  color: var(--text-active);
}

.admin-editor-tab:focus-visible {
  border-color: var(--button-border-hover);
  color: var(--button-text-hover);
}

@media (hover: hover) and (pointer: fine) {
  .admin-workspace-select:hover {
    filter: brightness(1.05);
    border-color: var(--focus-outline);
  }

  .admin-editor-tab:hover {
    border-color: var(--button-border-hover);
    color: var(--button-text-hover);
  }
}

.admin-editor-panel {
  display: grid;
  gap: 0.56rem;
  min-width: 0;
}

.admin-editor-panel[hidden] {
  display: none !important;
}

.admin-event-editor-modal {
  position: fixed;
  inset: 0;
  z-index: 1260;
  display: grid;
  place-items: center;
  padding: calc(var(--header-height) + 0.28rem) 0.62rem 0.62rem;
}

.admin-event-editor-modal[hidden] {
  display: none !important;
}

.admin-event-editor-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(6, 10, 19, 0.72);
  backdrop-filter: blur(2px);
}

.admin-event-editor-shell {
  position: relative;
  width: min(1200px, calc(100vw - 0.82rem));
  max-height: calc(100dvh - var(--header-height) - 0.28rem);
  border-top: 1px solid var(--window-title-border);
  border-left: 1px solid var(--window-title-border);
  border-right: 1px solid var(--window-content-border);
  border-bottom: 1px solid var(--window-content-border);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  box-shadow: 0 24px 46px rgba(0, 0, 0, 0.56);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  transform: translateY(14px);
  opacity: 0;
  transition: transform 140ms ease, opacity 140ms ease;
}

.admin-event-editor-modal.is-open .admin-event-editor-shell {
  transform: translateY(0);
  opacity: 1;
}

.admin-event-editor-titlebar {
  cursor: default;
  touch-action: auto;
  padding-right: 0.48rem;
}

.admin-event-editor-titlebar h2 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-event-editor-body {
  margin: 0;
  border: 0;
  max-height: none;
  overflow: auto;
  padding: 0.4rem 0.44rem 0.5rem;
}

.admin-event-editor-shell.is-loading .admin-event-editor-body {
  opacity: 0.62;
  pointer-events: none;
}

body.has-admin-event-editor-open {
  overflow: hidden;
}

.admin-launcher-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.4rem;
}

.admin-launcher-grid--stack {
  grid-template-columns: 1fr;
}

.admin-launcher-grid--stack .window-action-btn {
  width: 100%;
  justify-content: flex-start;
  text-align: left;
  min-height: 38px;
  padding: 0.44rem 0.68rem;
  font-size: 0.73rem;
  letter-spacing: 0.04em;
  line-height: 1.16;
  transition:
    filter 110ms steps(2, end),
    transform 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-launcher-grid--stack .window-action-btn.is-active {
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.15),
    0 0 0 1px var(--focus-outline);
}

body:not([data-palette="nes"]) .admin-launcher-grid--stack .window-action-btn:hover,
body:not([data-palette="nes"]) .admin-launcher-grid--stack .window-action-btn:focus-visible {
  filter: brightness(1.06);
  transform: translateX(1px);
}

.admin-launcher-grid .window-action-btn {
  min-height: 38px;
}

.window-action-btn.is-active {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

.admin-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.45rem;
}

.admin-metric-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  margin-top: 0.5rem;
}

.admin-record-list {
  display: grid;
  gap: 0.42rem;
}

.admin-bulk-form {
  margin-bottom: 0.45rem;
}

.admin-bulk-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  padding: 0.42rem 0.48rem;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
}

.admin-bulk-toolbar-main,
.admin-bulk-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.admin-bulk-toolbar-main .window-item-meta {
  margin: 0;
}

.admin-bulk-toolbar-actions select {
  min-height: 30px;
  border: 1px solid var(--form-field-border);
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 0.92rem) 50% / 0.3rem 0.3rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.7rem) 50% / 0.3rem 0.3rem no-repeat,
    var(--form-field-bg);
  color: var(--text-main);
  padding: 0 1.9rem 0 0.42rem;
  font-size: 0.7rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.admin-bulk-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.68rem;
  color: var(--surface-muted-text);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-bulk-checkbox input[type="checkbox"] {
  width: 15px;
  height: 15px;
}

.admin-bulk-checkbox--summary span {
  font-size: 0.62rem;
}

.admin-record {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.4rem 0.48rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-record > summary {
  cursor: pointer;
  list-style: none;
  display: grid;
  gap: 0.12rem;
}

.admin-record > summary:hover,
.admin-record > summary:focus-visible {
  outline: 0;
}

.admin-record[open] {
  border-color: var(--focus-outline);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

body:not([data-palette="nes"]) .admin-record > summary:hover,
body:not([data-palette="nes"]) .admin-record > summary:focus-visible {
  color: var(--surface-title-text);
}

.admin-record-summary-row {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}

.admin-record > summary::-webkit-details-marker {
  display: none;
}

.admin-record-body {
  margin-top: 0.45rem;
  display: grid;
  gap: 0.48rem;
}

.admin-news-editor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 740px);
  gap: 0.7rem;
  align-items: start;
}

.admin-news-editor-form {
  min-width: 0;
}

.admin-news-preview-panel {
  min-width: 0;
  display: grid;
  gap: 0.32rem;
  align-content: start;
  position: sticky;
  top: calc(var(--header-height) + 0.35rem);
}

.admin-news-preview-panel .window-item-meta,
.admin-news-preview-panel .window-lead {
  margin: 0;
}

.admin-news-preview-host {
  min-width: 0;
  transition: opacity 110ms steps(2, end);
}

.admin-news-preview-host.is-loading {
  opacity: 0.72;
}

.admin-news-preview-window.desktop-window {
  position: relative;
  left: auto;
  top: auto;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(100%, 700px);
  max-width: 100%;
  min-height: 660px;
  height: min(660px, 78vh);
  margin: 0 auto;
}

.admin-news-preview-window .window-titlebar,
.admin-news-preview-window .window-titlebar:active {
  cursor: default;
}

.admin-news-preview-window .window-control {
  pointer-events: none;
}

.admin-news-preview-window .news-detail-window-body {
  min-height: 0;
}

.admin-news-media-fieldset {
  display: grid;
  gap: 0.42rem;
}

.admin-news-media-card {
  display: grid;
  gap: 0.48rem;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.46rem;
}

.admin-news-media-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.admin-news-upload-btn {
  position: relative;
  overflow: hidden;
}

.admin-news-upload-btn input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.admin-news-media-preview-frame {
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.16)),
    var(--surface-card-bg);
  overflow: hidden;
  display: grid;
  place-items: center;
}

.admin-news-media-preview-frame--icon {
  width: 112px;
  aspect-ratio: 1 / 1;
}

.admin-news-media-preview-frame--feature {
  width: min(100%, 280px);
  aspect-ratio: 4 / 5;
}

.admin-news-media-preview-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-news-crop-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.42rem;
}

.admin-news-crop-grid label {
  display: grid;
  gap: 0.18rem;
}

.admin-contact-list {
  max-height: clamp(320px, 62vh, 640px);
  overflow: auto;
}

.admin-message-console .admin-contact-list,
.admin-message-console .admin-community-list {
  max-height: clamp(210px, 34vh, 360px);
}

.admin-message-console-layout {
  position: relative;
  min-height: clamp(420px, 56vh, 740px);
}

.admin-message-console-feed {
  display: grid;
  gap: 0.82rem;
}

.admin-message-console-layout.is-drawer-open .admin-message-console-feed {
  padding-right: clamp(300px, 44%, 430px);
}

.admin-message-row-list {
  display: grid;
  gap: 0.26rem;
}

.admin-message-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.38rem;
  align-items: stretch;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.26rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-message-row.is-active {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.admin-message-row-trigger {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  display: grid;
  gap: 0.12rem;
  text-align: left;
  align-content: start;
  cursor: pointer;
  padding: 0.14rem 0.18rem;
}

.admin-message-row-trigger:hover,
.admin-message-row-trigger:focus-visible {
  background: rgba(255, 255, 255, 0.05);
}

.admin-message-row-title {
  font-family: var(--font-display);
  font-size: 0.88rem;
  color: var(--surface-title-text);
  line-height: 1.08;
}

.admin-message-row-meta {
  font-size: 0.62rem;
  color: var(--surface-muted-text);
  line-height: 1.18;
}

.admin-message-row-preview {
  font-size: 0.73rem;
  color: var(--surface-title-text);
  line-height: 1.24;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-message-row-delete {
  margin: 0;
  display: flex;
  align-items: center;
}

.admin-message-console-drawer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: clamp(300px, 44%, 430px);
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.035) 0%, rgba(0, 0, 0, 0.15) 100%),
    linear-gradient(180deg, var(--window-sidebar-start), var(--window-sidebar-end));
  box-shadow:
    -14px 0 24px rgba(0, 0, 0, 0.32),
    inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  z-index: 3;
}

.admin-message-console-drawer-head {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.52rem 0.58rem 0.44rem;
  border-bottom: 1px solid var(--surface-item-border);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.1) 100%);
}

.admin-message-console-drawer-head .window-lead {
  margin: 0;
}

.admin-message-console-drawer-body {
  overflow: auto;
  padding: 0.58rem;
}

.admin-message-detail-card {
  display: grid;
  gap: 0.4rem;
  align-content: start;
}

.admin-message-detail-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.6rem;
}

.admin-message-detail-head .window-lead,
.admin-message-detail-head .window-item-title,
.admin-message-detail-head .window-item-meta {
  margin: 0;
}

.admin-message-detail-body {
  margin: 0;
  color: var(--surface-title-text);
  font-size: 0.75rem;
  line-height: 1.42;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.admin-contact-item {
  align-items: flex-start;
  justify-content: flex-start;
  display: grid;
  gap: 0.28rem;
}

.admin-item-select-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.admin-item-select-row form {
  margin: 0;
}

.admin-contact-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.admin-contact-head .window-item-meta {
  white-space: nowrap;
}

.admin-contact-message {
  margin: 0.12rem 0 0;
  color: var(--surface-title-text);
  font-size: 0.76rem;
  line-height: 1.4;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.admin-email-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.34rem 0.48rem;
}

.admin-email-line .window-item-meta {
  margin: 0;
  min-width: min(100%, 18ch);
  overflow-wrap: anywhere;
}

.admin-email-controls {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  flex: 0 0 auto;
}

.admin-email-copy-btn {
  font-family: inherit;
}

.admin-community-list {
  max-height: clamp(320px, 62vh, 700px);
  overflow: auto;
}

.admin-community-item {
  display: grid;
  gap: 0.3rem;
  align-items: flex-start;
}

.admin-community-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.admin-community-details {
  margin: 0.08rem 0;
  color: var(--surface-title-text);
  font-size: 0.75rem;
  line-height: 1.42;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.admin-community-actions {
  display: grid;
  gap: 0.4rem;
}

.admin-community-status-form {
  margin-top: 0.05rem;
}

.admin-media-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.55rem;
}

.admin-media-item-main {
  display: flex;
  align-items: flex-start;
  gap: 0.52rem;
  min-width: 0;
}

.admin-media-thumb-link {
  display: inline-flex;
  width: 74px;
  height: 74px;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  overflow: hidden;
  flex-shrink: 0;
}

.admin-media-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-media-item-actions {
  display: grid;
  gap: 0.32rem;
  justify-items: end;
  align-content: start;
}

.admin-media-carousel-picker {
  width: min(440px, 78vw);
}

.admin-media-edit-details,
.admin-carousel-media-edit-details {
  margin-top: 0.32rem;
}

.admin-media-label-with-icon,
.admin-media-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.admin-media-action-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.admin-media-edit-details > summary,
.admin-carousel-media-edit-details > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
}

.admin-media-edit-details > summary::-webkit-details-marker,
.admin-carousel-media-edit-details > summary::-webkit-details-marker {
  display: none;
}

.admin-media-edit-form,
.admin-carousel-media-edit-form {
  margin-top: 0.32rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.38rem;
}

.admin-media-edit-form .desktop-form-grid,
.admin-carousel-media-edit-form .desktop-form-grid {
  gap: 0.34rem;
}

.admin-media-carousel-picker > summary {
  list-style: none;
  cursor: pointer;
}

.admin-media-carousel-picker > summary::-webkit-details-marker {
  display: none;
}

.admin-media-carousel-form {
  margin-top: 0.38rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.42rem;
}

.admin-media-carousel-form .desktop-form-grid {
  gap: 0.45rem;
}

.admin-carousel-capture-form {
  margin-bottom: 0.55rem;
}

.admin-file-input-shell {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.42rem;
  min-height: 38px;
  border: 1px solid var(--form-field-border);
  background: var(--form-field-bg);
  color: var(--text-main);
  padding: 0.34rem 0.42rem;
  overflow: hidden;
}

.admin-file-input-shell:focus-within {
  border-color: var(--focus-outline);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.admin-file-input-trigger {
  min-height: 28px;
  pointer-events: none;
}

.admin-file-input-name {
  min-width: 0;
  color: var(--text-main);
  font-size: 0.72rem;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
}

.admin-file-input-name.is-empty {
  color: var(--surface-muted-text);
}

.admin-file-input-shell > input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.admin-media-upload-preview {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-card-bg);
  width: min(100%, 420px);
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.admin-media-upload-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}

.admin-media-upload-crop {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  width: min(100%, 420px);
  padding: 0.42rem 0.45rem;
  display: grid;
  gap: 0.35rem;
}

.admin-media-upload-crop > label {
  display: grid;
  gap: 0.18rem;
}

.admin-media-upload-crop > label > output {
  justify-self: end;
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  letter-spacing: 0.05em;
}

.admin-media-upload-actions {
  justify-content: flex-start;
}

.admin-carousel-capture-preview {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-card-bg);
  width: min(100%, 420px);
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.admin-carousel-capture-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-carousel-capture-actions {
  justify-content: flex-start;
}

.admin-carousel-manager-form {
  display: grid;
  gap: 0.55rem;
}

.admin-carousel-pagination {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.45rem;
  align-items: center;
}

.admin-carousel-pagination .window-item-meta {
  margin: 0;
  text-align: center;
  line-height: 1.35;
}

.admin-carousel-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 0.45rem;
}

.admin-carousel-media-card {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.4rem;
  display: grid;
  gap: 0.36rem;
  align-content: start;
  min-width: 0;
  overflow: hidden;
  cursor: pointer;
}

.admin-carousel-media-card.is-selected {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.admin-carousel-media-card input[type="checkbox"] {
  margin: 0;
}

.admin-carousel-media-select-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.4rem;
}

.admin-carousel-media-select-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
  margin-left: auto;
  flex-wrap: nowrap;
  justify-content: flex-end;
  max-width: 100%;
}

.admin-carousel-media-select {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  font-size: 0.68rem;
  color: var(--surface-muted-text);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-carousel-media-select span {
  line-height: 1;
}

.admin-carousel-crop-open {
  min-height: 26px;
  min-width: 44px;
  padding: 0 0.35rem;
  font-size: 0.64rem;
}

.admin-carousel-media-delete-btn {
  min-height: 26px;
  min-width: 26px;
  width: 26px;
  padding: 0;
  font-size: 0.64rem;
  line-height: 0;
}

.admin-carousel-media-delete-btn .guestbook-delete-icon {
  width: 11px;
  height: 11px;
}

.admin-carousel-media-preview {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-card-bg);
  width: 100%;
  aspect-ratio: var(--home-carousel-frame-aspect-ratio);
  min-height: 74px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  contain: paint;
  display: block;
}

.admin-carousel-media-preview img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  display: block;
  transform: translateZ(0) scale(calc(var(--carousel-zoom-percent, 104) / 100));
  transform-origin: var(--carousel-crop-x, 50%) var(--carousel-crop-y, 50%);
}

.admin-carousel-media-meta {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

.admin-carousel-overlay-toggle {
  margin-top: 0.14rem;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-carousel-card-crop-editor {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(3, 8, 17, 0.78);
  z-index: 1400;
  padding: 1rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.admin-carousel-card-crop-editor-shell {
  width: min(860px, 100%);
  max-height: calc(100dvh - 2rem);
  border: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, var(--window-shell-start), var(--window-shell-end));
  box-shadow: var(--window-shadow);
  padding: 0.6rem;
  display: grid;
  gap: 0.55rem;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.admin-carousel-card-crop-editor-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.admin-carousel-card-crop-editor-head .window-item-title {
  margin: 0;
}

.admin-carousel-card-crop-editor-workspace {
  position: relative;
  width: 100%;
  min-height: 280px;
  height: min(56vh, 460px);
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(45deg, rgba(5, 12, 24, 0.88) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(5, 12, 24, 0.88) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(5, 12, 24, 0.88) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(5, 12, 24, 0.88) 75%),
    var(--surface-card-bg);
  background-size: 18px 18px;
  background-position: 0 0, 0 9px, 9px -9px, -9px 0;
  overflow: hidden;
  touch-action: none;
  user-select: none;
  cursor: crosshair;
}

.admin-carousel-card-crop-editor-workspace img {
  position: absolute;
  max-width: none;
  max-height: none;
  pointer-events: none;
  display: block;
}

.admin-carousel-card-crop-frame {
  position: absolute;
  margin: 0;
  border: 2px solid rgba(255, 255, 255, 0.96);
  box-shadow:
    0 0 0 9999px rgba(0, 0, 0, 0.44),
    inset 0 0 0 1px rgba(7, 16, 30, 0.78);
  background: rgba(255, 255, 255, 0.03);
  padding: 0;
  touch-action: none;
  cursor: grab;
}

.admin-carousel-card-crop-frame:active {
  cursor: grabbing;
}

.admin-carousel-card-crop-frame::before,
.admin-carousel-card-crop-frame::after {
  content: "";
  position: absolute;
  width: 11px;
  height: 11px;
  border: 2px solid rgba(255, 255, 255, 0.94);
}

.admin-carousel-card-crop-frame::before {
  top: -2px;
  left: -2px;
  border-right: 0;
  border-bottom: 0;
}

.admin-carousel-card-crop-frame::after {
  right: -2px;
  bottom: -2px;
  border-left: 0;
  border-top: 0;
}

.admin-carousel-card-crop-editor-preview {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-card-bg);
  width: min(100%, 560px);
  aspect-ratio: var(--home-carousel-frame-aspect-ratio);
  overflow: hidden;
}

.admin-carousel-card-crop-editor-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(calc(var(--carousel-zoom-percent, 104) / 100));
  transform-origin: var(--carousel-crop-x, 50%) var(--carousel-crop-y, 50%);
}

.admin-carousel-card-crop-editor-controls {
  display: grid;
  gap: 0.45rem;
}

.admin-carousel-card-crop-editor-controls label {
  display: grid;
  gap: 0.25rem;
}

.admin-carousel-card-crop-editor-controls output {
  justify-self: end;
  color: var(--text-muted);
  font-size: 0.76rem;
}

.admin-carousel-card-crop-editor-actions {
  justify-content: flex-end;
}

.admin-carousel-crop-stack {
  margin-top: 0.75rem;
  display: grid;
  gap: 0.45rem;
}

.admin-carousel-queue {
  margin-top: 0.56rem;
}

.admin-carousel-queue-list {
  max-height: clamp(260px, 46vh, 520px);
  overflow: auto;
}

.admin-carousel-queue-item {
  align-items: flex-start;
}

.admin-carousel-queue-main {
  min-width: 0;
  flex: 1 1 auto;
  display: grid;
  gap: 0.12rem;
}

.admin-carousel-crop-form {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.5rem;
  display: grid;
  gap: 0.48rem;
}

.admin-carousel-crop-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.6rem;
  justify-content: space-between;
}

.admin-carousel-crop-grid {
  display: grid;
  grid-template-columns: minmax(300px, 420px) 1fr;
  gap: 0.55rem;
  align-items: start;
}

.admin-carousel-crop-preview {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-card-bg);
  width: 100%;
  aspect-ratio: var(--home-carousel-frame-aspect-ratio);
  overflow: hidden;
}

.admin-carousel-crop-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(calc(var(--carousel-zoom-percent, 104) / 100));
  transform-origin: var(--carousel-crop-x, 50%) var(--carousel-crop-y, 50%);
}

.admin-carousel-crop-controls {
  display: grid;
  gap: 0.42rem;
}

.admin-carousel-crop-controls label {
  display: grid;
  gap: 0.25rem;
}

.admin-carousel-crop-controls output {
  justify-self: end;
  color: var(--text-muted);
  font-size: 0.76rem;
}

.admin-user-list {
  gap: 0.34rem;
  max-height: clamp(340px, 64vh, 860px);
  overflow: auto;
}

.admin-users-pagination {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.45rem;
  align-items: center;
  margin-bottom: 0.4rem;
}

.admin-users-pagination .window-item-meta {
  margin: 0;
  text-align: center;
  line-height: 1.35;
}

.admin-user-item {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  justify-content: flex-start;
  align-items: center;
  gap: 0.62rem;
}

.admin-user-icon {
  width: 48px;
  height: 48px;
  display: block;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.admin-user-main {
  min-width: 0;
  width: 100%;
  display: grid;
  gap: 0.14rem;
  justify-items: start;
  text-align: left;
}

.admin-user-main .window-item-title,
.admin-user-main .window-item-meta {
  margin: 0;
  width: 100%;
}

.admin-user-main .window-item-title {
  line-height: 1.14;
}

@media (max-width: 860px) {
  .admin-carousel-pagination {
    grid-template-columns: 1fr;
  }

  .admin-carousel-pagination .window-item-meta {
    text-align: left;
  }

  .admin-carousel-crop-grid {
    grid-template-columns: 1fr;
  }

  .admin-carousel-card-crop-editor {
    align-items: flex-start;
    place-items: start center;
    padding:
      max(0.45rem, env(safe-area-inset-top))
      0.5rem
      calc(0.7rem + env(safe-area-inset-bottom));
  }

  .admin-carousel-card-crop-editor-shell {
    width: 100%;
    max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 0.2rem);
    padding: 0.45rem;
    gap: 0.42rem;
  }

  .admin-carousel-card-crop-editor-workspace {
    min-height: 180px;
    height: clamp(180px, 30dvh, 260px);
  }

  .admin-carousel-card-crop-editor-preview {
    width: 100%;
    max-height: min(20dvh, 180px);
  }

  .admin-carousel-card-crop-editor-actions {
    position: sticky;
    bottom: -0.45rem;
    z-index: 2;
    margin: 0 -0.45rem -0.45rem;
    padding:
      0.36rem
      calc(0.45rem + env(safe-area-inset-right))
      calc(0.42rem + env(safe-area-inset-bottom))
      calc(0.45rem + env(safe-area-inset-left));
    border-top: 1px solid var(--surface-item-border);
    background: linear-gradient(180deg, var(--window-shell-start), var(--window-shell-end));
  }

  .admin-user-item {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 0.55rem;
  }

  .admin-user-icon {
    width: 40px;
    height: 40px;
  }

  .admin-users-pagination {
    grid-template-columns: 1fr;
  }

  .admin-users-pagination .window-item-meta {
    text-align: left;
  }

  .admin-bulk-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-bulk-toolbar-main,
  .admin-bulk-toolbar-actions {
    justify-content: flex-start;
  }
}

.admin-users-console {
  position: relative;
  min-height: clamp(360px, 56vh, 720px);
}

.admin-user-grid {
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 0.42rem;
  max-height: clamp(320px, 62vh, 700px);
  overflow: auto;
}

.admin-users-console.is-drawer-open .admin-user-grid {
  padding-right: clamp(300px, 42%, 420px);
}

.admin-user-card {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.28rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-user-card.is-active {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.admin-user-card-trigger {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  display: grid;
  gap: 0.34rem;
  justify-items: center;
  align-content: start;
  text-align: center;
  padding: 0.12rem;
  min-height: 108px;
}

.admin-user-card-trigger:hover,
.admin-user-card-trigger:focus-visible {
  background: rgba(255, 255, 255, 0.05);
}

.admin-user-card-icon {
  width: 56px;
  height: 56px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.admin-user-card-name {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: 0.78rem;
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.admin-user-console-drawer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: clamp(300px, 42%, 420px);
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.035) 0%, rgba(0, 0, 0, 0.15) 100%),
    linear-gradient(180deg, var(--window-sidebar-start), var(--window-sidebar-end));
  box-shadow:
    -14px 0 24px rgba(0, 0, 0, 0.32),
    inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  z-index: 3;
}

.admin-user-console-drawer-head {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.52rem 0.58rem 0.44rem;
  border-bottom: 1px solid var(--surface-item-border);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.1) 100%);
}

.admin-user-console-drawer-head .window-lead {
  margin: 0;
}

.admin-user-console-drawer-body {
  overflow: auto;
  padding: 0.58rem;
}

.admin-user-detail-card {
  display: grid;
  gap: 0.5rem;
}

.admin-user-detail-head {
  display: flex;
  align-items: center;
  gap: 0.56rem;
}

.admin-user-detail-icon {
  width: 64px;
  height: 64px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.admin-user-detail-head-copy {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
}

.admin-user-detail-head-copy .window-item-title,
.admin-user-detail-head-copy .window-item-meta {
  margin: 0;
}

.admin-user-detail-grid {
  display: grid;
  gap: 0.22rem;
}

.admin-user-detail-grid .window-item-meta {
  margin: 0;
  font-size: 0.7rem;
  line-height: 1.3;
}

.admin-venue-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.55rem;
}

.admin-venue-header > .window-lead {
  margin: 0;
}

.admin-venue-search {
  display: grid;
  gap: 0.18rem;
  min-width: min(320px, 100%);
}

.admin-venue-search > span {
  color: var(--form-label);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.admin-venue-search > input {
  min-height: 32px;
  border: 1px solid var(--form-field-border);
  background: var(--form-field-bg);
  color: var(--text-main);
  padding: 0 0.48rem;
  font-size: 0.76rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-venue-workspace {
  display: grid;
  gap: 0.52rem;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
  align-items: start;
}

.admin-venue-workspace--dropdown {
  grid-template-columns: 1fr;
  gap: 0.56rem;
}

.admin-venue-picker {
  display: grid;
  gap: 0.18rem;
  max-width: 460px;
}

.admin-venue-picker > span {
  color: var(--form-label);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.admin-venue-picker > select {
  min-height: 34px;
  border: 1px solid var(--form-field-border);
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 0.9rem) 50% / 0.3rem 0.3rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.68rem) 50% / 0.3rem 0.3rem no-repeat,
    var(--form-field-bg);
  color: var(--text-main);
  padding: 0 2rem 0 0.48rem;
  font-size: 0.78rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-venue-list-shell {
  display: grid;
  gap: 0.36rem;
}

.admin-venue-list {
  max-height: clamp(300px, 58vh, 700px);
  overflow: auto;
}

.admin-venue-list-item {
  text-decoration: none;
  color: inherit;
}

.admin-venue-list-item .window-item-meta:last-child {
  margin-top: 0;
  align-self: center;
}

.admin-venue-list-item.is-selected {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.admin-venue-editor {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
  align-content: start;
}

.admin-venue-editor-stack {
  gap: 0.56rem;
}

.admin-venue-detail {
  display: grid;
  gap: 0.5rem;
}

.admin-venue-selected-meta {
  align-items: flex-start;
}

.admin-venue-info-card {
  display: grid;
  gap: 0.5rem;
}

.admin-venue-info-card-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, 280px);
  gap: 0.62rem;
  align-items: start;
}

.admin-venue-info-card-primary {
  display: grid;
  gap: 0.36rem;
}

.admin-venue-info-card-head {
  display: grid;
  gap: 0.14rem;
}

.admin-venue-info-card-head .window-item-title,
.admin-venue-info-card-head .window-item-meta {
  margin: 0;
}

.admin-venue-info-card-grid {
  display: grid;
  gap: 0.24rem;
}

.admin-venue-info-card-value {
  margin: 0;
  color: var(--surface-title-text);
  font-size: 0.72rem;
  line-height: 1.34;
  min-width: 0;
  overflow-wrap: anywhere;
}

.admin-venue-info-card-value a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.admin-venue-info-card-media {
  display: grid;
  gap: 0.34rem;
}

.admin-venue-info-card-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  object-fit: cover;
  object-position: center;
}

.admin-venue-info-card-image--empty {
  display: grid;
  place-items: center;
  color: var(--surface-muted-text);
  font-size: 0.64rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-venue-photo-form {
  display: grid;
  gap: 0.3rem;
}

.admin-venue-photo-input {
  position: relative;
  display: block;
}

.admin-venue-photo-input .window-action-btn {
  width: 100%;
}

.admin-venue-photo-input > input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.admin-venue-photo-form > .window-action-btn {
  width: 100%;
}

.admin-venue-delete-form {
  margin-top: -0.1rem;
}

.admin-theme-item .desktop-form-actions {
  justify-content: flex-start;
}

.admin-theme-picker {
  display: grid;
  gap: 0.18rem;
  margin-top: 0.45rem;
  margin-bottom: 0.2rem;
  max-width: 280px;
}

.admin-theme-picker > label {
  color: var(--form-label);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.admin-theme-picker > select {
  min-height: 34px;
  border: 1px solid var(--form-field-border);
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 0.9rem) 50% / 0.3rem 0.3rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.68rem) 50% / 0.3rem 0.3rem no-repeat,
    var(--form-field-bg);
  color: var(--text-main);
  padding: 0 2rem 0 0.48rem;
  font-size: 0.78rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-carousel-options {
  margin: 0.5rem 0 0;
}

.event-browser-window {
  display: grid;
  gap: 0.65rem;
}

.event-browser-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
}

.event-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: end;
}

.event-filter-control {
  display: grid;
  gap: 0.18rem;
  flex: 1 1 180px;
  min-width: 0;
}

.event-filter-control--venue {
  flex: 0 1 260px;
  width: 260px;
  max-width: 100%;
}

.event-kind-quick-filters {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.28rem;
  flex: 0 1 auto;
}

.event-kind-quick-filter {
  cursor: pointer;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--surface-muted-text);
  min-height: 32px;
  padding: 0 0.62rem;
  font: inherit;
  font-size: 0.64rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.event-kind-quick-filter.is-active {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

.event-kind-quick-filter:focus-visible {
  outline: 1px solid var(--highlight-ring);
  outline-offset: 1px;
}

.event-kind-quick-filter:disabled {
  opacity: 0.55;
  cursor: default;
}

.event-filter-control > span {
  color: var(--form-label);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.event-filter-control > input,
.event-filter-control > select {
  width: 100%;
  min-width: 0;
  min-height: 32px;
  border: 1px solid var(--form-field-border);
  background: var(--form-field-bg);
  color: var(--text-main);
  padding: 0 0.48rem;
  font-size: 0.76rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.event-filter-control > select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 2rem;
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 0.9rem) 50% / 0.3rem 0.3rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.68rem) 50% / 0.3rem 0.3rem no-repeat,
    var(--form-field-bg);
}

.event-filter-control--days {
  flex: 2 1 320px;
}

.weekday-filter-group {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.26rem;
}

.weekday-filter-option {
  position: relative;
  display: inline-flex;
}

.weekday-filter-option input {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.weekday-filter-option span {
  min-width: 34px;
  height: 28px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--surface-muted-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  user-select: none;
}

.weekday-filter-option input:checked + span {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

.weekday-filter-option input:focus-visible + span {
  outline: 1px solid var(--highlight-ring);
  outline-offset: 1px;
}

.event-filter-reset {
  margin: 0;
  flex: 0 0 auto;
}

[data-window="calendar-window"] .event-filter-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(220px, 260px);
  align-items: end;
  width: min(100%, 820px);
  margin-inline: auto;
}

[data-window="calendar-window"] .event-filter-control--venue {
  width: auto;
  max-width: none;
}

.event-seo-day-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

.event-seo-day-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--text-main);
  text-decoration: none;
  font-size: 0.7rem;
  letter-spacing: 0.03em;
  padding: 0 0.46rem;
}

.event-seo-day-links a.is-active {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

.event-seo-link-list {
  display: grid;
  gap: 0.5rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.55rem;
}

.event-seo-link-list .page-panel-title {
  margin: 0;
}

.event-seo-links {
  display: grid;
  gap: 0.35rem;
  max-height: 220px;
  overflow: auto;
  padding-right: 0.25rem;
}

.event-seo-links a {
  display: grid;
  gap: 0.05rem;
  color: var(--link-text);
  text-decoration: underline;
  text-underline-offset: 0.08em;
  font-size: 0.72rem;
  overflow-wrap: anywhere;
}

.home-seo-links {
  display: grid;
  gap: 0.4rem;
}

.event-list-month-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.45rem;
}

.event-list-month-nav .event-filter-control--month {
  flex: 0 1 230px;
}

.event-list-month-nav .calendar-nav-btn {
  min-width: 82px;
}

.event-view-toggle {
  display: inline-flex;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.event-view-btn {
  min-height: 34px;
  min-width: 86px;
  border: 0;
  border-right: 1px solid var(--surface-card-border);
  background: transparent;
  color: var(--surface-muted-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.72rem;
  cursor: pointer;
  transition:
    filter 110ms steps(2, end),
    background 110ms steps(2, end),
    color 110ms steps(2, end);
}

.event-view-btn:first-child {
  border-top-left-radius: 0.36rem;
}

.event-view-btn:last-child {
  border-right: 0;
  border-top-right-radius: 0.36rem;
}

.event-view-btn.is-active {
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

body:not([data-palette="nes"]) .event-view-btn:not(.is-active):hover,
body:not([data-palette="nes"]) .event-view-btn:not(.is-active):focus-visible {
  background: rgba(255, 255, 255, 0.06);
  color: var(--surface-title-text);
}

.event-browser-panel {
  display: none;
}

.event-browser-panel.is-active {
  display: block;
}

.event-day-group {
  display: grid;
  gap: 0.36rem;
}

.event-day-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
}

.event-day-header--actions-only {
  justify-content: flex-end;
}

.event-day-heading {
  margin: 0;
  color: var(--surface-muted-text);
}

.event-day-heading-action {
  flex-shrink: 0;
}

.event-day-items {
  gap: 0.4rem;
}

.event-future-group {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
}

.event-future-group[hidden] {
  display: none;
}

.event-future-summary {
  margin: 0;
  list-style: none;
  cursor: pointer;
  color: var(--surface-title-text);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.42rem 0.5rem;
}

.event-future-summary::-webkit-details-marker {
  display: none;
}

.event-future-summary::after {
  content: "+";
  float: right;
  color: var(--surface-muted-text);
}

.event-future-group[open] .event-future-summary::after {
  content: "-";
}

.event-future-list {
  padding: 0 0.5rem 0.5rem;
  gap: 0.4rem;
}

.event-row-btn {
  width: 100%;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  color: inherit;
  padding: 0.45rem 0.5rem;
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: flex-start;
  text-align: left;
  cursor: pointer;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.event-row-btn .window-item-title,
.event-row-btn .window-item-meta {
  display: block;
}

.event-listing-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 0.58rem;
  padding: 0.56rem 0.62rem;
}

.event-listing-card--with-media {
  grid-template-columns: minmax(0, 104px) minmax(0, 1fr);
}

.event-listing-card-media {
  display: block;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  min-height: 78px;
}

.event-listing-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.event-listing-card-main {
  display: grid;
  gap: 0.34rem;
  min-width: 0;
  width: 100%;
}

.event-listing-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.52rem;
}

.event-listing-card-head .window-item-title {
  margin: 0;
  line-height: 1.15;
}

.event-listing-card-chip {
  border: 1px solid var(--surface-item-border);
  background: rgba(255, 255, 255, 0.04);
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.16rem 0.34rem;
  line-height: 1.2;
  white-space: nowrap;
  flex-shrink: 0;
}

.event-listing-card-grid {
  display: grid;
  gap: 0.2rem;
}

.event-listing-card-row {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(68px, auto) minmax(0, 1fr);
  gap: 0.46rem;
  align-items: start;
}

.event-listing-card-label {
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.25;
}

.event-listing-card-value {
  color: var(--surface-title-text);
  font-size: 0.72rem;
  line-height: 1.3;
  min-width: 0;
  overflow-wrap: anywhere;
}

.event-listing-card--admin {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: flex-start;
  gap: 0.62rem;
  --admin-event-card-action-min-width: 78px;
}

.window-item.event-listing-card--admin[data-event-detail] {
  align-items: flex-start;
}

.event-listing-card-action {
  grid-column: 2;
  grid-row: 1;
  flex-shrink: 0;
  align-self: flex-start;
}

.event-listing-card--admin .event-listing-card-chip,
.event-listing-card--admin .event-listing-card-action {
  min-width: var(--admin-event-card-action-min-width);
  text-align: center;
  justify-content: center;
  box-sizing: border-box;
}

.event-listing-card--admin .event-listing-card-chip {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  padding: 0 0.52rem;
  font-size: 0.65rem;
  font-weight: 600;
  border: 1px solid var(--link-chip-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(0, 0, 0, 0.12) 100%),
    var(--link-chip-bg);
  color: var(--link-chip-text);
}

.event-row-admin {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  color: inherit;
  padding: 0.45rem 0.5rem;
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: flex-start;
  cursor: pointer;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.event-row-btn:hover,
.event-row-btn:focus-visible,
.event-row-admin:hover,
.event-row-admin:focus-within {
  border-color: var(--focus-outline);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.event-row-admin .window-item-title,
.event-row-admin .window-item-meta {
  display: block;
}

.event-row-admin-main {
  display: flex;
  align-items: flex-start;
  gap: 0.52rem;
  flex: 1;
  min-width: 0;
}

.event-row-admin-main > div:last-child {
  min-width: 0;
}

.event-row-admin-identity {
  width: 58px;
  min-width: 58px;
  height: 58px;
  border: 1px solid var(--surface-item-border);
  background: var(--window-content-start);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.event-row-admin-identity img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.event-row-admin-identity-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
  font-size: 0.52rem;
  line-height: 1.25;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 0.2rem;
}

.event-row-admin-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.event-row-admin-actions .row-actions {
  gap: 0.35rem;
  align-items: stretch;
  flex-wrap: nowrap;
}

.event-row-admin-actions .row-actions form {
  margin: 0;
  display: flex;
}

.event-row-admin-actions .row-link,
.event-row-admin-actions .row-link-danger {
  min-height: 30px;
  min-width: 82px;
  padding: 0 0.62rem;
  font-size: 0.66rem;
  line-height: 1;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  text-decoration: none;
}

.event-row-admin-actions .row-link:hover,
.event-row-admin-actions .row-link:focus-visible,
.event-row-admin-actions .row-link-danger:hover,
.event-row-admin-actions .row-link-danger:focus-visible {
  filter: brightness(1.05);
}

.schedule-item {
  align-items: center;
}

.schedule-month-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  margin-bottom: 0.45rem;
}

.schedule-month-nav-title {
  margin: 0;
  text-align: center;
  color: var(--surface-title-text);
  flex: 1;
}

.schedule-month-nav .window-action-btn {
  min-width: 92px;
}

.analytics-week-nav {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.5rem;
}

.analytics-week-nav .schedule-month-nav-title {
  text-align: center;
  white-space: nowrap;
}

.analytics-week-nav .window-action-btn {
  width: auto;
  min-width: 92px;
}

.analytics-history-toggle {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
  margin-bottom: 0.52rem;
}

.schedule-month-nav--bottom {
  margin-top: 0.62rem;
  margin-bottom: 0;
}

.schedule-filter-row {
  margin-bottom: 0.45rem;
}

.schedule-filter-row .event-filter-control--days {
  flex: 1 1 auto;
}

.schedule-row-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
}

.schedule-row-actions form {
  margin: 0;
}

.event-calendar-shell {
  border: 1px solid var(--surface-card-border);
  background: var(--window-content-start);
  padding: 0.58rem;
  display: grid;
  gap: 0.5rem;
}

.event-calendar-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.event-calendar-day-nav {
  display: none;
  align-items: center;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.34rem;
}

.event-calendar-day-label {
  margin: 0;
  text-align: center;
  color: var(--surface-title-text);
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.calendar-nav-btn {
  min-height: 30px;
  min-width: 68px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--button-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.7rem;
  cursor: pointer;
}

.calendar-nav-btn:disabled {
  opacity: 0.45;
  cursor: default;
}

.event-calendar-month {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: 1.45rem;
  letter-spacing: 0.05em;
}

.event-calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.32rem;
}

.event-calendar-weekdays span {
  text-align: center;
  color: var(--surface-muted-text);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.event-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.32rem;
}

.event-calendar-day {
  min-height: 120px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.32rem;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.32rem;
  align-content: start;
  cursor: pointer;
}

.event-calendar-day.is-today {
  border-color: var(--highlight-ring);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.event-calendar-day.is-today .event-calendar-day-number {
  color: var(--text-active);
  text-shadow: 0 0 8px var(--highlight-ring);
}

.event-calendar-day.is-today.is-selected {
  border-color: #e0ac2f;
  box-shadow:
    inset 0 0 0 2px #e0ac2f,
    0 0 0 1px rgba(224, 172, 47, 0.58),
    0 0 12px rgba(224, 172, 47, 0.35);
}

.event-calendar-day.is-selected {
  border-color: #e0ac2f;
  box-shadow:
    inset 0 0 0 2px #e0ac2f,
    0 0 0 1px rgba(224, 172, 47, 0.58),
    0 0 12px rgba(224, 172, 47, 0.35);
}

.event-calendar-day.is-selected .event-calendar-day-number {
  color: var(--calendar-selected-day-accent);
  text-shadow: 0 0 8px var(--calendar-selected-day-glow);
}

.event-calendar-day.is-empty {
  background: var(--window-content-start);
  border-color: var(--window-content-border);
}

.event-calendar-day-number {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: 1.1rem;
}

.event-calendar-empty {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.event-calendar-day-events {
  display: grid;
  gap: 0.28rem;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 0.14rem;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
}

.event-calendar-day-events::-webkit-scrollbar {
  width: var(--scrollbar-size);
}

.event-calendar-day-events::-webkit-scrollbar-track {
  background: linear-gradient(180deg, var(--scrollbar-track), rgba(35, 44, 58, 0.58));
}

.event-calendar-day-events::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
  border-radius: 999px;
  border: 1px solid var(--scrollbar-thumb-border);
}

.event-calendar-day-events::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--scrollbar-thumb-hover-start), var(--scrollbar-thumb-hover-end));
}

.calendar-event-chip {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--text-main);
  padding: 0.24rem 0.28rem;
  text-align: left;
  cursor: pointer;
  display: grid;
  gap: 0.14rem;
}

.calendar-event-chip span {
  font-size: 0.66rem;
  line-height: 1.15;
}

.calendar-event-chip small {
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  line-height: 1.15;
}

.calendar-event-chip-venue,
.calendar-day-window-event-submeta--venue {
  overflow-wrap: anywhere;
}

.event-calendar-more {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

[data-window="calendar-day-window"].desktop-window {
  width: min(var(--window-w, 980px), 88vw);
  max-width: 88vw;
  height: min(var(--window-h, 680px), calc(100% - 24px));
  min-height: min(var(--window-h, 680px), calc(100% - 24px));
  max-height: min(var(--window-h, 680px), calc(100% - 24px));
}

.calendar-day-window-titlebar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
}

.calendar-day-window-titlebar-main {
  min-width: 0;
  justify-self: center;
  display: inline-grid;
  grid-template-columns: auto minmax(20ch, 22ch) auto;
  align-items: center;
  gap: 0.36rem;
}

.calendar-day-window-titlebar-main .window-title-with-icon {
  min-width: 0;
  justify-content: center;
}

.calendar-day-window-titlebar-main [data-calendar-day-window-title] {
  display: inline-block;
  width: 22ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.calendar-day-window-titlebar-spacer {
  width: calc((22px * 2) + 0.22rem);
  flex: 0 0 auto;
}

.calendar-day-window-nav-btn {
  font-size: 0.86rem;
  line-height: 1;
  text-indent: 0;
  overflow: visible;
}

.calendar-day-window-nav-btn:disabled {
  opacity: 0.45;
  cursor: default;
}

.calendar-day-window-body {
  margin: 0.24rem;
  padding: 0.42rem;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  min-height: calc(100% - 36px);
  height: calc(100% - 36px);
  max-height: calc(100% - 36px);
  overflow: hidden;
}

.calendar-day-window-shell {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 0.44rem;
  align-items: stretch;
  overflow: hidden;
}

.calendar-day-window-rail {
  box-sizing: border-box;
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 0.42rem;
  overflow: hidden;
}

.calendar-day-window-column-card {
  box-sizing: border-box;
  min-width: 0;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.42rem;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.26rem;
  min-height: 0;
  overflow: hidden;
}

.calendar-day-window-column-head {
  display: grid;
  gap: 0.08rem;
}

.calendar-day-window-group-title,
.calendar-day-window-panel-title {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.calendar-day-window-column-meta {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.calendar-day-window-list {
  min-width: 0;
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 0.24rem;
  overflow-y: auto;
  padding-right: 0.08rem;
}

.calendar-day-window-event {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--text-main);
  padding: 0.38rem 0.42rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.34rem;
  text-align: left;
  cursor: default;
}

.calendar-day-window-event.is-mappable {
  cursor: pointer;
}

.calendar-day-window-event.is-mappable:hover,
.calendar-day-window-event.is-mappable:focus-visible {
  border-color: var(--text-active);
  background: var(--window-content-start);
  outline: none;
}

.calendar-day-window-event.is-map-active {
  border-color: #f6b23c;
  background: linear-gradient(180deg, rgba(246, 178, 60, 0.18) 0%, rgba(246, 178, 60, 0.08) 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 214, 122, 0.34);
  outline: none;
}

.calendar-day-window-event.is-map-active .calendar-day-window-event-title {
  color: #ffe7a6;
}

.calendar-day-window-event.is-map-active .calendar-day-window-event-kind {
  border-color: #f6b23c;
  background: rgba(246, 178, 60, 0.16);
}

.calendar-day-window-list-empty {
  margin: 0;
}

.calendar-day-window-event-main {
  min-width: 0;
  display: grid;
  gap: 0.14rem;
}

.calendar-day-window-event-title {
  color: var(--surface-title-text);
  font-size: 0.78rem;
  line-height: 1.16;
  font-weight: 600;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.calendar-day-window-event-meta,
.calendar-day-window-event-submeta {
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  line-height: 1.18;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.calendar-day-window-event-kind {
  border: 1px solid var(--surface-card-border);
  background: var(--window-content-start);
  color: var(--text-active);
  padding: 0.18rem;
  align-self: start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  min-height: 2rem;
  flex: 0 0 auto;
}

.calendar-day-window-event-kind-icon {
  width: 1rem;
  height: 1rem;
  display: block;
  image-rendering: pixelated;
}

.calendar-day-window-map-panel {
  box-sizing: border-box;
  min-width: 0;
  min-height: 0;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.42rem;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.28rem;
  align-self: stretch;
  overflow: hidden;
}

@media (max-width: 1180px) {
  .calendar-day-window-shell {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(220px, 0.92fr) minmax(0, 1fr);
  }

  .calendar-day-window-rail {
    grid-template-rows: repeat(2, minmax(180px, 1fr));
  }
}

.calendar-day-window-map-head {
  display: grid;
  gap: 0.12rem;
}

.calendar-day-window-map-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.36rem;
  flex-wrap: wrap;
}

.calendar-day-window-map-filters {
  justify-content: flex-start;
  gap: 0.22rem;
}

.calendar-day-window-map-filters .map-legend-item {
  padding: 0.22rem 0.34rem;
}

.calendar-day-window-map-counts {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.24rem 0.42rem;
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.calendar-day-window-map-counts strong {
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: 0.92rem;
  line-height: 1;
}

.calendar-day-window-map-note {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  line-height: 1.18;
}

.calendar-day-window-map-empty {
  margin: 0;
}

.calendar-day-window-map-shell {
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  overflow: hidden;
}

.calendar-day-window-map {
  min-height: 0;
  height: 100%;
  border: 1px solid var(--surface-card-border);
  overflow: hidden;
  touch-action: none;
}

.calendar-day-window-map .leaflet-control-zoom a {
  color: var(--button-text);
  background: var(--surface-item-bg);
  border-color: var(--surface-card-border);
}

.calendar-day-window-map .leaflet-tooltip {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--surface-title-text);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
}

.event-calendar-day-summary {
  display: grid;
  gap: 0.2rem;
  align-content: start;
}

.event-calendar-day-counter {
  margin: 0;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.18rem 0.22rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.22rem;
  color: var(--surface-muted-text);
  font-size: 0.52rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.event-calendar-day-counter-label {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
  white-space: nowrap;
}

.event-calendar-day-counter-icon {
  width: 0.9rem;
  height: 0.9rem;
  flex: 0 0 auto;
  image-rendering: pixelated;
}

.event-calendar-day-counter strong {
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: 0.88rem;
  line-height: 1;
  justify-self: end;
}

.event-calendar-day-counter--show strong {
  color: var(--calendar-show-count-accent);
}

.event-calendar-day-counter--open_mic strong {
  color: var(--calendar-open-mic-count-accent);
}

.event-calendar-filter-empty {
  margin: 0;
  grid-column: 1 / -1;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.55rem;
  color: var(--surface-muted-text);
  font-size: 0.74rem;
}

.event-calendar-mobile-day {
  display: none;
}

.event-calendar-mobile-agenda {
  display: grid;
  gap: 0.34rem;
}

.calendar-event-chip--mobile {
  padding: 0.42rem 0.44rem;
}

.calendar-event-chip--mobile span {
  font-size: 0.78rem;
}

.calendar-event-chip--mobile small {
  font-size: 0.64rem;
}

[data-window="calendar-window"] .event-browser-window {
  min-height: 100%;
  height: 100%;
  overflow: hidden;
  grid-template-rows: auto minmax(0, 1fr);
}

[data-window="calendar-window"] > .window-body {
  overflow: hidden;
}

[data-window="calendar-window"] .event-browser-panel[data-view-panel="calendar"] {
  min-height: 0;
  display: grid !important;
  grid-template-rows: minmax(0, 1fr);
}

[data-window="calendar-window"] .calendar-window-shell {
  box-sizing: border-box;
  min-height: 100%;
  height: 100%;
  max-height: 100%;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  border: 1px solid var(--window-content-border);
  background: linear-gradient(180deg, var(--window-content-start), var(--window-content-end));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    inset 0 -1px 0 rgba(255, 255, 255, 0.06),
    inset 0 -3px 0 rgba(0, 0, 0, 0.18);
  padding: 0.48rem;
}

[data-window="calendar-window"] .event-calendar-frame {
  box-sizing: border-box;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.65rem;
}

[data-window="calendar-window"] .event-calendar-shell {
  box-sizing: border-box;
  height: auto;
  min-height: 0;
  grid-template-rows: auto auto minmax(0, 1fr);
  width: min(100%, 820px);
  margin-inline: auto;
  align-self: start;
}

[data-window="calendar-window"] .calendar-maximized-detail {
  min-height: 0;
  display: none;
}

[data-window="calendar-window"] .calendar-maximized-detail[hidden] {
  display: none !important;
}

[data-window="calendar-window"] .event-browser-window--calendar-maximized {
  grid-template-columns: minmax(0, 1fr) clamp(260px, 20vw, 340px);
  grid-template-rows: minmax(0, 1fr);
  grid-template-areas: "calendar detail";
  gap: 0.65rem;
  align-items: stretch;
  justify-content: stretch;
}

[data-window="calendar-window"] .event-browser-window--calendar-maximized .event-calendar-frame {
  grid-area: calendar;
  min-width: 0;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  align-self: start;
}

[data-window="calendar-window"] .event-browser-window--calendar-maximized .event-filter-row,
[data-window="calendar-window"] .event-browser-window--calendar-maximized .event-calendar-shell {
  width: 100%;
  margin-inline: 0;
}

[data-window="calendar-window"] .event-browser-window--calendar-maximized .event-calendar-shell {
  height: auto;
  max-width: none;
}

[data-window="calendar-window"] .event-browser-window--calendar-maximized .calendar-maximized-detail {
  box-sizing: border-box;
  grid-area: detail;
  min-width: 0;
  width: 100%;
  display: grid;
  min-height: 0;
}

[data-window="calendar-window"] .calendar-maximized-detail-shell {
  box-sizing: border-box;
  min-height: 0;
  height: auto;
  max-height: 100%;
  display: grid;
  grid-template-rows: auto minmax(128px, 18vh) minmax(0, 1fr);
  gap: 0.34rem;
  padding-bottom: 0.22rem;
  overflow: hidden;
}

[data-window="calendar-window"] .calendar-maximized-detail-head {
  display: grid;
  gap: 0.08rem;
}

[data-window="calendar-window"] .calendar-maximized-detail-head .calendar-day-window-column-meta {
  margin: 0;
}

[data-window="calendar-window"] .calendar-maximized-detail .calendar-day-window-map-panel,
[data-window="calendar-window"] .calendar-maximized-detail .calendar-day-window-column-card {
  min-height: 0;
}

[data-window="calendar-window"] .calendar-maximized-detail .calendar-day-window-map-shell,
[data-window="calendar-window"] .calendar-maximized-detail .calendar-day-window-map {
  min-height: 128px;
}

[data-window="calendar-window"] .calendar-maximized-detail-listings {
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

[data-window="calendar-window"] .calendar-maximized-detail-listings .calendar-day-window-list {
  gap: 0.18rem;
  padding-right: 0.06rem;
}

[data-window="calendar-window"] .calendar-maximized-detail-listings .calendar-day-window-event {
  padding: 0.28rem 0.32rem;
  gap: 0.24rem;
}

[data-window="calendar-window"] .calendar-maximized-detail-listings .calendar-day-window-event-title {
  font-size: 0.74rem;
  line-height: 1.12;
}

[data-window="calendar-window"] .calendar-maximized-detail-listings .calendar-day-window-event-meta,
[data-window="calendar-window"] .calendar-maximized-detail-listings .calendar-day-window-event-submeta {
  font-size: 0.58rem;
  line-height: 1.14;
}

@media (min-width: 981px) and (max-width: 1180px), (min-width: 981px) and (max-height: 720px) {
  [data-window="calendar-window"] .event-browser-window--calendar-maximized {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, auto) minmax(0, 1fr);
    grid-template-areas:
      "calendar"
      "detail";
    justify-content: stretch;
  }

  [data-window="calendar-window"] .event-browser-window--calendar-maximized .calendar-maximized-detail {
    width: min(100%, 820px);
    margin-inline: auto;
  }

  [data-window="calendar-window"] .event-browser-window--calendar-maximized .calendar-maximized-detail-shell {
    grid-template-rows: auto minmax(220px, 320px) minmax(0, 1fr);
  }
}

@media (min-width: 981px) and (max-width: 1720px), (min-width: 981px) and (max-height: 1040px) {
  [data-window="calendar-window"]:not(.is-maximized).desktop-window {
    width: min(var(--window-w, 900px), calc(100% - 20px));
    max-width: calc(100% - 20px);
    height: min(var(--window-h, 760px), calc(100% - 20px));
    min-height: 0;
    max-height: calc(100% - 20px);
  }

  [data-window="calendar-window"] .calendar-window-shell {
    padding: 0.48rem;
  }

  [data-window="calendar-window"] .event-calendar-frame {
    gap: 0.52rem;
  }

  [data-window="calendar-window"] .event-filter-row,
  [data-window="calendar-window"] .event-calendar-shell {
    width: min(100%, 800px);
  }

  [data-window="calendar-window"] .event-calendar-shell {
    padding: 0.5rem;
    gap: 0.42rem;
  }

  [data-window="calendar-window"] .event-calendar-grid {
    gap: 0.26rem;
  }

  [data-window="calendar-window"] .event-calendar-day {
    padding: 0.24rem;
    gap: 0.14rem;
  }
}

[data-window="calendar-window"] .event-calendar-grid {
  grid-auto-rows: auto;
  min-height: 0;
  align-content: start;
}

[data-window="calendar-window"] .event-calendar-day {
  min-height: 0;
  aspect-ratio: 1 / 0.82;
  overflow: hidden;
}

[data-window="calendar-window"] .event-browser-window--desktop-calendar-summary .event-calendar-day-events {
  gap: 0.16rem;
  overflow: hidden;
  padding-right: 0;
}

[data-window="calendar-window"] .event-browser-window--desktop-calendar-summary .calendar-event-chip {
  display: none;
}

[data-window="calendar-window"] .event-browser-panel--data-only,
[data-window="calendar-window"] .event-browser-panel--data-only.is-active {
  display: none !important;
}

.event-drawer-backdrop {
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at 20% 15%, rgba(60, 105, 180, 0.18) 0%, rgba(4, 8, 14, 0) 56%),
    rgba(3, 7, 13, 0.68);
  backdrop-filter: blur(2px);
  z-index: 6800;
  pointer-events: none;
  opacity: 0;
  transition: opacity 130ms ease;
}

.event-drawer-backdrop.is-open {
  opacity: 1;
}

.event-drawer {
  position: fixed;
  right: 0;
  top: 0;
  width: min(472px, 92vw);
  height: 100vh;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(0, 0, 0, 0.14) 100%),
    linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  border-left: 1px solid var(--brown-edge-light);
  box-shadow:
    -18px 0 34px rgba(0, 0, 0, 0.42),
    inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  z-index: 6900;
  pointer-events: auto;
  display: grid;
  grid-template-rows: auto 1fr;
  transform: translateX(100%);
  transition: transform 150ms ease;
}

.event-drawer.is-open {
  transform: translateX(0);
}

.event-drawer-header {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 0.66rem 0.66rem 0.56rem;
  border-bottom: 1px solid var(--window-title-border);
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0.55rem;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.08) 100%);
}

.event-drawer-header [data-drawer-close] {
  order: -1;
  flex: 0 0 auto;
  margin-top: 0.04rem;
}

.event-drawer-header > div {
  min-width: 0;
}

.event-drawer-header h2 {
  margin: 0;
  color: var(--window-title-text);
  font-family: var(--font-display);
  font-size: 1.9rem;
  line-height: 0.95;
}

.event-drawer-body {
  padding: 0.68rem;
  overflow: auto;
  display: grid;
  gap: 0.64rem;
  align-content: start;
}

.event-drawer-meta-grid {
  display: grid;
  gap: 0.35rem;
}

.event-drawer-meta-grid p {
  margin: 0;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.46rem 0.5rem;
  display: grid;
  gap: 0.22rem;
}

.event-drawer-meta-grid span {
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.event-drawer-meta-grid strong {
  color: var(--surface-title-text);
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.24;
}

body.has-event-drawer-open {
  overflow: hidden;
}

.desktop-window {
  position: absolute;
  box-sizing: border-box;
  left: var(--window-x, 4%);
  top: var(--window-y, 12%);
  width: min(var(--window-w, 440px), 100%);
  max-width: 100%;
  min-height: var(--window-h, 260px);
  display: none;
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  border-radius: 5px;
  box-shadow: var(--window-shadow);
  overflow: hidden;
}

.desktop-window.is-open {
  display: block;
}

.desktop-window.is-focused {
  box-shadow: 0 0 0 1px var(--highlight-ring), 0 18px 34px rgba(0, 0, 0, 0.44);
}

.desktop-window--main {
  width: min(var(--window-w, 1100px), 94vw);
}

.window-titlebar {
  min-height: 28px;
  padding: 0.2rem 0.35rem;
  background: linear-gradient(180deg, var(--window-title-start), var(--window-title-end));
  border-bottom: 1px solid var(--window-title-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  cursor: grab;
  user-select: none;
}

.window-titlebar:active {
  cursor: grabbing;
}

.window-titlebar h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--window-title-font-size);
  letter-spacing: 0.06em;
  color: var(--window-title-text);
  line-height: 1;
}

.window-title-with-icon {
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
}

.window-title-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.window-controls {
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
}

.window-control {
  width: 22px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--window-control-border-light);
  border-left-color: var(--window-control-border-light);
  color: var(--window-control-text);
  background: var(--window-control-bg);
  font-size: 0.8rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  touch-action: manipulation;
}

body:not([data-palette="nes"]) .window-control[data-window-close]:hover,
body:not([data-palette="nes"]) .window-control[data-window-close]:focus-visible,
body:not([data-palette="nes"]) .window-control[data-drawer-close]:hover,
body:not([data-palette="nes"]) .window-control[data-drawer-close]:focus-visible {
  cursor: var(--cursor-window-close-image) 1 20, pointer;
}

.window-control::-moz-focus-inner {
  border: 0;
  padding: 0;
}

.window-control-icon {
  width: 14px;
  height: 14px;
  display: block;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  pointer-events: none;
}

.window-control-mute {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.window-control-mute.is-muted {
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: var(--button-end);
}

.window-control-expand {
  font-size: 0.72rem;
}

.window-control-maximize {
  position: relative;
  font-size: 0;
  line-height: 0;
  letter-spacing: 0;
  color: transparent;
  text-indent: -9999px;
  overflow: hidden;
  background-image: url("/static/img/icons/system/emblem-photos.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

body:not([data-palette="nes"]) .window-control-maximize {
  background-size: 20px 20px;
}

body:not([data-palette="nes"]) .window-control-maximize.is-maximized,
body:not([data-palette="nes"]) .window-control-maximize[aria-pressed="true"] {
  transform: rotate(180deg);
}

.window-control-maximize::before,
.window-control-maximize::after {
  content: none;
}

.window-control-static {
  pointer-events: none;
  cursor: default;
}

.window-content {
  background: linear-gradient(180deg, var(--window-content-start), var(--window-content-end));
  border: 1px solid var(--window-content-border);
  margin: 0.35rem;
  min-height: calc(var(--window-h, 260px) - 44px);
  max-height: calc(var(--window-h, 260px) - 44px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 0;
  overflow: hidden;
}

.desktop-window.is-sidebar-open .window-content {
  grid-template-columns: minmax(0, 1fr) minmax(190px, var(--sidebar-w, 230px));
}

.hub-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 0.65rem;
}

.hub-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border-radius: 0.56rem 0.56rem 0.18rem 0.18rem;
  border: 1px solid var(--menu-link-border);
  background: linear-gradient(180deg, var(--menu-link-start), var(--menu-link-end));
  color: var(--button-text);
  padding: 0 0.72rem;
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
}

.hub-tab.is-active {
  border-color: var(--highlight-ring);
  color: var(--text-active);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.hub-panel {
  display: none;
}

.hub-panel.is-active {
  display: block;
}

.hub-stats-row {
  margin-bottom: 0.55rem;
}

[data-window="home-hub"].desktop-window--main {
  height: auto;
  min-height: 0;
}

.home-hub-body {
  min-height: 100%;
  height: 100%;
  display: block;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
}

[data-window="home-hub"] .window-body.home-hub-body {
  min-height: 0;
  height: auto;
  max-height: calc(100dvh - var(--header-height) - var(--dock-height) - var(--base-height) - 0.5rem);
}

.home-hub-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.42fr) minmax(320px, 0.92fr);
  gap: 0.68rem;
  height: 100%;
  min-height: 100%;
  align-items: stretch;
}

[data-window="home-hub"] .home-hub-shell {
  height: auto;
  min-height: 0;
}

.home-hero-card {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  align-self: stretch;
  height: 100%;
  min-height: 0;
  border: 1px solid var(--surface-card-border);
  background:
    linear-gradient(180deg, rgba(255, 238, 244, 0.05) 0%, rgba(255, 208, 227, 0.02) 100%),
    linear-gradient(180deg, var(--surface-card-bg), rgba(12, 20, 28, 0.88));
  padding: 0.46rem;
}

.home-hero-media {
  position: relative;
  min-height: clamp(360px, 56vh, 640px);
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(255, 218, 232, 0.18);
  background:
    linear-gradient(180deg, rgba(255, 226, 238, 0.12) 0%, rgba(18, 32, 35, 0.16) 100%),
    #142129;
}

.home-hero-media::before,
.home-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.home-hero-media::before {
  z-index: 2;
  background:
    linear-gradient(180deg, rgba(255, 231, 240, 0.38) 0%, rgba(255, 210, 226, 0.08) 32%, rgba(9, 21, 28, 0.54) 100%),
    linear-gradient(125deg, rgba(255, 174, 203, 0.24) 0%, rgba(255, 232, 241, 0.06) 46%, rgba(17, 48, 50, 0.24) 100%),
    repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 4px);
  mix-blend-mode: screen;
  opacity: 0.94;
}

.home-hero-media::after {
  z-index: 3;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(255, 246, 250, 0.94) 0.72px, transparent 0.92px),
    radial-gradient(circle at 3px 3px, rgba(18, 48, 53, 0.2) 0.66px, transparent 0.92px);
  background-size: 4px 4px, 4px 4px;
  opacity: 0.4;
}

.home-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--home-hero-image-position, center 30%);
  transform: scale(var(--home-hero-image-scale, 1.03));
  filter: grayscale(1) contrast(1.08) brightness(0.78) sepia(0.18);
}

.home-hero-chip,
.home-hero-overlay {
  position: absolute;
  z-index: 4;
}

.home-hero-chip {
  top: 0.72rem;
  left: 0.72rem;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 0.56rem;
  border: 1px solid rgba(255, 228, 238, 0.26);
  background: rgba(16, 33, 35, 0.74);
  color: #fff3f7;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: inset 0 0 0 1px rgba(255, 186, 211, 0.16);
}

.home-hero-overlay {
  inset: auto 0 0 0;
  display: grid;
  gap: 0.3rem;
  padding: clamp(1rem, 2.4vw, 1.4rem);
  background:
    linear-gradient(180deg, rgba(7, 13, 18, 0.04) 0%, rgba(7, 13, 18, 0.16) 26%, rgba(7, 13, 18, 0.56) 58%, rgba(7, 13, 18, 0.9) 100%);
}

.home-hero-kicker,
.home-hero-title,
.home-hero-meta,
.home-hero-seo-copy {
  margin: 0;
}

.home-hero-kicker {
  display: inline-flex;
  align-self: start;
  width: fit-content;
  max-width: 100%;
  padding: 0.16rem 0.42rem;
  border: 1px solid rgba(255, 190, 214, 0.34);
  background: linear-gradient(180deg, rgba(44, 16, 28, 0.76) 0%, rgba(18, 12, 18, 0.86) 100%);
  color: #ffd2e4;
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-shadow:
    1px 1px 0 rgba(18, 6, 12, 0.92),
    0 0 12px rgba(255, 182, 210, 0.18);
  box-shadow:
    inset 0 0 0 1px rgba(255, 229, 238, 0.08),
    0 8px 18px rgba(0, 0, 0, 0.18);
}

.home-hero-title {
  max-width: 10ch;
  color: #bffbf1;
  font-family: var(--font-display);
  font-size: var(--home-hero-title-size);
  line-height: 0.88;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-shadow:
    2px 2px 0 rgba(6, 18, 20, 0.88),
    4px 4px 0 rgba(6, 18, 20, 0.44);
}

.home-hero-meta {
  color: rgba(245, 250, 255, 0.9);
  font-size: 0.74rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.home-hero-seo-copy {
  max-width: min(40ch, 88%);
  color: rgba(238, 250, 247, 0.88);
  font-size: 0.58rem;
  line-height: 1.35;
  letter-spacing: 0.04em;
  text-shadow: 1px 1px 0 rgba(6, 18, 20, 0.82);
}

.page-seo-copy,
.home-hero-seo-copy {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.event-seo-link-list {
  display: none;
}

.home-rail {
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 0.68rem;
  align-content: start;
}

.home-summary-card {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.62rem;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  height: 100%;
  min-height: 0;
  gap: 0.42rem;
  overflow: hidden;
}

.home-summary-card--shows {
  background:
    linear-gradient(180deg, rgba(198, 255, 239, 0.04) 0%, rgba(0, 0, 0, 0) 100%),
    var(--surface-card-bg);
}

.home-summary-card--mics {
  background:
    linear-gradient(180deg, rgba(255, 228, 239, 0.05) 0%, rgba(0, 0, 0, 0) 100%),
    var(--surface-card-bg);
}

.home-summary-head {
  display: grid;
  gap: 0.1rem;
  align-content: start;
}

.home-summary-title {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: clamp(0.9rem, 1.16vw, 1.14rem);
  line-height: 1.02;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.home-summary-sublead {
  margin: 0;
  letter-spacing: 0.055em;
}

.home-summary-card .window-lead {
  margin: 0;
}

.home-summary-sentence {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.25;
  color: var(--surface-title-text);
}

.home-summary-card .window-list {
  min-height: 0;
  max-height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 0.14rem;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
}

.home-summary-list .window-item.event-window-item[data-event-detail] {
  gap: 0.54rem;
  padding: 0.42rem 0.48rem;
  align-items: center;
}

.home-summary-list .event-window-item-thumb {
  width: 62px;
  min-width: 62px;
}

.home-summary-list .window-item-title {
  font-size: clamp(0.92rem, 1.05vw, 1.1rem);
}

.home-summary-list .window-item-meta {
  line-height: 1.22;
}

.home-summary-list .window-item-link[data-open-map] {
  width: 56px;
  min-width: 56px;
  height: 56px;
  min-height: 56px;
}

.home-summary-list .window-item-link[data-open-map] .window-item-link-icon {
  width: 1.6rem !important;
  height: 1.6rem !important;
}

.home-summary-list--mobile-cap .window-item:nth-of-type(n + 4) {
  display: none;
}

.home-summary-more {
  display: block;
  margin-top: auto;
}

.home-summary-more-btn {
  width: 100%;
  min-height: 32px;
  padding: 0 0.6rem;
  font-size: 0.68rem;
}

.home-summary-more-btn-label--mobile {
  display: none;
}

@media (max-width: 980px) {
  .home-summary-more-btn-label--desktop {
    display: none;
  }

  .home-summary-more-btn-label--mobile {
    display: inline;
  }
}

.home-section-divider {
  height: 3px;
  border-top: 1px solid var(--surface-item-border);
  border-bottom: 1px solid rgba(4, 6, 10, 0.44);
  background: linear-gradient(90deg, transparent 0%, var(--surface-item-border) 50%, transparent 100%);
  opacity: 0.72;
}

.home-newsletter {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.62rem;
  display: grid;
  gap: 0.5rem;
  min-height: 0;
}

.home-news-carousel {
  align-content: start;
}

.home-carousel {
  display: grid;
  gap: 0.44rem;
  min-height: 0;
}

.home-carousel-viewport {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--surface-item-border);
  background: var(--window-content-start);
  width: 100%;
  aspect-ratio: var(--home-carousel-frame-aspect-ratio);
  min-height: 152px;
  max-height: min(40vh, 360px);
}

@media (min-width: 1501px) and (min-height: 901px) {
  [data-window="home-hub"] .window-body.home-hub-body {
    overflow-y: hidden;
  }
}

@media (min-width: 981px) {
  [data-window="home-hub"] .home-carousel-viewport {
    max-height: min(30vh, 280px);
  }
}

.home-carousel-track {
  display: flex;
  width: 100%;
  height: 100%;
  transform: translateX(0);
  transition: transform 260ms ease;
  will-change: transform;
}

.home-carousel-slide {
  position: relative;
  flex: 0 0 100%;
  height: 100%;
  overflow: hidden;
}

.home-carousel-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(calc(var(--carousel-zoom-percent, 104) / 100));
  transform-origin: var(--carousel-crop-x, 50%) var(--carousel-crop-y, 50%);
  filter: saturate(1.08) contrast(1.04);
}

.home-carousel-slide.is-tone-indigo .home-carousel-image {
  filter: hue-rotate(155deg) saturate(1.08) contrast(1.02);
}

.home-carousel-slide.is-tone-mint .home-carousel-image {
  filter: hue-rotate(62deg) saturate(1.08) contrast(1.02);
}

.home-carousel-overlay {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: end;
  gap: 0.2rem;
  padding: 0.62rem 3.45rem 0.72rem;
  background:
    linear-gradient(180deg, rgba(6, 10, 16, 0.12) 0%, rgba(6, 10, 16, 0.56) 55%, rgba(6, 10, 16, 0.82) 100%);
}

.home-carousel-kicker {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.home-carousel-title {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: clamp(1rem, 2.25vw, 1.5rem);
  line-height: 0.98;
  letter-spacing: 0.03em;
}

.home-carousel-meta {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.68rem;
  letter-spacing: 0.015em;
}

.home-carousel-controls {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 0.2rem;
}

.home-carousel-nav {
  min-height: 28px;
  min-width: 62px;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.62rem;
  cursor: pointer;
}

.home-carousel-nav--overlay {
  position: absolute;
  top: 50%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  width: 34px;
  min-width: 34px;
  min-height: 30px;
  padding: 0;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.28);
}

.home-carousel-nav-icon {
  width: 12px;
  height: 12px;
  display: block;
  object-fit: contain;
  object-position: center;
  pointer-events: none;
}

.home-carousel-nav--prev {
  left: 0.5rem;
}

.home-carousel-nav--next {
  right: 0.5rem;
}

.home-carousel-nav:disabled {
  opacity: 0.45;
  cursor: default;
}

.home-carousel-dots {
  min-height: 28px;
  border: 1px solid var(--surface-item-border);
  background: var(--window-content-start);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.22rem;
  padding: 0 0.38rem;
}

.home-carousel-dot {
  width: 16px;
  height: 16px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  cursor: pointer;
}

.home-carousel-dot.is-active {
  border-color: var(--button-border-main);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
}

body[data-palette="nes"] .home-carousel-viewport,
body[data-palette="nes"] .home-carousel-dots,
body[data-palette="nes"] .home-carousel-nav,
body[data-palette="nes"] .home-carousel-dot {
  border-width: 2px;
}

body[data-palette="nes"] .home-carousel-dot.is-active {
  border-color: #18181c;
}

.jokester-window-title {
  font-family: "Tahoma", "Verdana", "Segoe UI", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: none;
}

.jokester-window .window-titlebar {
  min-height: 24px;
  background: linear-gradient(180deg, #1745ad 0%, #0e348f 58%, #092b7f 100%);
  border-bottom: 1px solid #041c62;
  border-color: #4b4b4b;
  justify-content: space-between;
  gap: 0.32rem;
}

.jokester-window .window-titlebar h2 {
  color: #f2f6ff;
  text-shadow: none;
}

.jokester-window .window-title-icon {
  width: 22px;
  height: 22px;
}

.jokester-window .window-controls {
  order: 0;
  margin-left: 0;
  gap: 0.12rem;
}

.jokester-window .window-titlebar h2 {
  order: 0;
}

.jokester-window .window-control {
  width: 18px;
  min-width: 18px;
  height: 16px;
  border: 1px solid #2f2f2f;
  background: linear-gradient(180deg, #f3f3f3 0%, #d6d6d6 72%, #c2c2c2 100%);
  color: #0f0f0f;
  font-size: 0.66rem;
  line-height: 1;
  text-indent: 0;
  overflow: visible;
  text-shadow: none;
  box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #7f7f7f;
}

.jokester-window .window-control:hover,
.jokester-window .window-control:focus-visible {
  background: linear-gradient(180deg, #ffffff 0%, #ececec 70%, #cfcfcf 100%);
}

.jokester-window .window-control[data-window-close]::before,
.jokester-window .window-control[data-window-close]::after,
.jokester-window .window-control[data-drawer-close]::before,
.jokester-window .window-control[data-drawer-close]::after {
  content: none;
}

.jokester-window .window-body {
  border-color: #7a7a7a;
  background: #c0c0c0;
}

.jokester-window .window-body::before {
  content: none;
}

.jokester-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) minmax(0, 0.9fr) auto;
  gap: 0;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background: #c0c0c0;
  color: #0f1216;
  border: 1px solid #6f6f6f;
  box-shadow: inset 1px 1px 0 #e9e9e9, inset -1px -1px 0 #7c7c7c;
  font-family: "Tahoma", "Verdana", "Segoe UI", sans-serif;
  font-size: 11px;
  line-height: 1.18;
}

.jokester-window-version {
  margin: 0;
  padding: 0.16rem 0.44rem 0.2rem;
  border-top: 1px solid #8a8a90;
  background: #d5d5d5;
  color: #4f5159;
  font-size: 9px;
  line-height: 1.1;
  letter-spacing: 0.01em;
  text-align: right;
}

.jokester-menubar {
  display: flex;
  align-items: center;
  gap: 0;
  min-height: 22px;
  border-bottom: 1px solid #8a8a90;
  background: #e1e1e3;
}

.jokester-menu-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: #101214;
  font: inherit;
  font-size: 11px;
  line-height: 1;
  padding: 0.3rem 0.42rem;
  cursor: default;
}

.jokester-menu-btn:hover,
.jokester-menu-btn:focus-visible {
  outline: none;
  background: #d2d2d5;
}

.jokester-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-height: 24px;
  padding: 0.18rem 0.44rem;
  border-bottom: 1px solid #8a8a90;
  background: #dcdcdc;
}

.jokester-toolbar-left {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  min-width: 0;
}

.jokester-toolbar-right {
  display: inline-flex;
  align-items: center;
  gap: 0.26rem;
}

.jokester-toolbar-buttons {
  flex-wrap: wrap;
}

.jokester-toolbar-btn {
  appearance: none;
  border: 1px solid #7f8088;
  background: linear-gradient(180deg, #f0f1f4 0%, #dfdfe2 60%, #ccced4 100%);
  color: #14181f;
  min-height: 22px;
  padding: 0 0.44rem;
  font: inherit;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  cursor: default;
}

.jokester-toolbar-btn.is-active {
  background: linear-gradient(180deg, #fefefe 0%, #ececf0 65%, #d7d8dd 100%);
  box-shadow: inset 0 0 0 1px #4d7ed6;
}

.jokester-toolbar-label {
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.jokester-toolbar-meta {
  margin: 0;
  color: #2b2e35;
  text-transform: none;
}

.jokester-indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid #3f4754;
  background: #7d8798;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
}

.jokester-indicator--online {
  background: #49d251;
  border-color: #1f6f2b;
}

.jokester-action-btn {
  appearance: none;
  border: 1px solid #6f7078;
  background: linear-gradient(180deg, #efeff2 0%, #e0e0e3 55%, #c8c8cd 100%);
  color: #17191b;
  font: inherit;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  min-height: 24px;
  padding: 0 0.5rem;
  cursor: pointer;
}

.jokester-action-btn:hover,
.jokester-action-btn:focus-visible {
  outline: none;
  background: linear-gradient(180deg, #ffffff 0%, #ececf0 60%, #d6d7dc 100%);
}

.jokester-action-btn:disabled {
  cursor: not-allowed;
  color: #62656d;
  background: #d0d0d4;
}

.jokester-action-btn--raised {
  box-shadow: 1px 1px 0 #8d8d95;
}

.jokester-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
  border-top: 1px solid #efefef;
  border-bottom: 1px solid #8a8a90;
  background: #d9d9d9;
}

.jokester-panel--transfer {
  border-bottom: 0;
}

.jokester-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  min-height: 24px;
  padding: 0.2rem 0.4rem;
  border-bottom: 1px solid #9f9f9f;
  background: #cdcdcd;
}

.jokester-panel-title,
.jokester-panel-meta {
  margin: 0;
}

.jokester-panel-title {
  font-weight: 700;
}

.jokester-panel-meta {
  color: #33363d;
}

.jokester-table-wrap {
  min-height: 0;
  overflow: auto;
  background: #ffffff;
}

.jokester-table-wrap--available {
  max-height: 100%;
}

.jokester-table-wrap--transfer {
  max-height: 100%;
}

.jokester-table {
  width: 100%;
  min-width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font: inherit;
}

.jokester-table th,
.jokester-table td {
  border-right: 1px solid #c8c8c8;
  border-bottom: 1px solid #d6d6d6;
  padding: 0.13rem 0.3rem;
  vertical-align: middle;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.jokester-table th:last-child,
.jokester-table td:last-child {
  border-right: 0;
}

.jokester-table th {
  font-size: 10px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.01em;
  background: #d6d6d6;
  color: #252525;
}

.jokester-table td {
  background: #ffffff;
}

.jokester-table tbody tr:nth-child(even) td {
  background: #f3f3f3;
}

.jokester-table tbody tr:hover td {
  background: #dde9ff;
}

.jokester-col-state {
  width: 22px;
}

.jokester-col-size {
  width: 76px;
  text-align: right;
}

.jokester-col-speed {
  width: 88px;
}

.jokester-col-user {
  width: 104px;
}

.jokester-col-ping {
  width: 60px;
  text-align: right;
}

.jokester-col-action {
  width: 74px;
}

.jokester-table--available .jokester-col-action {
  width: 58px;
}

.jokester-table--transfer .jokester-col-action {
  width: 88px;
}

.jokester-col-progress {
  width: 180px;
}

.jokester-state-cell {
  text-align: center;
}

.jokester-state-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid #3f4650;
  background: #8f98a8;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}

.jokester-state-dot--available {
  background: #8e95a1;
  border-color: #4c5562;
}

.jokester-state-dot--queued {
  background: #f2c650;
  border-color: #966f13;
}

.jokester-state-dot--downloading {
  background: #4da6f8;
  border-color: #0f4f8e;
}

.jokester-state-dot--seeding {
  background: #4eda62;
  border-color: #1f7b34;
}

.jokester-action-cell {
  text-align: right;
}

.jokester-action-group {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.jokester-action-cell .jokester-action-btn--icon {
  width: 34px;
  height: 30px;
}

.jokester-transfer-open-btn {
  min-width: 64px;
  height: 30px;
  padding: 0 0.56rem;
  font-size: 10px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.24rem;
}

.jokester-transfer-open-btn .jokester-btn-icon {
  width: 14px;
  height: 14px;
}

.jokester-transfer-open-label {
  line-height: 1;
}

.jokester-action-btn--icon {
  min-width: 34px;
  width: 34px;
  height: 30px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #7f8aa0;
  border-radius: 2px;
  background: linear-gradient(180deg, #fefefe 0%, #e8edf5 70%, #d6deeb 100%);
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.92), inset -1px -1px 0 rgba(83, 97, 122, 0.35);
}

.jokester-action-btn--icon:hover,
.jokester-action-btn--icon:focus-visible {
  background: linear-gradient(180deg, #ffffff 0%, #f1f5fb 70%, #e2e8f2 100%);
  border-color: #5e6f8f;
}

.jokester-table--available .jokester-action-cell .jokester-action-btn--icon,
.jokester-table--available .jokester-action-cell .jokester-action-btn--icon:hover,
.jokester-table--available .jokester-action-cell .jokester-action-btn--icon:focus-visible,
.jokester-table--available .jokester-action-cell .jokester-action-btn--icon:active {
  min-width: 40px;
  width: 40px;
  height: 34px;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0;
}

.jokester-table--available .jokester-action-cell .jokester-btn-icon {
  width: 24px;
  height: 24px;
}

.jokester-table--available .jokester-action-cell .jokester-btn-icon--download,
.jokester-table--available .jokester-action-cell .jokester-btn-icon--complete {
  background-size: 24px 24px;
}

.jokester-btn-icon {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 18px;
}

.jokester-btn-icon::before,
.jokester-btn-icon::after {
  content: "";
  position: absolute;
}

.jokester-btn-icon--download::before,
.jokester-btn-icon--download::after {
  content: none;
}

.jokester-btn-icon--download {
  background: url("/static/img/icons/system/cdwriter_unmount.png") center / 18px 18px no-repeat;
}

.jokester-btn-icon--complete {
  background: url("/static/img/icons/system/check-0.png") center / 18px 18px no-repeat;
}

.jokester-btn-icon--busy::before {
  left: 2px;
  top: 2px;
  width: 12px;
  height: 12px;
  border: 2px solid #5a6579;
  border-radius: 50%;
  border-right-color: transparent;
  animation: jokester-icon-spin 0.75s linear infinite;
}

.jokester-btn-icon--wait::before {
  content: "...";
  left: 50%;
  top: 50%;
  transform: translate(-50%, -53%);
  color: #6b7484;
  font-size: 10px;
  letter-spacing: 0.08em;
  line-height: 1;
}

.jokester-action-btn--danger {
  border-color: #b65d5d;
  background: linear-gradient(180deg, #fff4f4 0%, #f7dfdf 72%, #f0c7c7 100%);
}

.jokester-action-btn--danger:hover,
.jokester-action-btn--danger:focus-visible {
  background: linear-gradient(180deg, #ffffff 0%, #f9e7e7 70%, #f3cdcd 100%);
}

.jokester-btn-icon--trash::before,
.jokester-btn-icon--trash::after {
  content: none;
}

.jokester-btn-icon--trash {
  background: url("/static/img/icons/system/recycle_bin_full_cool-0.png") center / 18px 18px no-repeat;
}

@keyframes jokester-icon-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.jokester-progress-track {
  position: relative;
  width: 100%;
  height: 14px;
  border: 1px solid #7a7a7a;
  box-shadow: inset 1px 1px 0 #f7f7f7, inset -1px -1px 0 #b2b2b2;
  background:
    repeating-linear-gradient(
      90deg,
      #f7f7f7 0px,
      #f7f7f7 12px,
      #efefef 12px,
      #efefef 24px
    );
  overflow: hidden;
}

.jokester-progress-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  background: #c93337;
  transition: width 0.25s linear;
}

.jokester-progress-label {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  color: #1f2127;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
  line-height: 12px;
}

.jokester-transfer-status {
  font-weight: 700;
  color: #1f2329;
  font-size: 10px;
}

.jokester-transfer-status--seeding {
  display: inline-block;
  padding: 1px 4px;
  border: 1px solid #7aa57a;
  background: linear-gradient(180deg, #f0fbf0 0%, #dff2df 100%);
  color: #1e5f2c;
}

.jokester-empty-row td {
  text-align: center;
  color: #5f6570;
  font-style: italic;
  padding: 0.55rem 0.4rem;
  background: #f3f3f3;
}

body[data-palette] .jokester-window {
  border: 1px solid #4b4b4b !important;
  background: #c0c0c0 !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
}

body[data-palette] .jokester-window.is-focused {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35) !important;
}

body[data-palette] .jokester-window .window-titlebar {
  background: linear-gradient(180deg, #1745ad 0%, #0e348f 58%, #092b7f 100%) !important;
  border-bottom: 1px solid #041c62 !important;
  justify-content: space-between !important;
}

body[data-palette] .jokester-window .window-titlebar h2 {
  color: #f2f6ff !important;
  text-shadow: none !important;
}

body[data-palette] .jokester-window .window-body {
  border-color: #6f6f6f !important;
  background: #c0c0c0 !important;
}

body[data-palette] .jokester-window .window-body::before {
  content: none !important;
}

body[data-palette] .jokester-window .window-control {
  border: 1px solid #2f2f2f !important;
  background: linear-gradient(180deg, #f3f3f3 0%, #d6d6d6 72%, #c2c2c2 100%) !important;
  color: #0f0f0f !important;
  box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #7f7f7f !important;
  font-size: 0.66rem !important;
  line-height: 1 !important;
  text-indent: 0 !important;
}

body[data-palette] .jokester-window .window-control[data-window-close]::before,
body[data-palette] .jokester-window .window-control[data-window-close]::after,
body[data-palette] .jokester-window .window-control[data-drawer-close]::before,
body[data-palette] .jokester-window .window-control[data-drawer-close]::after {
  content: none !important;
}

.portal-engine-body {
  display: grid;
  min-height: 0;
  padding: 0.35rem;
  background: #0b0b0b;
  overflow: hidden;
}

.portal-engine-layout {
  display: grid;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
  gap: 0.35rem;
  min-height: 0;
  height: 100%;
}

.portal-engine-drawer-backdrop {
  display: none;
}

.portal-engine-sidebar {
  min-height: 0;
  overflow: auto;
  border: 1px solid #505050;
  background: #05070b;
  padding: 0.35rem;
  display: grid;
  align-content: start;
  gap: 0.36rem;
}

.portal-engine-sidebar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.32rem;
}

.portal-engine-sidebar-title {
  margin: 0;
  color: #f4f4f4;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
}

.portal-engine-btn--filters-close {
  display: none;
}

.portal-engine-section {
  border: 1px solid #3f4349;
  background: #070c12;
  padding: 0.3rem;
  display: grid;
  gap: 0.28rem;
}

.portal-engine-section-title {
  margin: 0;
  color: #d7dbe0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-engine-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.28rem;
}

.portal-engine-field {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #b7c2cf;
}

.portal-engine-field--toggle {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.4rem;
}

.portal-engine-field--toggle span {
  line-height: 1.1;
}

.portal-engine-field--toggle input[type="checkbox"] {
  margin: 0;
  width: 15px;
  height: 15px;
  justify-self: end;
}

.portal-engine-field select,
.portal-engine-field input[type="range"],
.portal-engine-field input[type="number"] {
  width: 100%;
}

.portal-engine-field select {
  min-height: 24px;
  border: 1px solid #465063;
  background: #0d1420;
  color: #e2e8ef;
  font: inherit;
  font-size: 0.64rem;
  padding: 0 0.3rem;
}

.portal-engine-field input[type="number"] {
  min-height: 24px;
  border: 1px solid #465063;
  background: #0d1420;
  color: #d7deea;
  font: inherit;
  font-size: 0.64rem;
  padding: 0 0.28rem;
}

.portal-engine-btn {
  min-height: 24px;
  border: 1px solid #59627a;
  background: linear-gradient(180deg, #1e2a41, #141f32);
  color: #e2e9f4;
  padding: 0 0.56rem;
  font: inherit;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
}

.portal-engine-btn:active,
.portal-engine-btn[aria-pressed="true"] {
  background: linear-gradient(180deg, #121c2f, #0f1726);
}

.portal-engine-controls-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.3rem;
}

.portal-engine-stage-wrap {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.3rem;
  min-height: 0;
  width: 100%;
  height: 100%;
}

.portal-engine-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.3rem;
}

.portal-engine-btn--filters-toggle {
  display: none;
}

.portal-engine-stage {
  position: relative;
  min-height: 0;
  width: 100%;
  height: 100%;
  border: 1px solid #40454f;
  background: #000000;
  overflow: hidden;
}

.portal-engine-canvas {
  display: block;
  width: 100%;
  height: 100%;
  background: #000;
}

.portal-engine-stage.is-inverted .portal-engine-canvas {
  filter: invert(1) hue-rotate(180deg);
}

.portal-engine-status {
  position: absolute;
  right: 8px;
  bottom: 6px;
  margin: 0;
  padding: 0.12rem 0.34rem;
  border: 1px solid rgba(196, 208, 225, 0.45);
  background: rgba(5, 8, 15, 0.72);
  color: #d6deec;
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

@media (max-width: 980px) {
  .jokester-window {
    width: min(var(--window-w, 900px), 96vw);
    max-width: 96vw;
    height: min(var(--window-h, 640px), calc(100% - 12px));
    max-height: calc(100% - 12px);
  }

  .jokester-shell {
    font-size: 10px;
  }

  .jokester-col-user,
  .jokester-col-speed {
    width: 84px;
  }

  .jokester-col-ping {
    width: 56px;
  }

  .jokester-col-progress {
    width: 160px;
  }

  .jokester-table {
    min-width: 620px;
  }

  .desktop-window.portal-engine-window {
    width: min(var(--window-w, 980px), 98vw);
    max-width: 98vw;
    height: min(var(--window-h, 700px), calc(100% - 6px));
    max-height: calc(100% - 6px);
  }

  .portal-engine-layout {
    grid-template-columns: 1fr;
    position: relative;
  }

  .portal-engine-toolbar {
    position: sticky;
    top: 0;
    z-index: 12;
  }

  .portal-engine-btn--filters-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 86px;
  }

  .portal-engine-toolbar .portal-engine-controls-row {
    flex: 1 1 auto;
    max-width: calc(100% - 96px);
  }

  .portal-engine-toolbar .portal-engine-btn {
    min-height: 34px;
    font-size: 0.66rem;
  }

  .portal-engine-drawer-backdrop {
    position: absolute;
    inset: 0;
    z-index: 20;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0, 0, 0, 0.55);
    cursor: pointer;
    display: none;
  }

  .portal-engine-sidebar {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(86vw, 340px);
    max-height: none;
    z-index: 30;
    transform: translateX(108%);
    transition: transform 180ms ease;
    box-shadow: -10px 0 22px rgba(0, 0, 0, 0.45);
  }

  .portal-engine-btn--filters-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 0.48rem;
  }

  .portal-engine-window.is-portal-filters-open .portal-engine-sidebar {
    transform: translateX(0);
  }

  .portal-engine-window.is-portal-filters-open .portal-engine-drawer-backdrop {
    display: block;
  }

  .portal-engine-stage-wrap {
    min-height: 0;
    height: 100%;
  }

  .portal-engine-stage {
    min-height: min(56vh, 540px);
  }
}

@media (max-width: 760px) {
  .jokester-window {
    width: min(var(--window-w, 900px), 98vw);
    max-width: 98vw;
    height: min(var(--window-h, 640px), calc(100% - 8px));
    max-height: calc(100% - 8px);
  }

  .desktop-window.portal-engine-window {
    width: min(var(--window-w, 980px), 99vw);
    max-width: 99vw;
    height: min(var(--window-h, 700px), calc(100% - 4px));
    max-height: calc(100% - 4px);
  }

  .portal-engine-body {
    padding: 0.24rem;
  }

  .portal-engine-toolbar {
    gap: 0.22rem;
  }

  .portal-engine-btn--filters-toggle {
    min-width: 74px;
  }

  .portal-engine-toolbar .portal-engine-controls-row {
    max-width: calc(100% - 82px);
    gap: 0.22rem;
  }

  .portal-engine-toolbar .portal-engine-btn {
    min-height: 32px;
    font-size: 0.62rem;
    padding: 0 0.4rem;
  }

  .portal-engine-stage {
    min-height: min(62vh, 620px);
  }

  .portal-engine-sidebar {
    width: min(92vw, 360px);
    padding: 0.3rem;
  }

  .jokester-shell {
    grid-template-rows: auto minmax(0, 1fr) minmax(0, 1fr) auto;
  }

  .jokester-toolbar {
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 0.2rem 0.44rem;
    padding: 0.2rem 0.34rem;
  }

  .jokester-toolbar-label,
  .jokester-toolbar-meta {
    font-size: 10px;
  }

  .jokester-panel-head {
    flex-wrap: wrap;
    gap: 0.14rem 0.34rem;
    padding: 0.2rem 0.34rem;
  }

  .jokester-panel-meta {
    width: 100%;
    font-size: 10px;
  }

  .jokester-table-wrap {
    overflow-x: hidden;
  }

  .jokester-table {
    min-width: 100%;
    table-layout: fixed;
  }

  .jokester-table th,
  .jokester-table td {
    padding: 0.2rem 0.24rem;
  }

  .jokester-table--available th:nth-child(4),
  .jokester-table--available td:nth-child(4),
  .jokester-table--available th:nth-child(5),
  .jokester-table--available td:nth-child(5) {
    display: none;
  }

  .jokester-table--transfer th:nth-child(4),
  .jokester-table--transfer td:nth-child(4),
  .jokester-table--transfer th:nth-child(5),
  .jokester-table--transfer td:nth-child(5),
  .jokester-table--transfer th:nth-child(6),
  .jokester-table--transfer td:nth-child(6) {
    display: none;
  }

  .jokester-table--available .jokester-col-state,
  .jokester-table--transfer .jokester-col-state {
    width: 22px;
  }

  .jokester-table--available .jokester-col-size {
    width: 66px;
  }

  .jokester-table--transfer .jokester-col-progress {
    width: 126px;
  }

  .jokester-table--available .jokester-col-action {
    width: 50px;
  }

  .jokester-table--transfer .jokester-col-action {
    width: 94px;
  }

  .jokester-table--available td:nth-child(2),
  .jokester-table--transfer td:nth-child(2) {
    max-width: 0;
  }

  .jokester-action-group {
    gap: 6px;
  }

  .jokester-action-btn--icon,
  .jokester-action-cell .jokester-action-btn--icon {
    min-width: 42px;
    width: 42px;
    height: 36px;
  }

  .jokester-transfer-open-btn {
    min-width: 68px;
    height: 36px;
    font-size: 10px;
    padding: 0 0.52rem;
    gap: 0.28rem;
  }

  .jokester-transfer-open-btn .jokester-btn-icon {
    width: 15px;
    height: 15px;
  }

  .jokester-btn-icon {
    width: 18px;
    height: 18px;
  }

  .jokester-progress-label {
    font-size: 9px;
  }
}

.guestbook-window-body {
  display: grid;
  gap: 0.5rem;
  align-content: start;
  overflow: hidden;
}

.guestbook-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.48rem;
  flex-wrap: nowrap;
  border: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, rgba(10, 18, 30, 0.42), rgba(7, 12, 20, 0.34));
  padding: 0.36rem;
}

.guestbook-toolbar .window-action-btn {
  min-height: 30px;
  padding: 0 0.72rem;
  font-size: 0.66rem;
}

.guestbook-toolbar-note {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.6rem;
  line-height: 1.22;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--surface-muted-text);
}

.guestbook-feedback {
  margin-bottom: 0;
}

.guestbook-panel {
  min-height: 0;
  display: grid;
  gap: 0.5rem;
  align-content: start;
}

.guestbook-panel[hidden] {
  display: none;
}

.guestbook-list {
  border: 1px solid var(--surface-item-border);
  background: linear-gradient(180deg, rgba(7, 12, 20, 0.94), rgba(4, 8, 14, 0.97));
  min-height: 0;
  max-height: clamp(260px, 48vh, 560px);
  overflow: auto;
  align-content: start;
  padding: 0.38rem 0.38rem 0.38rem 0.42rem;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) rgba(4, 8, 14, 0.92);
}

.guestbook-list::-webkit-scrollbar {
  width: max(8px, calc(var(--scrollbar-size) - 3px));
}

.guestbook-list::-webkit-scrollbar-track {
  background: linear-gradient(180deg, rgba(6, 10, 16, 0.95), rgba(3, 6, 11, 0.95));
  border: 1px solid rgba(80, 96, 128, 0.42);
  border-radius: 2px;
}

.guestbook-list::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
  border: 1px solid var(--scrollbar-thumb-border);
  border-radius: 2px;
}

.guestbook-dynamic-list {
  display: grid;
  gap: 0.36rem;
}

.guestbook-message-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.5rem;
  padding: 0.44rem 0.5rem;
  border: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, rgba(14, 24, 38, 0.66), rgba(8, 14, 24, 0.56));
}

.guestbook-message-icon {
  display: block;
  width: 32px;
  height: 32px;
  min-width: 32px;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.guestbook-message-content {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.guestbook-message-heading {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.guestbook-message-author {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.06rem;
  line-height: 1.02;
  color: var(--surface-title-text);
  letter-spacing: 0.015em;
}

.guestbook-message-time {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.62rem;
  line-height: 1.2;
  color: var(--surface-muted-text);
  opacity: 0.9;
}

.guestbook-message-text {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 1rem;
  line-height: 1.2;
  color: var(--surface-title-text);
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.guestbook-message-actions {
  display: flex;
  align-items: center;
  align-self: start;
  justify-self: end;
}

.guestbook-delete-form {
  margin: 0;
}

.guestbook-delete-btn {
  min-height: 34px;
  min-width: 34px;
  width: 34px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.guestbook-delete-icon {
  width: 18px;
  height: 18px;
  display: inline-block;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 3h8v1H9.5l-.4 5.1a1 1 0 0 1-1 .9H3.9a1 1 0 0 1-1-.9L2.5 4H2V3zm2-1h4l.6 1H3.4L4 2zm1 3h1v4H5V5zm2 0h1v4H7V5z' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 3h8v1H9.5l-.4 5.1a1 1 0 0 1-1 .9H3.9a1 1 0 0 1-1-.9L2.5 4H2V3zm2-1h4l.6 1H3.4L4 2zm1 3h1v4H5V5zm2 0h1v4H7V5z' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat;
}

.guestbook-panel--locked {
  border: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, rgba(8, 14, 24, 0.84), rgba(6, 10, 16, 0.92));
  padding: 0.72rem 0.7rem;
  gap: 0.5rem;
  justify-items: center;
  text-align: center;
}

.guestbook-locked-copy {
  margin: 0;
  font-family: var(--font-display);
  color: var(--surface-title-text);
  font-size: 1.05rem;
  line-height: 1.12;
}

.guestbook-locked-btn {
  min-width: 190px;
  justify-content: center;
}

.guestbook-panel--compose {
  align-content: start;
}

.contact-window-body {
  display: grid;
  gap: 0.56rem;
  align-content: start;
}

.contact-form {
  display: grid;
  gap: 0.56rem;
}

.contact-form textarea {
  min-height: 170px;
}

.listing-submit-callout {
  margin-top: 0.25rem;
}

.listing-submit-window-body {
  display: grid;
  gap: 0.56rem;
  align-content: start;
}

.listing-submit-form {
  display: grid;
  gap: 0.56rem;
}

.listing-submit-form textarea {
  min-height: 140px;
}

.listing-submit-honeypot {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.guestbook-compose-form {
  border: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, rgba(10, 18, 30, 0.8), rgba(6, 10, 16, 0.9));
  padding: 0.58rem;
  min-height: 0;
  display: grid;
  gap: 0.58rem;
}

.guestbook-compose-form textarea {
  min-height: 140px;
}

.guestbook-form-error {
  margin-bottom: 0;
}

.guestbook-cancel-btn {
  border-color: var(--link-chip-border);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: var(--link-chip-bg);
  color: var(--button-text);
}

.guestbook-post-hint {
  margin: 0;
  color: var(--surface-muted-text);
}

.game-window-body {
  padding: 0.6rem;
  height: calc(var(--window-h, 260px) - 44px);
  overflow: hidden;
}

.game-play-shell {
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
}

.game-play-shell--full {
  height: 100%;
}

.desktop-window.game-window .game-play-shell {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.flash-stage-shell {
  border: 1px solid var(--surface-card-border);
  background: #0c1016;
  padding: 0.48rem;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}

.desktop-window.game-window .flash-stage-shell {
  width: min(100%, 810px);
  max-width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
}

.flash-stage {
  width: 100%;
  min-height: 0;
  height: 100%;
  position: relative;
  background: #000;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.flash-stage > * {
  flex: 0 1 auto;
}

.flash-stage ruffle-player,
.flash-stage canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
}

.flash-status {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.74rem;
}

.flash-status.is-error {
  color: #ffd0d0;
}

.window-body.game-window-body > .window-lead {
  margin: 0;
}

.news-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  gap: 0.62rem;
}

.news-slideshow {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.52rem;
}

.news-slides {
  position: relative;
  min-height: 280px;
  overflow: hidden;
}

.news-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 260ms ease;
}

.news-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

.news-slide-media {
  height: 100%;
  border: 1px solid #2a2f37;
  background:
    radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.14), transparent 52%),
    linear-gradient(135deg, #4d7f9a, #1f3443);
}

.news-slide:nth-child(3n + 2) .news-slide-media {
  background:
    radial-gradient(circle at 75% 25%, rgba(255, 255, 255, 0.12), transparent 48%),
    linear-gradient(135deg, #8a5c46, #3f2b20);
}

.news-slide:nth-child(3n + 3) .news-slide-media {
  background:
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.13), transparent 50%),
    linear-gradient(135deg, #3d7a5c, #1f4234);
}

.news-feature {
  margin-top: 0.58rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.62rem;
  min-height: 120px;
}

.news-feature h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.8rem;
  line-height: 0.95;
  color: var(--surface-title-text);
}

.news-feature p {
  margin: 0;
  font-size: 0.75rem;
  color: var(--surface-muted-text);
}

.news-slide-kicker {
  margin: 0;
  color: var(--text-active);
  font-size: 0.66rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.news-slideshow-controls {
  margin-top: 0.55rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}

.slide-nav-btn {
  width: 30px;
  height: 28px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--text-active);
  cursor: pointer;
}

.slide-dots {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.slide-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: 1px solid var(--surface-card-border);
  background: var(--window-content-start);
  cursor: pointer;
}

.slide-dot.is-active {
  border-color: var(--text-active);
  background: var(--text-active);
}

.news-sidebar {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.5rem;
}

.window-body {
  background: linear-gradient(180deg, var(--window-content-start), var(--window-content-end));
  border: 1px solid var(--window-content-border);
  margin: 0.35rem;
  min-height: calc(var(--window-h, 260px) - 44px);
  max-height: calc(var(--window-h, 260px) - 44px);
  overflow: auto;
  padding: 0.7rem;
}

.window-body,
.manage-window-body,
.window-sidebar,
.event-drawer-body,
.admin-panel-shell,
.admin-venue-list,
.admin-community-list,
.admin-user-grid,
.admin-user-console-drawer-body {
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
}

.window-body::-webkit-scrollbar,
.manage-window-body::-webkit-scrollbar,
.window-sidebar::-webkit-scrollbar,
.event-drawer-body::-webkit-scrollbar,
.admin-panel-shell::-webkit-scrollbar,
.admin-venue-list::-webkit-scrollbar,
.admin-community-list::-webkit-scrollbar,
.admin-user-grid::-webkit-scrollbar,
.admin-user-console-drawer-body::-webkit-scrollbar {
  width: max(9px, calc(var(--scrollbar-size) - 2px));
  height: max(9px, calc(var(--scrollbar-size) - 2px));
}

.window-body::-webkit-scrollbar-track,
.manage-window-body::-webkit-scrollbar-track,
.window-sidebar::-webkit-scrollbar-track,
.event-drawer-body::-webkit-scrollbar-track,
.admin-panel-shell::-webkit-scrollbar-track,
.admin-venue-list::-webkit-scrollbar-track,
.admin-community-list::-webkit-scrollbar-track,
.admin-user-grid::-webkit-scrollbar-track,
.admin-user-console-drawer-body::-webkit-scrollbar-track {
  background: linear-gradient(180deg, var(--scrollbar-track), rgba(22, 12, 8, 0.65));
  border: 1px solid var(--scrollbar-track-edge);
  border-radius: 2px;
}

.window-body::-webkit-scrollbar-thumb,
.manage-window-body::-webkit-scrollbar-thumb,
.window-sidebar::-webkit-scrollbar-thumb,
.event-drawer-body::-webkit-scrollbar-thumb,
.admin-panel-shell::-webkit-scrollbar-thumb,
.admin-venue-list::-webkit-scrollbar-thumb,
.admin-community-list::-webkit-scrollbar-thumb,
.admin-user-grid::-webkit-scrollbar-thumb,
.admin-user-console-drawer-body::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
  border: 1px solid var(--scrollbar-thumb-border);
  border-radius: 2px;
  min-height: 34px;
}

.window-body::-webkit-scrollbar-thumb:hover,
.manage-window-body::-webkit-scrollbar-thumb:hover,
.window-sidebar::-webkit-scrollbar-thumb:hover,
.event-drawer-body::-webkit-scrollbar-thumb:hover,
.admin-panel-shell::-webkit-scrollbar-thumb:hover,
.admin-venue-list::-webkit-scrollbar-thumb:hover,
.admin-community-list::-webkit-scrollbar-thumb:hover,
.admin-user-grid::-webkit-scrollbar-thumb:hover,
.admin-user-console-drawer-body::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--scrollbar-thumb-hover-start), var(--scrollbar-thumb-hover-end));
}

.window-body.game-window-body {
  overflow: hidden;
}

.window-body--sidebar {
  border: 0;
  margin: 0;
  min-height: 0;
  max-height: none;
}

.window-sidebar {
  border-left: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, var(--window-sidebar-start), var(--window-sidebar-end));
  overflow: auto;
  opacity: 0;
  padding: 0;
  pointer-events: none;
  transition: opacity 120ms ease;
}

.desktop-window.is-sidebar-open .window-sidebar {
  opacity: 1;
  padding: 0.62rem;
  pointer-events: auto;
}

.manage-window-body {
  max-height: calc(var(--window-h, 520px) - 44px);
}

.window-lead {
  margin: 0 0 0.55rem;
  color: var(--text-muted);
  font-size: var(--window-lead-size);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.window-list {
  display: grid;
  gap: 0.5rem;
}

.window-group + .window-group {
  margin-top: 0.72rem;
}

.window-group > .window-lead {
  margin-bottom: 0.45rem;
}

.window-item {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.48rem 0.54rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.window-item:not(.event-listing-card) {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: flex-start;
}

.window-item[data-event-detail] {
  cursor: pointer;
}

.window-item:not(.event-listing-card)[data-event-detail] {
  align-items: center;
}

.window-item.event-window-item[data-event-detail] {
  align-items: stretch;
  gap: 0.58rem;
}

.event-window-item-thumb {
  display: inline-flex;
  width: 74px;
  min-width: 74px;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  overflow: hidden;
}

.event-window-item-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.open-mics-week-window-body {
  display: none;
}

.open-mics-stacked-body {
  display: block;
}

@media (min-width: 981px) {
  .open-mics-stacked-body {
    display: none;
  }

  .open-mics-week-window-body {
    --open-mics-day-min: 220px;
    --open-mics-today-gold: #f6b23c;
    display: grid;
    grid-template-rows: minmax(0, 1fr);
    height: calc(var(--window-h, 260px) - 44px);
    padding: 0;
    overflow: hidden;
  }

  .open-mics-week-scroll {
    min-width: 0;
    min-height: 0;
    height: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
  }

  .open-mics-week-scroll::-webkit-scrollbar,
  .open-mics-week-day-list::-webkit-scrollbar {
    width: max(9px, calc(var(--scrollbar-size) - 2px));
    height: max(9px, calc(var(--scrollbar-size) - 2px));
  }

  .open-mics-week-scroll::-webkit-scrollbar-track,
  .open-mics-week-day-list::-webkit-scrollbar-track {
    background: linear-gradient(180deg, var(--scrollbar-track), rgba(22, 12, 8, 0.65));
    border: 1px solid var(--scrollbar-track-edge);
    border-radius: 2px;
  }

  .open-mics-week-scroll::-webkit-scrollbar-thumb,
  .open-mics-week-day-list::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
    border: 1px solid var(--scrollbar-thumb-border);
    border-radius: 2px;
    min-height: 34px;
  }

  .open-mics-week-scroll:focus-visible {
    outline: 2px solid var(--focus-outline);
    outline-offset: -2px;
  }

  .open-mics-week-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(var(--open-mics-day-min), 1fr));
    min-width: max(100%, calc(var(--open-mics-day-min) * 7));
    height: 100%;
    min-height: 0;
    border-left: 1px solid rgba(194, 255, 238, 0.22);
  }

  .open-mics-week-day {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-width: 0;
    min-height: 0;
    border-right: 1px solid rgba(194, 255, 238, 0.22);
    background: rgba(255, 255, 255, 0.015);
  }

  .open-mics-week-day.is-today {
    background:
      linear-gradient(180deg, rgba(246, 178, 60, 0.16), rgba(246, 178, 60, 0.035) 58%, transparent),
      rgba(255, 255, 255, 0.015);
    box-shadow:
      inset 0 0 0 1px rgba(246, 178, 60, 0.82),
      inset 0 0 22px rgba(246, 178, 60, 0.12);
  }

  .open-mics-week-day-head {
    min-height: 56px;
    padding: 0.55rem 0.58rem 0.48rem;
    border-bottom: 1px solid rgba(194, 255, 238, 0.22);
    background: rgba(0, 0, 0, 0.12);
  }

  .open-mics-week-day.is-today .open-mics-week-day-head {
    border-bottom-color: rgba(246, 178, 60, 0.82);
    background: linear-gradient(180deg, rgba(246, 178, 60, 0.24), rgba(246, 178, 60, 0.08));
  }

  .open-mics-week-day-name,
  .open-mics-week-day-date {
    margin: 0;
  }

  .open-mics-week-day-name {
    color: var(--surface-title-text);
    font-family: var(--font-display);
    font-size: 1.25rem;
    line-height: 1;
  }

  .open-mics-week-day.is-today .open-mics-week-day-name {
    color: var(--open-mics-today-gold);
    text-shadow: 0 0 8px rgba(246, 178, 60, 0.34);
  }

  .open-mics-week-day-date {
    margin-top: 0.1rem;
    color: var(--surface-muted-text);
    font-size: 0.66rem;
    text-transform: uppercase;
  }

  .open-mics-week-day.is-today .open-mics-week-day-date {
    color: #ffd36a;
  }

  .open-mics-week-day-list {
    display: grid;
    align-content: start;
    gap: 0.46rem;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 0.5rem;
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
  }

  .open-mics-week-day-list .window-item.event-window-item[data-event-detail] {
    display: flex;
    align-items: stretch;
    gap: 0.46rem;
    padding: 0.42rem;
  }

  .open-mics-week-day-list .event-window-item-thumb {
    width: 52px;
    min-width: 52px;
  }

  .open-mics-week-day-list .window-item-title {
    font-size: 1.04rem;
    line-height: 1.03;
    overflow-wrap: anywhere;
  }

  .open-mics-week-day-list .window-item-meta {
    font-size: 0.64rem;
    line-height: 1.2;
  }

  .open-mics-week-day-list .window-item-link[data-open-map] {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
  }

  .open-mics-week-day-list .window-item-link[data-open-map] .window-item-link-icon {
    width: 1.42rem !important;
    height: 1.42rem !important;
  }

  .open-mics-week-empty {
    margin: 0;
    border: 1px dashed rgba(194, 255, 238, 0.2);
    background: rgba(0, 0, 0, 0.1);
    padding: 0.58rem;
    color: var(--surface-muted-text);
  }
}

@media (min-width: 1500px) {
  .open-mics-week-window-body {
    --open-mics-day-min: 235px;
  }
}

@media (min-width: 1900px) {
  .open-mics-week-window-body {
    --open-mics-day-min: 260px;
  }
}

.window-item[data-event-detail] > div {
  min-width: 0;
  flex: 1 1 auto;
}

.window-item[data-event-detail]:hover {
  border-color: var(--focus-outline);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.window-item[data-event-detail]:focus-visible {
  outline: 2px solid var(--focus-outline);
  outline-offset: 1px;
}

.newsroom-icon-grid {
  gap: 0.5rem;
}

.newsroom-icon-item {
  align-items: center;
  gap: 0.58rem;
}

.newsroom-icon-image {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.newsroom-window-body {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.55rem;
}

.newsroom-window .window-title-icon,
.news-detail-window .window-title-icon {
  width: 18px;
  height: 18px;
  image-rendering: auto;
}

.scene-gazette-banner {
  position: relative;
  overflow: hidden;
  display: block;
  border: 1px solid rgba(194, 255, 238, 0.22);
  background: rgba(16, 20, 28, 0.62);
  padding: 0;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.06),
    0 8px 24px rgba(0, 0, 0, 0.16);
}

.scene-gazette-banner-action {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  line-height: 0;
  text-decoration: none;
  cursor: pointer;
}

.scene-gazette-banner-action:hover,
.scene-gazette-banner-action:focus-visible {
  outline: 2px solid var(--focus-outline);
  outline-offset: -2px;
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.scene-gazette-banner-image {
  display: block;
  width: 100%;
  height: auto;
}

.scene-gazette-banner--page {
  margin-bottom: 0.75rem;
}

.newsroom-feed-list {
  overflow: auto;
  padding-right: 0.15rem;
  align-content: start;
}

.window-item.newsroom-feed-item {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  align-items: start;
  justify-content: initial;
  gap: 0.74rem;
  min-height: 86px;
  padding: 0.48rem 0.54rem;
}

.window-item.newsroom-feed-item--icon {
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 0.62rem;
  min-height: 74px;
  padding-left: 0.48rem;
}

.newsroom-feed-item[data-news-open] {
  cursor: pointer;
}

.newsroom-feed-item[data-news-open]:hover,
.newsroom-feed-item[data-news-open]:focus-visible {
  border-color: var(--focus-outline);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.newsroom-feed-item[data-news-open]:focus-visible {
  outline: 2px solid var(--focus-outline);
  outline-offset: 1px;
}

.newsroom-feed-thumb {
  width: 118px;
  aspect-ratio: 3 / 2;
  margin: 0;
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.16)),
    var(--button-start);
  display: grid;
  place-items: center;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.newsroom-feed-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: auto;
  transition:
    filter 110ms steps(2, end),
    transform 110ms steps(2, end);
}

.newsroom-feed-thumb--icon {
  width: 74px;
  aspect-ratio: 1 / 1;
  justify-self: start;
}

.newsroom-feed-thumb--icon img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.newsroom-feed-thumb--icon img.newsroom-feed-thumb-img--cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.newsroom-feed-copy {
  min-width: 0;
  display: grid;
  gap: 0.12rem;
  align-content: start;
  align-self: start;
}

.newsroom-feed-item--icon .newsroom-feed-copy {
  align-content: start;
}

.newsroom-feed-kicker {
  color: var(--text-active);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.newsroom-feed-excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.newsroom-feed-date {
  color: var(--text-active);
}

@media (max-width: 560px) {
  .window-item.newsroom-feed-item {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 0.52rem;
    min-height: 72px;
  }

  .window-item.newsroom-feed-item--icon {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 0.48rem;
    min-height: 64px;
  }

  .newsroom-feed-thumb {
    width: 78px;
  }

  .newsroom-feed-thumb--icon {
    width: 58px;
  }

  .newsroom-feed-thumb--icon img {
    width: 32px;
    height: 32px;
  }

  .newsroom-feed-thumb--icon img.newsroom-feed-thumb-img--cover {
    width: 100%;
    height: 100%;
  }
}

.news-detail-window {
  min-width: 460px;
  min-height: 380px;
}

.news-detail-window-body {
  overflow: auto;
}

.news-detail-content {
  min-height: 100%;
}

.news-detail-layout {
  display: grid;
  grid-template-columns: minmax(168px, 0.56fr) minmax(0, 1fr);
  gap: 0.78rem;
  align-items: start;
}

.news-detail-layout--icon-story {
  grid-template-columns: minmax(0, 1fr);
}

.news-detail-flow {
  display: grid;
  gap: 0.78rem;
}

.news-detail-top-row {
  display: grid;
  grid-template-columns: minmax(196px, 248px) minmax(0, 1fr);
  gap: 0.78rem;
  align-items: start;
}

.news-detail-top-row--no-media {
  grid-template-columns: minmax(0, 1fr);
}

.news-detail-media {
  margin: 0;
}

.news-detail-portrait,
.news-compare {
  width: 100%;
  aspect-ratio: 1 / 1;
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.16)),
    var(--surface-card-bg);
  object-fit: cover;
  overflow: hidden;
}

.news-detail-portrait {
  display: block;
}

.news-detail-portrait--icon {
  padding: 28%;
  object-fit: contain;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.news-detail-copy {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 0.16rem;
}

.news-detail-copy--icon-story {
  --news-detail-story-column-width: calc(52ch + 1.52rem + 2px);
  gap: 0.22rem;
}

.news-detail-copy--icon-story > .news-detail-subject,
.news-detail-copy--icon-story > .news-detail-dek,
.news-detail-copy--icon-story > .news-article-body,
.news-detail-copy--icon-story > .news-interview-list {
  width: min(100%, var(--news-detail-story-column-width));
  max-width: var(--news-detail-story-column-width);
  justify-self: center;
}

.news-detail-icon-header {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  justify-self: stretch;
  padding-inline: 0;
  display: grid;
  gap: 0.06rem;
}

.news-detail-icon-header > .newsroom-feed-kicker {
  margin-bottom: 0;
  justify-self: start;
  width: 100%;
  max-width: none;
  padding-left: 0;
  text-align: left;
}

.news-detail-copy--icon-story > .news-detail-subject,
.news-detail-copy--icon-story > .news-detail-dek {
  box-sizing: border-box;
  padding-inline: 0.76rem;
}

.news-detail-copy--icon-story > .news-detail-dek {
  text-align: center;
}

.news-detail-byline {
  margin-top: 0.18rem;
  color: var(--text-active);
}

.news-detail-copy--icon-story > .news-detail-byline {
  width: min(100%, var(--news-detail-story-column-width));
  max-width: var(--news-detail-story-column-width);
  box-sizing: border-box;
  justify-self: center;
  padding-inline: 0.76rem;
  text-align: center;
}

.news-detail-copy--icon-story > .news-article-body,
.news-detail-copy--icon-story > .news-interview-list {
  box-sizing: border-box;
}

.news-detail-copy--feature {
  gap: 0.2rem;
}

.news-detail-headline-row {
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(100%, var(--news-detail-story-column-width));
  max-width: var(--news-detail-story-column-width);
  justify-self: center;
  min-height: 0;
  padding-inline: 0;
}

.news-detail-headline-stack {
  width: 100%;
  min-width: 0;
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
}

.news-detail-inline-icon-box {
  width: 58px;
  height: 58px;
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.16)),
    var(--button-start);
  display: grid;
  place-items: center;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.news-detail-inline-icon-box--body {
  position: static;
  width: 116px;
  height: 116px;
}

.news-detail-inline-icon {
  width: 34px;
  height: 34px;
  object-fit: contain;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  filter: drop-shadow(1px 1px 0 rgba(0, 0, 0, 0.44));
}

.news-detail-inline-icon--cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-compare {
  position: relative;
  --compare-pos: 50%;
}

.news-compare-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-compare-img--after {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.news-compare-after {
  position: absolute;
  inset: 0;
  width: var(--compare-pos);
  overflow: hidden;
  border-right: 2px solid var(--text-active);
}

.news-compare-range {
  position: absolute;
  inset: auto 0 0;
  width: 100%;
  height: 2.2rem;
  margin: 0;
  opacity: 0.01;
  cursor: ew-resize;
}

.news-compare::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--compare-pos);
  width: 12px;
  transform: translateX(-50%);
  background:
    linear-gradient(90deg, transparent 0 4px, var(--text-active) 4px 8px, transparent 8px 12px);
  pointer-events: none;
}

.news-compare-labels {
  position: absolute;
  left: 0.55rem;
  right: 0.55rem;
  bottom: 0.5rem;
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  color: var(--surface-title-text);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.72);
  pointer-events: none;
}

.news-detail-headline {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.5vw, 1.85rem);
  line-height: 1.02;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.72);
}

.news-detail-subject {
  margin: 0.34rem 0 0;
  color: var(--text-active);
  font-family: var(--font-display);
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.news-detail-dek,
.news-detail-paragraph,
.news-interview-item p {
  margin: 0.46rem 0 0;
  color: var(--text-main);
  font-size: 0.8rem;
  line-height: 1.5;
}

.news-article-body {
  display: grid;
  gap: 0.18rem;
  margin-top: 0.74rem;
  padding: 0.72rem 0.76rem 0.78rem;
  width: min(100%, 56ch);
  max-width: 56ch;
  justify-self: center;
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(0, 0, 0, 0.08)),
    rgba(0, 0, 0, 0.08);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.news-article-body--icon-story {
  display: flow-root;
}

.news-article-float-figure {
  float: left;
  margin: 0.18rem 0.72rem 0.72rem 0;
}

.news-article-body--icon-story::after {
  content: "";
  display: block;
  clear: both;
}

.news-article-body--icon-story > .news-detail-paragraph:first-of-type {
  margin-top: 0;
}

.news-article-body--wide {
  width: 100%;
  max-width: none;
  justify-self: stretch;
  margin-top: 0;
}

.news-interview-list {
  display: grid;
  gap: 0.7rem;
  margin-top: 0.75rem;
  padding: 0.72rem 0.76rem 0.78rem;
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(0, 0, 0, 0.08)),
    rgba(0, 0, 0, 0.08);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.news-interview-list--wide {
  margin-top: 0;
}

.news-interview-item {
  border: 1px solid var(--surface-item-border);
  background: rgba(0, 0, 0, 0.1);
  padding: 0.65rem;
}

.news-detail-media--feature_split .news-detail-portrait,
.news-detail-media--feature_split .news-compare,
.news-detail-media--interview_compare .news-detail-portrait,
.news-detail-media--interview_compare .news-compare {
  aspect-ratio: 4 / 5;
}

.news-interview-item h4 {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: 0.9rem;
  line-height: 1.18;
}

.news-interview-item p {
  white-space: pre-line;
}

@media (max-width: 760px) {
  .news-detail-window {
    min-width: 0;
  }

  .news-detail-layout {
    grid-template-columns: 1fr;
  }

  .news-detail-top-row {
    grid-template-columns: 1fr;
  }

  .news-detail-headline-row {
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 0.52rem;
  }

  .news-detail-inline-icon-box {
    width: 50px;
    height: 50px;
  }

  .news-detail-inline-icon {
    width: 30px;
    height: 30px;
  }

  .news-detail-inline-icon--cover {
    width: 100%;
    height: 100%;
  }

  .news-detail-media {
    max-width: 360px;
    width: 100%;
  }

  .news-detail-media--feature_split .news-detail-portrait,
  .news-detail-media--feature_split .news-compare,
  .news-detail-media--interview_compare .news-detail-portrait,
  .news-detail-media--interview_compare .news-compare {
    aspect-ratio: 1 / 1;
  }
}

@media (max-width: 1320px) {
  .admin-news-editor-layout {
    grid-template-columns: 1fr;
  }

  .admin-news-preview-panel {
    position: static;
  }

  .admin-news-preview-window.desktop-window {
    height: min(660px, 72vh);
  }

  .admin-news-crop-grid {
    grid-template-columns: 1fr;
  }
}

.window-item-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--window-item-title-size);
  line-height: 1;
  color: var(--surface-title-text);
}

.window-item-meta {
  margin: 0.12rem 0 0;
  color: var(--surface-muted-text);
  font-size: var(--window-item-meta-size);
}

.window-item-meta--subline {
  margin-top: 0.02rem;
}

.window-item-meta--venue {
  overflow-wrap: anywhere;
}

.event-window-item > div,
.event-window-item > span,
.event-row-btn > span {
  min-width: 0;
}

.venue-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.56rem;
}

.venue-info-card {
  display: grid;
  gap: 0.4rem;
  align-content: start;
}

.venue-info-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.52rem;
}

.venue-info-card-head .window-item-title {
  margin: 0;
  line-height: 1.15;
}

.venue-info-card-title-link {
  color: inherit;
  text-decoration: none;
}

.venue-info-card-title-link:hover,
.venue-info-card-title-link:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.venue-info-card-link {
  align-self: flex-start;
  margin-left: auto;
}

.venue-info-card-grid {
  display: grid;
  gap: 0.2rem;
}

.venue-info-card-row {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(68px, auto) minmax(0, 1fr);
  gap: 0.46rem;
  align-items: start;
}

.venue-info-card-label {
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.25;
}

.venue-info-card-value {
  color: var(--surface-title-text);
  font-size: 0.72rem;
  line-height: 1.3;
  min-width: 0;
  overflow-wrap: anywhere;
}

.window-item-link {
  border: 1px solid var(--link-chip-border);
  background: var(--link-chip-bg);
  min-height: 22px;
  padding: 0 0.42rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.24rem;
  align-self: center;
  color: var(--link-chip-text);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.window-item-link[data-open-map] {
  width: 56px;
  min-width: 56px;
  height: 56px;
  min-height: 56px;
  margin-left: auto;
  padding: 0;
  gap: 0;
  align-self: center;
  border-width: 1px;
  border-style: solid;
  border-color: var(--link-chip-border);
  background: var(--link-chip-bg);
}

.window-item-link[data-open-map] .window-item-link-icon {
  width: 1.9rem !important;
  height: 1.9rem !important;
}

.window-item-link-icon {
  width: 0.78rem;
  height: 0.78rem;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  flex-shrink: 0;
  transform-origin: center;
  transition:
    filter 110ms steps(2, end),
    transform 110ms steps(2, end);
}

.window-item[data-event-detail]:hover .window-item-link[data-open-map],
.window-item[data-event-detail]:focus-visible .window-item-link[data-open-map],
.window-item-link[data-open-map]:hover,
.window-item-link[data-open-map]:focus-visible,
.newsroom-feed-item[data-news-open]:hover .newsroom-feed-thumb,
.newsroom-feed-item[data-news-open]:focus-visible .newsroom-feed-thumb {
  border-color: var(--focus-outline);
  box-shadow:
    inset 0 0 0 1px var(--highlight-ring),
    0 0 0 1px rgba(196, 255, 238, 0.14);
}

.window-item[data-event-detail]:hover .window-item-link-icon,
.window-item[data-event-detail]:focus-visible .window-item-link-icon,
.window-item-link[data-open-map]:hover .window-item-link-icon,
.window-item-link[data-open-map]:focus-visible .window-item-link-icon,
.newsroom-feed-item[data-news-open]:hover .newsroom-feed-thumb img,
.newsroom-feed-item[data-news-open]:focus-visible .newsroom-feed-thumb img {
  filter: drop-shadow(0 0 4px var(--icon-active-shadow));
  transform: translateY(-1px);
}

.window-empty {
  margin: 0;
  font-size: var(--window-empty-size);
  color: var(--surface-muted-text);
}

.window-empty--dog-banner {
  display: grid;
  gap: 0.42rem;
}

.window-empty-message {
  margin: 0;
}

.window-empty-banner {
  position: relative;
  isolation: isolate;
  width: 100%;
  aspect-ratio: 32 / 10;
  min-height: 0;
  height: auto;
  border: 1px solid var(--surface-item-border);
  background: transparent;
  display: block;
  overflow: hidden;
}

.window-empty-banner::before,
.window-empty-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.window-empty-banner::before {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.04) 34%, rgba(13, 17, 20, 0.16) 100%),
    repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 4px);
  mix-blend-mode: screen;
  opacity: 0.62;
}

.window-empty-banner::after {
  z-index: 2;
  background-image:
    radial-gradient(circle at 1px 1px, var(--dot-matrix-panel-light) 0.72px, transparent 0.94px),
    radial-gradient(circle at 3px 3px, var(--dot-matrix-panel-dark) 0.68px, transparent 0.94px);
  background-size: 4px 4px, 4px 4px;
  opacity: calc(var(--dot-matrix-panel-opacity) * 0.78);
}

.window-empty-banner-img {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  transform: none;
  object-fit: cover;
  object-position: 50% 48%;
  filter: contrast(1.03) saturate(0.95) brightness(0.97);
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.home-summary-list .window-empty-banner {
  width: 100%;
  margin: 0;
  min-height: 0;
  height: auto;
}

.home-summary-list .window-empty-banner-img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  transform: none;
  object-fit: cover;
  object-position: 50% 48%;
}

.home-summary-list .window-empty--dog-banner {
  min-height: 100%;
  grid-template-rows: auto minmax(0, 1fr);
  align-content: stretch;
}

.home-summary-list .window-empty-banner {
  min-height: clamp(146px, 22vh, 228px);
  height: 100%;
}

.window-actions {
  display: flex;
  gap: 0.45rem;
  flex-wrap: wrap;
  margin-bottom: 0.65rem;
}

.window-actions--title-separated {
  margin-top: 0.42rem;
}

.account-window-actions {
  margin-top: 0.7rem;
  flex-direction: column;
  align-items: stretch;
  margin-bottom: 0;
}

.account-window-auth-actions {
  grid-template-columns: 1fr;
  margin-top: 0.55rem;
}

.admin-news-summary {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
}

.admin-news-icon {
  width: 20px;
  height: 20px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  flex: 0 0 20px;
}

.account-window-logout {
  margin: 0;
  width: 100%;
}

.account-action-btn {
  min-height: 34px;
  min-width: 116px;
  padding: 0 0.9rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-decoration: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(0, 0, 0, 0.07) 100%),
    linear-gradient(180deg, var(--button-start), var(--button-end));
  transition: filter 120ms ease, transform 120ms ease;
}

.account-window-actions .account-action-btn {
  width: 100%;
  justify-content: center;
}

.desktop-window.game-window .flash-stage {
  aspect-ratio: 4 / 3;
}

.account-action-btn:hover,
.account-action-btn:focus-visible {
  filter: brightness(1.07);
  transform: translateY(-1px);
}

.account-action-btn:active {
  filter: brightness(0.98);
  transform: translateY(0);
}

.account-window-profile {
  justify-content: flex-start;
  align-items: center;
  gap: 0.65rem;
}

.account-window-icon {
  width: 32px;
  height: 32px;
  min-width: 32px;
  min-height: 32px;
  max-width: 32px;
  max-height: 32px;
  flex: 0 0 32px;
}

.avatar-picker-window .window-body {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  overflow: hidden;
}

.avatar-picker-form {
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 0.58rem;
}

.avatar-picker-scroll {
  min-height: 0;
  overflow: auto;
}

.avatar-picker-help {
  margin: 0 0 0.45rem;
}

.avatar-picker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
  gap: 0.45rem;
}

.avatar-picker-option {
  position: relative;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 0.24rem;
  min-height: 122px;
  padding: 0.45rem 0.3rem;
  cursor: pointer;
  text-align: center;
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--surface-muted-text);
}

.avatar-picker-option:hover,
.avatar-picker-option:focus-within {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.avatar-picker-option:has(input:checked) {
  border-color: var(--button-border-main);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.avatar-picker-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.avatar-picker-option img {
  width: 52px;
  height: 52px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.avatar-picker-option input:checked ~ img {
  box-shadow: 0 0 0 2px var(--focus-outline);
}

.avatar-picker-option input:checked ~ span {
  color: var(--text-active);
}

.avatar-picker-actions {
  margin: 0;
  padding-top: 0.48rem;
  border-top: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, var(--window-content-start), var(--window-content-end));
}

.avatar-picker-actions button {
  min-height: 34px;
}

.avatar-picker-cancel-btn {
  border-color: var(--link-chip-border);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: var(--link-chip-bg);
  color: var(--button-text);
}

.map-preview {
  border: 1px solid var(--surface-card-border);
  background:
    linear-gradient(90deg, rgba(38, 46, 57, 0.35) 1px, transparent 1px) 0 0 / 18px 18px,
    linear-gradient(0deg, rgba(38, 46, 57, 0.35) 1px, transparent 1px) 0 0 / 18px 18px,
    #121923;
  min-height: 150px;
  padding: 0.7rem;
  margin-bottom: 0.6rem;
}

.instagram-page-grid {
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.9fr);
  align-items: start;
}

.instagram-sidebar-panel {
  display: grid;
  align-content: start;
  gap: 0.72rem;
}

.instagram-sidebar-title {
  margin-top: 0.24rem;
}

.instagram-window .window-title-with-icon {
  letter-spacing: 0.07em;
}

.instagram-window .window-title-icon--instagram {
  width: 15px;
  height: 15px;
  object-fit: contain;
  object-position: center;
}

.instagram-window .window-body.instagram-window-body {
  padding: 0.7rem;
}

.instagram-module,
.instagram-card {
  height: 100%;
  min-height: 0;
}

.instagram-card {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: 0.7rem;
  padding: 0;
  color: var(--surface-title-text);
  background: transparent;
}

.instagram-card-marquee {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  padding: 0.22rem 0.28rem 0.28rem;
  border-bottom: 1px solid color-mix(in srgb, var(--surface-item-border) 76%, transparent 24%);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.66rem;
}

.instagram-card-marquee-label {
  font-weight: 700;
  color: var(--surface-title-text);
}

.instagram-card-marquee-handle {
  color: var(--surface-muted-text);
}

.instagram-card-hero {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
}

.instagram-card-profile,
.instagram-post-card-head-main {
  display: flex;
  align-items: center;
  gap: 0.72rem;
  min-width: 0;
}

.instagram-card-avatar-shell,
.instagram-post-card-avatar-shell {
  flex: 0 0 auto;
}

.instagram-card-avatar,
.instagram-card-avatar--fallback {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(244, 230, 210, 0.24);
}

.instagram-post-card-avatar,
.instagram-post-card-avatar--fallback {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(244, 230, 210, 0.2);
}

.instagram-card-avatar--fallback,
.instagram-post-card-avatar--fallback {
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  object-fit: cover;
  object-position: center;
}

.instagram-card-avatar--fallback[hidden],
.instagram-post-card-avatar--fallback[hidden] {
  display: none;
}

.instagram-card-profile-link {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  max-width: 100%;
  padding: 0.2rem 0.24rem;
  margin: -0.2rem -0.24rem;
  color: inherit;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background-color 120ms ease, border-color 120ms ease;
}

.instagram-card-profile-link:hover,
.instagram-card-profile-link:focus-visible {
  background: color-mix(in srgb, var(--surface-item-bg) 70%, transparent 30%);
  border-color: color-mix(in srgb, var(--surface-item-border) 78%, transparent 22%);
  outline: none;
}

.instagram-card-profile-copy,
.instagram-post-card-head-copy {
  min-width: 0;
}

.instagram-card-profile-name,
.instagram-post-card-author,
.instagram-post-card-caption-author {
  margin: 0;
  font-weight: 700;
  color: var(--surface-title-text);
}

.instagram-card-profile-handle,
.instagram-post-card-author-handle,
.instagram-post-card-time,
.instagram-post-card-footnote {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.68rem;
}
.instagram-card-footer-chip--link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0.18rem 0.56rem;
  border: 1px solid color-mix(in srgb, var(--surface-item-border) 74%, transparent 26%);
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface-item-bg) 88%, white 12%), color-mix(in srgb, var(--window-content-end) 82%, black 18%));
  color: var(--surface-title-text);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.64rem;
}

.instagram-card-footer-chip--link:hover,
.instagram-card-footer-chip--link:focus-visible {
  filter: brightness(1.08);
}

.instagram-feed-list {
  min-height: 0;
  overflow-y: auto;
  display: grid;
  gap: 0.5rem;
  padding-right: 0.18rem;
}

.instagram-feed-items {
  display: grid;
  gap: 0.88rem;
}

.instagram-feed-status {
  min-height: 24px;
  display: grid;
  place-items: center;
  padding: 0.22rem 0.4rem 0;
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.instagram-feed-sentinel {
  width: 100%;
  height: 1px;
}

.instagram-post-card {
  display: grid;
  gap: 0.6rem;
  padding: 0.75rem;
  border: 1px solid color-mix(in srgb, var(--surface-item-border) 70%, transparent 30%);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface-item-bg) 78%, #111 22%), color-mix(in srgb, var(--window-content-end) 88%, #101214 12%));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}

.instagram-post-card--link {
  color: inherit;
  text-decoration: none;
  transition:
    border-color 120ms ease,
    box-shadow 120ms ease,
    transform 120ms ease;
}

.instagram-post-card--link:hover,
.instagram-post-card--link:focus-visible {
  border-color: color-mix(in srgb, var(--surface-title-text) 30%, transparent 70%);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.03),
    0 0 0 1px color-mix(in srgb, var(--surface-item-border) 55%, transparent 45%);
  outline: none;
}

.instagram-post-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.7rem;
}

.instagram-post-card-image-link {
  display: block;
  overflow: hidden;
  border-radius: 0.22rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
}

.instagram-post-card-image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.instagram-post-card-stats,
.instagram-post-card-footer,
.instagram-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.instagram-post-card-stat,
.instagram-card-footer-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  color: var(--surface-muted-text);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.instagram-post-card-stat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0.8rem;
  font-size: 0.78rem;
  line-height: 1;
}

.instagram-post-card-stat-icon--comment {
  font-size: 0.7rem;
}

.instagram-post-card-caption {
  margin: 0;
  color: color-mix(in srgb, var(--surface-title-text) 92%, white 8%);
  font-size: 0.76rem;
  line-height: 1.58;
  white-space: pre-line;
}

.instagram-feed-empty {
  min-height: 180px;
  display: grid;
  place-items: center;
}

.admin-instagram-summary-row {
  align-items: center;
}

.admin-instagram-summary-media {
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  overflow: hidden;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-overlay);
}

.admin-instagram-summary-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-instagram-summary-copy {
  display: grid;
  gap: 0.14rem;
  min-width: 0;
}

.admin-instagram-summary-title {
  font-size: 0.74rem;
  color: var(--surface-title-text);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-inline-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.admin-inline-actions form {
  margin: 0;
}

.map-window .window-body {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.55rem;
  overflow: hidden;
}

.map-window-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
}

.map-window-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.map-scope-clear {
  min-height: 26px;
  padding-inline: 0.55rem;
  font-size: 0.6rem;
}

.map-results-toggle {
  display: none;
}

.map-legend {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.map-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.18rem 0.3rem;
  font-size: 0.66rem;
  color: var(--surface-muted-text);
  line-height: 1;
}

.map-legend-item img {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.map-legend-filter {
  cursor: pointer;
  font: inherit;
}

.map-legend-filter.is-active {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

.desktop-map-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 0.55rem;
  position: relative;
}

.desktop-map-canvas-shell {
  min-height: 0;
  border: 1px solid var(--surface-card-border);
  background: #0f1823;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
}

.desktop-map-canvas {
  min-height: 280px;
  height: 100%;
}

.desktop-map-empty {
  margin: 0.35rem;
}

.desktop-map-selection {
  border-top: 1px solid var(--surface-card-border);
  padding: 0.42rem 0.5rem;
  background: var(--surface-item-bg);
}

.desktop-map-selection .window-lead {
  margin: 0;
}

.desktop-map-selection .window-item-meta {
  margin-top: 0.16rem;
}

.desktop-map-sidebar {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.45rem;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto auto auto minmax(0, 1fr);
  gap: 0.45rem;
}

.desktop-map-sidebar-head,
.desktop-map-sidebar-backdrop {
  display: none;
}

.map-kind-filters {
  display: grid;
  gap: 0.25rem;
}

.map-kind-filters label {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.72rem;
  color: var(--surface-title-text);
}

.map-weekday-filters {
  display: grid;
  gap: 0.2rem;
}

.map-weekday-label {
  margin: 0;
  color: var(--form-label);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.map-weekday-filters .weekday-filter-option span {
  min-width: 30px;
  height: 24px;
  font-size: 0.64rem;
}

.desktop-map-results {
  min-height: 0;
  overflow: auto;
  display: grid;
  align-content: start;
  gap: 0.45rem;
}

.desktop-map-result-row {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  display: grid;
  gap: 0.35rem;
  padding: 0.35rem 0.42rem;
}

.desktop-map-result-row.is-active {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.desktop-map-result-main {
  border: 0;
  background: transparent;
  text-align: left;
  color: inherit;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.desktop-map-result-main > span {
  display: grid;
  gap: 0.16rem;
}

.desktop-map-result-row .window-item-title,
.desktop-map-result-row .window-item-meta {
  display: block;
}

.desktop-map-result-map-link {
  justify-self: start;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  text-decoration: none;
  min-height: 22px;
  min-width: 0;
  padding: 0.18rem 0.42rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  font-size: 0.56rem;
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  white-space: nowrap;
}

.desktop-map-result-map-link .external-link-icon {
  width: 0.8rem;
  height: 0.8rem;
  flex: 0 0 auto;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M5 2H2v8h8V7' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3Cpath d='M6 2h4v4' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3Cpath d='M10 2L5.5 6.5' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M5 2H2v8h8V7' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3Cpath d='M6 2h4v4' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3Cpath d='M10 2L5.5 6.5' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3C/svg%3E") center / contain no-repeat;
}

.desktop-map-result-map-link::after {
  content: "â†—";
  font-size: 0.54rem;
  line-height: 1;
}

.desktop-map-result-map-link::after {
  content: none;
}

.desktop-map-marker {
  width: 24px !important;
  height: 24px !important;
  border: 1px solid #1a2026;
  border-radius: 4px;
  background: #182130;
  padding: 2px;
  image-rendering: pixelated;
}

.desktop-map-marker--mic {
  border-color: #28698f;
  background: #13283a;
}

.desktop-map-marker--show {
  border-color: #f6b23c;
  background: #112844;
}

.desktop-map-marker--other {
  border-color: #516776;
  background: #1a2734;
}

.desktop-map-popup {
  min-width: 160px;
  display: grid;
  gap: 0.24rem;
}

.desktop-map-popup-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.12;
  color: #e9e1d2;
  overflow-wrap: anywhere;
}

.desktop-map-popup-meta {
  margin: 0;
  color: #b8a88e;
  font-size: 0.66rem;
  line-height: 1.28;
  overflow-wrap: anywhere;
}

.leaflet-popup-content .desktop-map-popup-title,
.leaflet-popup-content .desktop-map-popup-meta {
  margin: 0;
}

.desktop-map-popup-meta-label {
  color: #e6c884;
  font-size: 0.56rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-right: 0.22rem;
}

.desktop-map-popup-map-link {
  margin-top: 0.18rem;
  width: 36px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--link-chip-border);
  background: var(--link-chip-bg);
  text-decoration: none;
}

.desktop-map-popup-map-link-icon {
  width: 1.15rem;
  height: 1.15rem;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.desktop-map-popup-map-link-label {
  display: none;
}

.leaflet-container {
  font-family: var(--font-ui);
  background: #101824;
}

.leaflet-control-zoom a {
  color: #ffd36a;
  background: #0e2036;
  border-color: #2c527a;
}

.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
  background: #0e2036;
  color: #e9e1d2;
  border: 1px solid #18324f;
}

.leaflet-popup-content {
  margin: 0.52rem 0.56rem;
}

.window-action-btn,
.desktop-form-actions button {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(0, 0, 0, 0.14) 100%),
    linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  padding: 0 0.72rem;
  font-size: 0.69rem;
  line-height: 1;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  font-weight: 600;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.04),
    0 1px 0 rgba(0, 0, 0, 0.24);
  cursor: pointer;
  transition:
    filter 110ms steps(2, end),
    transform 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    border-color 110ms steps(2, end),
    background 110ms steps(2, end);
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

body:not([data-palette="nes"]) .window-action-btn:hover,
body:not([data-palette="nes"]) .desktop-form-actions button:hover,
body:not([data-palette="nes"]) .window-action-btn:focus-visible,
body:not([data-palette="nes"]) .desktop-form-actions button:focus-visible {
  filter: brightness(1.06);
  transform: translateY(-1px);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.06),
    0 0 0 1px var(--highlight-ring);
}

body:not([data-palette="nes"]) .window-action-btn:active,
body:not([data-palette="nes"]) .desktop-form-actions button:active {
  transform: translateY(0);
  filter: brightness(0.98);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.22);
}

.window-action-btn[disabled],
.window-action-btn.is-disabled {
  opacity: 0.45;
  cursor: default;
  filter: none;
  pointer-events: none;
}

.window-flash,
.window-error {
  margin: 0 0 0.6rem;
  border: 1px solid rgba(156, 200, 184, 0.4);
  background: rgba(156, 200, 184, 0.16);
  color: #d4f0e8;
  padding: 0.45rem 0.55rem;
  font-size: 0.72rem;
}

.window-error {
  border-color: rgba(205, 118, 118, 0.45);
  background: rgba(205, 118, 118, 0.18);
  color: #ffd2d2;
}

.auth-social-stack {
  margin: 0 0 0.65rem;
  display: grid;
  gap: 0.38rem;
}

.auth-social-stack--compact {
  margin-bottom: 0.55rem;
}

.auth-social-btn {
  width: 100%;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-width: 1px;
  border-style: solid;
  border-color: #1b3c64;
  border-top-color: #5e88b2;
  border-left-color: #5e88b2;
  background: linear-gradient(180deg, #2f557d 0%, #1d3a5a 100%);
  color: #f0f7ff;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    0 1px 0 rgba(0, 0, 0, 0.26);
  transition:
    filter 120ms ease,
    transform 120ms ease;
}

.auth-social-btn:hover,
.auth-social-btn:focus-visible {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.auth-social-btn:active {
  filter: brightness(0.98);
  transform: translateY(0);
}

.auth-social-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 1px solid rgba(0, 0, 0, 0.22);
  background: #fff;
  color: #1f65d6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1;
}

.auth-social-divider {
  margin: 0;
  text-align: center;
  position: relative;
}

.auth-social-divider > span {
  display: inline-block;
  padding: 0 0.38rem;
  background: var(--surface-card-bg);
}

.auth-actions {
  margin-top: 0.7rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.42rem;
  justify-content: stretch;
}

.auth-actions .auth-btn,
.auth-actions button.auth-btn {
  width: 100%;
  min-height: 35px;
  padding: 0.22rem 0.74rem;
  justify-content: center;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.045em;
  line-height: 1;
  border-width: 1px;
  border-style: solid;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 1px 0 rgba(0, 0, 0, 0.26);
  transition:
    filter 120ms ease,
    transform 120ms ease,
    box-shadow 120ms ease;
}

.auth-actions .auth-btn--secondary {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
}

.auth-actions .auth-btn--quiet {
  border-color: rgba(255, 236, 194, 0.34);
  border-top-color: rgba(255, 236, 194, 0.44);
  border-left-color: rgba(255, 236, 194, 0.44);
  background: linear-gradient(180deg, rgba(255, 235, 198, 0.2) 0%, rgba(95, 56, 28, 0.44) 100%);
  color: #ffe5c3;
}

.auth-actions .auth-btn--oauth {
  border-color: #1b3c64;
  border-top-color: #5e88b2;
  border-left-color: #5e88b2;
  background: linear-gradient(180deg, #366089 0%, #1f3f63 100%);
  color: #f0f7ff;
}

.auth-actions .auth-btn:hover,
.auth-actions .auth-btn:focus-visible,
.auth-actions button.auth-btn:hover,
.auth-actions button.auth-btn:focus-visible {
  filter: brightness(1.07);
  transform: translateY(-1px);
}

.auth-actions .auth-btn:active,
.auth-actions button.auth-btn:active {
  transform: translateY(0);
  filter: brightness(0.98);
}

.auth-actions .auth-btn--primary,
.auth-actions .auth-submit-btn {
  border-color: rgba(96, 38, 12, 0.82);
  border-top-color: rgba(255, 204, 138, 0.84);
  border-left-color: rgba(255, 204, 138, 0.84);
  background: linear-gradient(180deg, #cb6f2f 0%, #94471c 100%);
  color: #fff1dd;
}

.manage-columns {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.manage-column h3 {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: 1.3rem;
  letter-spacing: 0.04em;
}

.row-actions {
  display: flex;
  gap: 0.45rem;
  align-items: center;
}

.row-actions form {
  margin: 0;
}

.row-link {
  border: 1px solid var(--link-chip-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(0, 0, 0, 0.12) 100%),
    var(--link-chip-bg);
  color: var(--link-chip-text);
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.52rem;
  font-size: 0.65rem;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    filter 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    border-color 110ms steps(2, end);
}

.row-link-danger {
  color: #ffd3d3;
  border-color: rgba(205, 118, 118, 0.45);
  background: rgba(92, 28, 28, 0.46);
}

body:not([data-palette="nes"]) .row-link:hover,
body:not([data-palette="nes"]) .row-link:focus-visible,
body:not([data-palette="nes"]) .row-link-danger:hover,
body:not([data-palette="nes"]) .row-link-danger:focus-visible {
  filter: brightness(1.06);
  border-color: var(--focus-outline);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.desktop-form {
  display: grid;
  gap: 0.7rem;
}

.desktop-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.desktop-form-grid label {
  display: grid;
  gap: 0.26rem;
}

.desktop-form-grid label span {
  font-size: 0.66rem;
  color: var(--form-label);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.desktop-form-grid .full {
  grid-column: 1 / -1;
}

.desktop-form-fieldset {
  border: 1px solid var(--fieldset-border);
  background: var(--fieldset-bg);
  padding: 0.55rem;
  margin: 0;
  display: grid;
  gap: 0.55rem;
}

.desktop-form-fieldset legend {
  padding: 0 0.2rem;
  font-size: 0.66rem;
  color: var(--fieldset-legend);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.desktop-checkbox-row {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--text-main);
  font-size: 0.74rem;
}

.desktop-checkbox-row input[type="checkbox"] {
  width: 15px;
  height: 15px;
}

.desktop-form-fieldset .recurrence-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.event-form-venue-inline .window-item-meta {
  margin: 0;
}

.event-form-venue-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.recurrence-help {
  margin: 0;
}

.desktop-form-fieldset .recurrence-grid label.is-recurrence-locked {
  opacity: 0.66;
}

.desktop-form-fieldset .recurrence-grid .is-recurrence-locked-control {
  pointer-events: none;
  user-select: none;
  cursor: not-allowed;
  color: var(--surface-muted-text);
  background:
    linear-gradient(180deg, rgba(130, 130, 130, 0.2) 0%, rgba(40, 40, 40, 0.18) 100%),
    var(--form-field-bg);
}

.desktop-form-grid input,
.desktop-form-grid select,
.desktop-form-grid textarea {
  width: 100%;
  border: 1px solid var(--form-field-border);
  background: var(--form-field-bg);
  color: var(--text-main);
  padding: 0.45rem 0.5rem;
  font-size: 0.78rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.desktop-form-grid select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 2rem;
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 0.9rem) 50% / 0.32rem 0.32rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.68rem) 50% / 0.32rem 0.32rem no-repeat,
    var(--form-field-bg);
}

@media (hover: hover) and (pointer: fine) {
  body:not([data-palette="nes"]) .desktop-form-grid input:hover,
  body:not([data-palette="nes"]) .desktop-form-grid select:hover,
  body:not([data-palette="nes"]) .desktop-form-grid textarea:hover,
  body:not([data-palette="nes"]) .event-filter-control > input:hover,
  body:not([data-palette="nes"]) .event-filter-control > select:hover,
  body:not([data-palette="nes"]) .admin-venue-search > input:hover,
  body:not([data-palette="nes"]) .admin-venue-picker > select:hover,
  body:not([data-palette="nes"]) .admin-theme-picker > select:hover,
  body:not([data-palette="nes"]) .admin-workspace-select:hover,
  body:not([data-palette="nes"]) .admin-bulk-toolbar-actions select:hover {
    border-color: var(--focus-outline);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  }
}

.desktop-form-grid textarea {
  resize: vertical;
  min-height: 100px;
}

.desktop-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

.danger-strip {
  margin-top: 0.45rem;
  border: 1px dashed rgba(205, 118, 118, 0.45);
  background: rgba(94, 28, 28, 0.3);
  padding: 0.45rem 0.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.6rem;
}

.danger-strip p {
  margin: 0;
  font-size: 0.72rem;
  color: #ffd1d1;
}

.dock {
  height: var(--dock-height);
  background: var(--dock-shell-bg, linear-gradient(180deg, var(--dock-start), var(--dock-end)));
  border-top: 1px solid var(--dock-shell-border, var(--dock-border));
  position: sticky;
  bottom: 0;
  z-index: 200;
}

.dock-inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}

.dock-cycle-btn {
  display: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.dock-btn {
  flex: 0 0 92px;
  width: 92px;
  height: 92px;
  border-top: 1px solid var(--dock-btn-border-light, var(--brown-edge-light));
  border-left: 1px solid var(--dock-btn-border-light, var(--brown-edge-light));
  border-right: 1px solid var(--dock-btn-border-dark, var(--brown-edge-dark));
  border-bottom: 1px solid var(--dock-btn-border-dark, var(--brown-edge-dark));
  background: linear-gradient(180deg, var(--dock-btn-start), var(--dock-btn-end));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.32rem;
  position: relative;
  padding: 0.2rem 0.15rem 0.16rem;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.dock-btn,
.dock-icon-img,
.dock-label {
  transition:
    box-shadow 120ms steps(2, end),
    filter 120ms steps(2, end),
    color 120ms steps(2, end),
    transform 120ms steps(2, end);
}

.dock-btn--placeholder {
  cursor: not-allowed;
  opacity: 0.86;
}

.dock-btn--placeholder .dock-label {
  color: var(--surface-muted-text);
}

.dock-icon-img {
  --dock-icon-scale: 1;
  width: 36px;
  height: 36px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  filter: none;
  transform: translateY(0) scale(var(--dock-icon-scale));
}

.dock-icon-img--instagram {
  --dock-icon-scale: 0.82;
  display: block;
  object-fit: contain;
  object-position: center;
}

.dock-label {
  display: block;
  color: var(--dock-label);
  font-size: var(--dock-label-size, 0.68rem);
  line-height: 1;
  letter-spacing: 0.01em;
  text-align: center;
  white-space: nowrap;
  text-shadow: var(--dock-label-shadow, 0 1px 0 rgba(0, 0, 0, 0.5));
  margin-top: 0.08rem;
  min-height: 1em;
}

.dock-btn:not(.dock-btn--placeholder):hover,
.dock-btn:not(.dock-btn--placeholder):focus-visible {
  box-shadow: inset 0 0 0 1px var(--highlight-ring), 0 0 0 1px var(--highlight-ring);
  z-index: 1;
}

.dock-btn:not(.dock-btn--placeholder):hover .dock-icon-img,
.dock-btn:not(.dock-btn--placeholder):focus-visible .dock-icon-img {
  filter: drop-shadow(0 0 4px var(--icon-active-shadow));
  transform: translateY(-1px) scale(var(--dock-icon-scale));
}

.dock-btn:not(.dock-btn--placeholder):hover .dock-label,
.dock-btn:not(.dock-btn--placeholder):focus-visible .dock-label {
  color: var(--dock-label-active, var(--dock-label));
}

.dock-btn.is-active {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.dock-btn.is-active .dock-icon-img {
  filter: drop-shadow(0 0 4px var(--icon-active-shadow));
  transform: translateY(-1px) scale(var(--dock-icon-scale));
}

.dock-btn.is-active .dock-label {
  color: var(--dock-label-active, var(--dock-label));
}

.dock-base {
  height: var(--base-height);
  background: var(--dock-base-bg);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
}

.dock-base p {
  margin: 0;
  color: var(--dock-base-text);
  font-size: 0.64rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* NES palette gets a full pixel-console conversion while other palettes stay subtle. */
body[data-palette="nes"] {
  font-size: 11px;
  line-height: 1.55;
  background-color: #060714;
  color: #121216;
}

body[data-palette="nes"] .top-strip {
  background: transparent !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

body[data-palette="nes"] .status-pill,
body[data-palette="nes"] .system-menu-link,
body[data-palette="nes"] .status-auth-btn {
  border: 2px solid var(--nes-frame-dark);
  background: linear-gradient(180deg, #f2f1ea 0%, #c8c7bf 100%);
  color: #17171a;
  box-shadow: inset -2px -2px 0 0 #8e8d87, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .status-pill {
  text-shadow: none;
}

body[data-palette="mint"] .status-time,
body[data-palette="nes"] .status-time {
  font-family: var(--status-clock-font-family);
  font-size: var(--status-clock-font-size);
  letter-spacing: var(--status-clock-letter-spacing);
  font-weight: var(--status-clock-font-weight);
}

body[data-palette="nes"] .system-menu-panel {
  border: 2px solid var(--nes-frame-dark);
  background: linear-gradient(180deg, #ecebe4 0%, #cfcec7 100%);
  box-shadow: 0 0 0 2px #f8f7ef, 8px 8px 0 rgba(0, 0, 0, 0.32);
}

body[data-palette="nes"] .desktop-context-menu {
  border: 2px solid var(--nes-frame-dark);
  background: linear-gradient(180deg, #ecebe4 0%, #cfcec7 100%);
  box-shadow: 0 0 0 2px #f8f7ef, 8px 8px 0 rgba(0, 0, 0, 0.32);
}

body[data-palette="nes"] .desktop-context-item {
  border: 2px solid #5f5e58;
  background: linear-gradient(180deg, #f4f3ec 0%, #d0cfc8 100%);
  color: #151519;
  box-shadow: inset -2px -2px 0 0 #8e8d87, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .system-control span,
body[data-palette="nes"] .window-lead,
body[data-palette="nes"] .map-panel-label {
  letter-spacing: 0.08em;
  color: #35343a;
}

body[data-palette="nes"] .desktop-window {
  border: 2px solid var(--nes-frame-dark);
  border-radius: 0;
  background: linear-gradient(180deg, #efeee7 0%, #cbc9c1 100%);
  box-shadow: var(--window-shadow);
}

/* NES controls render larger, so give Settings extra vertical room to avoid body scroll. */
body[data-palette="nes"] [data-window="settings-window"] {
  --window-h: 548px !important;
}

body[data-palette="nes"] .desktop-window.is-focused {
  box-shadow:
    0 0 0 2px var(--nes-accent-red),
    0 0 0 4px rgba(255, 255, 255, 0.95),
    10px 10px 0 rgba(0, 0, 0, 0.34);
}

body[data-palette="nes"] .window-titlebar {
  min-height: 30px;
  padding: 0.2rem 0.42rem;
  border-bottom: 2px solid #6f6e68;
  background: linear-gradient(180deg, #efeee7 0%, #cdcbc3 100%);
}

body[data-palette="nes"] .window-titlebar h2 {
  letter-spacing: 0.06em;
  color: #151519;
  text-shadow: none;
}

body[data-palette="nes"] [data-window="calendar-day-window"] .calendar-day-window-titlebar-main {
  grid-template-columns: auto minmax(22ch, 24ch) auto;
}

body[data-palette="nes"] [data-window="calendar-day-window"] .calendar-day-window-titlebar-main .window-title-with-icon {
  letter-spacing: 0.02em;
}

body[data-palette="nes"] [data-window="calendar-day-window"] .calendar-day-window-titlebar-main [data-calendar-day-window-title] {
  width: 24ch;
}

body[data-palette="nes"] .window-control {
  width: 24px;
  height: 22px;
  border: 2px solid #5f5e58;
  background: linear-gradient(180deg, #f4f3ec 0%, #d0cfc8 100%);
  color: #151519;
  box-shadow: inset -2px -2px 0 0 #8e8d87, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .window-control[data-window-close],
body[data-palette="nes"] .window-control[data-drawer-close] {
  position: relative;
  display: grid;
  place-items: center;
  font-size: 0;
  line-height: 0;
  text-indent: -9999px;
  overflow: hidden;
  box-shadow: none;
}

body[data-palette="nes"] .window-control[data-window-close]::before,
body[data-palette="nes"] .window-control[data-window-close]::after,
body[data-palette="nes"] .window-control[data-drawer-close]::before,
body[data-palette="nes"] .window-control[data-drawer-close]::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 9px;
  height: 2px;
  background: currentColor;
  transform-origin: center;
}

body[data-palette="nes"] .window-control[data-window-close]::before,
body[data-palette="nes"] .window-control[data-drawer-close]::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

body[data-palette="nes"] .window-control[data-window-close]::after,
body[data-palette="nes"] .window-control[data-drawer-close]::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

body[data-palette="nes"] .window-control-maximize,
body[data-palette="nes"] .window-control-maximize:focus-visible,
body[data-palette="nes"] .window-control-maximize:hover,
body[data-palette="nes"] .window-control-maximize:active {
  width: 24px;
  min-width: 24px;
  height: 24px;
  padding: 0;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  color: transparent;
  text-indent: -9999px;
  overflow: hidden;
  background: url("/static/img/icons/ui/nes-console.svg") center / 24px 24px no-repeat !important;
  background-color: transparent !important;
  outline: none;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

body[data-palette="nes"] .window-control-mute.is-muted,
body[data-palette="nes"] .window-control:active {
  background: linear-gradient(180deg, #cbcac3 0%, #f2f1ea 100%);
  box-shadow: inset 2px 2px 0 0 #8e8d87, inset -2px -2px 0 0 #ffffff;
}

body[data-palette="nes"] .window-control-mute,
body[data-palette="nes"] .window-control-mute:hover,
body[data-palette="nes"] .window-control-mute:focus-visible,
body[data-palette="nes"] .window-control-mute:active,
body[data-palette="nes"] .window-control-mute.is-muted {
  background: #d0cfc8;
  box-shadow: none;
}

body[data-palette="nes"] .window-control[data-window-close]:active,
body[data-palette="nes"] .window-control[data-drawer-close]:active {
  box-shadow: none;
}

body[data-palette="nes"] .window-body,
body[data-palette="nes"] .manage-window-body,
body[data-palette="nes"] .window-content,
body[data-palette="nes"] .window-sidebar {
  border-color: #7d7c76;
  background: linear-gradient(180deg, #f2f1ea 0%, #dbdad3 100%);
}

body[data-palette="nes"] .home-summary-card,
body[data-palette="nes"] .home-newsletter,
body[data-palette="nes"] .event-calendar-shell,
body[data-palette="nes"] .window-item,
body[data-palette="nes"] .event-row-btn,
body[data-palette="nes"] .event-calendar-day,
body[data-palette="nes"] .calendar-event-chip,
body[data-palette="nes"] .map-event-row,
body[data-palette="nes"] .guestbook-preview-item,
body[data-palette="nes"] .system-control,
body[data-palette="nes"] .event-drawer-meta-grid p {
  border: 2px solid #8e8d87;
  background: #ecebe4;
  box-shadow: inset -2px -2px 0 0 #c9c8c1, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .event-calendar-day.is-today {
  border-color: #111111;
  box-shadow:
    inset -2px -2px 0 0 #c9c8c1,
    inset 2px 2px 0 0 #ffffff,
    inset 0 0 0 2px #111111;
}

body[data-palette="nes"] .event-calendar-day.is-today .event-calendar-day-number {
  color: #111111;
  text-shadow: none;
}

body[data-palette="nes"] .event-calendar-day.is-selected,
body[data-palette="nes"] .event-calendar-day.is-today.is-selected {
  border-color: #7b5a1f;
  box-shadow:
    inset -2px -2px 0 0 #c9c8c1,
    inset 2px 2px 0 0 #ffffff,
    inset 0 0 0 3px #f4c658,
    0 0 0 1px #7b5a1f;
}

body[data-palette="nes"] .event-calendar-day.is-selected .event-calendar-day-number,
body[data-palette="nes"] .event-calendar-day.is-today.is-selected .event-calendar-day-number {
  color: #6b450b;
  text-shadow: none;
}

body[data-palette="nes"] .window-item-title,
body[data-palette="nes"] .event-row-title,
body[data-palette="nes"] .map-event-title,
body[data-palette="nes"] .home-summary-sentence {
  color: #1a1a1d;
  text-shadow: none;
  line-height: 1.2;
  letter-spacing: 0.01em;
}

body[data-palette="nes"] .window-item-meta,
body[data-palette="nes"] .event-row-meta,
body[data-palette="nes"] .map-event-meta,
body[data-palette="nes"] .event-calendar-empty,
body[data-palette="nes"] .home-news-lorem,
body[data-palette="nes"] .window-empty,
body[data-palette="nes"] .system-tagline {
  color: #3f3e45;
  line-height: 1.3;
}

body[data-palette="nes"] .window-empty-banner {
  border: 2px solid #6f6e68;
  box-shadow: inset -2px -2px 0 0 #c9c8c1, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .home-hero-title {
  max-width: 11ch;
  font-size: var(--home-hero-title-size);
  line-height: 0.92;
  letter-spacing: 0.015em;
}

body[data-palette="nes"] .guestbook-message-author,
body[data-palette="nes"] .guestbook-message-text {
  color: #1a1a1d;
  text-shadow: none;
}

body[data-palette="nes"] .guestbook-message-time {
  color: #3f3e45;
}

body[data-palette="nes"] .guestbook-message-icon {
  display: block;
  border-color: #8e8d87;
  background: #f4f3ec;
}

body[data-palette="nes"] .guestbook-visitor-cta {
  border-color: #8e8d87;
  background: linear-gradient(180deg, #efeee7 0%, #d9d8d0 100%);
}

body[data-palette="nes"] .guestbook-toolbar-note {
  color: #3f3e45;
}

body[data-palette="nes"] .guestbook-list {
  border-color: #8e8d87;
  background: linear-gradient(180deg, #f4f3ec 0%, #d8d7cf 100%);
}

body[data-palette="nes"] .guestbook-message-item,
body[data-palette="nes"] .guestbook-panel--locked,
body[data-palette="nes"] .guestbook-compose-form {
  border: 2px solid #8e8d87;
  background: #ecebe4;
  box-shadow: inset -2px -2px 0 0 #c9c8c1, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .guestbook-locked-copy {
  color: #1a1a1d;
}

body[data-palette="nes"] .guestbook-list::-webkit-scrollbar-track {
  background: linear-gradient(180deg, #e8e7df 0%, #cbc9c2 100%);
  border-color: #8e8d87;
}

body[data-palette="nes"] .desktop-map-result-row {
  gap: 0.42rem;
  padding: 0.46rem 0.52rem;
}

body[data-palette="nes"] .desktop-map-result-map-link {
  min-height: 26px;
  min-width: 0;
  padding: 0.18rem 0.44rem;
}

body[data-palette="nes"] .desktop-map-result-map-link .external-link-icon {
  width: 0.76rem;
  height: 0.76rem;
}

body[data-palette="nes"] button:not(.dock-btn),
body[data-palette="nes"] .system-choice-btn,
body[data-palette="nes"] .window-action-btn,
body[data-palette="nes"] .window-item-link,
body[data-palette="nes"] .hub-tab,
body[data-palette="nes"] .event-view-btn,
body[data-palette="nes"] .calendar-nav-btn,
body[data-palette="nes"] .map-legend-item,
body[data-palette="nes"] .desktop-map-link {
  border: 2px solid #5f5e58;
  background: linear-gradient(180deg, #f4f3ec 0%, #d0cfc8 100%);
  color: #151519;
  box-shadow: inset -2px -2px 0 0 #8e8d87, inset 2px 2px 0 0 #ffffff;
  text-transform: uppercase;
}

body[data-palette="nes"] button:not(.dock-btn):active,
body[data-palette="nes"] .system-choice-btn:active,
body[data-palette="nes"] .window-action-btn:active,
body[data-palette="nes"] .window-item-link:active,
body[data-palette="nes"] .hub-tab:active,
body[data-palette="nes"] .event-view-btn:active,
body[data-palette="nes"] .calendar-nav-btn:active,
body[data-palette="nes"] .map-legend-item:active,
body[data-palette="nes"] .desktop-map-link:active {
  background: linear-gradient(180deg, #cbcac3 0%, #f2f1ea 100%);
  box-shadow: inset 2px 2px 0 0 #8e8d87, inset -2px -2px 0 0 #ffffff;
}

body[data-palette="nes"] .system-choice-btn.is-active,
body[data-palette="nes"] .hub-tab.is-active,
body[data-palette="nes"] .event-view-btn.is-active,
body[data-palette="nes"] .map-legend-filter.is-active,
body[data-palette="nes"] .event-kind-quick-filter.is-active,
body[data-palette="nes"] .event-kind-quick-filter[aria-pressed="true"] {
  color: var(--nes-accent-red-dark);
  border-color: #18181c;
  box-shadow:
    inset -2px -2px 0 0 #8e8d87,
    inset 2px 2px 0 0 #ffffff,
    0 0 0 2px rgba(201, 59, 51, 0.38);
}

body[data-palette="nes"] .event-kind-quick-filter.is-active,
body[data-palette="nes"] .event-kind-quick-filter[aria-pressed="true"] {
  color: #fff9ef;
  text-shadow: none;
  background: linear-gradient(180deg, #c84f48 0%, #8f302b 100%);
  box-shadow:
    inset -2px -2px 0 0 #61201d,
    inset 2px 2px 0 0 #f2a49f,
    0 0 0 2px rgba(201, 59, 51, 0.42);
}

body[data-palette="nes"] .system-choice-grid--palette .system-choice-btn {
  font-size: var(--settings-palette-btn-size);
  letter-spacing: 0.03em;
}

body[data-palette="nes"] .system-choice-grid--icons .system-choice-btn:disabled,
body[data-palette="nes"] .system-choice-grid--icons .system-choice-btn.is-disabled {
  background: linear-gradient(180deg, #d8d7cf 0%, #b9b8b1 100%);
  border-color: #6f6e68;
  color: #5c5b55;
  box-shadow: inset -2px -2px 0 0 #9d9c95, inset 2px 2px 0 0 #ecebe4;
}

body[data-palette="nes"] .system-choice-grid--icons .system-choice-btn:disabled .system-choice-icon,
body[data-palette="nes"] .system-choice-grid--icons .system-choice-btn.is-disabled .system-choice-icon {
  filter: grayscale(1) contrast(0.82) brightness(0.8);
  opacity: 0.6;
}

body[data-palette="nes"] [data-window="settings-window"] .settings-window-action-btn,
body[data-palette="nes"] [data-window="settings-window"] .settings-window-action-btn:active,
body[data-palette="nes"] [data-window="settings-window"] .settings-window-action-btn.is-active {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-palette="nes"] [data-window="settings-window"] .settings-window-action-btn:hover,
body[data-palette="nes"] [data-window="settings-window"] .settings-window-action-btn:focus-visible {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-palette="nes"] [data-window="settings-window"] .settings-window-action-btn:hover .settings-window-action-icon,
body[data-palette="nes"] [data-window="settings-window"] .settings-window-action-btn:focus-visible .settings-window-action-icon {
  filter: drop-shadow(0 0 2px rgba(20, 20, 24, 0.7));
  transform: translateY(-1px);
}

body[data-palette="nes"] input,
body[data-palette="nes"] select,
body[data-palette="nes"] textarea {
  border: 2px solid #6f6e68;
  background: #f7f6ef;
  color: #111115;
  box-shadow: inset 2px 2px 0 0 #c7c6bf;
}

body[data-palette="nes"] .admin-workspace-select,
body[data-palette="nes"] .event-filter-control > select,
body[data-palette="nes"] .admin-venue-picker > select,
body[data-palette="nes"] .admin-theme-picker > select,
body[data-palette="nes"] .admin-bulk-toolbar-actions select,
body[data-palette="nes"] .desktop-form-grid select {
  background:
    linear-gradient(45deg, transparent 50%, #151519 50%) calc(100% - 1rem) 50% / 0.34rem 0.34rem no-repeat,
    linear-gradient(135deg, #151519 50%, transparent 50%) calc(100% - 0.76rem) 50% / 0.34rem 0.34rem no-repeat,
    linear-gradient(180deg, #f7f6ef 0%, #d7d6ce 100%);
  padding-right: 2.2rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

body[data-palette="nes"] .dock {
  background: transparent !important;
  border-top: 0 !important;
  box-shadow: none !important;
}

body[data-palette="nes"] .dock-btn {
  border-width: 1px;
  border-color: #7a7972;
  background: linear-gradient(180deg, #f4f3ec 0%, #d0cfc8 100%);
  box-shadow: none;
}

body[data-palette="nes"] .dock-btn.is-active {
  border-color: #7a7972;
  box-shadow: none;
}

body[data-palette="nes"] .dock-label {
  font-family: "IBM Plex Mono", "Courier New", monospace;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  margin-top: 0.08rem;
  padding-top: 0;
  letter-spacing: 0.01em;
  color: #121216;
  max-width: 100%;
  overflow: visible;
  text-overflow: initial;
}

body[data-palette="nes"] .dock-btn .dock-label,
body[data-palette="nes"] .dock-btn.is-active .dock-label,
body[data-palette="nes"] .dock-btn:not(.dock-btn--placeholder):hover .dock-label,
body[data-palette="nes"] .dock-btn:not(.dock-btn--placeholder):focus-visible .dock-label {
  color: #121216;
}

body[data-palette="nes"] .dock-base {
  border-top: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-palette="nes"] .dock-base p {
  color: #1f1f23;
  letter-spacing: 0.08em;
}

body[data-palette="nes"] .system-choice-icon,
body[data-palette="nes"] .dock-icon-img,
body[data-palette="nes"] .status-auth-icon,
body[data-palette="nes"] .window-control-icon {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

body[data-palette="nes"] .event-drawer {
  border-left: 2px solid #6f6e68;
  background: linear-gradient(180deg, #efeee7 0%, #c8c7bf 100%);
  box-shadow: -10px 0 0 rgba(0, 0, 0, 0.25);
}

body[data-palette="nes"] .event-drawer-header h2 {
  color: #252529;
  text-shadow: none;
}

body[data-palette="nes"] .map-window .leaflet-control-zoom a {
  border: 2px solid #5f5e58;
  background: linear-gradient(180deg, #f4f3ec 0%, #d0cfc8 100%);
  color: #16161a;
  box-shadow: inset -2px -2px 0 0 #8e8d87, inset 2px 2px 0 0 #ffffff;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--focus-outline);
  outline-offset: 1px;
}

@media (max-width: 980px) {
  :root {
    --home-carousel-frame-aspect-ratio: 60 / 23;
  }

  html,
  body {
    height: 100dvh;
    overflow: hidden;
    overscroll-behavior: none;
  }

  .desktop-main {
    min-height: 0;
    height: calc(100dvh - var(--header-height) - var(--dock-height) - var(--base-height));
    padding: 0.08rem 0.28rem 0.5rem;
  }

  body[data-active-window="home"] .desktop-main {
    padding-top: 0;
  }

  body[data-active-window="admin"] .desktop-main {
    height: calc(100dvh - var(--header-height) - var(--base-height));
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }

  body:not([data-active-window="home"]) .desktop-main {
    height: calc(100dvh - var(--header-height) - var(--base-height));
  }

  body[data-active-window="privacy"] .desktop-main,
  body[data-active-window="terms"] .desktop-main {
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }

  .desktop-canvas {
    min-height: 0;
    height: 100%;
    display: block;
    overflow: visible;
  }

  .home-desktop {
    min-height: 320px;
  }

  .full-page-shell {
    padding-bottom: 0;
  }

  body[data-active-window="privacy"] .desktop-canvas,
  body[data-active-window="terms"] .desktop-canvas {
    height: auto;
    min-height: 100%;
  }

  body[data-active-window="privacy"] .full-page-shell,
  body[data-active-window="terms"] .full-page-shell {
    padding-bottom: calc(1rem + env(safe-area-inset-bottom));
  }

  .page-grid {
    grid-template-columns: 1fr;
  }

  .instagram-page-grid {
    grid-template-columns: 1fr;
  }

  .instagram-card {
    padding: 0.62rem;
  }

  .instagram-card-hero,
  .instagram-post-card-head {
    align-items: flex-start;
  }

  .instagram-card-actions,
  .instagram-post-card-footer,
  .instagram-card-footer {
    justify-content: flex-start;
  }

  .admin-control-grid {
    grid-template-columns: 1fr;
    gap: 0.12rem;
  }

  .admin-nav-shell {
    position: sticky;
    top: 0.16rem;
    z-index: 915;
    max-height: none;
    overflow: visible;
    padding-bottom: 0.06rem;
  }

  .admin-nav-group {
    gap: 0.3rem;
  }

  .admin-nav-group > .window-lead {
    margin: 0 0 0.08rem;
    font-size: 0.62rem;
  }

  .admin-workspace-picker {
    display: grid;
    margin: 0;
  }

  .admin-workspace-picker-label {
    font-size: 0.58rem;
    letter-spacing: 0.06em;
  }

  .admin-workspace-select {
    min-height: 44px;
    font-size: 16px;
    transition: none;
  }

  .admin-launcher-grid,
  .admin-launcher-grid--stack {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.34rem;
    overflow-x: hidden;
    overflow-y: auto;
    max-height: clamp(172px, 35vh, 308px);
    padding: 0.04rem 0.18rem 0.2rem 0.02rem;
    scroll-snap-type: none;
    -ms-overflow-style: auto;
    scrollbar-width: thin;
  }

  .admin-launcher-grid::-webkit-scrollbar,
  .admin-launcher-grid--stack::-webkit-scrollbar {
    width: max(8px, calc(var(--scrollbar-size) - 3px));
  }

  .admin-launcher-grid::-webkit-scrollbar-track,
  .admin-launcher-grid--stack::-webkit-scrollbar-track {
    background: linear-gradient(180deg, var(--scrollbar-track), rgba(22, 12, 8, 0.65));
    border: 1px solid var(--scrollbar-track-edge);
    border-radius: 2px;
  }

  .admin-launcher-grid::-webkit-scrollbar-thumb,
  .admin-launcher-grid--stack::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
    border: 1px solid var(--scrollbar-thumb-border);
    border-radius: 2px;
  }

  .admin-launcher-grid::-webkit-scrollbar-thumb:hover,
  .admin-launcher-grid--stack::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, var(--scrollbar-thumb-hover-start), var(--scrollbar-thumb-hover-end));
  }

  .admin-launcher-grid--stack .window-action-btn {
    min-width: 0;
    width: 100%;
    min-height: 42px;
    padding: 0.42rem 0.5rem;
    justify-content: center;
    text-align: center;
    scroll-snap-align: none;
    line-height: 1.16;
  }

  .admin-launcher-grid,
  .admin-launcher-grid--stack {
    display: none;
  }

  .admin-panel-shell .window-action-btn,
  .admin-panel-shell .row-link,
  .admin-panel-shell .row-link-danger {
    min-height: 38px;
    font-size: 0.72rem;
  }

  .admin-editor-tabs {
    max-width: none;
  }

  .admin-editor-tab {
    min-height: 38px;
    font-size: 0.72rem;
  }

  .admin-panel-shell .event-listing-card--admin .event-listing-card-chip,
  .admin-panel-shell .event-listing-card--admin .event-listing-card-action {
    min-height: 38px;
    font-size: 0.72rem;
  }

  .admin-panel-shell .event-filter-control > input,
  .admin-panel-shell .event-filter-control > select,
  .admin-panel-shell .admin-venue-search > input,
  .admin-panel-shell .admin-venue-picker > select,
  .admin-panel-shell .admin-theme-picker > select,
  .admin-panel-shell .desktop-form-grid input,
  .admin-panel-shell .desktop-form-grid select,
  .admin-panel-shell .desktop-form-grid textarea {
    min-height: 38px;
    font-size: 0.82rem;
  }

  .admin-event-editor-modal {
    z-index: 1400;
    padding: calc(var(--header-height) + 0.16rem) 0.26rem 0.26rem;
  }

  .admin-event-editor-shell {
    width: min(100vw - 0.52rem, 980px);
    max-height: calc(100dvh - var(--header-height) - 0.34rem);
  }

  .admin-event-editor-body {
    padding: 0.34rem 0.36rem calc(0.54rem + env(safe-area-inset-bottom));
  }

  .admin-panel-shell {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    width: 100%;
    min-width: 0;
    height: auto;
    max-height: none;
    padding: 0;
    overflow: visible;
    z-index: auto;
    transform: none;
    opacity: 1;
    pointer-events: auto;
    transition: none;
    border: 0;
    background: none;
    box-shadow: none;
    border-radius: 0;
  }

  .admin-panel-shell-head {
    display: none;
  }

  .admin-panel-shell-head .window-lead {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .admin-panel-close-btn {
    min-height: 36px;
    min-width: 86px;
  }

  .admin-panel-backdrop {
    display: none !important;
  }

  .admin-control-grid.is-panel-open .admin-panel-shell {
    transform: none;
    opacity: 1;
    pointer-events: auto;
  }

  .admin-summary-grid,
  .admin-metric-columns {
    grid-template-columns: 1fr;
  }

  .admin-launcher-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-venue-header {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-venue-search {
    min-width: 0;
  }

  .admin-venue-picker {
    max-width: none;
  }

  .admin-venue-workspace {
    grid-template-columns: 1fr;
  }

  .admin-venue-list {
    max-height: 220px;
  }

  .event-browser-toolbar {
    flex-direction: column;
  }

  .event-view-toggle {
    width: 100%;
  }

  .event-view-btn {
    flex: 1 1 auto;
    min-height: 36px;
  }

  .event-seo-day-links {
    width: 100%;
  }

  .event-seo-day-links a {
    flex: 1 1 calc(50% - 0.35rem);
    justify-content: center;
  }

  .event-seo-link-list {
    padding: 0.45rem;
  }

  .event-seo-links {
    max-height: 190px;
  }

  .admin-panel-shell .event-row-admin {
    flex-direction: column;
    gap: 0.5rem;
  }

  .admin-panel-shell .event-row-admin-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .admin-panel-shell .event-row-admin-actions .row-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.34rem;
  }

  .admin-panel-shell .event-row-admin-actions .row-link,
  .admin-panel-shell .event-row-admin-actions .row-link-danger {
    width: 100%;
    min-width: 0;
    justify-content: center;
    text-align: center;
  }

  .admin-event-editor-shell .window-action-btn,
  .admin-event-editor-shell .row-link,
  .admin-event-editor-shell .row-link-danger {
    min-height: 38px;
    font-size: 0.74rem;
  }

  .admin-event-editor-shell .desktop-form-grid input,
  .admin-event-editor-shell .desktop-form-grid select,
  .admin-event-editor-shell .desktop-form-grid textarea {
    min-height: 38px;
    font-size: 0.82rem;
  }

  .admin-message-console-layout.is-drawer-open .admin-message-console-feed {
    padding-right: 0;
  }

  .admin-message-console-drawer {
    position: fixed;
    left: 0.45rem;
    right: 0.45rem;
    top: 0.6rem;
    bottom: 0.7rem;
    width: auto;
    max-width: none;
  }

  .admin-users-console.is-drawer-open .admin-user-grid {
    padding-right: 0;
  }

  .admin-user-console-drawer {
    position: fixed;
    left: 0.45rem;
    right: 0.45rem;
    top: 0.6rem;
    bottom: 0.7rem;
    width: auto;
    max-width: none;
  }

  [data-window="settings-window"] .system-control--cursor {
    display: none;
  }

  [data-window="settings-window"] .settings-window-footer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
  }

  [data-window="settings-window"] .settings-footer-meta {
    gap: 0.28rem 0.48rem;
  }

  [data-window="settings-window"] .settings-footer-actions {
    justify-content: flex-end;
    align-self: auto;
    flex-shrink: 0;
  }

  [data-window="settings-window"] .settings-legal-links {
    justify-content: flex-start;
    gap: 0.28rem 0.48rem;
  }

  [data-window="settings-window"] .settings-legal-links a {
    font-size: 0.52rem;
  }

  [data-window="settings-window"] .settings-window-action-btn {
    width: 30px;
    min-width: 30px;
    min-height: 30px;
  }

  [data-window="settings-window"] .settings-window-action-icon {
    width: 28px;
    height: 28px;
  }

  [data-window="settings-window"] .settings-game-over-btn {
    width: 26px;
    min-width: 26px;
    min-height: 26px;
  }

  [data-window="settings-window"] .settings-game-over-btn .settings-window-action-icon {
    width: 22px;
    height: 22px;
  }

  .event-filter-row {
    flex-direction: column;
    align-items: stretch;
  }

  .event-kind-quick-filters {
    width: 100%;
  }

  .event-kind-quick-filter {
    flex: 1 1 120px;
  }

  .event-list-month-nav {
    flex-direction: column;
    align-items: stretch;
  }

  .schedule-month-nav {
    flex-direction: column;
    align-items: stretch;
  }

  .schedule-month-nav-title {
    text-align: left;
  }

  .schedule-month-nav .window-action-btn {
    width: 100%;
    min-width: 0;
  }

  .analytics-week-nav .schedule-month-nav-title {
    text-align: center;
  }

  .analytics-week-nav .window-action-btn {
    min-width: 86px;
  }

  .event-list-month-nav .event-filter-control--month {
    flex: 1 1 auto;
  }

  .desktop-map-layout {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr);
    min-height: 0;
    height: clamp(280px, 62vh, 560px);
    overflow: hidden;
  }

  .map-window-toolbar {
    flex-wrap: wrap;
    align-items: center;
  }

  .map-window-actions {
    margin-left: auto;
  }

  .map-results-toggle {
    display: inline-flex;
    min-height: 26px;
    padding-inline: 0.55rem;
    font-size: 0.6rem;
  }

  [data-window="map"] .window-body.map-window-body {
    grid-template-rows: auto minmax(0, 1fr);
    overflow-y: hidden;
    overflow-x: hidden;
    min-height: 0;
    max-height: none;
    height: 100%;
  }

  [data-window="map"].desktop-window {
    min-height: 0;
    height: min(680px, calc(100% - 8px));
    max-height: calc(100% - 8px);
  }

  [data-window="map"] .desktop-map-canvas {
    min-height: 0;
  }

  [data-window="map"] .leaflet-popup-content-wrapper {
    max-width: min(66vw, 224px);
    min-width: 0;
  }

  [data-window="map"] .leaflet-popup-content {
    margin: 0.36rem 0.42rem;
  }

  [data-window="map"] .desktop-map-popup {
    min-width: 0;
    max-width: 100%;
    gap: 0.12rem;
  }

  [data-window="map"] .desktop-map-popup-title {
    font-size: 0.72rem;
    line-height: 1.14;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  [data-window="map"] .desktop-map-popup-meta {
    font-size: 0.56rem;
    line-height: 1.16;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  [data-window="map"] .desktop-map-popup-meta-label {
    font-size: 0.46rem;
    margin-right: 0.12rem;
  }

  [data-window="map"] .desktop-map-popup-meta--kind,
  [data-window="map"] .desktop-map-popup-meta--org {
    display: none;
  }

  [data-window="map"] .desktop-map-popup-meta--address {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }

  [data-window="map"] .desktop-map-popup-map-link {
    width: auto;
    min-width: 0;
    height: 24px;
    min-height: 24px;
    padding: 0 0.3rem;
    gap: 0.14rem;
    margin-top: 0.04rem;
  }

  [data-window="map"] .desktop-map-popup-map-link-icon {
    width: 0.78rem;
    height: 0.78rem;
  }

  [data-window="map"] .desktop-map-popup-map-link-label {
    display: inline;
    font-size: 0.46rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #c8e4ff;
  }

  [data-window="map"] .leaflet-popup-tip {
    width: 10px;
    height: 10px;
  }

  [data-window="map"] .desktop-map-canvas-shell {
    grid-template-rows: minmax(0, 1fr);
  }

  [data-window="map"] .desktop-map-selection {
    display: none;
  }

  [data-window="map"] .desktop-map-sidebar {
    position: absolute;
    left: 0.35rem;
    right: 0.35rem;
    bottom: 0.35rem;
    z-index: 4;
    min-height: 0;
    max-height: min(76%, 430px);
    overflow: hidden;
    overflow-x: hidden;
    grid-template-rows: auto auto auto auto minmax(0, 1fr);
    align-content: start;
    box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.36);
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(100% + 0.8rem));
    transition:
      opacity 140ms steps(2, end),
      transform 160ms ease;
  }

  [data-window="map"].is-map-sidebar-open .desktop-map-sidebar {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  [data-window="map"] .desktop-map-sidebar-backdrop {
    position: absolute;
    inset: 0;
    z-index: 3;
    border: 0;
    background: rgba(5, 10, 18, 0.34);
    padding: 0;
    cursor: pointer;
  }

  [data-window="map"] .desktop-map-sidebar-backdrop[hidden] {
    display: none;
  }

  [data-window="map"].is-map-sidebar-open .desktop-map-sidebar-backdrop {
    display: block;
  }

  [data-window="map"] .desktop-map-sidebar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
  }

  [data-window="map"] .desktop-map-sidebar-head .window-lead {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  [data-window="map"] .desktop-map-sidebar > .event-filter-control,
  [data-window="map"] .desktop-map-sidebar > .map-kind-filters,
  [data-window="map"] .desktop-map-sidebar [data-map-count],
  [data-window="map"] .desktop-map-sidebar [data-map-results] {
    display: grid;
  }

  [data-window="map"] .desktop-map-sidebar > .map-kind-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  [data-window="map"] .desktop-map-sidebar [data-map-count] {
    display: block;
    margin: 0;
  }

  [data-window="map"] .desktop-map-sidebar [data-map-results] {
    min-height: 0;
    overflow: auto;
  }

  [data-window="map"] .map-weekday-filters {
    width: 100%;
    gap: 0.28rem;
  }

  [data-window="map"] .map-weekday-filters .weekday-filter-group {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.18rem;
    width: 100%;
  }

  [data-window="map"] .map-weekday-filters .weekday-filter-option {
    width: 100%;
  }

  [data-window="map"] .map-weekday-filters .weekday-filter-option span {
    width: 100%;
    min-width: 0;
    height: 26px;
    font-size: 0.58rem;
    letter-spacing: 0.02em;
    padding: 0 0.08rem;
  }

  .desktop-window.game-over-window {
    width: min(var(--window-w, 530px), 78vw);
    max-width: 78vw;
    height: auto;
    min-height: 0;
    max-height: calc(100% - 150px);
  }

  .desktop-window.game-over-window .window-body.game-over-window-body {
    min-height: 0;
    max-height: none;
    height: auto;
    overflow: hidden;
  }

  .desktop-window.game-over-window .game-over-player-shell {
    padding: 0.2rem 0.2rem 0.2rem;
  }

  .desktop-window.game-over-window .game-over-video {
    width: 122%;
    height: auto;
    margin-left: -11%;
  }

  .event-calendar-day {
    min-height: 96px;
  }

  [data-window="calendar-window"] .event-filter-row {
    display: none;
  }

  [data-window="calendar-window"] .event-browser-window {
    grid-template-rows: minmax(0, 1fr);
    overflow: hidden;
  }

  [data-window="calendar-window"] .event-calendar-shell {
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 0.42rem;
    min-height: 0;
    border: 1px solid var(--surface-item-border);
    box-shadow: inset 0 0 0 1px rgba(6, 12, 20, 0.42);
  }

  [data-window="calendar-window"] .event-calendar-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.3rem;
  }

  [data-window="calendar-window"] .event-calendar-nav .calendar-nav-btn {
    min-width: 68px;
  }

  [data-window="calendar-window"] .event-calendar-month {
    font-size: 1.08rem;
    line-height: 1;
    letter-spacing: 0.03em;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  [data-window="calendar-window"] .event-calendar-weekdays,
  [data-window="calendar-window"] .event-calendar-grid {
    display: none;
  }

  [data-window="calendar-window"] .event-calendar-day-nav {
    display: grid;
  }

  [data-window="calendar-window"] .event-calendar-mobile-day {
    display: grid;
    grid-template-rows: minmax(0, 1fr);
    min-height: 0;
    height: 100%;
    max-height: none;
    border: 1px solid var(--surface-item-border);
    background: var(--surface-item-bg);
    padding: 0.42rem;
    overflow: hidden;
    overflow-x: hidden;
  }

  [data-window="calendar-window"] .event-calendar-mobile-agenda {
    min-height: 0;
    max-height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 0.12rem;
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
  }

  [data-window="calendar-window"] > .window-body {
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }

  [data-window="calendar-window"] .event-browser-window,
  [data-window="calendar-window"] .calendar-window-shell,
  [data-window="calendar-window"] .event-calendar-frame,
  [data-window="calendar-window"] .event-browser-panel[data-view-panel="calendar"],
  [data-window="calendar-window"] .event-calendar-shell,
  [data-window="calendar-window"] .event-calendar-mobile-day {
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
  }

  [data-window="calendar-window"] .event-calendar-shell {
    grid-template-rows: auto auto auto;
  }

  [data-window="calendar-window"] .event-calendar-mobile-day {
    grid-template-rows: auto;
  }

  [data-window="calendar-window"] .event-calendar-mobile-agenda {
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }

  .desktop-window {
    width: min(var(--window-w, 440px), 84vw);
    max-width: 84vw;
    height: min(var(--window-h, 260px), calc(100% - 82px));
    min-height: min(var(--window-h, 260px), calc(100% - 82px));
    max-height: calc(100% - 82px);
  }

  .desktop-window.instagram-window {
    width: min(460px, 94vw);
    max-width: 94vw;
  }

  .desktop-window.instagram-window .window-body.instagram-window-body {
    padding: 0.56rem;
  }

  [data-window="calendar-window"].desktop-window {
    height: min(var(--window-h, 260px), calc(100% - 96px));
    min-height: min(var(--window-h, 260px), calc(100% - 96px));
    max-height: calc(100% - 96px);
  }

  [data-window="calendar-window"] .calendar-window-shell {
    min-height: calc(100% - 44px);
    max-height: calc(100% - 44px);
  }

  .desktop-window--main {
    width: min(var(--window-w, 1100px), 92vw);
    max-width: 92vw;
    height: min(var(--window-h, 260px), calc(100% - 18px));
    min-height: min(var(--window-h, 260px), calc(100% - 18px));
    max-height: calc(100% - 18px);
  }

  .desktop-window.game-window {
    width: min(var(--window-w, 860px), calc(100% - 4px));
    max-width: calc(100% - 4px);
    min-height: 0;
    height: auto;
    max-height: calc(100% - 2px);
    border-radius: 0;
  }

  .desktop-window.game-window .window-titlebar {
    min-height: 40px;
    padding: 0.24rem 0.46rem;
  }

  .desktop-window.game-window .window-body.game-window-body {
    margin: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    min-height: 0;
    max-height: none;
    height: auto;
    padding: 0.24rem;
  }

  .desktop-window.game-window .game-play-shell,
  .desktop-window.game-window .flash-stage-shell,
  .desktop-window.game-window .flash-stage {
    min-height: 0;
  }

  .desktop-window.game-window .flash-stage-shell {
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    padding: 0.2rem;
  }

  .desktop-window.game-window .flash-stage {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 3;
  }

  .desktop-window.game-window .flash-stage ruffle-player,
  .desktop-window.game-window .flash-stage canvas {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
  }

  .desktop-window.about-window {
    width: min(var(--window-w, 520px), 92vw, calc((100dvh - 160px) * 0.6667));
    max-width: 92vw;
    height: auto;
    min-height: 0;
    max-height: calc(100% - 4px);
  }

  .desktop-window.about-window .about-window-body {
    min-height: 0;
    max-height: calc(100% - 44px);
    height: auto;
    padding: 0.32rem;
    overflow: hidden;
  }

  .desktop-window.about-window .about-window-canvas {
    height: auto;
    max-height: 100%;
    aspect-ratio: 2 / 3;
  }

  .news-layout {
    grid-template-columns: 1fr;
  }

  .home-summary-grid {
    grid-template-columns: 1fr;
  }

  .home-summary-title {
    font-size: 0.88rem;
  }

  .home-summary-sublead {
    font-size: 0.6rem;
  }

  .window-empty--dog-banner {
    gap: 0.34rem;
  }

  .window-empty-banner {
    min-height: 0;
    height: auto;
  }

  .window-empty-banner-img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    transform: none;
    object-fit: cover;
    object-position: 50% 48%;
  }

  .home-summary-list .window-empty-banner {
    min-height: 0;
    height: auto;
  }

  [data-window="home-hub"].desktop-window--main {
    height: auto;
    min-height: 0;
  }

  [data-window="home-hub"] .window-body.home-hub-body {
    min-height: 0;
    height: auto;
    max-height: calc(100dvh - var(--header-height) - var(--dock-height) - var(--base-height) - 0.5rem);
    overflow-y: auto;
    overscroll-behavior-y: contain;
  }

  [data-window="home-hub"] .home-hub-shell {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  [data-window="home-hub"] .home-hero-media {
    min-height: min(50dvh, 420px);
  }

  [data-window="home-hub"] .home-hero-title {
    max-width: 11ch;
    font-size: var(--home-hero-title-size-tablet);
  }

  [data-window="home-hub"] .home-rail {
    grid-template-rows: repeat(2, auto);
  }

  [data-window="home-hub"] .home-summary-card {
    padding: 0.52rem;
    gap: 0.34rem;
  }

  [data-window="home-hub"] .home-summary-card .window-list.home-summary-list {
    max-height: min(34dvh, 252px);
  }

  [data-window="home-hub"] .home-section-divider,
  [data-window="home-hub"] .home-newsletter {
    display: none;
  }

  .home-carousel-viewport {
    min-height: 124px;
  }

  .home-carousel-controls {
    gap: 0.18rem;
  }

  .home-carousel-nav {
    min-width: 44px;
    width: auto;
    min-height: 24px;
    padding: 0 0.35rem;
  }

  .home-carousel-dots {
    min-height: 24px;
    padding: 0 0.28rem;
    gap: 0.18rem;
  }

  .home-carousel-nav--overlay {
    width: 28px;
    min-width: 28px;
    min-height: 24px;
  }

  .home-carousel-nav--prev {
    left: 0.32rem;
  }

  .home-carousel-nav--next {
    right: 0.32rem;
  }

  .home-carousel-dot {
    width: 14px;
    height: 14px;
  }

  .window-titlebar {
    min-height: 40px;
    padding: 0.24rem 0.42rem;
    cursor: grab;
    touch-action: none;
  }

  .window-titlebar:active {
    cursor: grabbing;
  }

  .window-titlebar h2 {
    font-size: var(--window-title-font-size-mobile);
    letter-spacing: 0.05em;
  }

  .window-controls {
    gap: 0.3rem;
  }

  .window-control {
    width: 36px;
    height: 34px;
    font-size: 1rem;
  }

  .window-control-maximize {
    background-size: 100% 100%;
    background-position: center;
  }

  body:not([data-palette="nes"]) .window-control-maximize {
    background-size: 100% 100%;
    background-position: center;
  }

  body:not([data-palette="nes"]) .window-control-maximize.is-maximized,
  body:not([data-palette="nes"]) .window-control-maximize[aria-pressed="true"] {
    transform: rotate(180deg);
    filter: none;
  }

  .window-control-icon {
    width: 18px;
    height: 18px;
  }

  .window-content,
  .window-body,
  .manage-window-body {
    min-height: 0;
    max-height: calc(100% - 44px);
  }

  .window-body,
  .manage-window-body {
    overflow-y: auto;
    overflow-x: hidden;
  }

  .event-drawer {
    left: 0;
    right: 0;
    top: auto;
    bottom: 0;
    width: 100%;
    height: min(84dvh, 720px);
    border-left: 0;
    border-top: 1px solid var(--brown-edge-light);
    box-shadow: 0 -16px 30px rgba(0, 0, 0, 0.4);
    transform: translateY(102%);
  }

  .event-drawer.is-open {
    transform: translateY(0);
  }

  .event-drawer-header {
    position: relative;
    padding-top: 1.1rem;
  }

  .event-drawer-header [data-drawer-kind] {
    display: none;
  }

  .event-drawer-header::before {
    content: "";
    position: absolute;
    top: 0.4rem;
    left: 50%;
    width: 52px;
    height: 4px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: var(--surface-card-border);
  }

  .event-drawer-body {
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom));
  }

  .manage-columns,
  .desktop-form-grid {
    grid-template-columns: 1fr;
  }

  .desktop-form-fieldset .recurrence-grid,
  .event-form-venue-grid {
    grid-template-columns: 1fr;
  }

  .dock {
    height: var(--dock-height);
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 240;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.18rem;
    padding: 0 0.2rem max(0.24rem, env(safe-area-inset-bottom));
  }

  .dock-inner {
    width: 100%;
    align-items: stretch;
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0;
    scroll-behavior: auto;
    touch-action: pan-x;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  .dock-inner.container {
    width: 100%;
    margin: 0;
    max-width: none;
  }

  .dock-cycle-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 70px;
    padding: 0;
    border: 1px solid var(--dock-btn-border-dark, var(--brown-edge-dark));
    border-top-color: var(--dock-btn-border-light, var(--brown-edge-light));
    border-left-color: var(--dock-btn-border-light, var(--brown-edge-light));
    background: linear-gradient(180deg, var(--dock-btn-start), var(--dock-btn-end));
    color: var(--dock-label);
    font-size: 0.74rem;
    line-height: 1;
    cursor: pointer;
    flex: 0 0 auto;
  }

  .dock-cycle-btn:disabled {
    opacity: 0.45;
    cursor: default;
    filter: none;
  }

  .dock-inner::-webkit-scrollbar {
    display: none;
  }

  .dock-btn {
    flex: 0 0 calc(100% / 5);
    width: calc(100% / 5);
    max-width: calc(100% / 5);
    height: 72px;
    gap: 0.16rem;
    justify-content: flex-start;
    padding: 0.16rem 0.08rem 0.12rem;
  }

  .dock-icon-img {
    width: 30px;
    height: 30px;
  }

  .dock-icon-img--instagram {
    --dock-icon-scale: 0.82;
  }

  .dock-label {
    font-size: 0.56rem;
    line-height: 1;
    margin-top: 0;
    min-height: 0.62rem;
  }

  .dock-base {
    height: var(--base-height);
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0;
    z-index: 239;
  }

  .dock-base .container {
    width: 100%;
    max-width: none;
    padding: 0 0.45rem;
  }
}

@media (min-width: 981px) and (max-height: 900px) {
  .desktop-main {
    min-height: 0;
    height: calc(100dvh - var(--header-height) - var(--dock-height) - var(--base-height));
    padding: 0.2rem 0 0.7rem;
  }

  body[data-active-window="home"] .desktop-main {
    padding-top: 0.08rem;
  }

  body[data-active-window="admin"] .desktop-main,
  body:not([data-active-window="home"]) .desktop-main {
    height: calc(100dvh - var(--header-height) - var(--base-height));
  }

  .desktop-canvas {
    min-height: 0;
    height: 100%;
    overflow: visible;
  }

  .desktop-window {
    --window-height-effective: min(var(--window-h, 260px), calc(100% - 28px));
    width: min(var(--window-w, 440px), 88vw);
    max-width: 88vw;
    height: var(--window-height-effective);
    min-height: var(--window-height-effective);
    max-height: var(--window-height-effective);
  }

  .desktop-window.instagram-window {
    width: min(480px, 96vw);
    max-width: 96vw;
  }

  .desktop-window.instagram-window .window-body.instagram-window-body {
    padding: 0.48rem;
  }

  .desktop-window--main {
    --window-height-effective: min(var(--window-h, 260px), calc(100% - 12px));
    width: min(var(--window-w, 1100px), 94vw);
    max-width: 94vw;
  }

  .window-content,
  .window-body,
  .manage-window-body {
    min-height: calc(var(--window-height-effective, var(--window-h, 260px)) - 44px);
    max-height: calc(var(--window-height-effective, var(--window-h, 260px)) - 44px);
  }

  .game-window-body {
    height: calc(var(--window-height-effective, var(--window-h, 260px)) - 44px);
  }

  .desktop-window.game-window .game-play-shell {
    height: 100%;
    align-items: center;
  }

  .desktop-window.game-window .flash-stage-shell {
    width: auto;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    aspect-ratio: 4 / 3;
  }

  [data-window="home-hub"].desktop-window--main {
    height: auto;
    min-height: 0;
    max-height: none;
  }

  [data-window="home-hub"] .window-body.home-hub-body {
    min-height: 0;
    height: auto;
    max-height: none;
    overflow-y: visible;
    scrollbar-gutter: auto;
  }

  [data-window="home-hub"] .home-hub-shell {
    gap: 0.54rem;
    height: auto;
    min-height: 0;
  }

  [data-window="home-hub"] .home-hero-media {
    min-height: clamp(320px, 48vh, 560px);
  }

}

@media (min-width: 981px) and (max-width: 1919px) {
  [data-window="calendar-window"].desktop-window.is-maximized {
    left: 2px;
    top: 2px;
    right: 2px;
    bottom: 4px;
    width: auto;
    max-width: none;
    height: auto;
    min-height: 0;
    max-height: none;
  }
}

@media (min-width: 981px) and (max-width: 1919px) and (max-height: 960px) {
  [data-window="calendar-window"] .window-titlebar {
    min-height: 24px;
    padding: 0.14rem 0.3rem;
  }

  [data-window="calendar-window"] .window-titlebar h2 {
    font-size: clamp(1.18rem, 1.5vw, 1.6rem);
  }

  [data-window="calendar-window"] .calendar-window-shell {
    padding: 0.45rem;
  }

  [data-window="calendar-window"] .event-filter-row {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(200px, 250px);
    gap: 0.34rem;
    align-items: end;
  }

  [data-window="calendar-window"] .event-filter-control {
    gap: 0.12rem;
    flex-basis: 150px;
  }

  [data-window="calendar-window"] .event-filter-control > span {
    font-size: 0.56rem;
  }

  [data-window="calendar-window"] .event-filter-control > input,
  [data-window="calendar-window"] .event-filter-control > select,
  [data-window="calendar-window"] .event-kind-quick-filter,
  [data-window="calendar-window"] .event-filter-reset,
  [data-window="calendar-window"] .calendar-nav-btn {
    min-height: 28px;
    font-size: 0.64rem;
  }

  [data-window="calendar-window"] .event-filter-control > input,
  [data-window="calendar-window"] .event-filter-control > select {
    padding: 0 0.42rem;
  }

  [data-window="calendar-window"] .event-kind-quick-filters {
    gap: 0.22rem;
  }

  [data-window="calendar-window"] .event-kind-quick-filter {
    padding: 0 0.54rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-shell {
    padding: 0.4rem;
    gap: 0.26rem;
    grid-template-rows: auto auto minmax(0, 1fr);
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-nav {
    order: 1;
    gap: 0.28rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-nav .calendar-nav-btn {
    min-width: 60px;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-month {
    font-size: 1rem;
    letter-spacing: 0.03em;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-weekdays {
    order: 2;
    gap: 0.22rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-weekdays span {
    font-size: 0.56rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-grid {
    order: 3;
    gap: 0.22rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day {
    padding: 0.2rem;
    gap: 0.16rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day-number {
    font-size: 0.84rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day-events {
    gap: 0.18rem;
    overflow: hidden;
    padding-right: 0;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .calendar-event-chip {
    padding: 0.18rem 0.2rem;
    gap: 0.08rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .calendar-event-chip span {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-size: 0.56rem;
    line-height: 1.08;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .calendar-event-chip small {
    font-size: 0.5rem;
    line-height: 1.08;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-empty {
    display: none;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day-nav {
    display: none;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-mobile-day {
    display: none !important;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-more {
    font-size: 0.52rem;
  }
}

@media (min-width: 981px) and (max-width: 1500px) {
  [data-window="home-hub"] .window-body.home-hub-body {
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
  }

  [data-window="home-hub"].desktop-window--main {
    width: min(var(--window-w, 1100px), 90vw);
    max-width: 90vw;
  }

  [data-window="home-hub"] .home-hub-shell {
    grid-template-columns: minmax(0, 1.24fr) minmax(300px, 0.94fr);
    gap: 0.56rem;
  }

  [data-window="home-hub"] .home-hero-title {
    font-size: var(--home-hero-title-size-laptop);
  }

  [data-window="home-hub"] .home-hero-meta,
  [data-window="home-hub"] .home-hero-kicker {
    font-size: 0.66rem;
  }

  [data-window="home-hub"] .home-hero-seo-copy {
    display: none;
  }

  [data-window="home-hub"] .home-summary-card {
    padding: 0.56rem;
    gap: 0.36rem;
  }

  [data-window="home-hub"] .home-summary-list .window-item.event-window-item[data-event-detail] {
    gap: 0.42rem;
    padding: 0.38rem 0.42rem;
  }

  [data-window="home-hub"] .home-summary-list .event-window-item-thumb {
    width: 56px;
    min-width: 56px;
  }
}

@media (min-width: 1200px) and (max-height: 860px) {
  [data-window="home-hub"] .window-body.home-hub-body {
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
  }

  [data-window="home-hub"] .home-hub-shell {
    gap: 0.54rem;
  }

  [data-window="home-hub"] .home-hero-chip {
    min-height: 24px;
    padding: 0 0.46rem;
    font-size: 0.56rem;
  }

  [data-window="home-hub"] .home-hero-overlay {
    gap: 0.22rem;
    padding: 0.9rem 1rem 1rem;
  }

  [data-window="home-hub"] .home-hero-title {
    font-size: var(--home-hero-title-size-short);
  }

  [data-window="home-hub"] .home-hero-kicker,
  [data-window="home-hub"] .home-hero-meta {
    font-size: 0.6rem;
  }

  [data-window="home-hub"] .home-summary-list .window-item.event-window-item[data-event-detail] {
    padding: 0.34rem 0.38rem;
    gap: 0.38rem;
  }
}

@media (min-width: 981px) and (max-width: 1920px), (min-width: 981px) and (max-height: 1220px) {
  body[data-active-window="home"] .desktop-main {
    min-height: 0;
    height: calc(100dvh - var(--header-height) - var(--dock-height) - var(--base-height));
    padding: 0.12rem 0 0.45rem;
  }

  body[data-active-window="home"] .desktop-canvas {
    min-height: 0;
    height: 100%;
    overflow: visible;
  }

  [data-window="home-hub"].desktop-window--main {
    left: clamp(18px, calc((100% - 1180px) / 2), 46px);
    top: 6px;
    right: auto;
    bottom: auto;
    width: min(1180px, calc(100% - 36px));
    max-width: calc(100% - 36px);
    height: min(760px, calc(100% - 14px));
    min-height: min(760px, calc(100% - 14px));
    max-height: calc(100% - 14px);
  }

  [data-window="home-hub"] .window-body.home-hub-body {
    margin: 0.2rem;
    padding: 0.4rem;
    height: calc(100% - 36px);
    min-height: 0;
    max-height: calc(100% - 36px);
    overflow: hidden;
    scrollbar-gutter: auto;
  }

  [data-window="home-hub"] .home-hub-shell {
    grid-template-columns: minmax(0, 1.18fr) minmax(300px, 0.82fr);
    grid-template-rows: minmax(0, 1fr);
    gap: 0.46rem;
    height: 100%;
    min-height: 0;
  }

  [data-window="home-hub"] .home-hero-media {
    min-height: clamp(260px, 43vh, 360px);
  }

  [data-window="home-hub"] .home-hero-chip {
    top: 0.58rem;
    left: 0.58rem;
    min-height: 24px;
    padding: 0 0.42rem;
    font-size: 0.56rem;
  }

  [data-window="home-hub"] .home-hero-overlay {
    gap: 0.22rem;
    padding: 0.88rem 0.92rem 0.96rem;
  }

  [data-window="home-hub"] .home-hero-title {
    max-width: 12ch;
    font-size: clamp(1.18rem, 1.7vw, 1.72rem);
  }

  [data-window="home-hub"] .home-hero-kicker,
  [data-window="home-hub"] .home-hero-meta {
    font-size: 0.6rem;
  }

  [data-window="home-hub"] .home-hero-seo-copy {
    display: none;
  }

  [data-window="home-hub"] .home-rail {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 0.38rem;
    min-height: 0;
  }

  [data-window="home-hub"] .home-summary-card {
    padding: 0.4rem;
    gap: 0.24rem;
    min-height: 0;
  }

  [data-window="home-hub"] .home-summary-head {
    gap: 0.04rem;
  }

  [data-window="home-hub"] .home-summary-title {
    font-size: clamp(0.8rem, 0.9vw, 0.94rem);
  }

  [data-window="home-hub"] .home-summary-card .window-list.home-summary-list {
    max-height: 100%;
    overflow: hidden;
    padding-right: 0;
  }

  [data-window="home-hub"] .home-summary-list--mobile-cap .window-item:nth-of-type(n + 3) {
    display: none;
  }

  [data-window="home-hub"] .home-summary-list .window-item.event-window-item[data-event-detail] {
    padding: 0.34rem 0.38rem;
    gap: 0.36rem;
  }

  [data-window="home-hub"] .home-summary-list .event-window-item-thumb {
    width: 52px;
    min-width: 52px;
  }

  [data-window="home-hub"] .home-summary-list .window-item-title {
    font-size: 0.86rem;
  }

  [data-window="home-hub"] .home-summary-list .window-item-meta {
    font-size: 0.62rem;
    line-height: 1.16;
  }

  [data-window="home-hub"] .home-summary-list .window-item-link[data-open-map] {
    width: 46px;
    min-width: 46px;
    height: 46px;
    min-height: 46px;
  }

  [data-window="calendar-window"].desktop-window.is-maximized {
    left: 6px;
    top: 6px;
    right: auto;
    bottom: auto;
    width: calc(100% - 12px);
    max-width: calc(100% - 12px);
    height: calc(100% - 12px);
    min-height: 0;
    max-height: calc(100% - 12px);
  }

  [data-window="calendar-window"] .window-titlebar {
    min-height: 24px;
    padding: 0.14rem 0.3rem;
  }

  [data-window="calendar-window"] .window-titlebar h2 {
    font-size: clamp(1.18rem, 1.5vw, 1.6rem);
  }

  [data-window="calendar-window"] .calendar-window-shell {
    padding: 0.42rem;
    min-height: calc(100% - 36px);
    height: calc(100% - 36px);
    max-height: none;
  }

  [data-window="calendar-window"] .event-filter-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, 250px);
    gap: 0.28rem;
    align-items: end;
  }

  [data-window="calendar-window"] .event-filter-control {
    gap: 0.1rem;
    min-width: 0;
  }

  [data-window="calendar-window"] .event-filter-control > span {
    font-size: 0.55rem;
  }

  [data-window="calendar-window"] .event-filter-control > input,
  [data-window="calendar-window"] .event-filter-control > select,
  [data-window="calendar-window"] .event-kind-quick-filter,
  [data-window="calendar-window"] .event-filter-reset,
  [data-window="calendar-window"] .calendar-nav-btn {
    min-height: 28px;
    font-size: 0.62rem;
  }

  [data-window="calendar-window"] .event-kind-quick-filters {
    gap: 0.18rem;
  }

  [data-window="calendar-window"] .event-kind-quick-filter {
    padding: 0 0.5rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-shell {
    padding: 0.36rem;
    gap: 0.24rem;
    grid-template-rows: auto auto minmax(0, 1fr);
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-nav .calendar-nav-btn {
    min-width: 56px;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-month {
    font-size: 0.96rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-weekdays,
  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-grid {
    gap: 0.18rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-weekdays span {
    font-size: 0.54rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day {
    min-height: 72px;
    padding: 0.18rem;
    gap: 0.12rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day-number {
    font-size: 0.8rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day-events {
    gap: 0.12rem;
    overflow: hidden;
    padding-right: 0;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day-summary {
    gap: 0.14rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day-counter {
    padding: 0.14rem 0.16rem;
    gap: 0.18rem;
    font-size: 0.46rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day-counter strong {
    font-size: 0.72rem;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-day-nav {
    display: none;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-mobile-day {
    display: none !important;
  }

  [data-window="calendar-window"] .event-browser-window--compact-calendar .event-calendar-more {
    font-size: 0.54rem;
  }

  [data-window="calendar-day-window"].desktop-window {
    left: 10px;
    top: 10px;
    right: auto;
    bottom: auto;
    width: min(1040px, calc(100% - 20px));
    max-width: calc(100% - 20px);
    height: min(700px, calc(100% - 20px));
    min-height: 0;
    max-height: calc(100% - 20px);
  }

  [data-window="calendar-day-window"] .calendar-day-window-body {
    margin: 0.2rem;
    padding: 0.42rem;
  }

  [data-window="calendar-day-window"] .calendar-day-window-titlebar-main {
    gap: 0.3rem;
  }

  [data-window="calendar-day-window"] .calendar-day-window-shell {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: minmax(0, 1fr);
    gap: 0.38rem;
  }

  [data-window="calendar-day-window"] .calendar-day-window-rail {
    gap: 0.36rem;
  }

  [data-window="calendar-day-window"] .calendar-day-window-column-card,
  [data-window="calendar-day-window"] .calendar-day-window-map-panel {
    padding: 0.34rem;
  }

  [data-window="calendar-day-window"] .calendar-day-window-group-title,
  [data-window="calendar-day-window"] .calendar-day-window-panel-title {
    font-size: 0.92rem;
  }

  [data-window="calendar-day-window"] .calendar-day-window-column-meta,
  [data-window="calendar-day-window"] .calendar-day-window-map-counts {
    font-size: 0.56rem;
  }

  [data-window="calendar-day-window"] .calendar-day-window-event {
    padding: 0.32rem 0.36rem;
  }

  [data-window="calendar-day-window"] .calendar-day-window-event-title {
    font-size: 0.72rem;
  }

  [data-window="calendar-day-window"] .calendar-day-window-event-meta,
  [data-window="calendar-day-window"] .calendar-day-window-event-submeta {
    font-size: 0.58rem;
  }

  [data-window="calendar-day-window"] .calendar-day-window-map {
    min-height: 0;
  }
}

@media (min-width: 2000px) and (min-height: 900px) {
  [data-window="calendar-window"]:not(.is-maximized).desktop-window {
    left: max(12px, calc((100% - 900px) / 2));
    top: 8px;
    right: auto;
    bottom: auto;
    width: min(900px, calc(100% - 24px));
    max-width: calc(100% - 24px);
    height: min(760px, calc(100% - 16px));
    min-height: min(760px, calc(100% - 16px));
    max-height: calc(100% - 16px);
  }
}

@media (min-width: 621px) and (max-width: 980px) {
  [data-window="home-hub"] .window-body.home-hub-body {
    overflow-y: auto;
  }

  [data-window="home-hub"] .home-hub-shell {
    grid-template-columns: 1fr;
  }

  [data-window="home-hub"] .home-hero-media {
    min-height: min(54dvh, 500px);
  }

  [data-window="home-hub"] .home-rail {
    grid-template-rows: repeat(2, auto);
  }

  [data-window="home-hub"] .home-summary-list .window-item.event-window-item[data-event-detail] {
    padding: 0.4rem 0.44rem;
  }
}

@media (max-width: 620px) {
  :root {
    /* Keep a modest fallback lane, but let real safe-area values stay tight on iPhone. */
    --mobile-safe-top-inset: max(env(safe-area-inset-top), 10px);
    --header-height: calc(var(--status-header-btn-height) + var(--mobile-safe-top-inset) + 2px);
    --status-header-btn-height: 36px;
    --dock-height: 84px;
  }

  .top-strip {
    height: var(--header-height);
    padding-top: var(--mobile-safe-top-inset);
    padding-bottom: 0;
    box-sizing: border-box;
  }

  .top-strip-inner {
    min-height: var(--status-header-btn-height);
    align-items: flex-start;
    gap: 0.35rem;
    padding-inline: 0.12rem;
  }

  .status-cluster {
    flex-wrap: nowrap;
    min-height: var(--status-header-btn-height);
    align-items: flex-start;
    gap: 0.3rem;
  }

  .status-pill {
    min-height: 24px;
    padding: 0 0.4rem;
    font-size: 0.58rem;
    letter-spacing: 0.05em;
  }

  .status-auth-btn {
    width: var(--status-header-btn-height);
    height: var(--status-header-btn-height);
    min-width: var(--status-header-btn-height);
    min-height: var(--status-header-btn-height);
    padding: 0;
  }

  .status-auth-icon {
    width: 22px;
    height: 22px;
    min-width: 22px;
    min-height: 22px;
    max-width: 22px;
    max-height: 22px;
    flex: 0 0 22px;
  }

  .system-menu-panel {
    right: auto;
    left: 0.2rem;
    width: min(340px, 94vw);
  }

  .system-menu-links,
  .system-menu-controls {
    grid-template-columns: 1fr;
  }

  .system-choice-grid--palette {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .status-time {
    margin-left: 0;
  }

  .status-time-btn {
    height: var(--status-header-btn-height);
    min-height: var(--status-header-btn-height);
    gap: 0.26rem;
  }

  .status-time-icon {
    width: 14px;
    height: 14px;
  }

  .dock {
    gap: 0.14rem;
    align-items: center;
    padding: 0 0.16rem max(0.22rem, env(safe-area-inset-bottom));
  }

  .dock-inner {
    align-items: center;
  }

  .dock-cycle-btn {
    width: 26px;
    height: 66px;
    font-size: 0.7rem;
  }

  .dock-btn {
    flex: 0 0 calc(100% / 5);
    width: calc(100% / 5);
    max-width: calc(100% / 5);
    height: 66px;
    gap: 0.14rem;
    justify-content: center;
    padding: 0.08rem 0.06rem;
  }

  .event-calendar-grid,
  .event-calendar-weekdays {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .event-calendar-day.is-empty {
    display: none;
  }

  .dock-icon-img {
    width: 28px;
    height: 28px;
  }

  .dock-icon-img--instagram {
    --dock-icon-scale: 0.82;
  }

  .dock-label {
    font-size: 0.53rem;
    line-height: 1;
    margin-top: 0;
    min-height: 0.58rem;
  }

  [data-window="home-hub"].desktop-window--main {
    --window-height-effective: calc(100% - 2px);
    width: min(var(--window-w, 1100px), 96vw);
    max-width: 96vw;
    height: var(--window-height-effective);
    min-height: var(--window-height-effective);
    max-height: var(--window-height-effective);
  }

  [data-window="home-hub"] .window-body.home-hub-body {
    max-height: calc(var(--window-height-effective, var(--window-h, 260px)) - 44px);
  }

  [data-window="home-hub"] .home-hub-shell {
    grid-template-columns: 1fr;
    gap: 0.52rem;
  }

  [data-window="home-hub"] .home-hero-media {
    min-height: min(28dvh, 220px);
  }

  [data-window="home-hub"] .home-hero-chip {
    top: 0.56rem;
    left: 0.56rem;
    min-height: 24px;
    padding: 0 0.42rem;
    font-size: 0.54rem;
  }

  [data-window="home-hub"] .home-hero-overlay {
    gap: 0.18rem;
    padding: 0.82rem 0.84rem 0.94rem;
  }

  [data-window="home-hub"] .home-hero-title {
    max-width: 11ch;
    font-size: var(--home-hero-title-size-phone);
  }

  [data-window="home-hub"] .home-hero-kicker,
  [data-window="home-hub"] .home-hero-meta {
    font-size: 0.58rem;
  }

  [data-window="home-hub"] .home-hero-kicker {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  [data-window="home-hub"] .home-rail {
    grid-template-rows: repeat(2, auto);
    gap: 0.52rem;
  }

  [data-window="home-hub"] .home-summary-card {
    height: auto;
    overflow: visible;
    padding: 0.42rem;
    gap: 0.28rem;
  }

  [data-window="home-hub"] .home-summary-card .window-list.home-summary-list {
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }

  [data-window="calendar-day-window"].desktop-window {
    left: 2px;
    top: 2px;
    right: auto;
    bottom: auto;
    width: calc(100% - 4px);
    max-width: calc(100% - 4px);
    height: calc(100% - 4px);
    min-height: 0;
    max-height: calc(100% - 4px);
  }

  [data-window="calendar-day-window"] .calendar-day-window-body {
    height: calc(100% - 34px);
    min-height: 0;
    max-height: calc(100% - 34px);
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }

  [data-window="calendar-day-window"] .calendar-day-window-shell {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  [data-window="calendar-day-window"] .calendar-day-window-map-panel {
    grid-template-rows: auto auto;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  [data-window="calendar-day-window"] .calendar-day-window-map-shell {
    height: clamp(180px, 34dvh, 260px);
    min-height: 180px;
    overflow: hidden;
  }

  [data-window="calendar-day-window"] .calendar-day-window-map {
    min-height: 180px;
  }

  [data-window="calendar-day-window"] .calendar-day-window-rail {
    grid-template-rows: auto auto;
    min-height: 0;
    overflow: visible;
  }

  [data-window="calendar-day-window"] .calendar-day-window-column-card {
    grid-template-rows: auto auto;
    min-height: 0;
    overflow: visible;
  }

  [data-window="calendar-day-window"] .calendar-day-window-list {
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }

  [data-window="home-hub"] .home-summary-list .window-empty--dog-banner {
    gap: 0;
    grid-template-rows: minmax(0, 1fr);
  }

  [data-window="home-hub"] .home-summary-list .window-empty-message {
    display: none;
  }

  [data-window="home-hub"] .home-summary-list .window-empty-banner {
    min-height: 118px;
    max-height: 132px;
    overflow: hidden;
  }

  [data-window="home-hub"] .home-summary-list .window-empty-banner-img {
    object-position: 50% 38%;
  }

  [data-window="home-hub"] .home-summary-list--mobile-cap .window-item:nth-of-type(n + 3) {
    display: none;
  }

  [data-window="home-hub"] .home-summary-list .window-item.event-window-item[data-event-detail] {
    padding: 0.36rem 0.4rem;
    gap: 0.42rem;
  }

  [data-window="home-hub"] .home-summary-list .event-window-item-thumb {
    width: 58px;
    min-width: 58px;
  }

  .window-item:not(.event-listing-card) {
    flex-direction: column;
    align-items: flex-start;
  }

  .window-item:not(.event-listing-card)[data-event-detail] {
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
  }

  .window-item.event-window-item[data-event-detail] {
    align-items: stretch;
  }

  .event-window-item-thumb {
    width: 66px;
    min-width: 66px;
  }

  .window-item.event-listing-card--admin[data-event-detail] {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }

  .event-listing-card-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.28rem;
  }

  .event-listing-card--with-media {
    grid-template-columns: minmax(0, 1fr);
  }

  .event-listing-card-media {
    min-height: 120px;
  }

  .event-listing-card-row,
  .venue-info-card-row,
  .admin-venue-info-card-row {
    grid-template-columns: 1fr;
    gap: 0.08rem;
  }

  .admin-venue-info-card-layout {
    grid-template-columns: 1fr;
  }

  .admin-venue-info-card-media {
    grid-template-columns: 1fr;
  }

  .event-listing-card-action {
    grid-column: 1;
    grid-row: auto;
    align-self: flex-start;
  }

  .venue-card-grid {
    grid-template-columns: 1fr;
  }

  .guestbook-message-item {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.34rem;
    padding: 0.34rem 0.38rem;
  }

  .guestbook-visitor-cta {
    padding: 0.42rem 0.44rem;
    gap: 0.32rem;
  }

  .guestbook-toolbar-note {
    font-size: 0.56rem;
    letter-spacing: 0.05em;
    line-height: 1.24;
  }

  .guestbook-locked-btn {
    width: 100%;
    min-height: 32px;
    padding: 0 0.42rem;
    justify-content: center;
    text-align: center;
    font-size: 0.68rem;
  }

  .guestbook-list {
    padding: 0.3rem 0.28rem 0.28rem 0.36rem;
  }

  .guestbook-message-icon {
    display: block;
    width: 26px;
    height: 26px;
    min-width: 26px;
  }

  .guestbook-message-author {
    font-size: 0.92rem;
  }

  .guestbook-message-time {
    font-size: 0.54rem;
  }

  .guestbook-message-text {
    font-size: 0.76rem;
    line-height: 1.22;
  }

  .window-item-link[data-open-map] {
    width: 66px;
    min-width: 66px;
    height: 66px;
    min-height: 66px;
  }

  .window-item-link[data-open-map] .window-item-link-icon {
    width: 2.2rem !important;
    height: 2.2rem !important;
  }

  .window-content {
    grid-template-columns: 1fr;
    min-height: 0;
    max-height: none;
  }

  .window-sidebar {
    display: none;
  }

  .desktop-window.is-sidebar-open .window-sidebar {
    display: block;
    max-height: 42vh;
  }

  .window-body--sidebar {
    max-height: 42vh;
    overflow: auto;
  }

  .desktop-form-actions,
  .danger-strip {
    flex-direction: column;
    align-items: flex-start;
  }

  .auth-actions {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .admin-nav-shell {
    top: 0;
    padding-bottom: 0.06rem;
  }

  .admin-launcher-grid--stack .window-action-btn {
    min-width: 116px;
    min-height: 40px;
    font-size: 0.67rem;
    padding: 0.4rem 0.54rem;
  }

  .admin-panel-shell {
    left: auto;
    right: auto;
    bottom: auto;
    top: auto;
    width: 100%;
    min-width: 0;
    max-height: none;
    border-radius: 0;
    padding: 0;
  }

  .admin-event-editor-modal {
    padding: calc(var(--header-height) + 0.08rem) 0 0;
  }

  .admin-event-editor-shell {
    width: 100vw;
    max-height: calc(100dvh - var(--header-height) - 0.08rem);
    border-left-width: 0;
    border-right-width: 0;
    border-bottom-width: 0;
    box-shadow: 0 -18px 32px rgba(0, 0, 0, 0.46);
  }

  .admin-event-editor-body {
    padding: 0.3rem 0.3rem calc(0.66rem + env(safe-area-inset-bottom));
  }

  .admin-panel-close-btn {
    min-width: 76px;
  }

  .admin-panel-shell .event-row-admin-actions .row-actions {
    grid-template-columns: 1fr;
  }

  .admin-editor-tab {
    min-height: 36px;
    font-size: 0.68rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
  }
}

@media (max-width: 980px) and (orientation: landscape) {
  :root {
    --mobile-safe-top-inset: max(env(safe-area-inset-top), 0px);
    --header-height: calc(38px + var(--mobile-safe-top-inset));
    --status-header-btn-height: 30px;
    --dock-height: 76px;
  }

  .top-strip {
    height: var(--header-height);
    padding-top: calc(2px + var(--mobile-safe-top-inset));
  }

  .top-strip-inner {
    align-items: flex-start;
    gap: 0.38rem;
  }

  .status-cluster {
    gap: 0.24rem;
  }

  .status-pill {
    min-height: 22px;
    padding: 0 0.34rem;
    font-size: 0.56rem;
    letter-spacing: 0.04em;
  }

  .status-auth-btn,
  .status-time-btn {
    min-height: var(--status-header-btn-height);
  }

  .status-auth-icon {
    width: 20px;
    height: 20px;
    min-width: 20px;
    min-height: 20px;
    max-width: 20px;
    max-height: 20px;
    flex: 0 0 20px;
  }

  .status-time-icon {
    width: 13px;
    height: 13px;
  }

  .desktop-main {
    padding: 0.06rem 0.22rem 0.24rem;
  }

  .desktop-window {
    width: min(var(--window-w, 440px), 92vw);
    max-width: 92vw;
    height: min(var(--window-h, 260px), calc(100% - 6px));
    min-height: min(var(--window-h, 260px), calc(100% - 6px));
    max-height: calc(100% - 6px);
  }

  .desktop-window--main {
    width: min(var(--window-w, 1100px), calc(100% - 4px));
    max-width: calc(100% - 4px);
    height: min(var(--window-h, 260px), calc(100% - 4px));
    min-height: 0;
    max-height: calc(100% - 4px);
  }

  .window-titlebar {
    min-height: 34px;
    padding: 0.18rem 0.36rem;
  }

  .window-titlebar h2 {
    font-size: clamp(0.92rem, 2vw, 1.12rem);
    letter-spacing: 0.04em;
  }

  .window-controls {
    gap: 0.22rem;
  }

  .window-control {
    width: 30px;
    height: 28px;
    font-size: 0.92rem;
  }

  .window-control-icon {
    width: 16px;
    height: 16px;
  }

  [data-window="home-hub"].desktop-window--main {
    left: 2px;
    top: 2px;
    right: 2px;
    bottom: 2px;
    width: auto;
    max-width: none;
    height: auto;
    min-height: 0;
    max-height: none;
  }

  [data-window="home-hub"] .window-body.home-hub-body {
    margin: 0.16rem;
    padding: 0.34rem;
    height: calc(100% - 34px);
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    scrollbar-gutter: stable;
  }

  [data-window="home-hub"] .home-hub-shell {
    grid-template-columns: minmax(0, 1.16fr) minmax(260px, 0.94fr);
    grid-template-rows: minmax(0, 1fr);
    gap: 0.34rem;
    height: auto;
    min-height: 0;
  }

  [data-window="home-hub"] .home-hero-media {
    min-height: clamp(180px, 58vh, 280px);
  }

  [data-window="home-hub"] .home-hero-chip {
    top: 0.52rem;
    left: 0.52rem;
    min-height: 22px;
    padding: 0 0.36rem;
    font-size: 0.52rem;
  }

  [data-window="home-hub"] .home-hero-overlay {
    gap: 0.18rem;
    padding: 0.76rem 0.82rem 0.84rem;
  }

  [data-window="home-hub"] .home-hero-title {
    max-width: 12ch;
    font-size: clamp(1.08rem, 2.5vw, 1.72rem);
  }

  [data-window="home-hub"] .home-hero-kicker,
  [data-window="home-hub"] .home-hero-meta {
    font-size: 0.54rem;
  }

  [data-window="home-hub"] .home-hero-seo-copy {
    display: none;
  }

  [data-window="home-hub"] .home-rail {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 0.34rem;
    min-height: 0;
  }

  [data-window="home-hub"] .home-summary-card {
    min-height: 0;
    padding: 0.4rem;
    gap: 0.24rem;
  }

  [data-window="home-hub"] .home-summary-title {
    font-size: 0.8rem;
  }

  [data-window="home-hub"] .home-summary-sublead,
  [data-window="home-hub"] .home-summary-list .window-item-meta {
    font-size: 0.56rem;
  }

  [data-window="home-hub"] .home-summary-card .window-list.home-summary-list {
    max-height: none;
    padding-right: 0.08rem;
  }

  [data-window="home-hub"] .home-summary-list--mobile-cap .window-item:nth-of-type(n + 3) {
    display: none;
  }

  [data-window="home-hub"] .home-summary-list .window-item.event-window-item[data-event-detail] {
    padding: 0.32rem 0.36rem;
    gap: 0.3rem;
  }

  [data-window="home-hub"] .home-summary-list .event-window-item-thumb {
    width: 48px;
    min-width: 48px;
  }

  [data-window="home-hub"] .home-summary-list .window-item-title {
    font-size: 0.76rem;
  }

  [data-window="calendar-window"].desktop-window.is-maximized {
    left: 3px;
    top: 3px;
    right: auto;
    bottom: auto;
    width: calc(100% - 6px);
    max-width: calc(100% - 6px);
    height: calc(100% - 6px);
    min-height: 0;
    max-height: calc(100% - 6px);
  }

  [data-window="calendar-window"] .calendar-window-shell {
    min-height: calc(100% - 34px);
    height: calc(100% - 34px);
    max-height: none;
  }

  .desktop-window.instagram-window {
    width: min(540px, 78vw);
    max-width: 78vw;
  }

  .desktop-window.about-window {
    width: min(var(--window-w, 520px), 44vw, calc((100dvh - 92px) * 0.6667));
    max-width: 44vw;
  }

  .desktop-window.game-over-window {
    width: min(var(--window-w, 530px), 56vw);
    max-width: 56vw;
    max-height: calc(100% - 8px);
  }

  .event-drawer {
    height: min(calc(100dvh - var(--header-height) - 6px), 420px);
  }

  .dock {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 0 0.14rem max(0.18rem, env(safe-area-inset-bottom));
  }

  .dock-cycle-btn {
    display: none !important;
  }

  .dock-inner {
    justify-content: stretch;
    overflow: visible;
    touch-action: auto;
  }

  .dock-btn {
    flex: 1 1 0;
    width: auto;
    max-width: none;
    height: 54px;
    gap: 0.08rem;
    justify-content: center;
    padding: 0.06rem 0.04rem;
  }

  .dock-icon-img {
    width: 22px;
    height: 22px;
  }

  .dock-label {
    font-size: 0.44rem;
    line-height: 1;
    margin-top: 0;
    min-height: 0.46rem;
  }
}


