:root {
  color-scheme: dark;
  --ink: #f7f7f2;
  --muted: #bdc7c1;
  --quiet: #89958f;
  --canvas: #07100c;
  --surface: rgba(9, 18, 14, .82);
  --surface-strong: rgba(6, 13, 10, .96);
  --surface-soft: rgba(255, 255, 255, .065);
  --line: rgba(255, 255, 255, .15);
  --line-strong: rgba(255, 255, 255, .28);
  --accent: #e4c56d;
  --accent-ink: #11150f;
  --focus: #fff3b8;
  --richard: #78b98b;
  --kate: #c7a5e8;
  --rhys: #91d4f1;
  --danger: #ff9999;
  --success: #8ed3a2;
  --shadow: 0 28px 80px rgba(0, 0, 0, .4);
  --radius-sm: .75rem;
  --radius-md: 1.15rem;
  --radius-lg: 1.65rem;
  --rail-width: 8.5rem;
  --rail-gutter: 1rem;
  --header-height: 5.5rem;
  --content-width: 92rem;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

body[data-theme="family"] {
  --accent: #f2bd70;
  --accent-ink: #241506;
  --theme-glow: rgba(215, 104, 149, .34);
  --theme-wash: linear-gradient(120deg, rgba(24, 58, 88, .78), rgba(105, 48, 107, .6) 48%, rgba(180, 85, 58, .42));
}

body[data-theme="richard"] {
  --accent: #94d2a6;
  --accent-ink: #08130c;
  --theme-glow: rgba(53, 133, 78, .32);
  --theme-wash: linear-gradient(118deg, rgba(4, 27, 17, .89), rgba(14, 64, 38, .7) 48%, rgba(17, 45, 33, .62));
}

body[data-theme="kate"] {
  --accent: #d2b5ef;
  --accent-ink: #1b1025;
  --theme-glow: rgba(151, 96, 196, .34);
  --theme-wash: linear-gradient(118deg, rgba(29, 14, 38, .88), rgba(87, 48, 113, .72) 48%, rgba(55, 31, 75, .64));
}

body[data-theme="rhys"] {
  --accent: #a8e0f7;
  --accent-ink: #07171f;
  --theme-glow: rgba(91, 175, 214, .35);
  --theme-wash: linear-gradient(118deg, rgba(7, 27, 38, .88), rgba(30, 91, 119, .7) 48%, rgba(23, 54, 70, .62));
}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 20rem; scroll-behavior: smooth; }
body {
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  background: var(--canvas);
  color: var(--ink);
  font-family: "Segoe UI", Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
body.drawer-open { overflow: hidden; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
img { max-width: 100%; }
[hidden] { display: none !important; }

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 1rem;
  left: 1rem;
  padding: .65rem .9rem;
  transform: translateY(-200%);
  background: var(--ink);
  color: var(--canvas);
}
.skip-link:focus { transform: translateY(0); }

.media-wall,
.theme-wash {
  position: fixed;
  inset: 0;
  pointer-events: none;
}

.media-wall {
  z-index: -3;
  inset: -3rem;
  display: grid;
  overflow: hidden;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: calc((100vh + 6rem) / 7);
  grid-auto-flow: dense;
  gap: 4px;
  background: #050806;
  filter: saturate(.7) contrast(1.04);
  animation: media-breathe 36s ease-in-out infinite alternate;
}

.media-tile { position: relative; display: block; min-width: 0; overflow: hidden; background-color: #26362e; background-size: cover; }
.media-tile::before,
.media-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0;
  transition: opacity 4.5s ease-in-out;
}
.media-tile::before { background-image: var(--photo-current); }
.media-tile::after { background-image: var(--photo-next); }
.media-tile.has-photo::before { opacity: .62; }
.media-tile.has-photo.is-photo-changing::before { opacity: 0; }
.media-tile.has-photo.is-photo-changing::after { opacity: .62; }
.media-tile.mosaic-wide { grid-column: span 2; }
.media-tile.mosaic-tall { grid-row: span 2; }
.media-tile.mosaic-feature { grid-column: span 2; grid-row: span 2; }
.tile-01 { background: radial-gradient(circle at 62% 35%, #dbc79b 0 7%, transparent 8%), linear-gradient(140deg, #5e774a, #18281c 55%, #826c41); }
.tile-02 { background: radial-gradient(circle at 65% 45%, rgba(241, 210, 147, .55), transparent 20%), linear-gradient(120deg, #34283b, #8e5d65 52%, #1e3941); }
.tile-03 { background: radial-gradient(circle at 28% 35%, rgba(255, 222, 176, .6), transparent 13%), linear-gradient(145deg, #7c6546, #362d42 54%, #192823); }
.tile-04 { background: linear-gradient(24deg, transparent 46%, rgba(255,255,255,.12) 47% 49%, transparent 50%), linear-gradient(135deg, #173c3a, #6c8164); }
.tile-05 { background: radial-gradient(circle at 40% 38%, rgba(237,204,144,.55), transparent 17%), linear-gradient(125deg, #4f2b2f, #b27b5a); }
.tile-06 { background: linear-gradient(135deg, rgba(255,255,255,.08) 25%, transparent 25% 50%, rgba(255,255,255,.08) 50% 75%, transparent 75%), linear-gradient(120deg, #214a53, #4a2e60); background-size: 5rem 5rem, cover; }
.tile-07 { background: radial-gradient(circle at 70% 30%, rgba(255,226,170,.45), transparent 16%), linear-gradient(150deg, #1e4931, #8c5d3c 58%, #30283d); }
.tile-08 { background: linear-gradient(45deg, rgba(255,255,255,.11) 25%, transparent 25% 75%, rgba(255,255,255,.11) 75%), #5d3e5d; background-size: 3rem 3rem; }
.tile-09 { background: radial-gradient(circle, #d2aa67 0 9%, transparent 10%), linear-gradient(135deg, #29433c, #785a3c); }
.tile-10 { background: linear-gradient(110deg, #142b3c, #577d7c 45%, #8e6555); }

.theme-wash {
  z-index: -2;
  background: var(--theme-wash), linear-gradient(180deg, rgba(3, 8, 6, .22), rgba(3, 8, 6, .93));
  transition: background .6s var(--ease);
}

.theme-wash::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 70% 35%, var(--theme-glow), transparent 38%);
}

.container { width: min(var(--content-width), calc(100% - 4rem)); margin-inline: auto; }
.narrow { width: min(58rem, calc(100% - 4rem)); margin-inline: auto; }

.site-header {
  position: relative;
  z-index: 30;
  min-height: var(--header-height);
  border-bottom: 0;
  background: transparent;
  backdrop-filter: none;
}

.shell-header {
  display: flex;
  width: 100%;
  min-height: var(--header-height);
  padding-inline: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.is-signed-in .shell-header { width: 100%; padding-left: clamp(1.5rem, 4vw, 4rem); }

.brand { display: inline-flex; align-items: center; text-decoration: none; }
.brand-copy { display: grid; line-height: 1.15; }
.brand-copy strong {
  text-shadow: 0 .2rem 1.2rem rgba(0,0,0,.8);
  text-transform: uppercase;
  font-size: clamp(1.05rem, 1.45vw, 1.45rem);
  letter-spacing: .34em;
}

.header-actions { display: flex; align-items: center; gap: 1.35rem; filter: drop-shadow(0 .2rem .75rem rgba(0,0,0,.72)); }
.header-sign-in { color: var(--muted); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.header-sign-in:hover { color: var(--ink); }

.avatar-frame {
  display: block;
  width: var(--avatar-size);
  min-width: var(--avatar-size);
  height: var(--avatar-size);
  min-height: var(--avatar-size);
  flex: 0 0 var(--avatar-size);
  overflow: hidden;
  border-radius: 50%;
}
.avatar-frame > img {
  display: block;
  width: 100%;
  min-width: 100%;
  height: 100%;
  min-height: 100%;
  border-radius: inherit;
  object-fit: cover;
  object-position: 50% 50%;
}

.identity-chip { display: flex; align-items: center; gap: .7rem; text-decoration: none; }
.identity-avatar {
  --avatar-size: 2.35rem;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
  border-radius: 50%;
  background: var(--accent);
  color: var(--accent-ink);
  font-size: .68rem;
  font-weight: 900;
}
.identity-chip > span:last-child { display: grid; line-height: 1.1; }
.identity-chip small { color: var(--quiet); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.identity-chip strong { margin-top: .22rem; font-size: .88rem; }

.menu-button {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding: .65rem 0 .65rem .85rem;
  border: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .72rem;
  font-weight: 900;
}
.menu-icon { display: grid; width: 1.25rem; gap: .24rem; }
.menu-icon i { display: block; width: 100%; height: 2px; background: currentColor; transition: transform .25s var(--ease); }
.menu-button:hover .menu-icon i:nth-child(2) { transform: translateX(-.28rem); }

.people-rail {
  position: fixed;
  z-index: 25;
  inset: calc(var(--header-height) + var(--rail-gutter)) auto var(--rail-gutter) var(--rail-gutter);
  display: flex;
  width: var(--rail-width);
  padding: 1.65rem .75rem;
  flex-direction: column;
  align-items: stretch;
  gap: .7rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(7, 13, 12, .92), rgba(7, 10, 14, .86));
  box-shadow: 1.2rem 0 3rem rgba(0,0,0,.18);
  backdrop-filter: blur(22px);
}
.people-rail-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}
.person-rail-button {
  --person-color: var(--richard);
  position: relative;
  display: flex;
  min-height: 9.5rem;
  padding: 1rem .4rem .85rem;
  border: 0;
  border-left: 2px solid transparent;
  border-radius: var(--radius-md);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s var(--ease);
}
.person-kate { --person-color: var(--kate); }
.person-rhys { --person-color: var(--rhys); }
.person-rail-button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -.95rem;
  width: 1rem;
  height: 1.65rem;
  opacity: 0;
  background: var(--person-color);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  transform: translate(-.35rem, -50%);
  transition: opacity .2s ease, transform .25s var(--ease);
}
.person-rail-button:hover { color: var(--ink); background: rgba(255,255,255,.045); transform: translateY(-2px); }
.person-rail-button.is-current,
.person-rail-button.is-selected {
  border-left-color: var(--person-color);
  background: linear-gradient(90deg, color-mix(in srgb, var(--person-color) 15%, transparent), rgba(255,255,255,.035));
  color: var(--person-color);
}
.person-rail-button.is-selected::after { opacity: 1; transform: translate(0, -50%); }
.person-avatar {
  --avatar-size: 4.25rem;
  position: relative;
  padding: 3px;
  border: 1px solid color-mix(in srgb, var(--person-color) 78%, white 10%);
  border-radius: 50%;
  background: rgba(7, 12, 10, .9);
  box-shadow: 0 0 0 .2rem rgba(255,255,255,.04), 0 .65rem 1.5rem rgba(0,0,0,.35);
}
.person-status {
  position: absolute;
  right: -.08rem;
  bottom: .25rem;
  width: .75rem;
  aspect-ratio: 1;
  border: 2px solid #111612;
  border-radius: 50%;
  background: var(--person-color);
  box-shadow: 0 0 .8rem color-mix(in srgb, var(--person-color) 75%, transparent);
}
.person-name { font-size: .88rem; font-weight: 760; letter-spacing: .015em; }
.person-accent { width: 2rem; height: 2px; border-radius: 1rem; background: var(--person-color); opacity: .85; }

.site-main { position: relative; z-index: 1; min-height: calc(100vh - var(--header-height)); }
.site-main.with-people-rail, .site-footer.with-people-rail { padding-left: calc(var(--rail-width) + var(--rail-gutter)); }

.home-dashboard,
.public-home {
  width: min(var(--content-width), calc(100% - 5rem));
  min-height: calc(100vh - var(--header-height));
  margin-inline: auto;
}

.home-dashboard { display: flex; padding: clamp(3.5rem, 7vw, 7rem) 0 3rem; flex-direction: column; justify-content: center; }
.dashboard-heading { max-width: 62rem; margin-bottom: clamp(2.8rem, 5vw, 5rem); }
.overline,
.eyebrow {
  margin: 0 0 .9rem;
  color: var(--accent);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.dashboard-heading h1,
.public-home h1 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(3.4rem, 7.8vw, 8rem);
  font-weight: 760;
  letter-spacing: -.065em;
  line-height: .88;
}
.dashboard-heading h1 span,
.public-home h1 span { display: block; color: var(--accent); font-weight: 330; }
.dashboard-lead { max-width: 52rem; margin: 1.6rem 0 0; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.2rem); }

.dashboard-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(19rem, .75fr); gap: 1rem; }
.dashboard-stack { display: grid; gap: 1rem; }
.feature-panel,
.public-access-panel {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow);
  backdrop-filter: blur(20px);
}
.feature-panel::before,
.public-access-panel::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--accent);
}
.today-panel { display: flex; min-height: 27rem; padding: clamp(2rem, 4vw, 4rem); align-items: flex-end; }
.panel-copy { max-width: 36rem; }
.panel-index {
  position: absolute;
  top: 1.25rem;
  right: 1.4rem;
  color: rgba(255,255,255,.22);
  font-size: clamp(2rem, 4vw, 4rem);
  font-weight: 260;
  letter-spacing: -.04em;
  line-height: 1;
}
.feature-panel h2, .public-access-panel h2 { max-width: 15ch; margin: 0 0 1rem; font-size: clamp(1.65rem, 3vw, 3rem); line-height: 1; letter-spacing: -.035em; }
.feature-panel p:not(.overline), .public-access-panel p:not(.overline) { max-width: 48ch; margin: 0; color: var(--muted); }
.compact-panel { min-height: 13rem; padding: 1.6rem 5rem 1.6rem 1.8rem; }
.compact-panel h2 { font-size: clamp(1.4rem, 2.1vw, 2rem); }
.media-panel { background: linear-gradient(135deg, rgba(10,24,17,.9), rgba(51,64,48,.72)); }

.button-row { display: flex; margin-top: 1.7rem; flex-wrap: wrap; align-items: center; gap: .7rem; }
.button {
  display: inline-flex;
  min-height: 2.9rem;
  padding: .72rem 1rem;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-weight: 850;
  letter-spacing: .02em;
  line-height: 1.2;
  text-decoration: none;
}
.button.primary { background: var(--accent); color: var(--accent-ink); }
.button.primary:hover { filter: brightness(1.08); }
.button.secondary { border-color: var(--line-strong); background: rgba(255,255,255,.035); }
.button.secondary:hover { border-color: var(--accent); background: rgba(255,255,255,.08); }
.button.danger { background: var(--danger); color: #260808; }
.button.small { min-height: 2.25rem; padding: .45rem .7rem; font-size: .82rem; }
.button.text-button { min-height: auto; padding: .5rem; border: 0; color: var(--accent); }
.arrow-link { display: inline-flex; margin-top: 1.25rem; align-items: center; gap: .6rem; color: var(--accent); font-weight: 850; text-decoration: none; }
.arrow-link span { transition: transform .2s ease; }
.arrow-link:hover span { transform: translateX(.35rem); }

.activity-strip { display: flex; margin-top: 1rem; padding: 1rem 1.25rem; flex-wrap: wrap; gap: 1rem 2rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: rgba(4, 10, 7, .62); color: var(--muted); font-size: .78rem; letter-spacing: .04em; }
.activity-strip span { display: inline-flex; align-items: center; gap: .55rem; }
.status-light { width: .45rem; aspect-ratio: 1; border-radius: 50%; background: var(--quiet); }
.status-light.online { background: var(--success); box-shadow: 0 0 .7rem rgba(142, 211, 162, .75); }

.public-home { display: grid; padding: clamp(4rem, 9vw, 9rem) 0 5rem; grid-template-columns: minmax(0, 1.15fr) minmax(19rem, .55fr); align-items: center; gap: clamp(3rem, 8vw, 9rem); }
.public-home-copy > p:not(.overline) { max-width: 38rem; margin: 1.6rem 0 0; color: var(--muted); font-size: clamp(1.05rem, 2vw, 1.3rem); }
.public-access-panel { padding: 6rem 2rem 2rem; }
.public-access-panel .button-row { display: grid; align-items: start; }

.drawer {
  position: fixed;
  z-index: 100;
  top: 0;
  bottom: 0;
  display: flex;
  width: min(30rem, calc(100vw - 1rem));
  padding: 2rem;
  border-radius: var(--radius-lg) 0 0 var(--radius-lg);
  flex-direction: column;
  background: var(--surface-strong);
  box-shadow: var(--shadow);
  visibility: hidden;
  transition: transform .42s var(--ease), visibility .42s;
}
.drawer[aria-hidden="false"] { visibility: visible; transform: translateX(0); }
.site-menu-drawer { right: 0; border-left: 1px solid var(--line); transform: translateX(105%); }
.person-drawer {
  top: calc(var(--header-height) + 1.2rem);
  bottom: auto;
  left: calc(var(--rail-width) + var(--rail-gutter) + .8rem);
  width: min(22rem, calc(100vw - var(--rail-width) - 2rem));
  max-height: calc(100vh - var(--header-height) - 2.4rem);
  padding: 1.45rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: linear-gradient(155deg, rgba(18, 21, 23, .98), rgba(11, 12, 18, .96));
  box-shadow: 0 2rem 6rem rgba(0,0,0,.58), inset 0 1px rgba(255,255,255,.035);
  transform: translateX(calc(-100% - var(--rail-width) - 2rem));
}
.person-drawer[data-active-person="richard"] { --drawer-accent: var(--richard); }
.person-drawer[data-active-person="kate"] { --drawer-accent: var(--kate); }
.person-drawer[data-active-person="rhys"] { --drawer-accent: var(--rhys); }
.person-drawer .overline { color: var(--drawer-accent); }

.drawer-header { display: flex; padding-bottom: 1.4rem; border-bottom: 1px solid var(--line); align-items: flex-start; justify-content: space-between; gap: 1rem; }
.drawer-header h2 { margin: 0; font-size: 2.3rem; letter-spacing: -.045em; }
.drawer-close { width: 2.75rem; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--ink); cursor: pointer; font-size: 1.8rem; line-height: 1; }
.drawer-close:hover { border-color: var(--accent); }
.drawer-navigation { overflow-y: auto; padding: 1.7rem 0; }
.drawer-navigation section + section { margin-top: 2rem; }
.drawer-navigation h3 { margin: 0 0 .65rem; color: var(--quiet); font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; }
.drawer-navigation a { display: flex; padding: .72rem 0; border-bottom: 1px solid rgba(255,255,255,.07); align-items: baseline; gap: 1rem; font-size: 1.1rem; font-weight: 720; text-decoration: none; }
.drawer-navigation a span { width: 1.5rem; color: var(--accent); font-size: .62rem; letter-spacing: .1em; }
.drawer-navigation a:hover { color: var(--accent); }
.drawer-footer { display: flex; margin-top: auto; padding-top: 1.25rem; border-top: 1px solid var(--line); flex-wrap: wrap; gap: .7rem; }
.drawer-footer form { margin: 0; }

.drawer-backdrop { position: fixed; z-index: 90; inset: 0; width: 100%; border: 0; background: rgba(0,0,0,.64); cursor: default; backdrop-filter: blur(3px); }
body.drawer-open .people-rail { z-index: 95; }

.person-drawer-header { padding-bottom: 1rem; }
.person-drawer-identity { display: flex; min-width: 0; align-items: center; gap: .85rem; }
.person-drawer-identity .overline { margin-bottom: .2rem; }
.person-drawer-identity h2 { font-size: 1.6rem; }
.drawer-person-avatar { --avatar-size: 3.4rem; border: 1px solid color-mix(in srgb, var(--drawer-accent) 68%, white 10%); }
.person-summary { overflow-y: auto; padding: .25rem 0; }
.summary-grid { display: grid; }
.summary-grid article { display: grid; min-height: auto; padding: 1rem .15rem; border-bottom: 1px solid rgba(255,255,255,.1); grid-template-columns: 1.65rem 1fr; align-items: start; gap: .75rem; background: transparent; }
.summary-grid article > i { color: var(--drawer-accent); font-size: 1rem; font-style: normal; line-height: 1.25; text-align: center; }
.summary-grid article > div > span { display: block; margin-bottom: .25rem; color: var(--drawer-accent); font-size: .61rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.summary-grid strong { display: block; font-size: .9rem; line-height: 1.25; }
.summary-grid p { margin: .25rem 0 0; color: var(--muted); font-size: .76rem; line-height: 1.4; }
.summary-grid p a { color: inherit; text-decoration-color: color-mix(in srgb, var(--drawer-accent) 55%, transparent); text-underline-offset: .18rem; }
.summary-grid p a:hover { color: var(--drawer-accent); }
.quick-chore-list { display: grid; margin: .65rem 0 .55rem; padding: 0; gap: .45rem; list-style: none; }
.quick-chore-list li { padding-left: .65rem; border-left: 2px solid color-mix(in srgb, var(--drawer-accent) 55%, transparent); }
.quick-event-list { display: grid; margin: .65rem 0 .55rem; padding: 0; gap: .45rem; list-style: none; }
.quick-event-list li { padding-left: .65rem; border-left: 2px solid var(--source-color, var(--drawer-accent)); }
.quick-event-list b,
.quick-event-list small { display: block; }
.quick-event-list b { overflow-wrap: anywhere; color: var(--ink); font-size: .78rem; line-height: 1.3; }
.quick-event-list small { margin-top: .1rem; color: var(--quiet); font-size: .64rem; line-height: 1.3; }
.quick-chore-list b,
.quick-chore-list small { display: block; }
.quick-chore-list b { overflow-wrap: anywhere; color: var(--ink); font-size: .78rem; line-height: 1.3; }
.quick-chore-list small { margin-top: .1rem; color: var(--quiet); font-size: .64rem; line-height: 1.3; }
.person-drawer-footer { padding-top: .9rem; }
.person-drawer-footer .arrow-link { margin-top: 0; color: var(--drawer-accent); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }

.status-toast { position: fixed; z-index: 80; top: calc(var(--header-height) + 1rem); right: 1rem; width: min(28rem, calc(100% - 2rem)); box-shadow: var(--shadow); }

/* Shared page and component system */
.hero, .page-hero { position: relative; padding: clamp(5rem, 10vw, 9rem) 0 clamp(3.5rem, 7vw, 6rem); border-bottom: 1px solid var(--line); }
.hero-grid { display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: 3rem; }
.hero h1, .page-hero h1, .section h1 {
  max-width: 14ch;
  margin: 0 0 1.3rem;
  font-size: clamp(2.7rem, 6.5vw, 6rem);
  line-height: .94;
  letter-spacing: -.055em;
}
.lead { max-width: 58ch; color: var(--muted); font-size: clamp(1.05rem, 2vw, 1.28rem); }
.section { position: relative; padding: clamp(3.5rem, 7vw, 6rem) 0; }
.section.compact { padding: 2.5rem 0; }
.section.soft { border-block: 1px solid var(--line); background: rgba(255,255,255,.025); }
.section-heading { margin-bottom: 2rem; }
.muted, .help { color: var(--muted); }

.card-grid { display: grid; gap: 1rem; }
.card-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card, .hero-card {
  padding: clamp(1.4rem, 3vw, 2.2rem);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: 0 20px 55px rgba(0,0,0,.22);
  backdrop-filter: blur(16px);
}
.card h2, .card h3 { margin-top: 0; line-height: 1.08; letter-spacing: -.025em; }
.card h2 { font-size: clamp(1.55rem, 3vw, 2.4rem); }
.card p { color: var(--muted); }
.card > a:not(.button) { color: var(--accent); font-weight: 850; text-decoration: none; }
.feature-card { display: flex; min-height: 18rem; flex-direction: column; align-items: flex-start; }
.feature-card .button { margin-top: auto; }
.hero-card .stat { padding: 1.1rem 0; }
.hero-card .stat + .stat { border-top: 1px solid var(--line); }
.stat strong { display: block; }
.stat span { color: var(--muted); }
.icon { display: inline-block; margin-bottom: 1rem; color: var(--accent); font-size: 1.7rem; }
.split { display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: 2rem; }

.form-card { width: min(44rem, 100%); margin-inline: auto; }
.field { margin-bottom: 1.15rem; }
.field label { display: block; margin-bottom: .38rem; font-weight: 780; }
.field input, .field textarea, .field select {
  width: 100%;
  padding: .82rem .9rem;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: rgba(3, 8, 6, .75);
  color: var(--ink);
}
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--accent); outline: 2px solid color-mix(in srgb, var(--accent) 35%, transparent); outline-offset: 1px; }
.field textarea { min-height: 8rem; resize: vertical; }
.checkbox-field { display: flex; margin: 1rem 0; align-items: center; gap: .55rem; }
.validation-summary-errors, .field-validation-error { color: var(--danger); }

.alert { margin-top: 1rem; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-strong); }
.alert.success { border-color: color-mix(in srgb, var(--success) 50%, transparent); }
.alert.error { border-color: color-mix(in srgb, var(--danger) 50%, transparent); }
.badge { display: inline-block; padding: .18rem .55rem; border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent); border-radius: 2rem; color: var(--accent); font-size: .78rem; }
.code { overflow-wrap: anywhere; padding: .2rem .4rem; border-radius: var(--radius-sm); background: rgba(0,0,0,.35); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.authenticator-qr { width: fit-content; margin: 1.5rem auto; padding: .8rem; border-radius: var(--radius-sm); background: #fff; line-height: 0; }
.authenticator-qr img { display: block; width: min(240px, 70vw); height: auto; image-rendering: pixelated; }
.manual-authenticator-key { margin: 1.25rem 0; }
.manual-authenticator-key summary { color: var(--accent); cursor: pointer; font-weight: 850; }
.account-profile-heading { display: flex; min-width: 0; margin: .5rem 0 1.5rem; align-items: center; gap: 1rem; }
.account-profile-heading h1 { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: clamp(2.5rem, 5.4vw, 4.15rem); line-height: .95; }
.account-profile-avatar,
.profile-picture-preview,
.profile-picture-placeholder {
  --avatar-size: 5.5rem;
  display: grid;
  width: var(--avatar-size);
  min-width: var(--avatar-size);
  height: var(--avatar-size);
  min-height: var(--avatar-size);
  flex: 0 0 var(--avatar-size);
  overflow: hidden;
  border: 2px solid color-mix(in srgb, var(--accent) 68%, white 10%);
  border-radius: 50%;
  place-items: center;
  background: color-mix(in srgb, var(--accent) 18%, var(--surface-strong));
  color: var(--accent);
  font-size: 1.1rem;
  font-weight: 900;
  object-fit: cover;
  box-shadow: 0 .8rem 2rem rgba(0,0,0,.3);
}
.profile-picture-editor { display: flex; margin: 1.5rem 0; padding: 1.25rem; border: 1px solid var(--line); border-radius: var(--radius-lg); align-items: center; gap: 1.25rem; background: var(--surface-soft); }
.profile-picture-editor strong { font-size: 1.2rem; }
.profile-picture-editor p { margin: .25rem 0 0; color: var(--muted); }
.profile-picture-preview,
.profile-picture-placeholder { --avatar-size: 7.5rem; }
.field input[type="file"] { padding: .65rem; background: rgba(3, 8, 6, .55); }
.field input[type="file"]::file-selector-button { margin-right: .85rem; padding: .6rem .8rem; border: 0; border-radius: .7rem; background: var(--accent); color: var(--accent-ink); cursor: pointer; font-weight: 850; }
.profile-picture-reset { margin-top: 1rem; }
.account-detail { display: grid; margin: 1.5rem 0; padding: 1rem; border-left: 3px solid var(--accent); background: var(--surface-soft); }
.account-detail span { color: var(--quiet); font-size: .65rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.account-detail strong { margin-top: .25rem; overflow-wrap: anywhere; }

/* Family chores */
.chores-page {
  width: min(var(--content-width), calc(100% - 5rem));
  margin-inline: auto;
  padding: clamp(3.5rem, 7vw, 6.5rem) 0 4rem;
}
.chores-hero { display: flex; margin-bottom: 2rem; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.chores-hero > div { max-width: 60rem; }
.chores-hero h1 { margin: 0; font-size: clamp(3.4rem, 7vw, 7rem); line-height: .86; letter-spacing: -.065em; }
.chores-hero > div > p:last-child { max-width: 46rem; margin: 1.35rem 0 0; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.2rem); }
.chore-summary { display: grid; margin-bottom: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.chore-summary article {
  position: relative;
  min-height: 8rem;
  padding: 1.15rem 1.25rem;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface);
  backdrop-filter: blur(18px);
}
.chore-summary article::after { position: absolute; top: -.8rem; right: .8rem; color: color-mix(in srgb, var(--accent) 16%, transparent); content: "✓"; font-size: 6rem; font-weight: 900; line-height: 1; }
.chore-summary article.is-overdue::after { color: color-mix(in srgb, var(--danger) 14%, transparent); content: "!"; }
.chore-summary article.is-complete::after { color: color-mix(in srgb, var(--success) 14%, transparent); }
.chore-summary span { position: relative; z-index: 1; color: var(--quiet); font-size: .6rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.chore-summary strong { position: relative; z-index: 1; display: block; margin-top: .15rem; font-size: 2.35rem; line-height: 1; }
.chore-summary p { position: relative; z-index: 1; margin: .4rem 0 0; color: var(--muted); font-size: .75rem; }
.chore-summary .is-overdue strong { color: var(--danger); }
.chore-summary .is-complete strong { color: var(--success); }
.chore-filters { display: flex; margin: 0 0 1rem; padding: .55rem; overflow-x: auto; border: 1px solid var(--line); border-radius: 2rem; gap: .3rem; background: rgba(4,10,7,.55); scrollbar-width: none; }
.chore-filters::-webkit-scrollbar { display: none; }
.chore-filters a { --chore-color: var(--accent); display: inline-flex; min-height: 2.35rem; padding: .5rem .9rem; border: 1px solid transparent; border-radius: 2rem; align-items: center; color: var(--muted); font-size: .72rem; font-weight: 850; text-decoration: none; white-space: nowrap; }
.chore-filters a:hover { color: var(--ink); }
.chore-filters a.is-active { border-color: color-mix(in srgb, var(--chore-color) 50%, transparent); background: color-mix(in srgb, var(--chore-color) 14%, transparent); color: var(--chore-color); }
.chores-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(19rem, 24rem); align-items: start; gap: 1rem; }
.chore-board,
.chore-add-card { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow); backdrop-filter: blur(22px); }
.chore-board { min-height: 31rem; padding: clamp(1.4rem, 3vw, 2.2rem); }
.chore-section-heading { display: flex; margin-bottom: 1.4rem; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.chore-section-heading h2 { margin: 0; font-size: clamp(1.8rem, 3.2vw, 3rem); letter-spacing: -.045em; line-height: 1; }
.chore-section-heading > span { padding: .35rem .65rem; border: 1px solid var(--line); border-radius: 2rem; color: var(--quiet); font-size: .65rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.chore-list { display: grid; gap: .55rem; }
.chore-person-family { --chore-color: var(--accent); }
.chore-person-richard { --chore-color: var(--richard); }
.chore-person-kate { --chore-color: var(--kate); }
.chore-person-rhys { --chore-color: var(--rhys); }
.chore-filters a.chore-person-richard { --chore-color: var(--richard); }
.chore-filters a.chore-person-kate { --chore-color: var(--kate); }
.chore-filters a.chore-person-rhys { --chore-color: var(--rhys); }
.chore-item {
  display: grid;
  min-width: 0;
  padding: .85rem 1rem .85rem .75rem;
  border: 1px solid var(--line);
  border-left: 3px solid var(--chore-color);
  border-radius: var(--radius-md);
  grid-template-columns: 2.6rem minmax(0, 1fr);
  align-items: center;
  gap: .8rem;
  background: rgba(255,255,255,.025);
}
.chore-item.due-overdue { border-color: color-mix(in srgb, var(--danger) 32%, var(--line)); }
.chore-item form { margin: 0; }
.chore-check { display: grid; width: 2.35rem; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--chore-color) 60%, transparent); border-radius: 50%; place-items: center; background: color-mix(in srgb, var(--chore-color) 7%, transparent); color: transparent; cursor: pointer; }
.chore-check:hover { background: var(--chore-color); color: var(--canvas); transform: scale(1.04); }
.chore-check span { font-size: 1rem; font-weight: 1000; }
.chore-copy { min-width: 0; }
.chore-item-heading { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 1rem; }
.chore-item h3 { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: 1rem; line-height: 1.25; }
.chore-item-meta { display: flex; align-items: center; gap: .65rem; }
.chore-points { color: var(--accent); font-size: .64rem; font-weight: 950; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.chore-assignee { display: inline-flex; align-items: center; gap: .35rem; color: var(--chore-color); font-size: .62rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.chore-assignee i { width: .42rem; aspect-ratio: 1; border-radius: 50%; background: var(--chore-color); box-shadow: 0 0 .6rem color-mix(in srgb, var(--chore-color) 60%, transparent); }
.chore-copy > p { margin: .35rem 0 0; color: var(--muted); font-size: .76rem; }
.chore-copy > time { display: block; margin-top: .45rem; color: var(--quiet); font-size: .65rem; font-weight: 800; }
.due-overdue .chore-copy > time { color: var(--danger); }
.due-today .chore-copy > time { color: var(--accent); }
.chore-empty-state { display: grid; min-height: 21rem; place-content: center; justify-items: center; text-align: center; }
.chore-empty-state i { display: grid; width: 4rem; aspect-ratio: 1; border: 1px solid var(--success); border-radius: 50%; place-items: center; color: var(--success); font-size: 1.8rem; font-style: normal; }
.chore-empty-state h3 { margin: 1rem 0 .2rem; font-size: 1.5rem; }
.chore-empty-state p { margin: 0; color: var(--muted); }
.completed-chores { margin-top: 1.5rem; border-top: 1px solid var(--line); }
.completed-chores > summary { display: flex; padding: 1rem 0; align-items: center; justify-content: space-between; color: var(--muted); cursor: pointer; font-size: .75rem; font-weight: 900; letter-spacing: .08em; list-style: none; text-transform: uppercase; }
.completed-chores > summary::-webkit-details-marker { display: none; }
.completed-chores > summary b { display: grid; width: 1.8rem; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; place-items: center; color: var(--success); }
.chore-item.is-completed { opacity: .62; }
.chore-item.is-completed .chore-check { background: var(--success); color: var(--canvas); }
.chore-item.is-completed h3 { text-decoration: line-through; text-decoration-color: var(--quiet); }
.chore-add-card { position: sticky; top: 1rem; padding: 1.5rem; }
.chore-add-card.is-prompted { animation: chore-card-prompt .9s ease-out; }
@keyframes chore-card-prompt {
  0%, 100% { border-color: var(--line); box-shadow: var(--shadow); }
  35% { border-color: var(--accent); box-shadow: 0 0 0 .28rem color-mix(in srgb, var(--accent) 16%, transparent), var(--shadow); }
}
.chore-add-card h2 { margin: 0; font-size: 2rem; letter-spacing: -.04em; }
.chore-add-card > p:not(.overline) { margin: .5rem 0 1.4rem; color: var(--muted); font-size: .82rem; }
.chore-add-card .field { margin-bottom: .85rem; }
.chore-add-card .field label { font-size: .75rem; }
.chore-add-card textarea { min-height: 5rem; }
.chore-notes-field { margin: .3rem 0 1rem; }
.chore-notes-field summary { margin-bottom: .8rem; color: var(--accent); cursor: pointer; font-size: .72rem; font-weight: 850; }
.chore-add-button { width: 100%; }

/* Points, badges, and rewards */
.rewards-page {
  width: min(var(--content-width), calc(100% - 5rem));
  margin-inline: auto;
  padding: clamp(3.5rem, 7vw, 7rem) 0 4rem;
}
.rewards-hero { display: flex; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); align-items: flex-end; justify-content: space-between; gap: 2rem; }
.rewards-hero > div:first-child { max-width: 62rem; }
.rewards-hero h1 { margin: .25rem 0 .65rem; font-size: clamp(4rem, 8vw, 8rem); letter-spacing: -.065em; line-height: .85; }
.rewards-hero > div:first-child > p:last-child { max-width: 48rem; margin: 0; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.22rem); }
.points-balance-card { display: grid; min-width: 12rem; padding: 1.25rem 1.4rem; border: 1px solid color-mix(in srgb, var(--accent) 50%, transparent); border-radius: var(--radius-lg); justify-items: end; background: color-mix(in srgb, var(--accent) 10%, var(--surface-strong)); box-shadow: var(--shadow); }
.points-balance-card span { color: var(--quiet); font-size: .62rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.points-balance-card strong { color: var(--accent); font-size: 3.6rem; line-height: 1; }
.points-balance-card small { color: var(--muted); font-weight: 800; }
.badge-progress-card { padding: clamp(1.5rem, 3vw, 2.4rem); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow); backdrop-filter: blur(22px); }
.badge-progress-copy { display: flex; align-items: center; gap: 1.25rem; }
.badge-progress-copy > .badge-symbol { display: grid; width: 5rem; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--accent) 60%, transparent); border-radius: 50%; place-items: center; background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--accent); font-size: 2.2rem; box-shadow: 0 0 2rem color-mix(in srgb, var(--accent) 14%, transparent); }
.badge-progress-copy h2 { margin: .1rem 0 .35rem; font-size: clamp(1.8rem, 3.5vw, 3rem); letter-spacing: -.04em; }
.badge-progress-copy p:last-child { margin: 0; color: var(--muted); }
.badge-progress-track { height: .5rem; margin: 1.5rem 0; overflow: hidden; border-radius: 2rem; background: rgba(255,255,255,.08); }
.badge-progress-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 55%, white)); box-shadow: 0 0 1.2rem var(--accent); }
.badge-shelf { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .6rem; }
.badge-shelf article { display: grid; min-width: 0; padding: .9rem .7rem; border: 1px solid var(--line); border-radius: var(--radius-md); justify-items: center; text-align: center; background: rgba(255,255,255,.025); }
.badge-shelf article > i { color: var(--accent); font-size: 1.35rem; font-style: normal; }
.badge-shelf article strong { margin-top: .25rem; font-size: .72rem; line-height: 1.2; }
.badge-shelf article span { color: var(--quiet); font-size: .62rem; }
.badge-shelf article.is-locked { opacity: .38; filter: grayscale(1); }
.badge-shelf article.is-earned { border-color: color-mix(in srgb, var(--accent) 45%, transparent); background: color-mix(in srgb, var(--accent) 8%, transparent); }
.reward-shop-section, .reward-history { margin-top: clamp(3rem, 6vw, 5.5rem); }
.reward-section-heading { display: flex; margin-bottom: 1.2rem; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.reward-section-heading h2 { margin: .1rem 0 0; font-size: clamp(2.2rem, 5vw, 4.5rem); letter-spacing: -.055em; line-height: .95; }
.reward-section-heading > span { color: var(--quiet); font-size: .7rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.reward-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.reward-card { position: relative; display: flex; min-height: 19rem; padding: 1.5rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); flex-direction: column; background: var(--surface); box-shadow: var(--shadow); }
.reward-card::after { position: absolute; right: -.4rem; bottom: -2.5rem; color: rgba(255,255,255,.035); content: "★"; font-size: 10rem; line-height: 1; }
.reward-card.can-afford { border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
.reward-card h3 { position: relative; z-index: 1; margin: .85rem 0 .4rem; font-size: 1.55rem; line-height: 1.1; }
.reward-card > p { position: relative; z-index: 1; margin: 0 0 1.5rem; color: var(--muted); font-size: .85rem; }
.reward-card form { position: relative; z-index: 1; margin-top: auto; }
.reward-card form .button { width: 100%; }
.reward-cost { position: relative; z-index: 1; color: var(--accent); font-size: 1.6rem; font-weight: 950; }
.reward-cost small { color: var(--quiet); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.reward-empty { display: grid; min-height: 18rem; padding: 2rem; border: 1px solid var(--line); border-radius: var(--radius-lg); place-content: center; justify-items: center; background: var(--surface); text-align: center; }
.reward-empty i { color: var(--accent); font-size: 3rem; font-style: normal; }
.reward-empty h3 { margin: .5rem 0 .2rem; font-size: 1.6rem; }
.reward-empty p { margin: 0; color: var(--muted); }
.reward-history-list { display: grid; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); }
.reward-history-list article { display: grid; padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 1rem; }
.reward-history-list article:last-child { border-bottom: 0; }
.reward-history-list article > div { display: grid; }
.reward-history-list article > div span { color: var(--quiet); font-size: .68rem; }
.reward-history-list article > b { color: var(--accent); font-size: .75rem; white-space: nowrap; }
.reward-status { padding: .25rem .55rem; border: 1px solid var(--line); border-radius: 2rem; color: var(--muted); font-size: .62rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.reward-status.status-fulfilled { color: var(--success); }
.reward-status.status-cancelled { color: var(--danger); }
.points-admin-summary { display: grid; margin-bottom: 1.5rem; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .75rem; }
.points-admin-summary article { --chore-color: var(--accent); padding: 1rem 1.2rem; border: 1px solid color-mix(in srgb, var(--chore-color) 35%, var(--line)); border-radius: var(--radius-md); background: var(--surface); }
.points-admin-summary span { color: var(--chore-color); font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.points-admin-summary strong { display: block; margin-top: .2rem; font-size: 2rem; line-height: 1; }
.points-admin-summary p { margin: .25rem 0 0; color: var(--muted); font-size: .72rem; }
.rewards-admin-layout { display: grid; grid-template-columns: minmax(18rem, .8fr) minmax(0, 1.2fr); align-items: start; gap: 1rem; }
.admin-reward-list { display: grid; gap: .65rem; }
.admin-reward-list article { display: grid; padding: .85rem; border: 1px solid var(--line); border-radius: var(--radius-md); grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .75rem; }
.admin-reward-list article > div p { margin: .2rem 0 0; color: var(--muted); font-size: .72rem; }
.admin-reward-list article > b { color: var(--accent); white-space: nowrap; }
.admin-reward-list article form { grid-column: 1 / -1; }
.admin-reward-list article.is-inactive { opacity: .55; }

/* Family calendar */
.calendar-color-gold { --source-color: #e4c56d; --event-color: #e4c56d; }
.calendar-color-green { --source-color: #94d2a6; --event-color: #94d2a6; }
.calendar-color-purple { --source-color: #d2b5ef; --event-color: #d2b5ef; }
.calendar-color-blue { --source-color: #a8e0f7; --event-color: #a8e0f7; }
.calendar-color-coral { --source-color: #ff9b78; --event-color: #ff9b78; }
.calendar-page {
  width: calc(100% - 2rem);
  max-width: 120rem;
  margin-inline: auto;
  padding: clamp(2.5rem, 5vw, 5rem) 0 4rem;
}
.calendar-hero {
  display: flex;
  margin-bottom: clamp(2.2rem, 4vw, 4rem);
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
}
.calendar-hero > div:first-child { max-width: 56rem; }
.calendar-hero h1 {
  margin: 0;
  font-size: clamp(3rem, 6vw, 6.4rem);
  line-height: .9;
  letter-spacing: -.06em;
}
.calendar-hero > div:first-child > p:last-child { max-width: 48rem; margin: 1.25rem 0 0; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.2rem); }
.calendar-hero-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem; }
.calendar-toolbar {
  display: grid;
  width: min(28rem, 100%);
  margin: 0 auto 1rem;
  grid-template-columns: 3rem 1fr 3rem;
  align-items: center;
  gap: .75rem;
  text-align: center;
}
.calendar-toolbar div { display: grid; line-height: 1.2; }
.calendar-toolbar span { color: var(--quiet); font-size: .62rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.calendar-toolbar strong { margin-top: .2rem; font-size: 1.2rem; }
.calendar-month-button {
  display: grid;
  width: 3rem;
  aspect-ratio: 1;
  border: 1px solid var(--line);
  border-radius: 50%;
  place-items: center;
  background: rgba(4,10,7,.5);
  color: var(--ink);
  text-decoration: none;
}
.calendar-month-button:hover { border-color: var(--accent); color: var(--accent); }
.calendar-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 1rem; }
.calendar-board,
.calendar-card,
.calendar-sources-section {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow);
  backdrop-filter: blur(22px);
}
.calendar-board { overflow: hidden; }
.calendar-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.035); }
.calendar-weekdays span { padding: .75rem .5rem; color: var(--quiet); font-size: .62rem; font-weight: 900; letter-spacing: .14em; text-align: center; text-transform: uppercase; }
.calendar-grid { display: block; }
.calendar-week { --calendar-range-space: 0rem; position: relative; border-bottom: 1px solid var(--line); }
.calendar-week:last-child { border-bottom: 0; }
.calendar-week-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-day {
  min-width: 0;
  min-height: clamp(8.5rem, 10vw, 11rem);
  padding: .75rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(5,13,9,.25);
}
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day:nth-last-child(-n+7) { border-bottom: 0; }
.calendar-day.is-outside { background: rgba(0,0,0,.12); opacity: .4; }
.calendar-day.is-today { background: color-mix(in srgb, var(--accent) 9%, rgba(5,13,9,.45)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 60%, transparent); }
.calendar-day > header { display: flex; min-height: 1.5rem; align-items: center; justify-content: space-between; gap: .4rem; }
.calendar-day time { font-size: .78rem; font-weight: 900; }
.calendar-day > header i { color: var(--accent); font-size: .55rem; font-style: normal; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.calendar-mobile-weekday { display: none; }
.calendar-day-events { display: grid; margin-top: .55rem; padding-top: var(--calendar-range-space); gap: .35rem; }
.calendar-event-chip {
  display: block;
  min-width: 0;
  overflow: hidden;
  padding: .38rem .48rem;
  border: 1px solid color-mix(in srgb, var(--event-color) 60%, transparent);
  border-left: 4px solid var(--event-color);
  border-radius: .45rem;
  background: color-mix(in srgb, var(--event-color) 28%, rgba(0,0,0,.32));
  color: var(--ink);
  font-size: .65rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.calendar-event-chip i { display: inline-block; width: .38rem; aspect-ratio: 1; margin-right: .22rem; border-radius: 50%; background: var(--event-color); }
.calendar-event-chip b { color: var(--event-color); font-size: .56rem; }
.calendar-range-endpoint { display: none; }
.calendar-range-layer {
  position: absolute;
  z-index: 2;
  top: 2.55rem;
  right: 0;
  left: 0;
  display: grid;
  height: var(--calendar-range-space);
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-template-rows: repeat(12, 2rem);
  pointer-events: none;
}
.calendar-range-segment {
  position: relative;
  z-index: 0;
  align-self: center;
  height: 5px;
  border-radius: 0;
  background: var(--event-color);
  box-shadow: 0 0 .65rem color-mix(in srgb, var(--event-color) 30%, transparent);
}
.calendar-range-segment.is-start { margin-left: .75rem; border-radius: 999px 0 0 999px; }
.calendar-range-segment.is-end { margin-right: .75rem; border-radius: 0 999px 999px 0; }
.calendar-range-segment.is-start.is-end { border-radius: 999px; }
.calendar-range-segment.is-start::before,
.calendar-range-segment.is-end::after {
  position: absolute;
  top: 50%;
  width: .46rem;
  aspect-ratio: 1;
  border: 2px solid rgba(5,13,9,.82);
  border-radius: 50%;
  background: var(--event-color);
  content: "";
  transform: translateY(-50%);
}
.calendar-range-segment.is-start::before { left: -.1rem; }
.calendar-range-segment.is-end::after { right: -.1rem; }
.calendar-range-box {
  z-index: 1;
  display: block;
  min-width: 0;
  margin: 0 .4rem;
  align-self: center;
  overflow: hidden;
  padding: .38rem .48rem;
  border: 1px solid color-mix(in srgb, var(--event-color) 60%, transparent);
  border-left: 4px solid var(--event-color);
  border-radius: .45rem;
  background: color-mix(in srgb, var(--event-color) 28%, #07120c);
  color: var(--ink);
  font-size: .65rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.calendar-range-box i { display: inline-block; width: .38rem; aspect-ratio: 1; margin-right: .22rem; border-radius: 50%; background: var(--event-color); }
.calendar-range-box b { color: var(--event-color); font-size: .56rem; }
.calendar-range-lanes-0 { --calendar-range-space: 0rem; }
.calendar-range-lanes-1 { --calendar-range-space: 2rem; }
.calendar-range-lanes-2 { --calendar-range-space: 4rem; }
.calendar-range-lanes-3 { --calendar-range-space: 6rem; }
.calendar-range-lanes-4 { --calendar-range-space: 8rem; }
.calendar-range-lanes-5 { --calendar-range-space: 10rem; }
.calendar-range-lanes-6 { --calendar-range-space: 12rem; }
.calendar-range-lanes-7 { --calendar-range-space: 14rem; }
.calendar-range-lanes-8 { --calendar-range-space: 16rem; }
.calendar-range-lanes-9 { --calendar-range-space: 18rem; }
.calendar-range-lanes-10 { --calendar-range-space: 20rem; }
.calendar-range-lanes-11 { --calendar-range-space: 22rem; }
.calendar-range-lanes-12 { --calendar-range-space: 24rem; }
.calendar-range-lane-1 { grid-row: 1; }
.calendar-range-lane-2 { grid-row: 2; }
.calendar-range-lane-3 { grid-row: 3; }
.calendar-range-lane-4 { grid-row: 4; }
.calendar-range-lane-5 { grid-row: 5; }
.calendar-range-lane-6 { grid-row: 6; }
.calendar-range-lane-7 { grid-row: 7; }
.calendar-range-lane-8 { grid-row: 8; }
.calendar-range-lane-9 { grid-row: 9; }
.calendar-range-lane-10 { grid-row: 10; }
.calendar-range-lane-11 { grid-row: 11; }
.calendar-range-lane-12 { grid-row: 12; }
.calendar-range-columns-1-1 { grid-column: 1 / 2; }
.calendar-range-columns-1-2 { grid-column: 1 / 3; }
.calendar-range-columns-1-3 { grid-column: 1 / 4; }
.calendar-range-columns-1-4 { grid-column: 1 / 5; }
.calendar-range-columns-1-5 { grid-column: 1 / 6; }
.calendar-range-columns-1-6 { grid-column: 1 / 7; }
.calendar-range-columns-1-7 { grid-column: 1 / 8; }
.calendar-range-columns-2-2 { grid-column: 2 / 3; }
.calendar-range-columns-2-3 { grid-column: 2 / 4; }
.calendar-range-columns-2-4 { grid-column: 2 / 5; }
.calendar-range-columns-2-5 { grid-column: 2 / 6; }
.calendar-range-columns-2-6 { grid-column: 2 / 7; }
.calendar-range-columns-2-7 { grid-column: 2 / 8; }
.calendar-range-columns-3-3 { grid-column: 3 / 4; }
.calendar-range-columns-3-4 { grid-column: 3 / 5; }
.calendar-range-columns-3-5 { grid-column: 3 / 6; }
.calendar-range-columns-3-6 { grid-column: 3 / 7; }
.calendar-range-columns-3-7 { grid-column: 3 / 8; }
.calendar-range-columns-4-4 { grid-column: 4 / 5; }
.calendar-range-columns-4-5 { grid-column: 4 / 6; }
.calendar-range-columns-4-6 { grid-column: 4 / 7; }
.calendar-range-columns-4-7 { grid-column: 4 / 8; }
.calendar-range-columns-5-5 { grid-column: 5 / 6; }
.calendar-range-columns-5-6 { grid-column: 5 / 7; }
.calendar-range-columns-5-7 { grid-column: 5 / 8; }
.calendar-range-columns-6-6 { grid-column: 6 / 7; }
.calendar-range-columns-6-7 { grid-column: 6 / 8; }
.calendar-range-columns-7-7 { grid-column: 7 / 8; }
.calendar-more { color: var(--quiet); font-size: .62rem; }
.calendar-sidebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.calendar-card { padding: 1.4rem; }
.calendar-card h2 { margin: 0 0 1.25rem; font-size: 1.65rem; letter-spacing: -.035em; }
.calendar-card .field { margin-bottom: .85rem; }
.calendar-card .field label { font-size: .75rem; }
.calendar-form-row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; }
.calendar-form-row input { min-width: 0; }
.calendar-all-day { margin: .3rem 0 .9rem; font-size: .82rem; }
.calendar-more-fields { margin: .6rem 0 1rem; }
.calendar-more-fields summary { color: var(--accent); cursor: pointer; font-size: .76rem; font-weight: 850; }
.calendar-more-fields[open] summary { margin-bottom: .85rem; }
.calendar-more-fields textarea { min-height: 5.5rem; }
.calendar-submit { width: 100%; }
.calendar-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.calendar-card-heading > span { display: grid; width: 2.4rem; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; place-items: center; color: var(--accent); font-weight: 900; }
.calendar-empty { margin: 0; color: var(--muted); }
.upcoming-list { margin: 0; padding: 0; list-style: none; }
.upcoming-list li { display: grid; padding: 1rem 0; border-top: 1px solid var(--line); grid-template-columns: 2.8rem minmax(0,1fr) auto; align-items: center; gap: .8rem; }
.upcoming-list li > time { display: grid; width: 2.8rem; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--event-color) 60%, transparent); border-radius: .75rem; place-content: center; text-align: center; line-height: 1; }
.upcoming-list time strong { color: var(--event-color); font-size: 1.05rem; }
.upcoming-list time span { margin-top: .2rem; color: var(--quiet); font-size: .55rem; font-weight: 900; text-transform: uppercase; }
.upcoming-list li > div { display: grid; min-width: 0; line-height: 1.25; }
.upcoming-list li > div > span { color: var(--event-color); font-size: .57rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.upcoming-list li > div > strong { margin-top: .25rem; overflow-wrap: anywhere; font-size: .84rem; }
.upcoming-list small { margin-top: .2rem; overflow: hidden; color: var(--quiet); font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.upcoming-list form { margin: 0; }
.upcoming-list button { border: 0; background: transparent; color: var(--quiet); cursor: pointer; font-size: 1.25rem; }
.upcoming-list button:hover { color: var(--danger); }
.calendar-sources-section { margin-top: 1rem; padding: clamp(1.5rem, 3vw, 2.4rem); }
.calendar-sources-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.calendar-sources-heading > div { max-width: 46rem; }
.calendar-sources-heading h2 { margin: 0; font-size: clamp(2rem,4vw,3.8rem); letter-spacing: -.05em; line-height: 1; }
.calendar-sources-heading > div > p:last-child { margin: 1rem 0 0; color: var(--muted); }
.new-source-panel { width: min(28rem, 100%); }
.new-source-panel > summary { margin-left: auto; list-style: none; }
.new-source-panel > summary::-webkit-details-marker { display: none; }
.new-source-panel[open] { padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: rgba(4,10,7,.82); }
.new-source-panel[open] > summary { margin-bottom: 1rem; }
.calendar-source-grid { display: grid; margin-top: 2rem; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .75rem; }
.calendar-source-card { position: relative; display: grid; min-height: 13rem; padding: 1.2rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: rgba(255,255,255,.035); }
.calendar-source-card > i { position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--source-color); }
.calendar-source-card span { color: var(--source-color); font-size: .6rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.calendar-source-card h3 { margin: .25rem 0 1rem; font-size: 1.25rem; line-height: 1.1; }
.calendar-source-card dl { display: grid; margin: 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
.calendar-source-card dl div { min-width: 0; }
.calendar-source-card dt { color: var(--quiet); font-size: .56rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.calendar-source-card dd { margin: .15rem 0 0; overflow-wrap: anywhere; font-size: .72rem; }
.calendar-source-card > p { align-self: end; margin: 1rem 0 0; color: var(--muted); font-size: .7rem; }
.source-edit-panel { margin-top: 1rem; border-top: 1px solid var(--line); }
.source-edit-panel > summary { padding-top: .9rem; color: var(--source-color); cursor: pointer; font-size: .7rem; font-weight: 900; letter-spacing: .08em; list-style: none; text-transform: uppercase; }
.source-edit-panel > summary::-webkit-details-marker { display: none; }
.source-edit-panel > summary::after { content: " +"; }
.source-edit-panel[open] > summary::after { content: " −"; }
.source-edit-panel form { display: grid; margin-top: 1rem; gap: .2rem; }
.source-edit-panel .field { margin-bottom: .65rem; }
.source-edit-panel .field label { color: var(--muted); font-size: .68rem; }
.source-edit-panel .button { width: 100%; margin-top: .35rem; }
.calendar-import-roadmap { display: grid; margin-top: 1rem; padding: 1rem 1.2rem; border: 1px dashed var(--line-strong); border-radius: var(--radius-md); grid-template-columns: 9rem 1fr auto; align-items: center; gap: 1rem; }
.calendar-import-roadmap span { color: var(--accent); font-size: .65rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.calendar-import-roadmap p { margin: 0; color: var(--muted); font-size: .82rem; }
.calendar-import-roadmap .arrow-link { margin-top: 0; white-space: nowrap; }

/* Calendar import inbox */
.calendar-import-page {
  width: min(var(--content-width), calc(100% - 4rem));
  margin-inline: auto;
  padding: clamp(2.5rem, 5vw, 5rem) 0 4rem;
}
.import-hero { display: flex; margin-bottom: clamp(2rem, 4vw, 4rem); align-items: flex-end; justify-content: space-between; gap: 2rem; }
.import-hero > div:first-child { max-width: 62rem; }
.import-back-link { display: inline-flex; margin-bottom: 2rem; color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.import-back-link:hover { color: var(--accent); }
.import-hero h1 { max-width: 12ch; margin: 0; font-size: clamp(3.2rem, 6.5vw, 7rem); line-height: .86; letter-spacing: -.065em; }
.import-hero > div:first-child > p:last-child { max-width: 48rem; margin: 1.4rem 0 0; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.2rem); }
.import-flow { display: flex; padding: .75rem; border: 1px solid var(--line); border-radius: 3rem; gap: .35rem; background: rgba(4,10,7,.5); }
.import-flow span { display: inline-flex; padding: .45rem .75rem; border-radius: 2rem; align-items: center; gap: .45rem; color: var(--quiet); font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.import-flow span.is-active { background: color-mix(in srgb, var(--accent) 15%, transparent); color: var(--accent); }
.import-flow i { display: grid; width: 1.35rem; aspect-ratio: 1; border: 1px solid currentColor; border-radius: 50%; place-items: center; font-size: .56rem; font-style: normal; }
.import-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr); align-items: start; gap: 1rem; }
.import-upload-card,
.import-history-card,
.import-review-section,
.import-next-stage {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow);
  backdrop-filter: blur(22px);
}
.import-upload-card { padding: clamp(1.5rem, 3vw, 2.5rem); }
.import-upload-card h2, .import-history-card h2 { margin: 0; font-size: clamp(1.7rem,3vw,2.6rem); letter-spacing: -.04em; }
.import-card-lead { max-width: 48rem; margin: .8rem 0 1.6rem; color: var(--muted); }
.calendar-dropzone { position: relative; display: grid; min-height: 14rem; margin: 1rem 0; padding: 1.5rem; overflow: hidden; border: 1px dashed var(--line-strong); border-radius: var(--radius-md); place-content: center; justify-items: center; background: rgba(255,255,255,.025); cursor: pointer; text-align: center; transition: border-color .2s ease, background .2s ease; }
.calendar-dropzone:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, transparent); }
.calendar-dropzone > span { display: grid; width: 3.7rem; aspect-ratio: 1; margin-bottom: .8rem; border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent); border-radius: 50%; place-items: center; color: var(--accent); font-size: 1.7rem; }
.calendar-dropzone strong { font-size: 1.05rem; }
.calendar-dropzone small { margin-top: .25rem; color: var(--quiet); }
.calendar-dropzone input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.calendar-dropzone:has(input:focus-visible) { outline: 3px solid var(--focus); outline-offset: 4px; }
.import-security-note { display: grid; margin: 1rem 0; padding: .9rem 1rem; border-left: 2px solid var(--accent); grid-template-columns: 1.4rem 1fr; gap: .7rem; background: rgba(255,255,255,.035); }
.import-security-note i { color: var(--accent); font-style: normal; }
.import-security-note p { margin: 0; color: var(--muted); font-size: .76rem; }
.import-security-note strong { color: var(--ink); }
.import-upload-button { width: 100%; }
.import-history-card { padding: 1.5rem; }
.import-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.import-card-heading > span { display: grid; width: 2.5rem; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; place-items: center; color: var(--accent); font-weight: 900; }
.import-empty-state { display: grid; min-height: 15rem; place-content: center; justify-items: center; color: var(--quiet); text-align: center; }
.import-empty-state i { font-size: 2rem; font-style: normal; }
.import-empty-state p { max-width: 18rem; }
.import-history-list { margin: 1.4rem 0 0; padding: 0; list-style: none; }
.import-history-list li { border-top: 1px solid var(--line); }
.import-history-list a { display: grid; padding: 1rem 0; grid-template-columns: .45rem minmax(0,1fr) auto; align-items: center; gap: .8rem; text-decoration: none; }
.import-history-list a > i { width: .42rem; aspect-ratio: 1; border-radius: 50%; background: var(--source-color); box-shadow: 0 0 .7rem color-mix(in srgb, var(--source-color) 55%, transparent); }
.import-history-list a > div { display: grid; min-width: 0; line-height: 1.3; }
.import-history-list a strong { overflow: hidden; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.import-history-list a span { margin-top: .2rem; color: var(--quiet); font-size: .65rem; }
.import-status { display: inline-flex; width: fit-content; padding: .25rem .55rem; border: 1px solid var(--line); border-radius: 2rem; color: var(--muted); font-size: .56rem; font-style: normal; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.status-review { border-color: color-mix(in srgb, var(--accent) 45%, transparent); color: var(--accent); }
.status-imported { border-color: color-mix(in srgb, var(--success) 45%, transparent); color: var(--success); }
.status-failed { border-color: color-mix(in srgb, var(--danger) 45%, transparent); color: var(--danger); }
.status-awaitinganalysis { color: var(--rhys); }
.import-review-section { margin-top: 1rem; padding: clamp(1.5rem, 3vw, 2.5rem); }
.import-review-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.import-review-heading h2 { max-width: 20ch; margin: 0; overflow-wrap: anywhere; font-size: clamp(2rem,4vw,4rem); letter-spacing: -.05em; line-height: 1; }
.import-review-heading p:last-child { margin: .75rem 0 0; color: var(--muted); }
.import-review-list { display: grid; margin-top: 2rem; border-top: 1px solid var(--line); }
.import-candidate { display: grid; min-width: 0; padding: 1rem .4rem; border-bottom: 1px solid var(--line); grid-template-columns: 1.4rem 3.2rem minmax(0,1fr) auto; align-items: center; gap: .9rem; cursor: pointer; }
.import-candidate:hover { background: rgba(255,255,255,.025); }
.import-candidate > input { width: 1.05rem; height: 1.05rem; accent-color: var(--accent); }
.import-candidate > time { display: grid; width: 3.2rem; aspect-ratio: 1; border: 1px solid var(--line); border-radius: .8rem; place-content: center; color: var(--accent); text-align: center; line-height: 1; }
.import-candidate time strong { font-size: 1.1rem; }
.import-candidate time span { margin-top: .2rem; color: var(--quiet); font-size: .55rem; font-weight: 900; text-transform: uppercase; }
.import-candidate .candidate-copy { display: grid; min-width: 0; cursor: pointer; line-height: 1.3; }
.import-candidate .candidate-copy > span { color: var(--accent); font-size: .6rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.import-candidate .candidate-copy > strong { margin-top: .2rem; overflow-wrap: anywhere; }
.import-candidate small { margin-top: .22rem; color: var(--quiet); }
.import-candidate .candidate-warning { color: #efca8f; }
.import-candidate > em { color: var(--quiet); font-size: .62rem; font-style: normal; font-weight: 900; text-transform: uppercase; }
.import-candidate.is-duplicate { opacity: .58; }
.import-candidate.is-imported { background: color-mix(in srgb, var(--success) 7%, transparent); }
.import-candidate.is-imported > em { color: var(--success); }
.candidate-options { display: grid; min-width: 10.5rem; justify-items: end; gap: .45rem; }
.candidate-options > em { color: var(--quiet); font-size: .62rem; font-style: normal; font-weight: 900; text-transform: uppercase; }
.import-candidate.is-imported .candidate-options > em { color: var(--success); }
.candidate-display-mode { display: grid; gap: .2rem; }
.candidate-display-mode > span { color: var(--quiet); font-size: .55rem; font-weight: 900; letter-spacing: .08em; text-align: right; text-transform: uppercase; }
.candidate-display-mode select { min-width: 10.5rem; padding: .48rem .6rem; border-radius: .55rem; font-size: .7rem; }
.import-review-actions { display: flex; padding-top: 1.25rem; align-items: center; justify-content: space-between; gap: 1rem; }
.import-review-actions p { max-width: 38rem; margin: 0; color: var(--muted); font-size: .78rem; }
.document-waiting-state { display: grid; margin-top: 2rem; padding: 2rem; border: 1px dashed var(--line-strong); border-radius: var(--radius-md); grid-template-columns: 3rem 1fr; align-items: center; gap: 1.2rem; }
.document-waiting-state > i { display: grid; width: 3rem; aspect-ratio: 1; border: 1px solid var(--rhys); border-radius: 50%; place-items: center; color: var(--rhys); font-size: 1.4rem; font-style: normal; }
.document-waiting-state h3 { margin: 0; }
.document-waiting-state p { margin: .4rem 0 0; color: var(--muted); }
.document-waiting-state form { margin-top: 1rem; }
.document-waiting-state.is-complete > i { border-color: var(--success); color: var(--success); }
.document-waiting-state.is-warning > i { border-color: var(--danger); color: var(--danger); }
.import-next-stage { margin-top: 1rem; padding: clamp(1.5rem, 3vw, 2.5rem); }
.import-next-stage > div:first-child { max-width: 55rem; }
.import-next-stage h2 { margin: 0; font-size: clamp(2rem,4vw,4rem); letter-spacing: -.05em; line-height: 1; }
.import-capability-grid { display: grid; margin-top: 2rem; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.import-capability-grid article { padding: 1.3rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: rgba(255,255,255,.03); }
.import-capability-grid span { color: var(--accent); font-size: .58rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.import-capability-grid h3 { margin: .45rem 0; }
.import-capability-grid p { margin: 0; color: var(--muted); font-size: .78rem; }

/* Gaming and Minecraft */
.gaming-home-hero,
.minecraft-hub-hero,
.minecraft-journal-hero,
.minecraft-setup-hero { overflow: hidden; background: linear-gradient(125deg, rgba(5,15,10,.88), rgba(17,53,33,.68) 55%, rgba(30,48,71,.5)); }
.gaming-home-hero::after,
.minecraft-hub-hero::after,
.minecraft-journal-hero::after { content: ""; position: absolute; right: -8rem; bottom: -13rem; width: 34rem; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent); border-radius: 35% 65% 64% 36%; transform: rotate(24deg); box-shadow: 0 0 0 5rem rgba(255,255,255,.015), 0 0 0 10rem rgba(255,255,255,.01); }
.gaming-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(18rem,.65fr); align-items: end; gap: clamp(2rem,7vw,7rem); }
.gaming-night-card,
.minecraft-pack-card,
.journal-intro-card { position: relative; min-height: 19rem; padding-top: 5rem; }
.gaming-night-card h2,
.minecraft-pack-card h2 { font-size: clamp(2rem,4vw,4rem); }
.gaming-stat-row { display: flex; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--line); gap: 2rem; color: var(--muted); }
.gaming-stat-row strong { display: block; color: var(--ink); font-size: 1.6rem; line-height: 1; }
.display-heading { max-width: 15ch; margin: 0; font-size: clamp(2.2rem,4.5vw,4.5rem); letter-spacing: -.05em; line-height: .98; }
.gaming-world-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1rem; }
.game-world-card { position: relative; display: flex; min-height: 28rem; overflow: hidden; flex-direction: column; justify-content: flex-end; }
.game-world-card::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .38; }
.minecraft-world-card::before { background: radial-gradient(circle at 78% 20%, rgba(124,211,139,.7), transparent 25%), linear-gradient(135deg,#183c27,#142117 55%,#463d24); }
.wow-world-card::before { background: radial-gradient(circle at 75% 18%, rgba(107,146,255,.65), transparent 28%), linear-gradient(145deg,#172442,#29192f 60%,#18120d); }
.game-world-number { position: absolute; top: 1.2rem; right: 1.5rem; color: rgba(255,255,255,.22); font-size: clamp(4rem,9vw,8rem); font-weight: 200; line-height: 1; }
.game-world-card h2 { max-width: 12ch; font-size: clamp(2.5rem,5vw,5rem); }
.game-world-card > p:not(.overline) { max-width: 46rem; }
.gaming-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.gaming-heading-row .arrow-link { margin-bottom: .3rem; }
.empty-adventure-card { min-height: 12rem; }
.compact-adventure-card { display: flex; min-height: 16rem; flex-direction: column; }
.compact-adventure-card .arrow-link { margin-top: auto; }
.gaming-admin-alert { margin-top: 1rem; }
.gaming-admin-alert a { color: var(--accent); }

.server-card-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.server-card { min-height: 18rem; }
.server-card-top { display: flex; align-items: center; gap: .55rem; color: var(--accent); font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.server-card h2 { margin-top: 2.5rem; }
.server-address { display: grid; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.server-address small { color: var(--quiet); font-size: .62rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.server-address strong { margin-top: .25rem; overflow-wrap: anywhere; }
.minecraft-path-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.minecraft-path-card { position: relative; display: flex; min-height: 24rem; flex-direction: column; }
.minecraft-path-card > span { position: absolute; top: 1.1rem; right: 1.25rem; color: rgba(255,255,255,.2); font-size: 2.4rem; font-weight: 260; }
.minecraft-path-card .button,
.minecraft-path-card .button-row { margin-top: auto; }

.journal-intro-card > strong { display: block; color: var(--accent); font-size: clamp(4rem,8vw,7rem); line-height: .9; }
.journal-filters { display: flex; margin-bottom: 1.2rem; padding: .45rem; border: 1px solid var(--line); border-radius: 3rem; flex-wrap: wrap; gap: .25rem; background: rgba(4,10,7,.72); }
.journal-filters a { padding: .55rem .85rem; border-radius: 2rem; color: var(--muted); font-size: .78rem; font-weight: 850; text-decoration: none; }
.journal-filters a.is-active,
.journal-filters a:hover { background: color-mix(in srgb,var(--accent) 16%,transparent); color: var(--accent); }
.adventure-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.adventure-card { padding: 0; overflow: hidden; }
.adventure-card.without-cover { min-height: 23rem; }
.adventure-cover { display: block; aspect-ratio: 16/9; overflow: hidden; background: rgba(0,0,0,.3); }
.adventure-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.adventure-card:hover .adventure-cover img { transform: scale(1.025); }
.adventure-copy { display: flex; min-height: 18rem; padding: clamp(1.4rem,3vw,2rem); flex-direction: column; }
.adventure-meta,
.adventure-byline { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; color: var(--quiet); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.adventure-meta span { color: var(--accent); }
.adventure-card h2 { margin: 1rem 0 .65rem; }
.adventure-card h2 a { text-decoration: none; }
.adventure-card .adventure-byline { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line); }
.adventure-byline em { color: var(--accent); font-style: normal; }
.adventure-detail { width: min(68rem,calc(100% - 4rem)); }
.back-link { margin: 0 0 3rem; }
.back-link > span { order: -1; }
.adventure-detail-header { margin-bottom: 2rem; }
.adventure-detail-header h1 { max-width: 16ch; margin: .7rem 0 1.5rem; font-size: clamp(3rem,8vw,7rem); letter-spacing: -.06em; line-height: .92; }
.adventure-detail-cover { margin: 0 0 1rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.adventure-detail-cover img { display: block; width: 100%; max-height: 70vh; object-fit: cover; }
.adventure-story { font-size: 1.05rem; }
.adventure-story > p { color: var(--ink); white-space: pre-line; }
.adventure-tags { display: flex; margin-top: 2rem; flex-wrap: wrap; gap: .5rem; }
.adventure-tags span { padding: .28rem .6rem; border: 1px solid var(--line); border-radius: 2rem; color: var(--muted); font-size: .72rem; }
.gaming-editor-section { padding-top: 2rem; }
.gaming-editor-card h1 { max-width: 12ch; font-size: clamp(2.5rem,5vw,4.5rem); }
.form-grid.two { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.danger-zone { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.setup-guide { display: grid; grid-template-columns: minmax(0,1fr) minmax(18rem,.38fr); align-items: start; gap: 1rem; }
.setup-steps { display: grid; margin: 0; padding: 0; gap: .75rem; list-style: none; }
.setup-steps > li { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; }
.setup-steps > li > span { color: var(--accent); font-size: 1.4rem; font-weight: 300; }
.setup-steps h2 { font-size: clamp(1.35rem,2.4vw,2rem); }
.setup-steps code { padding: .15rem .3rem; border-radius: .3rem; background: rgba(0,0,0,.4); }
.setup-steps a { color: var(--accent); font-weight: 800; }
.troubleshooting-card { position: sticky; top: 1rem; }
.admin-summary-grid { margin-bottom: 1rem; }
.status-pending { color: var(--accent); }
.status-approved { color: var(--success); }
.status-declined { color: var(--danger); }

/* Minecraft Console redesign */
.minecraft-console {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  --minecraft-surface: rgba(5, 14, 10, .94);
  --minecraft-line: rgba(151, 212, 167, .17);
  --minecraft-glow: color-mix(in srgb, var(--accent) 25%, transparent);
}
.minecraft-console::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(rgba(111, 165, 125, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(111, 165, 125, .055) 1px, transparent 1px),
    linear-gradient(180deg, rgba(2, 12, 7, .44), rgba(3, 18, 10, .78));
  background-size: 7rem 7rem, 7rem 7rem, auto;
  pointer-events: none;
}
.minecraft-console-hero {
  position: relative;
  display: flex;
  min-height: clamp(31rem, 64vh, 46rem);
  overflow: hidden;
  align-items: flex-end;
  border-bottom: 1px solid var(--minecraft-line);
  background:
    radial-gradient(circle at 72% 28%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 25%),
    linear-gradient(112deg, rgba(2, 14, 8, .97), rgba(7, 47, 25, .83) 53%, rgba(18, 39, 38, .76));
}
.minecraft-console-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .28;
  background:
    linear-gradient(90deg, transparent 49.6%, rgba(255,255,255,.08) 50%, transparent 50.4%),
    linear-gradient(transparent 49.6%, rgba(255,255,255,.07) 50%, transparent 50.4%);
  background-size: 9rem 9rem;
  mask-image: linear-gradient(to right, transparent 20%, #000 72%);
}
.minecraft-console-hero-inner { position: relative; z-index: 2; padding-block: clamp(5rem, 11vw, 9rem) clamp(4rem, 8vw, 6rem); }
.minecraft-console-hero h1 {
  max-width: none;
  margin: .25rem 0 0;
  font-size: clamp(5rem, 14vw, 12rem);
  line-height: .78;
  letter-spacing: -.085em;
  text-shadow: 0 1rem 5rem rgba(0,0,0,.42);
}
.minecraft-console-tagline { margin: 1.8rem 0 0; color: var(--muted); font-size: clamp(1.3rem, 2.4vw, 2rem); letter-spacing: -.025em; }
.minecraft-console-stats { display: flex; margin-top: 2.2rem; flex-wrap: wrap; gap: .75rem; }
.minecraft-console-stats span { display: flex; padding: .55rem .8rem; border: 1px solid var(--minecraft-line); border-radius: 3rem; align-items: baseline; gap: .4rem; background: rgba(2,12,7,.48); color: var(--muted); font-size: .74rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; backdrop-filter: blur(10px); }
.minecraft-console-stats strong { color: var(--accent); font-size: 1rem; }
.minecraft-blockscape { position: absolute; right: -2rem; bottom: 0; width: min(54vw, 52rem); height: 72%; opacity: .42; filter: drop-shadow(0 1.5rem 3rem rgba(0,0,0,.45)); }
.minecraft-blockscape i { position: absolute; display: block; background: rgba(3, 18, 11, .94); box-shadow: inset 0 1px rgba(255,255,255,.06); }
.minecraft-blockscape i:nth-child(1) { right: 0; bottom: 0; width: 88%; height: 16%; }
.minecraft-blockscape i:nth-child(2) { right: 8%; bottom: 16%; width: 69%; height: 17%; }
.minecraft-blockscape i:nth-child(3) { right: 22%; bottom: 33%; width: 52%; height: 16%; }
.minecraft-blockscape i:nth-child(4) { right: 7%; bottom: 49%; width: 21%; height: 23%; background: rgba(7,31,19,.9); }
.minecraft-blockscape i:nth-child(5) { right: 54%; bottom: 49%; width: 15%; height: 34%; background: rgba(7,31,19,.9); }
.minecraft-blockscape i:nth-child(6) { right: 32%; bottom: 49%; width: 12%; height: 12%; background: color-mix(in srgb, var(--accent) 25%, rgba(6,25,15,.9)); }

.minecraft-console-nav {
  position: relative;
  z-index: 5;
  display: flex;
  width: fit-content;
  max-width: 100%;
  margin-top: -1.65rem;
  padding: .45rem;
  overflow-x: auto;
  border: 1px solid var(--minecraft-line);
  border-radius: 3rem;
  align-items: center;
  gap: .2rem;
  background: rgba(3, 12, 8, .92);
  box-shadow: 0 1.2rem 3rem rgba(0,0,0,.3);
  backdrop-filter: blur(18px);
  scrollbar-width: none;
}
.minecraft-console-nav::-webkit-scrollbar { display: none; }
.minecraft-console-nav a { padding: .62rem .9rem; border-radius: 2rem; color: var(--muted); font-size: .72rem; font-weight: 900; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.minecraft-console-nav a:hover,
.minecraft-console-nav a.is-active { background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent); }
.minecraft-console-mark { display: grid; width: 2rem; min-width: 2rem; aspect-ratio: 1; margin-right: .15rem; grid-template-columns: repeat(2, .42rem); grid-auto-rows: .42rem; place-content: center; gap: 2px; }
.minecraft-console-mark i { display: block; background: var(--accent); opacity: .85; }
.minecraft-console-mark i:nth-child(2), .minecraft-console-mark i:nth-child(3) { opacity: .35; }

.minecraft-section-heading { display: flex; margin-bottom: 2rem; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.minecraft-section-heading h2 { max-width: 16ch; margin: .35rem 0 0; font-size: clamp(2.4rem, 5vw, 5rem); letter-spacing: -.055em; line-height: .95; }
.minecraft-section-heading > p { max-width: 34rem; margin: 0; color: var(--muted); }
.minecraft-worlds-section { padding-top: clamp(4rem, 8vw, 7rem); }
.minecraft-world-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.minecraft-world-card { overflow: hidden; border: 1px solid var(--minecraft-line); border-radius: clamp(1.4rem, 3vw, 2.2rem); background: var(--minecraft-surface); box-shadow: 0 2rem 6rem rgba(0,0,0,.28); }
.minecraft-world-art { position: relative; height: clamp(13rem, 25vw, 20rem); overflow: hidden; border-bottom: 1px solid var(--minecraft-line); background-color: #102419; }
.minecraft-world-art::before,
.minecraft-world-art::after,
.minecraft-world-art > span,
.minecraft-world-art > i,
.minecraft-world-art > b { content: ""; position: absolute; display: block; }
.minecraft-world-art::before { inset: 0; background-size: 3.7rem 3.7rem; opacity: .8; }
.family-world-art { background: linear-gradient(#172f2e 0 44%, #284633 44% 62%, #172818 62%); }
.family-world-art::before { background-image: linear-gradient(90deg, transparent 49%, rgba(255,255,255,.06) 50%), linear-gradient(transparent 49%, rgba(255,255,255,.05) 50%); }
.family-world-art::after { left: 8%; bottom: 0; width: 52%; height: 47%; background: #273f26; box-shadow: 3.7rem -3.7rem #355631, 7.4rem -3.7rem #355631, 11.1rem -7.4rem #223b25; }
.family-world-art > span { right: 11%; top: 17%; width: 3.8rem; aspect-ratio: 1; background: color-mix(in srgb, var(--accent) 62%, #e9d47e); box-shadow: 0 0 3rem color-mix(in srgb, var(--accent) 30%, transparent); }
.family-world-art > i { right: 14%; bottom: 0; width: 18%; height: 53%; background: #172819; box-shadow: -3.7rem 3.7rem #1c3020; }
.family-world-art > b { left: 22%; bottom: 0; width: 2.7rem; height: 7.4rem; background: #5b3c25; box-shadow: -3.7rem 0 #49351f, 3.7rem 0 #614126; }
.public-world-art { background: linear-gradient(#263147 0 42%, #516352 42% 58%, #273d2c 58%); }
.public-world-art::before { background-image: linear-gradient(90deg, transparent 49%, rgba(255,255,255,.07) 50%), linear-gradient(transparent 49%, rgba(255,255,255,.055) 50%); }
.public-world-art::after { right: 0; bottom: 0; width: 67%; height: 44%; background: #3d5536; box-shadow: -3.7rem -3.7rem #526d43, -7.4rem 0 #344c33, -11.1rem 3.7rem #263e2c; }
.public-world-art > span { left: 12%; top: 19%; width: 3rem; aspect-ratio: 1; background: #ecd57f; box-shadow: 0 0 2.4rem rgba(236,213,127,.34); }
.public-world-art > i { right: 20%; bottom: 20%; width: 24%; height: 36%; background: #344534; box-shadow: inset 0 0 0 .65rem #5f725a; }
.public-world-art > b { right: 28%; bottom: 20%; width: .85rem; height: 36%; background: #1d2d22; }
.minecraft-world-content { display: flex; min-height: 27rem; padding: clamp(1.5rem, 3vw, 2.4rem); flex-direction: column; }
.minecraft-world-status { display: flex; align-items: center; gap: .55rem; color: var(--accent); font-size: .64rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.minecraft-world-status i { width: .48rem; aspect-ratio: 1; border-radius: 50%; background: var(--accent); box-shadow: 0 0 .8rem var(--minecraft-glow); }
.minecraft-world-kicker { margin: 2rem 0 .25rem; color: var(--quiet); font-size: .7rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.minecraft-world-content h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 4rem); letter-spacing: -.055em; }
.minecraft-world-description { max-width: 42rem; }
.minecraft-world-facts { display: grid; margin: 1.5rem 0; padding: 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.minecraft-world-facts div { min-width: 0; padding-top: .8rem; border-top: 1px solid var(--minecraft-line); }
.minecraft-world-facts dt { color: var(--quiet); font-size: .58rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.minecraft-world-facts dd { margin: .25rem 0 0; overflow-wrap: anywhere; font-size: .78rem; font-weight: 800; }
.minecraft-world-button { width: fit-content; margin-top: auto; }

.minecraft-feature-section { padding-top: 0; }
.minecraft-feature-adventure { display: grid; min-height: 25rem; overflow: hidden; border: 1px solid var(--minecraft-line); border-radius: clamp(1.4rem, 3vw, 2.2rem); grid-template-columns: minmax(0,1.15fr) minmax(18rem,.85fr); background: var(--minecraft-surface); box-shadow: 0 2rem 6rem rgba(0,0,0,.24); }
.minecraft-feature-adventure.without-image,
.minecraft-feature-adventure.is-empty { display: flex; min-height: 18rem; padding: clamp(2rem,5vw,4rem); align-items: flex-end; justify-content: space-between; gap: 2rem; background: linear-gradient(125deg, rgba(8,34,20,.96), rgba(12,25,22,.92)); }
.minecraft-feature-image { min-height: 25rem; overflow: hidden; }
.minecraft-feature-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.minecraft-feature-image:hover img { transform: scale(1.025); }
.minecraft-feature-copy { display: flex; padding: clamp(2rem,5vw,4rem); flex-direction: column; justify-content: center; }
.minecraft-feature-copy h2,
.minecraft-feature-adventure.is-empty h2 { margin: .3rem 0 1rem; font-size: clamp(2.2rem,4.5vw,4.6rem); letter-spacing: -.055em; line-height: .96; }
.minecraft-feature-adventure.is-empty > div { max-width: 48rem; }
.minecraft-feature-adventure p { color: var(--muted); }

.minecraft-tools-section { border-block: 1px solid var(--minecraft-line); background: rgba(2,12,7,.46); }
.minecraft-tool-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; }
.minecraft-tool-card { position: relative; display: flex; min-height: 14rem; padding: 1.35rem; overflow: hidden; border: 1px solid var(--minecraft-line); border-radius: var(--radius-lg); flex-direction: column; background: rgba(7,22,14,.82); color: var(--ink); text-decoration: none; transition: transform .25s var(--ease), border-color .25s, background .25s; }
.minecraft-tool-card:hover { transform: translateY(-.2rem); border-color: color-mix(in srgb,var(--accent) 55%,transparent); background: rgba(11,31,20,.94); }
.minecraft-tool-card > span { position: absolute; top: .8rem; right: 1rem; color: rgba(255,255,255,.17); font-size: 1.5rem; font-weight: 260; }
.minecraft-tool-card > i { color: var(--accent); font-size: 2rem; font-style: normal; }
.minecraft-tool-card > strong { margin-top: auto; font-size: 1.2rem; }
.minecraft-tool-card > small { margin-top: .3rem; color: var(--quiet); line-height: 1.35; }
.minecraft-tool-card.is-coming-soon { opacity: .68; }
.minecraft-public-stories { background: linear-gradient(180deg, transparent, rgba(3,13,8,.58)); }

.minecraft-subpage { min-height: 70vh; }
.minecraft-subhero { position: relative; overflow: hidden; padding: clamp(5rem,10vw,9rem) 0 clamp(4rem,7vw,6rem); border-bottom: 1px solid var(--minecraft-line); background: linear-gradient(122deg, rgba(2,15,8,.96), rgba(8,45,25,.78) 58%, rgba(20,38,37,.7)); }
.minecraft-subhero::after { content: ""; position: absolute; right: -4rem; bottom: -5rem; width: min(43vw,36rem); aspect-ratio: 1.5; opacity: .32; background: linear-gradient(90deg, transparent 49%, rgba(255,255,255,.12) 50%), linear-gradient(transparent 49%, rgba(255,255,255,.1) 50%); background-size: 4rem 4rem; transform: rotate(-8deg); }
.minecraft-subhero > .container { position: relative; z-index: 1; }
.minecraft-subhero h1 { max-width: 14ch; margin: .5rem 0 1rem; font-size: clamp(3.5rem,8vw,7rem); line-height: .9; letter-spacing: -.065em; }
.minecraft-subpage > .container > .minecraft-console-nav { margin-top: -1.65rem; }

/* Minecraft dashboard v2 — composition follows the approved cinematic console. */
.minecraft-dashboard {
  --minecraft-lime: #93ec7f;
  --minecraft-panel: rgba(5, 13, 10, .91);
  --minecraft-panel-line: rgba(183, 221, 194, .19);
  position: relative;
  min-height: 100vh;
  margin-top: calc(-1 * var(--header-height));
  overflow: hidden;
  background: #030a07;
  color: #f5f7f2;
}
.minecraft-dashboard::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 27rem 0 0;
  background:
    linear-gradient(rgba(147,236,127,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(147,236,127,.025) 1px, transparent 1px),
    radial-gradient(circle at 50% 0, rgba(40,93,57,.2), transparent 42%),
    #030a07;
  background-size: 4rem 4rem, 4rem 4rem, auto, auto;
}
.minecraft-dashboard .container { width: min(86rem, calc(100% - 3rem)); }
.minecraft-dashboard-hero { position: relative; min-height: 34rem; overflow: hidden; }
.minecraft-dashboard-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.minecraft-dashboard-hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(2,8,5,.96) 0%, rgba(2,8,5,.82) 26%, rgba(2,8,5,.2) 61%, rgba(2,8,5,.12)),
    linear-gradient(180deg, rgba(2,8,5,.25), transparent 42%, #030a07 100%);
}
.minecraft-dashboard-hero-content { position: relative; z-index: 2; padding-top: calc(var(--header-height) + .5rem); }
.minecraft-dashboard-hero .eyebrow,
.minecraft-dashboard-card .eyebrow { color: var(--minecraft-lime); }
.minecraft-dashboard-hero h1 { max-width: 12ch; margin: .55rem 0 1rem; font-size: clamp(3.5rem, 5.2vw, 5.25rem); letter-spacing: -.065em; line-height: .86; }
.minecraft-dashboard-intro { max-width: 31rem; margin: 0; color: rgba(244,248,242,.78); font-size: 1.15rem; line-height: 1.55; }
.minecraft-dashboard-actions { margin-top: 1.65rem; }
.minecraft-dashboard-actions .button { min-height: 3rem; padding-inline: 1.15rem; }
.minecraft-dashboard-actions .secondary { background: rgba(2,9,6,.56); backdrop-filter: blur(12px); }
.minecraft-falling-block { position: absolute; z-index: 1; width: 1.55rem; aspect-ratio: 1; background: rgba(195,220,202,.2); box-shadow: inset 0 1px rgba(255,255,255,.15); transform: rotate(2deg); }
.minecraft-falling-block.block-one { top: 7.4rem; left: 46%; }
.minecraft-falling-block.block-two { top: 11rem; left: 50%; width: 1rem; opacity: .5; }
.minecraft-falling-block.block-three { right: 12%; bottom: 9rem; width: 1.2rem; opacity: .35; }

.minecraft-dashboard-body { position: relative; z-index: 3; margin-top: -8rem; padding-bottom: 3rem; }
.minecraft-server-deck { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .85rem; }
.minecraft-server-panel { position: relative; min-height: 14rem; overflow: hidden; border: 1px solid var(--minecraft-panel-line); border-radius: .8rem; background: #07110d; box-shadow: 0 1.5rem 4rem rgba(0,0,0,.36); }
.minecraft-server-panel > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .7s var(--ease); }
.minecraft-server-panel:hover > img { transform: scale(1.035); }
.minecraft-server-panel-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,10,7,.96) 0%, rgba(3,10,7,.86) 38%, rgba(3,10,7,.15) 78%), linear-gradient(0deg, rgba(3,10,7,.76), transparent 55%); }
.minecraft-server-panel-content { position: relative; z-index: 1; display: flex; min-height: 14rem; padding: 1.2rem 1.35rem; flex-direction: column; }
.minecraft-server-status { display: flex; margin: 0 0 .65rem; align-items: center; gap: .48rem; color: var(--minecraft-lime); font-size: .67rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.minecraft-server-status i { width: .43rem; aspect-ratio: 1; border-radius: 50%; background: var(--minecraft-lime); box-shadow: 0 0 .75rem var(--minecraft-lime); }
.minecraft-server-panel h2 { max-width: 14ch; margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.2rem); letter-spacing: -.045em; line-height: 1; }
.minecraft-server-detail { margin: .55rem 0 0; color: rgba(244,248,242,.72); font-size: .82rem; }
.minecraft-server-footer { display: flex; margin-top: auto; align-items: flex-end; justify-content: space-between; gap: 1rem; color: rgba(244,248,242,.68); font-size: .73rem; }
.minecraft-outline-action { display: inline-flex; min-height: 2.15rem; padding: .45rem .75rem; border: 1px solid rgba(147,236,127,.55); border-radius: .35rem; align-items: center; gap: .45rem; background: rgba(5,19,11,.58); color: var(--minecraft-lime); font-weight: 800; text-decoration: none; backdrop-filter: blur(10px); }
.minecraft-outline-action:hover { border-color: var(--minecraft-lime); background: rgba(49,102,51,.45); }

.minecraft-dashboard-grid { display: grid; margin-top: .85rem; grid-template-columns: minmax(0,1.22fr) minmax(0,.98fr) minmax(0,.9fr); gap: .85rem; }
.minecraft-dashboard-card { border: 1px solid var(--minecraft-panel-line); border-radius: .72rem; background: var(--minecraft-panel); box-shadow: 0 1.25rem 3.5rem rgba(0,0,0,.27); }
.minecraft-card-heading { display: flex; margin-bottom: 1.2rem; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.minecraft-card-heading h2 { margin: .2rem 0 0; font-size: 1.35rem; letter-spacing: -.035em; }
.minecraft-card-heading > span { padding: .24rem .55rem; border: 1px solid var(--minecraft-panel-line); border-radius: 2rem; color: var(--quiet); font-size: .64rem; font-weight: 800; text-transform: uppercase; }
.minecraft-journal-panel { display: flex; min-height: 21.5rem; padding: 1.25rem; flex-direction: column; }
.minecraft-journal-list { position: relative; display: grid; margin: 0; padding: 0; gap: .8rem; list-style: none; }
.minecraft-journal-list::before { content: ""; position: absolute; top: .8rem; bottom: .8rem; left: 5.15rem; width: 1px; background: rgba(147,236,127,.3); }
.minecraft-journal-list li { position: relative; display: grid; grid-template-columns: 4.2rem 1rem minmax(0,1fr); gap: .5rem; align-items: start; }
.minecraft-journal-list time { display: grid; color: var(--muted); font-size: .65rem; line-height: 1.25; text-transform: uppercase; }
.minecraft-journal-list time span { color: var(--quiet); }
.minecraft-journal-list li > i { position: relative; z-index: 1; width: .7rem; margin-top: .3rem; aspect-ratio: 1; border: 2px solid #07110d; border-radius: 50%; background: var(--minecraft-lime); box-shadow: 0 0 0 1px rgba(147,236,127,.38); }
.minecraft-journal-list li > div { display: grid; min-width: 0; line-height: 1.2; }
.minecraft-journal-list small { color: var(--minecraft-lime); font-size: .56rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.minecraft-journal-list a { margin-top: .12rem; overflow: hidden; font-size: .9rem; font-weight: 800; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.minecraft-journal-list li > div > span { margin-top: .2rem; overflow: hidden; color: var(--quiet); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.minecraft-panel-link { display: inline-flex; width: fit-content; margin-top: auto; align-items: center; gap: .4rem; color: var(--minecraft-lime); font-size: .72rem; font-weight: 850; text-decoration: none; }
.minecraft-panel-link:hover { color: #c5ffb8; }
.minecraft-panel-link.is-muted { color: var(--quiet); }
.minecraft-compact-empty { display: grid; margin: 2.7rem 0; color: var(--muted); }
.minecraft-compact-empty strong { color: var(--ink); font-size: 1.05rem; }
.minecraft-compact-empty span { font-size: .8rem; }

.minecraft-feature-stack,
.minecraft-download-stack { display: grid; gap: .85rem; }
.minecraft-feature-stack { grid-template-rows: minmax(0,1.55fr) minmax(0,.75fr); }
.minecraft-latest-panel { position: relative; display: flex; min-height: 0; padding: 1.25rem; overflow: hidden; flex-direction: column; background: linear-gradient(115deg, rgba(4,14,9,.96), rgba(13,31,21,.76)), url('/images/minecraft-family-world-v2.jpg') center/cover; }
.minecraft-latest-panel h2 { max-width: 13ch; margin: .35rem 0 .6rem; font-size: clamp(1.65rem,2.3vw,2.2rem); letter-spacing: -.045em; line-height: 1; }
.minecraft-latest-panel > p:not(.eyebrow) { max-width: 30ch; margin: 0 0 1rem; color: var(--muted); font-size: .8rem; }
.minecraft-world-note { display: flex; padding: 1rem 1.15rem; align-items: center; justify-content: space-between; gap: 1rem; background: linear-gradient(120deg, rgba(6,16,12,.96), rgba(20,39,29,.8)); }
.minecraft-world-note h3 { margin: .15rem 0 0; font-size: 1.1rem; }
.minecraft-world-note .minecraft-panel-link { margin-top: 0; white-space: nowrap; }
.minecraft-download-stack { grid-template-rows: repeat(2,minmax(0,1fr)); }
.minecraft-download-panel { position: relative; display: flex; min-height: 0; padding: 1.1rem; overflow: hidden; flex-direction: column; }
.minecraft-download-copy { position: relative; z-index: 1; max-width: calc(100% - 4.7rem); }
.minecraft-download-panel h2 { margin: .2rem 0 .3rem; overflow: hidden; font-size: 1.2rem; letter-spacing: -.035em; text-overflow: ellipsis; white-space: nowrap; }
.minecraft-download-panel p:not(.eyebrow) { display: -webkit-box; margin: 0; overflow: hidden; color: var(--quiet); font-size: .72rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.minecraft-cube { position: absolute; top: 1.15rem; right: 1.1rem; width: 3.2rem; aspect-ratio: 1; transform: rotate(8deg); background: linear-gradient(135deg, #804bb7 0 50%, #4d236d 50%); box-shadow: inset -.65rem -.55rem rgba(0,0,0,.24), 0 .8rem 1.5rem rgba(0,0,0,.4); clip-path: polygon(50% 0, 100% 24%, 100% 76%, 50% 100%, 0 76%, 0 24%); }
.minecraft-cube::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 47%, rgba(255,255,255,.15) 48% 51%, transparent 52%), linear-gradient(30deg, transparent 49%, rgba(0,0,0,.24) 50% 52%, transparent 53%); }
.minecraft-cube-grass { background: linear-gradient(180deg, #68a849 0 32%, #77532d 33% 100%); }

.minecraft-tool-strip { display: grid; margin-top: .85rem; grid-template-columns: repeat(5,minmax(0,1fr)); border: 1px solid var(--minecraft-panel-line); border-radius: .72rem; background: rgba(4,12,8,.94); box-shadow: 0 1.25rem 3.5rem rgba(0,0,0,.25); }
.minecraft-tool-strip > a,
.minecraft-tool-strip > span { display: flex; min-width: 0; min-height: 4.4rem; padding: .7rem .8rem; border-right: 1px solid var(--minecraft-panel-line); align-items: center; gap: .72rem; text-decoration: none; }
.minecraft-tool-strip > :last-child { border-right: 0; }
.minecraft-tool-strip > a:hover { background: rgba(147,236,127,.065); }
.minecraft-tool-strip i { display: grid; width: 2rem; min-width: 2rem; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; place-items: center; color: var(--ink); font-style: normal; }
.minecraft-tool-strip > a > span,
.minecraft-tool-strip > span > span { display: grid; min-width: 0; line-height: 1.2; }
.minecraft-tool-strip strong { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.minecraft-tool-strip small { overflow: hidden; color: var(--quiet); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.minecraft-tool-strip .is-disabled { opacity: .48; }

@media (max-width: 1120px) {
  .minecraft-dashboard-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .minecraft-download-stack { grid-column: 1 / -1; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: none; }
  .minecraft-tool-strip { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .minecraft-tool-strip > a,
  .minecraft-tool-strip > span { border-bottom: 1px solid var(--minecraft-panel-line); }
}

@media (max-width: 680px) {
  .minecraft-dashboard { margin-top: 0; }
  .minecraft-dashboard .container { width: min(100% - 2rem, 86rem); }
  .minecraft-dashboard-hero { min-height: 35rem; }
  .minecraft-dashboard-hero-image { object-position: 61% center; }
  .minecraft-dashboard-hero-shade { background: linear-gradient(90deg, rgba(2,8,5,.94), rgba(2,8,5,.45)), linear-gradient(180deg, rgba(2,8,5,.2), transparent 40%, #030a07 100%); }
  .minecraft-dashboard-hero-content { padding-top: 5.5rem; }
  .minecraft-dashboard-hero h1 { font-size: clamp(3.6rem,17vw,5rem); }
  .minecraft-dashboard-intro { max-width: 22rem; font-size: 1rem; }
  .minecraft-dashboard-actions { align-items: stretch; flex-direction: column; }
  .minecraft-dashboard-actions .button { width: 100%; }
  .minecraft-dashboard-body { margin-top: -3.5rem; }
  .minecraft-server-deck { grid-template-columns: 1fr; }
  .minecraft-server-panel,
  .minecraft-server-panel-content { min-height: 15rem; }
  .minecraft-server-panel-shade { background: linear-gradient(90deg, rgba(3,10,7,.95), rgba(3,10,7,.42)), linear-gradient(0deg, rgba(3,10,7,.85), transparent 62%); }
  .minecraft-server-footer { align-items: flex-start; flex-direction: column; }
  .minecraft-dashboard-grid { grid-template-columns: 1fr; }
  .minecraft-feature-stack { grid-template-rows: none; }
  .minecraft-latest-panel { min-height: 15rem; }
  .minecraft-world-note { align-items: flex-start; flex-direction: column; }
  .minecraft-download-stack { grid-column: auto; grid-template-columns: 1fr; }
  .minecraft-download-panel { min-height: 11rem; }
  .minecraft-tool-strip { grid-template-columns: 1fr; }
  .minecraft-tool-strip > a,
  .minecraft-tool-strip > span { border-right: 0; }
}

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-md); }
table { width: 100%; border-collapse: collapse; background: var(--surface); }
th, td { padding: .85rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--accent); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.actions form { margin: 0; }
.admin-nav { display: flex; margin: 1.5rem 0 2rem; flex-wrap: wrap; gap: .7rem; }

.site-footer { position: relative; z-index: 2; padding: 1.5rem 0 2rem; color: var(--quiet); font-size: .75rem; letter-spacing: .04em; }
.footer-wrap { display: flex; padding-top: 1.2rem; border-top: 1px solid var(--line); justify-content: space-between; gap: 1rem; }

@keyframes media-breathe {
  from { transform: scale(1.01) translate3d(0, 0, 0); }
  to { transform: scale(1.045) translate3d(-.45%, -.3%, 0); }
}

@media (max-width: 1000px) {
  :root { --header-height: 4.75rem; }
  .site-header {
    position: sticky;
    top: 0;
    background: var(--canvas);
  }
  .shell-header, .is-signed-in .shell-header { width: 100%; padding-inline: 1rem; }
  .people-rail {
    z-index: 25;
    inset: var(--header-height) 0 auto;
    width: 100%;
    height: 5rem;
    padding: .55rem 1rem;
    flex-direction: row;
    justify-content: center;
    gap: .55rem;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    box-shadow: 0 1.2rem 2.5rem rgba(0,0,0,.18);
  }
  .people-rail-label { display: none; }
  .person-rail-button { min-height: 3.75rem; padding: .35rem .9rem .35rem .45rem; border-left: 0; border-bottom: 2px solid transparent; border-radius: 2rem; flex-direction: row; gap: .55rem; }
  .person-rail-button::after { display: none; }
  .person-rail-button.is-current, .person-rail-button.is-selected { border-bottom-color: var(--person-color); }
  .person-avatar { --avatar-size: 2.8rem; padding: 2px; }
  .person-status { width: .62rem; bottom: .08rem; }
  .person-name { font-size: .76rem; }
  .person-accent { display: none; }
  .site-main.with-people-rail { padding: 5rem 0 0; }
  .site-footer.with-people-rail { padding-left: 0; }
  .person-drawer {
    top: calc(var(--header-height) + 5.75rem);
    left: .75rem;
    width: min(22rem, calc(100vw - 1.5rem));
    max-height: calc(100vh - var(--header-height) - 6.5rem);
    transform: translateY(-1rem) scale(.98);
  }
  .home-dashboard, .public-home { width: min(100% - 2rem, 72rem); }
  .dashboard-layout, .public-home { grid-template-columns: 1fr; }
  .public-home { align-content: center; gap: 3rem; }
  .public-access-panel { width: min(34rem, 100%); }
  .hero-grid, .split { grid-template-columns: 1fr; }
  .card-grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chores-page { width: min(100% - 2rem, var(--content-width)); padding-top: 3rem; }
  .chores-layout { grid-template-columns: 1fr; }
  .chore-add-card { position: static; }
  .rewards-page { width: min(100% - 2rem, var(--content-width)); padding-top: 3rem; }
  .reward-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .badge-shelf { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .rewards-admin-layout { grid-template-columns: 1fr; }
  .calendar-page { width: min(100% - 2rem, var(--content-width)); padding-top: 3rem; }
  .calendar-layout { grid-template-columns: 1fr; }
  .calendar-sidebar { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .calendar-source-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .calendar-import-page { width: min(100% - 2rem, var(--content-width)); padding-top: 3rem; }
  .import-layout { grid-template-columns: 1fr; }
  .import-capability-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gaming-hero-grid, .gaming-world-grid, .setup-guide { grid-template-columns: 1fr; }
  .minecraft-path-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .troubleshooting-card { position: static; }
  .minecraft-console-hero { min-height: 34rem; }
  .minecraft-blockscape { right: -8rem; width: 70vw; opacity: .32; }
  .minecraft-world-card-grid { grid-template-columns: 1fr; }
  .minecraft-world-art { height: clamp(14rem,38vw,20rem); }
  .minecraft-world-content { min-height: 24rem; }
  .minecraft-tool-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (orientation: portrait) {
  .media-wall { inset: -2rem; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: calc((100vh + 4rem) / 10); }
}

@media (max-width: 680px) {
  .media-wall { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .container, .narrow { width: calc(100% - 2rem); }
  .identity-chip > span:last-child, .menu-label { display: none; }
  .header-actions { gap: .45rem; }
  .identity-avatar { --avatar-size: 2.25rem; }
  .menu-button { padding-right: .25rem; }
  .people-rail { height: 4.6rem; padding-inline: .55rem; justify-content: stretch; gap: .3rem; }
  .person-rail-button { flex: 1; min-width: 0; min-height: 3.4rem; padding: .3rem .45rem .3rem .3rem; gap: .4rem; }
  .person-avatar { --avatar-size: 2.35rem; }
  .person-status { width: .55rem; border-width: 1px; }
  .person-name { overflow: hidden; font-size: .7rem; text-overflow: ellipsis; }
  .site-main.with-people-rail { padding-top: 4.6rem; }
  .home-dashboard { padding-top: 3rem; }
  .dashboard-heading { margin-bottom: 2.4rem; }
  .dashboard-heading h1, .public-home h1 { font-size: clamp(3.2rem, 18vw, 5.2rem); }
  .today-panel { min-height: 23rem; padding: 2rem 1.4rem; }
  .compact-panel { padding: 1.5rem 4rem 1.5rem 1.4rem; }
  .activity-strip { display: grid; gap: .7rem; }
  .public-home { padding: 4rem 0; }
  .public-access-panel { padding: 5rem 1.4rem 1.5rem; }
  .drawer { width: 100%; padding: 1.25rem; border-radius: 0; }
  .person-drawer { top: calc(var(--header-height) + 5.1rem); left: .5rem; width: calc(100vw - 1rem); max-height: calc(100vh - var(--header-height) - 5.6rem); border-radius: var(--radius-lg); }
  .summary-grid { grid-template-columns: 1fr; }
  .summary-grid article { min-height: auto; }
  .account-profile-heading, .profile-picture-editor { align-items: flex-start; flex-direction: column; }
  .profile-picture-preview, .profile-picture-placeholder { --avatar-size: 6rem; }
  .card-grid.two, .card-grid.three { grid-template-columns: 1fr; }
  .footer-wrap { flex-direction: column; }
  .table-wrap { margin-inline: -1rem; border-inline: 0; }
  .brand-copy strong { font-size: .95rem; letter-spacing: .26em; }
  .chores-hero { align-items: flex-start; flex-direction: column; }
  .chores-hero h1 { font-size: clamp(3.2rem, 17vw, 5rem); }
  .chore-summary { gap: .4rem; }
  .chore-summary article { min-height: 6.7rem; padding: .85rem; }
  .chore-summary article::after { right: .25rem; font-size: 4.5rem; }
  .chore-summary strong { font-size: 1.85rem; }
  .chore-summary p { display: none; }
  .chore-filters { border-radius: var(--radius-md); }
  .chore-item { padding-right: .75rem; }
  .chore-item-heading { align-items: flex-start; flex-direction: column; gap: .3rem; }
  .chore-item-meta { width: 100%; justify-content: space-between; }
  .rewards-hero { align-items: flex-start; flex-direction: column; }
  .rewards-hero h1 { font-size: clamp(3.5rem, 18vw, 5.4rem); }
  .points-balance-card { width: 100%; min-width: 0; justify-items: start; }
  .badge-progress-copy { align-items: flex-start; }
  .badge-progress-copy > .badge-symbol { width: 3.7rem; flex: 0 0 auto; font-size: 1.6rem; }
  .badge-shelf { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .reward-grid { grid-template-columns: 1fr; }
  .reward-card { min-height: 16rem; }
  .reward-history-list article { grid-template-columns: minmax(0,1fr) auto; }
  .reward-history-list article > b { grid-column: 2; }
  .points-admin-summary { grid-template-columns: 1fr; }
  .calendar-hero { align-items: flex-start; flex-direction: column; }
  .calendar-hero-actions { justify-content: flex-start; }
  .calendar-sidebar { grid-template-columns: 1fr; }
  .calendar-weekdays { display: none; }
  .calendar-grid { display: block; }
  .calendar-week { border-bottom: 0; }
  .calendar-week-days { display: block; }
  .calendar-range-layer { display: none; }
  .calendar-day { display: grid; min-height: 4.6rem; padding: .75rem .85rem; border: 0; border-bottom: 1px solid var(--line); grid-template-columns: 3.2rem 1fr; gap: .75rem; }
  .calendar-week:last-child .calendar-day:last-child { border-bottom: 0; }
  .calendar-day.is-outside { display: none; }
  .calendar-day > header { align-content: start; justify-content: center; flex-direction: column; gap: 0; }
  .calendar-mobile-weekday { display: block; color: var(--quiet); font-size: .55rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  .calendar-day time { font-size: 1.15rem; }
  .calendar-day > header i { margin-top: .2rem; }
  .calendar-day-events { margin-top: 0; padding-top: 0; align-content: center; }
  .calendar-event-chip { white-space: normal; }
  .calendar-range-endpoint { display: block; }
  .calendar-sources-heading { flex-direction: column; }
  .new-source-panel > summary { margin-left: 0; }
  .calendar-form-row { grid-template-columns: 1fr; gap: 0; }
  .calendar-source-grid { grid-template-columns: 1fr; }
  .calendar-import-roadmap { grid-template-columns: 1fr; }
  .import-hero { align-items: flex-start; flex-direction: column; }
  .import-flow { width: 100%; justify-content: space-between; }
  .import-flow span { padding-inline: .5rem; }
  .import-history-list a { grid-template-columns: .45rem minmax(0,1fr); }
  .import-history-list .import-status { grid-column: 2; }
  .import-review-heading { flex-direction: column; }
  .import-candidate { grid-template-columns: 1.2rem 2.8rem minmax(0,1fr); gap: .65rem; }
  .import-candidate > time { width: 2.8rem; }
  .candidate-options { grid-column: 3; justify-items: start; }
  .candidate-display-mode > span { text-align: left; }
  .import-review-actions { align-items: stretch; flex-direction: column; }
  .document-waiting-state { padding: 1.2rem; align-items: flex-start; }
  .import-capability-grid { grid-template-columns: 1fr; }
  .gaming-heading-row { align-items: flex-start; flex-direction: column; }
  .server-card-grid, .minecraft-path-grid, .adventure-grid, .form-grid.two { grid-template-columns: 1fr; }
  .gaming-night-card, .minecraft-pack-card, .journal-intro-card { min-height: 14rem; }
  .game-world-card { min-height: 23rem; }
  .adventure-detail { width: calc(100% - 2rem); }
  .adventure-detail-header h1 { overflow-wrap: anywhere; }
  .setup-steps > li { grid-template-columns: 2rem 1fr; padding-inline: 1rem; }
  .minecraft-console::before { background-size: 4rem 4rem, 4rem 4rem, auto; }
  .minecraft-console-hero { min-height: 31rem; align-items: center; }
  .minecraft-console-hero-inner { padding-block: 5rem 3.8rem; }
  .minecraft-console-hero h1 { font-size: clamp(4rem,20vw,6rem); }
  .minecraft-console-tagline { margin-top: 1.3rem; font-size: 1.2rem; }
  .minecraft-console-stats { gap: .4rem; }
  .minecraft-console-stats span { padding: .42rem .62rem; font-size: .6rem; }
  .minecraft-blockscape { right: -12rem; width: 30rem; height: 58%; opacity: .28; }
  .minecraft-console-nav { width: 100%; margin-top: -1.35rem; border-radius: 1.4rem; }
  .minecraft-console-nav a { padding: .55rem .72rem; font-size: .63rem; }
  .minecraft-console-mark { display: none; }
  .minecraft-section-heading { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .minecraft-section-heading h2 { font-size: clamp(2.5rem,13vw,4rem); }
  .minecraft-world-art { height: 13rem; }
  .minecraft-world-content { min-height: 0; }
  .minecraft-world-facts { grid-template-columns: 1fr; }
  .minecraft-world-button { width: 100%; margin-top: 1rem; }
  .minecraft-feature-adventure,
  .minecraft-feature-adventure.without-image,
  .minecraft-feature-adventure.is-empty { display: flex; min-height: 0; padding: 0; align-items: stretch; flex-direction: column; }
  .minecraft-feature-adventure.is-empty > div,
  .minecraft-feature-adventure.without-image > .minecraft-feature-copy { padding: 1.5rem; }
  .minecraft-feature-adventure.is-empty > .button { width: calc(100% - 3rem); margin: 0 1.5rem 1.5rem; }
  .minecraft-feature-image { min-height: 13rem; aspect-ratio: 16/9; }
  .minecraft-feature-copy { padding: 1.5rem; }
  .minecraft-tool-grid { grid-template-columns: 1fr; }
  .minecraft-tool-card { min-height: 9rem; }
  .minecraft-subhero { padding-block: 4.5rem 4rem; }
  .minecraft-subhero h1 { font-size: clamp(3.3rem,16vw,5.3rem); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
