:root,
html[data-theme="earth"]{
  color-scheme:dark;
  --text:#f5f7ff;
  --muted:#bcc3da;
  --line:rgba(255,255,255,0.10);
  --line-strong:rgba(255,255,255,0.16);
  --glass:rgba(255,255,255,0.045);
  --glass-2:rgba(255,255,255,0.06);
  --shadow:0 24px 70px rgba(0,0,0,0.42);
  --shadow-soft:0 12px 30px rgba(0,0,0,0.25);

  --bg-main:
    radial-gradient(circle at 50% 118%, rgba(131,86,255,0.50), transparent 42%),
    radial-gradient(circle at 18% 100%, rgba(131,86,255,0.14), transparent 26%),
    radial-gradient(circle at 82% 100%, rgba(131,86,255,0.12), transparent 26%),
    linear-gradient(180deg,#1b1d26 0%, #161821 34%, #14161d 100%);

  --bg-before:
    radial-gradient(circle at 22% 16%, rgba(123,99,255,0.09), transparent 18%),
    radial-gradient(circle at 78% 10%, rgba(129,166,255,0.06), transparent 16%),
    radial-gradient(circle at 50% 34%, rgba(255,255,255,0.025), transparent 22%);

  --bg-after:
    radial-gradient(circle at 50% 100%, rgba(125,82,255,0.18), transparent 34%);

  --menu-bg:rgba(10,15,35,0.96);
  --footer-bg:linear-gradient(to top, rgba(9,11,18,0.92), rgba(9,11,18,0.62));
  --footer-border:rgba(255,255,255,0.08);
  --panel-bg:linear-gradient(180deg, var(--glass-2) 0%, var(--glass) 100%);
  --button-bg:linear-gradient(180deg, var(--glass-2) 0%, var(--glass) 100%);
  --button-hover:linear-gradient(180deg, rgba(255,255,255,0.07) 0%, rgba(255,255,255,0.05) 100%);
  --title-color:#fff;
  --title-small-color:inherit;
  --section-title-color:var(--muted);
  --info-title-color:var(--muted);
  --sparkle:rgba(150,120,255,.72);
  --sparkle-glow:rgba(137,104,255,.7);
  --surface-border:rgba(255,255,255,0.08);
  --input-bg:rgba(255,255,255,0.05);
  --input-focus-bg:rgba(255,255,255,0.07);
  --wallpaper-opacity:0;
  --wallpaper-overlay-opacity:0;
  --wallpaper-blend:normal;
}

html[data-theme="moonlit"]{
  color-scheme:dark;
  --text:#f4efe6;
  --muted:#b7b4c7;
  --line:rgba(195,210,255,0.07);
  --line-strong:rgba(227,210,174,0.12);
  --glass:rgba(8,18,42,0.50);
  --glass-2:rgba(11,24,57,0.68);
  --shadow:0 26px 70px rgba(0,0,0,0.50);
  --shadow-soft:0 14px 32px rgba(0,0,0,0.34);

  --bg-main:linear-gradient(180deg,#040915 0%, #07111f 48%, #0a1424 100%);

  --bg-before:
    radial-gradient(circle at 78% 16%, rgba(247,237,201,0.14) 0 1.2%, transparent 1.4%),
    radial-gradient(circle at 14% 12%, rgba(255,255,255,0.75) 0 0.08%, transparent 0.13%),
    radial-gradient(circle at 21% 22%, rgba(255,255,255,0.55) 0 0.09%, transparent 0.14%),
    radial-gradient(circle at 28% 17%, rgba(255,255,255,0.60) 0 0.07%, transparent 0.12%),
    radial-gradient(circle at 36% 9%, rgba(255,255,255,0.60) 0 0.08%, transparent 0.13%),
    radial-gradient(circle at 47% 14%, rgba(255,255,255,0.55) 0 0.09%, transparent 0.14%),
    radial-gradient(circle at 58% 8%, rgba(255,255,255,0.50) 0 0.07%, transparent 0.12%),
    radial-gradient(circle at 67% 19%, rgba(255,255,255,0.52) 0 0.08%, transparent 0.13%),
    radial-gradient(circle at 86% 9%, rgba(255,255,255,0.55) 0 0.08%, transparent 0.13%),
    radial-gradient(circle at 73% 27%, rgba(255,255,255,0.45) 0 0.08%, transparent 0.13%),
    radial-gradient(circle at 81% 24%, rgba(255,255,255,0.38) 0 0.09%, transparent 0.14%),
    linear-gradient(180deg, rgba(3,7,14,0.02), rgba(3,7,14,0.18));

  --bg-after:
    radial-gradient(ellipse at 74% 28%, rgba(241,203,139,0.12), transparent 18%),
    radial-gradient(ellipse at 77% 36%, rgba(233,154,68,0.10), transparent 16%),
    linear-gradient(to top, rgba(6,11,20,0.18), rgba(6,11,20,0.00) 38%);

  --menu-bg:linear-gradient(180deg, rgba(10,22,51,0.96), rgba(7,15,35,0.96));
  --footer-bg:linear-gradient(to top, rgba(7,13,26,0.96), rgba(8,15,30,0.70));
  --footer-border:rgba(227,210,174,0.10);
  --panel-bg:linear-gradient(180deg, rgba(9,19,42,0.12) 0%, rgba(7,15,34,0.16) 100%);
  --button-bg:linear-gradient(180deg, rgba(35,56,118,0.22) 0%, rgba(15,27,64,0.34) 100%);
  --button-hover:linear-gradient(180deg, rgba(46,71,140,0.28) 0%, rgba(18,33,74,0.42) 100%);
  --title-color:#f1d4a6;
  --title-small-color:#f1d4a6;
  --section-title-color:#f1d4a6;
  --info-title-color:#f1d4a6;
  --sparkle:rgba(255,238,196,.86);
  --sparkle-glow:rgba(255,232,173,.52);
  --surface-border:rgba(182,197,248,0.035);
  --input-bg:rgba(35,56,118,0.22);
  --input-focus-bg:rgba(46,71,140,0.28);
  --wallpaper-opacity:0.90;
  --wallpaper-overlay-opacity:1;
  --wallpaper-blend:screen;
}

html[data-theme="corporo"]{
  color-scheme:light;
  --text:#2f3140;
  --muted:#51546b;
  --line:rgba(150,131,236,0.32);
  --line-strong:rgba(150,131,236,0.52);
  --glass:#93C572;
  --glass-2:#93C572;
  --shadow:0 0 0 rgba(0,0,0,0);
  --shadow-soft:0 0 0 rgba(0,0,0,0);

  --bg-main:linear-gradient(180deg, #BEBFC5 0%, #BEBFC5 100%);
  --bg-before:linear-gradient(180deg, rgba(150,131,236,0.05), rgba(150,131,236,0.00) 42%);
  --bg-after:linear-gradient(180deg, rgba(147,197,114,0.04), rgba(147,197,114,0.00) 44%);

  --menu-bg:#9683EC;
  --footer-bg:#9683EC;
  --footer-border:rgba(47,49,64,0.14);
  --panel-bg:#93C572;
  --button-bg:#9683EC;
  --button-hover:#8c77ee;
  --title-color:#2f3140;
  --title-small-color:#51546b;
  --section-title-color:#2f3140;
  --info-title-color:#2f3140;
  --sparkle:rgba(150,131,236,0);
  --sparkle-glow:rgba(150,131,236,0);
  --surface-border:rgba(150,131,236,0.34);
  --input-bg:rgba(255,255,255,0.34);
  --input-focus-bg:rgba(255,255,255,0.50);
  --wallpaper-opacity:0;
  --wallpaper-overlay-opacity:0;
  --wallpaper-blend:normal;
}


html[data-theme="liquidglass"]{
  color-scheme:dark;
  --text:#f7fcff;
  --muted:#dbeaf4;
  --line:rgba(255,255,255,0.22);
  --line-strong:rgba(255,255,255,0.38);

  /* Near-clear water surfaces */
  --glass:rgba(180,230,255,0.010);
  --glass-2:rgba(205,240,255,0.025);
  --shadow:0 14px 34px rgba(1,14,25,0.12);
  --shadow-soft:0 6px 18px rgba(1,14,25,0.10);

  --bg-main:
    radial-gradient(circle at 16% 12%, rgba(112,205,255,0.16), transparent 24%),
    radial-gradient(circle at 84% 10%, rgba(89,230,218,0.12), transparent 22%),
    radial-gradient(circle at 50% 118%, rgba(85,164,255,0.08), transparent 36%),
    linear-gradient(180deg,#091522 0%, #0b1b2a 46%, #091520 100%);

  /* Small clear droplet highlights rather than haze */
  --bg-before:
    radial-gradient(circle at 14% 19%, rgba(255,255,255,0.30) 0 0.42%, rgba(180,229,255,0.09) 0.60%, transparent 1.45%),
    radial-gradient(circle at 31% 10%, rgba(255,255,255,0.24) 0 0.34%, rgba(169,224,255,0.07) 0.52%, transparent 1.20%),
    radial-gradient(circle at 62% 17%, rgba(255,255,255,0.28) 0 0.38%, rgba(169,224,255,0.08) 0.56%, transparent 1.30%),
    radial-gradient(circle at 84% 25%, rgba(255,255,255,0.20) 0 0.30%, rgba(169,224,255,0.06) 0.47%, transparent 1.10%),
    radial-gradient(circle at 73% 7%, rgba(255,255,255,0.17) 0 0.26%, transparent 0.95%);

  --bg-after:
    radial-gradient(ellipse at 50% 100%, rgba(83,184,246,0.09), transparent 38%);

  --menu-bg:rgba(7,22,35,0.34);
  --footer-bg:linear-gradient(to top, rgba(6,18,29,0.40), rgba(6,18,29,0.18));
  --footer-border:rgba(255,255,255,0.16);

  --panel-bg:
    linear-gradient(145deg, rgba(255,255,255,0.032), rgba(120,205,255,0.006));
  --button-bg:
    linear-gradient(145deg, rgba(255,255,255,0.040), rgba(120,205,255,0.008));
  --button-hover:
    linear-gradient(145deg, rgba(255,255,255,0.075), rgba(120,205,255,0.018));

  --title-color:#fbfeff;
  --title-small-color:rgba(248,253,255,0.96);
  --section-title-color:#e0f2ff;
  --info-title-color:#e0f2ff;
  --sparkle:rgba(218,247,255,.62);
  --sparkle-glow:rgba(130,215,255,.24);
  --surface-border:rgba(255,255,255,0.20);

  --input-bg:rgba(255,255,255,0.018);
  --input-focus-bg:rgba(255,255,255,0.040);

  --wallpaper-opacity:0;
  --wallpaper-overlay-opacity:0;
  --wallpaper-blend:normal;
}

/* Almost no frosting: surfaces remain visibly transparent. */
html[data-theme="liquidglass"] .edu-theme-trigger,
html[data-theme="liquidglass"] .edu-theme-option,
html[data-theme="liquidglass"] .site-footer,
html[data-theme="liquidglass"] .panel,
html[data-theme="liquidglass"] .card,
html[data-theme="liquidglass"] .button,
html[data-theme="liquidglass"] input,
html[data-theme="liquidglass"] select,
html[data-theme="liquidglass"] textarea{
  backdrop-filter:blur(0.8px) saturate(112%);
  -webkit-backdrop-filter:blur(0.8px) saturate(112%);
}

html[data-theme="liquidglass"] .edu-theme-trigger,
html[data-theme="liquidglass"] .edu-theme-option,
html[data-theme="liquidglass"] .panel,
html[data-theme="liquidglass"] .card,
html[data-theme="liquidglass"] .button{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.26),
    inset 0 -1px 0 rgba(78,176,224,0.06),
    0 8px 20px rgba(0,14,25,0.08);
}




/* Gold-trimmed velvet surfaces */







html[data-theme="tilly"]{
  color-scheme:light;
  --text:#000000;
  --muted:#111111;
  --line:#000000;
  --line-strong:#000000;
  --glass:#ffffff;
  --glass-2:#ffffff;
  --shadow:none;
  --shadow-soft:none;
  --bg-main:#8DAB3F;
  --bg-before:none;
  --bg-after:none;
  --menu-bg:#000000;
  --footer-bg:#000000;
  --footer-border:#000000;
  --panel-bg:#ffffff;
  --button-bg:#000000;
  --button-hover:#ffffff;
  --title-color:#000000;
  --title-small-color:#000000;
  --section-title-color:#000000;
  --info-title-color:#000000;
  --sparkle:transparent;
  --sparkle-glow:transparent;
  --surface-border:#000000;
  --input-bg:#ffffff;
  --input-focus-bg:#ffffff;
  --wallpaper-opacity:1;
  --wallpaper-overlay-opacity:0;
  --wallpaper-blend:normal;
}

html[data-theme="tilly"] .edu-theme-trigger,
html[data-theme="tilly"] .edu-theme-option,
html[data-theme="tilly"] .edu-theme-dropdown,
html[data-theme="tilly"] .site-footer,
html[data-theme="tilly"] .panel,
html[data-theme="tilly"] .card,
html[data-theme="tilly"] .button,
html[data-theme="tilly"] input,
html[data-theme="tilly"] select,
html[data-theme="tilly"] textarea{
  border:2px solid #000000;
  border-radius:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

html[data-theme="tilly"] .panel,
html[data-theme="tilly"] .card,
html[data-theme="tilly"] input,
html[data-theme="tilly"] select,
html[data-theme="tilly"] textarea{
  background:#ffffff;
  color:#000000;
}

html[data-theme="tilly"] .button{
  background:#000000;
  color:#ffffff;
}

html[data-theme="tilly"] .button:hover,
html[data-theme="tilly"] .button:focus-visible{
  background:#ffffff;
  color:#000000;
  transform:none;
}

html[data-theme="tilly"] .edu-theme-trigger,
html[data-theme="tilly"] .edu-theme-option{
  background:#ffffff;
  color:#000000;
}

html[data-theme="tilly"] .edu-theme-trigger:hover,
html[data-theme="tilly"] .edu-theme-trigger[aria-expanded="true"],
html[data-theme="tilly"] .edu-theme-option:hover,
html[data-theme="tilly"] .edu-theme-option.is-active{
  background:#8DAB3F;
  color:#000000;
  transform:none;
}

html[data-theme="tilly"] .edu-theme-dropdown{
  background:#000000;
}

html[data-theme="tilly"] .site-footer{
  background:#000000;
  color:#ffffff;
}

html[data-theme="tilly"] body::before{
  background-color:#8DAB3F;
  background-image:var(--tilly-wallpaper-desktop, none);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;
  opacity:1;
  mix-blend-mode:normal;
}

@media (max-width:700px){
  html[data-theme="tilly"] body::before{
    background-image:var(--tilly-wallpaper-mobile, none);
    background-attachment:scroll;
  }
}

/* Per-page NC Sapphire wallpaper infrastructure.
   Each converted index page will define:
   --page-wallpaper-desktop:url("./wallpaperdesktop.png");
   --page-wallpaper-mobile:url("./wallpapermobile.png");
*/
:root{
  --page-wallpaper-desktop:none;
  --page-wallpaper-mobile:none;
  --tilly-wallpaper-desktop:none;
  --tilly-wallpaper-mobile:none;
}

html[data-theme="moonlit"] body::before{
  background-image:
    linear-gradient(rgba(3,8,18,0.22), rgba(3,8,18,0.34)),
    var(--page-wallpaper-desktop);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;
  opacity:var(--wallpaper-opacity, 0.90);
  mix-blend-mode:var(--wallpaper-blend, normal);
}

@media (max-width:700px){
  html[data-theme="moonlit"] body::before{
    background-image:
      linear-gradient(rgba(3,8,18,0.22), rgba(3,8,18,0.34)),
      var(--page-wallpaper-mobile);
    background-attachment:scroll;
  }
}

/* Shared theme picker */
.edu-theme-wrap{
  position:fixed;
  top:14px;
  right:14px;
  z-index:1000;
}

.edu-theme-menu{
  position:relative;
}

.edu-theme-trigger{
  min-height:42px;
  min-width:128px;
  padding:0 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-radius:12px;
  border:1px solid var(--line-strong);
  background:var(--button-bg);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:var(--text);
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:600;
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
}

.edu-theme-trigger:hover,
.edu-theme-trigger[aria-expanded="true"]{
  transform:translateY(-1px);
  background:var(--button-hover);
  border-color:var(--line-strong);
}

.edu-theme-trigger-left{
  display:flex;
  align-items:center;
  gap:8px;
}

.edu-theme-caret{
  font-size:11px;
  line-height:1;
  opacity:.8;
  transition:transform .14s ease;
}

.edu-theme-trigger[aria-expanded="true"] .edu-theme-caret{
  transform:rotate(180deg);
}

.edu-theme-dropdown{
  position:absolute;
  top:48px;
  right:0;
  min-width:168px;
  padding:8px;
  border-radius:14px;
  border:1px solid var(--line-strong);
  background:var(--menu-bg);
  box-shadow:0 18px 40px rgba(0,0,0,0.28);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  display:flex;
  flex-direction:column;
  gap:6px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-4px);
  pointer-events:none;
  transition:opacity .14s ease, transform .14s ease, visibility .14s ease;
}

.edu-theme-menu.is-open .edu-theme-dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}

.edu-theme-option{
  width:100%;
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  padding:0 10px;
  border-radius:12px;
  border:1px solid var(--line-strong);
  background:var(--button-bg);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:var(--text);
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:600;
  text-align:left;
  transition:background .18s ease, border-color .18s ease;
}

.edu-theme-option:hover,
.edu-theme-option.is-active{
  background:var(--button-hover);
  border-color:var(--line-strong);
}

.edu-theme-icon{
  width:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  line-height:1;
  flex:0 0 18px;
}

.edu-theme-label{
  white-space:nowrap;
}

html[data-theme="corporo"] .edu-theme-trigger,
html[data-theme="corporo"] .edu-theme-option{
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:none;
  border-color:#9683EC;
  background:#9683EC;
  color:#fff;
}

html[data-theme="corporo"] .edu-theme-trigger:hover,
html[data-theme="corporo"] .edu-theme-trigger[aria-expanded="true"],
html[data-theme="corporo"] .edu-theme-option:hover,
html[data-theme="corporo"] .edu-theme-option.is-active{
  background:#8c77ee;
  transform:none;
}

@media (max-width:640px){
  .edu-theme-trigger{
    min-width:108px;
    min-height:38px;
    padding:0 10px;
    font-size:11px;
  }

  .edu-theme-dropdown{
    top:44px;
    min-width:152px;
    padding:6px;
  }

  .edu-theme-option{
    min-height:36px;
    padding:0 10px;
    font-size:11px;
    gap:8px;
  }

  .edu-theme-icon{
    width:16px;
    flex-basis:16px;
    font-size:12px;
  }
}


.edu-theme-wrap,
.edu-theme-menu,
.edu-theme-trigger,
.edu-theme-dropdown,
.edu-theme-option{
  pointer-events:auto;
}

.edu-theme-wrap{
  z-index:2147483000;
}

.edu-theme-trigger{
  position:relative;
  z-index:2;
}

.edu-theme-dropdown{
  z-index:3;
}


/* Tilly contrast fixes for dark navigation and bookmark controls. */
html[data-theme="tilly"] .bookmark-chip,
html[data-theme="tilly"] .bookmark-menu button,
html[data-theme="tilly"] .theme-trigger,
html[data-theme="tilly"] .theme-option,
html[data-theme="tilly"] .nav-toggle,
html[data-theme="tilly"] .menu-toggle,
html[data-theme="tilly"] .hamburger,
html[data-theme="tilly"] .page-nav-button,
html[data-theme="tilly"] .page-nav-back,
html[data-theme="tilly"] .edu-page-nav-button,
html[data-theme="tilly"] [class*="page-nav"] button,
html[data-theme="tilly"] [class*="page-nav"] a,
html[data-theme="tilly"] [class*="back-button"],
html[data-theme="tilly"] [class*="home-button"]{
  color:#ffffff !important;
}

html[data-theme="tilly"] .bookmark-chip:hover,
html[data-theme="tilly"] .bookmark-chip:focus-visible,
html[data-theme="tilly"] .bookmark-menu button:hover,
html[data-theme="tilly"] .bookmark-menu button:focus-visible{
  background:#ffffff !important;
  color:#000000 !important;
}

html[data-theme="tilly"] .bookmark-add,
html[data-theme="tilly"] .bookmark-title,
html[data-theme="tilly"] .bookmark-empty,
html[data-theme="tilly"] .level-chip,
html[data-theme="tilly"] .board-chip,
html[data-theme="tilly"] .subject-chip,
html[data-theme="tilly"] .tier-button{
  color:#000000 !important;
}

html[data-theme="tilly"] .level-chip.is-active,
html[data-theme="tilly"] .board-chip.is-active,
html[data-theme="tilly"] .subject-chip.is-active,
html[data-theme="tilly"] .tier-button[aria-selected="true"]{
  background:#000000 !important;
  color:#ffffff !important;
  border-color:#000000 !important;
}


/* Tilly wallpaper must remain crisp and completely unblurred. */
html[data-theme="tilly"] body::before,
html[data-theme="tilly"] body::after{
  filter:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

html[data-theme="tilly"] body::before{
  transform:none !important;
}


/* Keep NC Sapphire wallpapers crisp and completely unblurred. */
html[data-theme="moonlit"] body::before,
html[data-theme="moonlit"] body::after{
  filter:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

html[data-theme="moonlit"] body::before{
  transform:none !important;
}

/* Notting Hill / Mandeley. Scoped editorial layout and controls. */
html[data-theme="nottinghill"] {
  color-scheme: dark;
  --text: #f2f2ef;
  --muted: #b5b5b3;
  --line: #363636;
  --line-strong: #858583;
  --glass: #000;
  --glass-2: #000;
  --shadow: none;
  --shadow-soft: none;
  --bg-main: #000;
  --bg-before: none;
  --bg-after: none;
  --menu-bg: #000;
  --footer-bg: #000;
  --footer-border: #292929;
  --panel-bg: #000;
  --button-bg: #000;
  --button-hover: #181818;
  --title-color: #f2f2ef;
  --title-small-color: #b5b5b3;
  --section-title-color: #f2f2ef;
  --info-title-color: #f2f2ef;
  --sparkle: transparent;
  --sparkle-glow: transparent;
  --surface-border: #363636;
  --input-bg: #000;
  --input-focus-bg: #101010;
  --wallpaper-opacity: 0;
  --wallpaper-overlay-opacity: 0;
  --wallpaper-blend: normal;
  background: #000;
}
html[data-theme="nottinghill"] body {
  background: #000;
  color: var(--text);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.55;
}
html[data-theme="nottinghill"] :is(body::before, body::after, .noise, .sparkles, .media-noise) { display: none; }
html[data-theme="nottinghill"] :is(h1, h2, .title, .media-title, .service-title, .media-section-title) {
  font-family: "Baskerville", "Iowan Old Style", "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: .015em;
  text-transform: none;
  text-shadow: none;
  color: var(--title-color);
  line-height: 1.16;
}
html[data-theme="nottinghill"] :is(h1, .title, .media-title) { font-size: clamp(36px, 5vw, 64px); }
html[data-theme="nottinghill"] :is(h2, .service-title, .media-section-title) { font-size: clamp(27px, 3vw, 38px); }
html[data-theme="nottinghill"] :is(button, .big-button, .connect-button, .info-button, .media-card, .media-episode-link, .media-icon-button, .edu-theme-trigger, .edu-theme-dropdown, .media-nav-menu, .service-column, .updates-box, .update-entry, input:not([type="radio"]):not([type="checkbox"]):not([type="range"]), select, textarea) {
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
html[data-theme="nottinghill"] :is(button, .big-button, .connect-button, .info-button, .media-episode-link, input:not([type="radio"]):not([type="checkbox"]):not([type="range"]), select, textarea) {
  background: #000;
  border: 1px solid var(--line-strong);
  color: var(--text);
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: .035em;
}
html[data-theme="nottinghill"] :is(button, .big-button, .connect-button, .info-button, .media-episode-link) {
  min-height: 44px;
  font-weight: 400;
}
html[data-theme="nottinghill"] :is(button, .big-button, .connect-button, .info-button, .media-card, .media-episode-link):hover {
  background: #181818;
  border-color: #f2f2ef;
  transform: none;
}
html[data-theme="nottinghill"] :is(button, a, input, select, textarea):focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}
html[data-theme="nottinghill"] :is(input[type="radio"], input[type="checkbox"], input[type="range"]) { accent-color: #eee; }
html[data-theme="nottinghill"] :is(button:disabled, input:disabled) { opacity: .45; }
html[data-theme="nottinghill"] .edu-theme-dropdown { width: min(310px, calc(100vw - 36px)); background: #000; border: 1px solid #858583; }
html[data-theme="nottinghill"] .edu-theme-option { border: 0; text-align: left; }
html[data-theme="nottinghill"] .edu-theme-option.is-active { background: #eee; color: #000; }
html[data-theme="nottinghill"] .top-actions {
  position: relative;
  inset: auto;
  width: 100%;
  padding: 22px clamp(18px, 4vw, 56px);
  justify-content: flex-end;
  border-bottom: 1px solid #292929;
  background: #000;
}
html[data-theme="nottinghill"] .site-logo { width: min(240px, 60vw); margin: 0 auto 64px; filter: none; }
html[data-theme="nottinghill"] .services-grid { gap: 44px; }
html[data-theme="nottinghill"] .service-column { background: #000; border: 0; padding: 0; }
html[data-theme="nottinghill"] .service-title { margin-bottom: 28px; padding: 0; }
html[data-theme="nottinghill"] .button-stack { gap: 16px; }
html[data-theme="nottinghill"] .big-button { padding: 22px 20px; }
html[data-theme="nottinghill"] .button-title { font-weight: 400; letter-spacing: .025em; }
html[data-theme="nottinghill"] .button-context { color: #b5b5b3; line-height: 1.55; }
html[data-theme="nottinghill"] .media-topbar { background: #000; border-bottom: 1px solid #292929; backdrop-filter: none; }
html[data-theme="nottinghill"] .media-hero { text-align: left; padding-block: 48px; }
html[data-theme="nottinghill"] .media-grid { gap: 28px; }
html[data-theme="nottinghill"] .media-card { background: #000; border: 1px solid #858583; padding: 28px; }
html[data-theme="nottinghill"] .media-card-title { font-family: Baskerville, "Times New Roman", serif; font-weight: 400; font-size: 28px; }
html[data-theme="nottinghill"] .site-footer { background: #000; border-top: 1px solid #292929; box-shadow: none; backdrop-filter: none; }
@media (max-width: 700px) {
  html[data-theme="nottinghill"] .services-grid { grid-template-columns: minmax(0, 1fr); gap: 42px; }
  html[data-theme="nottinghill"] .top-actions { padding: 18px; gap: 8px; }
  html[data-theme="nottinghill"] .site-logo { margin-bottom: 42px; }
  html[data-theme="nottinghill"] .media-hero { padding-block: 32px; }
}

/* Shared EDU, directory and planner surfaces. */
html[data-theme="nottinghill"] :is(.panel, .card, .button, .account-button, .account-chip, .theme-trigger, .theme-menu, .bookmark-menu, .bookmark-chip, .info-box, .gradecalc-card, .gradecalc-boundaries-card, .gradecalc-gradepanel, .hero-card, .calendar-preview, .dialog, .ui-dialog, .countdown-card, .timetable-plan, .edu-resource-search, .edu-resource-suggestion-box, .subject-rail-shell, .board-rail-shell, .level-rail-shell, .bookmark-rail-shell) {
  background: #000;
  color: var(--text);
  border-radius: 0;
  border-color: var(--line);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
html[data-theme="nottinghill"] :is(.button, .account-button, .account-chip, .bookmark-chip, .theme-trigger, .edu-page-nav-back, .edu-page-nav-home) {
  border: 1px solid var(--line-strong);
  border-radius: 0;
  background: #000;
  color: var(--text);
  box-shadow: none;
  min-height: 44px;
  font-weight: 400;
  text-shadow: none;
  letter-spacing: .025em;
}
html[data-theme="nottinghill"] :is(.button, .account-button, .account-chip, .bookmark-chip):hover { background: #181818; border-color: #eee; transform: none; }
html[data-theme="nottinghill"] :is(.button.primary, button.primary, .edu-resource-open, .chemsearch-submit) { background: #eee; color: #000; border-color: #eee; }
html[data-theme="nottinghill"] :is(.button.primary, button.primary, .edu-resource-open, .chemsearch-submit):hover { background: #ccc; color: #000; }
html[data-theme="nottinghill"] :is(.level-chip, .board-chip, .subject-chip, .tier-button).is-active { background: #eee; color: #000; }
html[data-theme="nottinghill"] :is(.section-title, .gradecalc-card-title, .dialog-heading, .ui-dialog h2) {
  font-family: Baskerville, "Iowan Old Style", "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: .015em;
  text-transform: none;
  color: var(--text);
}
html[data-theme="nottinghill"] :is(.ambient, .results-glow, .subject-indicator) { display: none; }
html[data-theme="nottinghill"] :is(.edu-theme-label, .edu-theme-option) { white-space: normal; }
html[data-theme="nottinghill"] :is(.theme-menu, .edu-theme-dropdown) { min-width: min(310px, calc(100vw - 36px)); max-width: calc(100vw - 36px); }
html[data-theme="nottinghill"] .site-header { background: #000; border-bottom: 1px solid #292929; border-radius: 0; backdrop-filter: none; }
html[data-theme="nottinghill"] .hero-card { padding: clamp(24px, 5vw, 64px); }
html[data-theme="nottinghill"] .hero-copy h1 { max-width: 20ch; }
html[data-theme="nottinghill"] :is(.eyebrow, .media-eyebrow, .caption, .section-intro) { color: #b5b5b3; }
html[data-theme="nottinghill"] .card { padding: clamp(20px, 3vw, 36px); }
html[data-theme="nottinghill"] .button-grid { gap: 16px; }
html[data-theme="nottinghill"] .button { padding: 16px 20px; }
html[data-theme="nottinghill"] .section { margin-top: 36px; }
html[data-theme="nottinghill"] .site-footer { position: relative; inset: auto; margin-top: 48px; }
/* Homepage hierarchy: compact identity, editorial service sections, subdued clock. */
html[data-theme="nottinghill"] .page:has(> .center) { min-height: auto; align-items: flex-start; padding: 48px 24px 24px; }
html[data-theme="nottinghill"] .center { display: flex; flex-direction: column; align-items: center; }
html[data-theme="nottinghill"] .center > .site-logo { order: -1; width: 180px; margin-bottom: 56px; }
html[data-theme="nottinghill"] .center > .local-clock { order: 2; margin: 56px auto 0; }
html[data-theme="nottinghill"] .local-clock::after { display: none; }
html[data-theme="nottinghill"] .local-clock-time { font-size: 20px; font-weight: 400; letter-spacing: .06em; }
html[data-theme="nottinghill"] .local-clock-date { font-size: 10px; color: #b5b5b3; }
html[data-theme="nottinghill"] .top-actions .info-button { margin-right: auto; }
@media (max-width: 700px) {
  html[data-theme="nottinghill"] .page:has(> .center) { padding: 36px 18px 20px; }
  html[data-theme="nottinghill"] .center > .site-logo { width: 140px; margin-bottom: 42px; }
  html[data-theme="nottinghill"] .media-grid { grid-template-columns: minmax(0, 1fr); }
}
/* Page-specific components that set their own geometry or accent fills. */
html[data-theme="nottinghill"] :is(.edu-page-nav, .info-icon, .media-card-arrow, .media-accordion, .official-strip, .empty-state, .prediction-editor, .bookmark-filter, .privacy-badge, .save-state, .plan-letter, .panic-mark, .brand-mark, .live-pill, .count-pill, .preview-grid, .toast, .account-callout, .calendar-shell, .calendar-toolbar, .feed-card, .event-menu, .all-day-event) {
  border-radius: 0;
  background-color: #000;
  background-image: none;
  border-color: #555;
  box-shadow: none;
  color: var(--text);
}
html[data-theme="nottinghill"] :is(input:not([type="radio"]):not([type="checkbox"]):not([type="range"]), select, textarea) { border-radius: 0 !important; }
html[data-theme="nottinghill"] .preview-grid { background-image: linear-gradient(to right, transparent calc(100% - 1px), #363636 1px), linear-gradient(to bottom, transparent calc(12.5% - 1px), #363636 1px); }
html[data-theme="nottinghill"] :is(.preview-grid i, .calendar-event, .all-day-event) { border-radius: 0; box-shadow: none; }
html[data-theme="nottinghill"] .preview-grid i { background: #444; border-color: #999; }
html[data-theme="nottinghill"] .preview-grid i.private { background: repeating-linear-gradient(135deg, #333 0 6px, #111 6px 12px); border-color: #999; }
html[data-theme="nottinghill"] :is(.button-context, .top-actions .edu-theme-trigger) { font-weight: 400; }
