/* AgeCalculatorTool — scoped baseline (applies only inside .act-root) */
.act-root {
  background: #F4F4F2;
  color: #0F0F0F;
  font-family: 'Outfit', ui-sans-serif, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.5;
  font-size: 16px;
  font-weight: 400;
  text-align: left;
}
.act-root, .act-root *, .act-root *::before, .act-root *::after {
  box-sizing: border-box;
  border-color: #E5E5E0;
}
/* Aggressive but targeted reset — beats common theme rules on generic tags. */
.act-root section, .act-root article, .act-root header, .act-root footer,
.act-root main, .act-root aside, .act-root nav, .act-root div,
.act-root form, .act-root fieldset, .act-root ul, .act-root ol, .act-root li,
.act-root dl, .act-root dt, .act-root dd, .act-root figure, .act-root blockquote,
.act-root p, .act-root span, .act-root label, .act-root a {
  background: transparent;
}
.act-root h1, .act-root h2, .act-root h3, .act-root h4, .act-root h5, .act-root h6 {
  color: inherit;
  font-family: inherit;
  font-weight: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
  padding: 0;
  background: transparent;
  text-transform: none;
  letter-spacing: normal;
}
.act-root p, .act-root ul, .act-root ol, .act-root dl, .act-root dd, .act-root figure { margin: 0; padding: 0; }
.act-root ul, .act-root ol { list-style: none; }
.act-root img { max-width: 100%; display: block; }
.act-root a { color: inherit; text-decoration: none; background: transparent; }
.act-root button { color: inherit; font-family: inherit; background: transparent; border: 0; padding: 0; cursor: pointer; }
.act-root input, .act-root select, .act-root textarea {
  color: inherit; font-family: inherit; background: transparent;
  border-radius: 0; -webkit-appearance: none; appearance: none;
}
.act-root ::selection { background: #0F0F0F; color: #F4F4F2; }
:root {
  --act-paper: #F4F4F2;
  --act-ink: #0F0F0F;
  --act-signal: #D93D1A;
  --act-bone: #E5E5E0;
  --act-stone: #5C5C59;
}



:root {
  --paper: #F4F4F2;
  --ink: #0F0F0F;
  --signal: #D93D1A;
  --bone: #E5E5E0;
  --stone: #5C5C59;
}



.act-root img { max-width: 100%; display: block; }
.act-root a { color: inherit; text-decoration: none; }
.act-root button, .act-root input, .act-root select { font-family: inherit; color: inherit; }

.act-root ::selection { background: var(--ink); color: var(--paper); }


.act-root, .act-root { height: auto; }
.act-root .lenis.lenis-smooth { scroll-behavior: auto !important; }


.act-root .container { max-width: 1600px; margin: 0 auto; padding: 0 24px; }
@media (min-width: 1024px) { .act-root .container { padding: 0 40px; } }

.act-root .serif { font-family: 'Playfair Display', ui-serif, Georgia, serif; letter-spacing: -0.02em; }
.act-root .italic { font-style: italic; }
.act-root .uppercase-sm { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; font-weight: 500; }
.act-root .uppercase-xs { font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; font-weight: 500; }
.act-root .muted { color: rgba(15,15,15,0.5); }
.act-root .stone { color: var(--stone); }
.act-root .signal { color: var(--signal); }
.act-root .hr-dash { display: inline-block; width: 24px; height: 1px; background: rgba(15,15,15,0.4); vertical-align: middle; margin-right: 12px; }

.act-root .num-cell {
  font-family: 'Playfair Display', serif;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.04em;
  line-height: 0.9;
}


.act-root .link-underline {
  background-image: linear-gradient(var(--ink), var(--ink));
  background-size: 0% 1px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size 300ms cubic-bezier(0.4,0,0.2,1);
  padding-bottom: 2px;
}
.act-root .link-underline:hover { background-size: 100% 1px; }


.act-root .photo-editorial { filter: grayscale(30%) contrast(1.05); }
.act-root .photo-editorial-strong { filter: grayscale(85%) contrast(1.1) brightness(0.95); }


.act-root .grain::before {
  content: "";
  position: fixed;
  inset: -50%;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.35'/></svg>");
  pointer-events: none;
  z-index: 60;
  opacity: 0.06;
  mix-blend-mode: multiply;
}


.act-root .nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  transition: background 300ms, border-color 300ms, backdrop-filter 300ms;
  border-bottom: 1px solid transparent;
}
.act-root .nav.scrolled {
  background: rgba(244,244,242,0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom-color: var(--bone);
}
.act-root .nav-inner { height: 72px; display: flex; align-items: center; justify-content: space-between; }
.act-root .logo { display: flex; align-items: baseline; gap: 8px; }
.act-root .logo .mark { font-family: 'Playfair Display', serif; font-style: italic; font-size: 26px; line-height: 1; letter-spacing: -0.02em; }
.act-root .logo .sub { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(15,15,15,0.6); }
.act-root .logo:hover .sub { color: var(--signal); }

.act-root .nav-links { display: none; align-items: center; gap: 40px; }
@media (min-width: 768px) { .act-root .nav-links { display: flex; } }
.act-root .nav-links a:not(.btn-ink), .act-root .nav-links button:not(.btn-ink) { background: transparent; border: 0; cursor: pointer; }
.act-root .nav-links .link { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; font-weight: 500; }
.act-root .nav-links .link:hover { color: var(--signal); }

.act-root .btn-ink {
  position: relative; overflow: hidden;
  background: var(--ink); color: var(--paper);
  padding: 12px 24px;
  font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; font-weight: 500;
  border: 0; cursor: pointer;
  display: inline-flex; align-items: center;
}
.act-root .btn-ink .txt { position: relative; z-index: 1; }
.act-root .btn-ink::after {
  content: "";
  position: absolute; inset: 0;
  background: var(--signal);
  transform: translateY(100%);
  transition: transform 500ms cubic-bezier(0.22,1,0.36,1);
}
.act-root .btn-ink:hover::after { transform: translateY(0); }

.act-root .mobile-toggle { display: block; background: transparent; border: 0; font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; cursor: pointer; }
@media (min-width: 768px) { .act-root .mobile-toggle { display: none; } }


.act-root .nav-dropdown {
  border-top: 1px solid var(--bone);
  background: rgba(244,244,242,0.95);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  max-height: 0; overflow: hidden;
  transition: max-height 400ms cubic-bezier(0.22,1,0.36,1);
}
.act-root .nav-dropdown.open { max-height: 900px; }
.act-root .nav-dropdown-grid { padding: 40px 0; display: grid; grid-template-columns: 1fr; gap: 40px; }
@media (min-width: 768px) { .act-root .nav-dropdown-grid { grid-template-columns: repeat(4, 1fr); } }
.act-root .nav-col h4 { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; font-weight: 500; color: rgba(15,15,15,0.7); margin-bottom: 16px; }
.act-root .nav-col h4 .ch { font-family: 'Playfair Display', serif; font-style: italic; font-size: 24px; color: var(--signal); margin-right: 12px; }
.act-root .nav-col ul { list-style: none; }
.act-root .nav-col li { margin-bottom: 8px; }
.act-root .nav-col a { font-family: 'Playfair Display', serif; font-size: 20px; line-height: 1.2; }


.act-root .hero { position: relative; min-height: 100svh; padding-top: 72px; overflow: hidden; }
.act-root .hero-grid { padding: 64px 0 64px; display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
@media (min-width: 1024px) { .act-root .hero-grid { grid-template-columns: 6fr 6fr; padding-top: 80px; } }

.act-root .hero-eyebrow { margin-bottom: 32px; }
.act-root .hero-title {
  font-family: 'Playfair Display', serif;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 0.88;
  font-size: 56px;
}
@media (min-width: 640px) { .act-root .hero-title { font-size: 88px; } }
@media (min-width: 1024px) { .act-root .hero-title { font-size: 118px; } }

.act-root .mask-line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.18em;
  margin-bottom: -0.18em;
}
.act-root .mask-line > span {
  display: block;
  transform: translateY(110%);
  transition: transform 900ms cubic-bezier(0.22,1,0.36,1);
  will-change: transform;
}
.act-root .hero.ready .mask-line > span { transform: translateY(0); }
.act-root .hero.ready .mask-line:nth-child(1) > span { transition-delay: 100ms; }
.act-root .hero.ready .mask-line:nth-child(2) > span { transition-delay: 220ms; }
.act-root .hero.ready .mask-line:nth-child(3) > span { transition-delay: 340ms; }
.act-root .hero.ready .mask-line:nth-child(4) > span { transition-delay: 460ms; }

.act-root .hero-desc { margin-top: 32px; max-width: 32rem; color: var(--stone); font-size: 18px; line-height: 1.6; opacity: 0; transform: translateY(20px); transition: opacity 800ms ease, transform 800ms cubic-bezier(0.22,1,0.36,1); transition-delay: 900ms; }
.act-root .hero-input-wrap { margin-top: 40px; max-width: 32rem; opacity: 0; transform: translateY(20px); transition: opacity 800ms ease, transform 800ms cubic-bezier(0.22,1,0.36,1); transition-delay: 1050ms; }
.act-root .hero.ready .hero-desc, .act-root .hero.ready .hero-input-wrap { opacity: 1; transform: translateY(0); }

.act-root .hero-input-label { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(15,15,15,0.6); margin-bottom: 12px; display: block; }
.act-root .editorial-input {
  width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(15,15,15,0.2);
  padding: 8px 0; font-family: 'Playfair Display', serif; font-size: 32px; color: var(--ink);
  outline: none; transition: border-color 200ms; border-radius: 0;
}
.act-root .editorial-input:focus { border-bottom-color: var(--ink); }
.act-root .hero-live { margin-top: 16px; font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(15,15,15,0.4); }


.act-root .hero-image-wrap { position: relative; height: 440px; opacity: 0; transition: opacity 1200ms ease; transition-delay: 500ms; }


.act-root .hero-panel-wrap {
  position: relative;
  opacity: 0; transform: translateY(30px);
  transition: opacity 1000ms ease, transform 900ms cubic-bezier(0.22,1,0.36,1);
  transition-delay: 350ms;
}
.act-root .hero.ready .hero-panel-wrap { opacity: 1; transform: translateY(0); }
.act-root .hero-panel {
  position: relative;
  background: var(--ink);
  color: var(--paper);
  padding: 32px 28px;
  box-shadow: 0 30px 80px -30px rgba(15,15,15,0.4);
}
@media (min-width: 768px) { .act-root .hero-panel { padding: 40px; } }
@media (min-width: 1024px) { .act-root .hero-panel { padding: 48px; } }
.act-root .hero-panel .panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.act-root .hero-panel .live-dot { display: inline-flex; align-items: center; gap: 8px; color: var(--signal); font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; }
.act-root .hero-panel .live-dot .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--signal); animation: pulse 1.8s ease-in-out infinite; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } }

.act-root .panel-label { display: block; font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(244,244,242,0.6); margin-bottom: 12px; }
.act-root .panel-input {
  width: 100%; background: transparent; border: 0;
  border-bottom: 1px solid rgba(244,244,242,0.25);
  padding: 12px 0; font-family: 'Playfair Display', serif; font-size: 30px; color: var(--paper);
  outline: none; transition: border-color 200ms; border-radius: 0;
  color-scheme: dark;
}
@media (min-width: 768px) { .act-root .panel-input { font-size: 36px; } }
.act-root .panel-input:focus { border-bottom-color: var(--paper); }
.act-root .panel-input::-webkit-calendar-picker-indicator { filter: invert(1); opacity: 0.6; }

.act-root .panel-primary { margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(244,244,242,0.1); }
.act-root .primary-row { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
@media (min-width: 768px) { .act-root .primary-row { gap: 20px; } }
.act-root .big-num {
  font-family: 'Playfair Display', serif;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.04em;
  line-height: 0.9;
  font-size: 64px;
  color: var(--paper);
}
@media (min-width: 768px) { .act-root .big-num { font-size: 92px; } }
@media (min-width: 1024px) { .act-root .big-num { font-size: 112px; } }
.act-root .big-num.accent { color: var(--signal); }
.act-root .unit-word { font-family: 'Playfair Display', serif; font-style: italic; font-size: 24px; color: rgba(244,244,242,0.5); }
@media (min-width: 768px) { .act-root .unit-word { font-size: 32px; } }

.act-root .panel-stats {
  margin-top: 40px;
  border-top: 1px solid rgba(244,244,242,0.1);
  padding-top: 32px;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px;
}
@media (min-width: 768px) { .act-root .panel-stats { grid-template-columns: repeat(4, 1fr); } }
.act-root .stat { min-width: 0; display: flex; flex-direction: column; }
.act-root .stat-v { font-family: 'Playfair Display', serif; font-variant-numeric: tabular-nums; letter-spacing: -0.03em; font-size: 26px; color: var(--paper); overflow: hidden; text-overflow: ellipsis; }
@media (min-width: 768px) { .act-root .stat-v { font-size: 30px; } }
.act-root .stat-l { margin-top: 8px; font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(244,244,242,0.5); }

.act-root .panel-seconds { margin-top: 24px; border-top: 1px solid rgba(244,244,242,0.1); padding-top: 24px; display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.act-root .seconds-v { font-family: 'Playfair Display', serif; font-variant-numeric: tabular-nums; letter-spacing: -0.03em; font-size: 22px; color: var(--paper); }
@media (min-width: 768px) { .act-root .seconds-v { font-size: 28px; } }

.act-root .corner { position: absolute; width: 24px; height: 24px; }
.act-root .corner.tl { top: -1px; left: -1px; border-top: 1px solid var(--signal); border-left: 1px solid var(--signal); }
.act-root .corner.br { bottom: -1px; right: -1px; border-bottom: 1px solid var(--signal); border-right: 1px solid var(--signal); }

.act-root .panel-footer { margin-top: 16px; display: flex; align-items: center; justify-content: space-between; font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(15,15,15,0.4); }
.act-root .panel-footer .tabular { font-variant-numeric: tabular-nums; }
@media (min-width: 1024px) { .act-root .hero-image-wrap { height: 620px; } }
.act-root .hero.ready .hero-image-wrap { opacity: 1; }
.act-root .hero-image {
  position: absolute; inset: 0; overflow: hidden; background: #0F0F0F;
  transition: transform 400ms cubic-bezier(0.22,1,0.36,1);
  transform-style: preserve-3d;
  perspective: 1200px;
}
.act-root .hero-image img { width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
.act-root .hero-image .overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(15,15,15,0.4), transparent); }
.act-root .hero-image .chapter-mark { position: absolute; top: 24px; left: 24px; color: rgba(244,244,242,0.8); font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; }
.act-root .hero-image .caption { position: absolute; bottom: 24px; right: 24px; font-family: 'Playfair Display', serif; font-style: italic; color: var(--paper); font-size: 24px; }
.act-root .clip-frame { position: absolute; bottom: -12px; right: -12px; width: 96px; height: 96px; border: 1px solid var(--ink); display: none; }
@media (min-width: 1024px) { .act-root .clip-frame { display: block; } }


.act-root .kinetic {
  border-top: 1px solid var(--bone);
  background: var(--paper);
  opacity: 0; transform: translateY(30px);
  transition: opacity 900ms ease, transform 900ms cubic-bezier(0.22,1,0.36,1);
  transition-delay: 1200ms;
}
.act-root .hero.ready .kinetic { opacity: 1; transform: translateY(0); }
.act-root .kinetic-inner { padding: 40px 0; }
@media (min-width: 1024px) { .act-root .kinetic-inner { padding: 56px 0; } }
.act-root .kinetic-label { font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: rgba(15,15,15,0.5); margin-bottom: 24px; display: flex; align-items: center; }
.act-root .kinetic-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 32px; }
@media (min-width: 768px) { .act-root .kinetic-grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1024px) { .act-root .kinetic-grid { grid-template-columns: repeat(7, 1fr); } }
.act-root .k-cell { min-width: 0; display: flex; flex-direction: column; }
.act-root .k-cell .k-val { font-family: 'Playfair Display', serif; font-variant-numeric: tabular-nums; letter-spacing: -0.04em; line-height: 0.9; color: var(--ink); overflow: hidden; text-overflow: ellipsis; }
.act-root .k-cell.k-md .k-val { font-size: 28px; }
.act-root .k-cell.k-sm .k-val { font-size: 24px; }
.act-root .k-cell.k-xs .k-val { font-size: 20px; }
@media (min-width: 768px) {
  .act-root .k-cell.k-md .k-val { font-size: 42px; }
  .act-root .k-cell.k-sm .k-val { font-size: 34px; }
  .act-root .k-cell.k-xs .k-val { font-size: 28px; }
}
@media (min-width: 1024px) {
  .act-root .k-cell.k-md .k-val { font-size: 52px; }
  .act-root .k-cell.k-sm .k-val { font-size: 42px; }
  .act-root .k-cell.k-xs .k-val { font-size: 34px; }
}
.act-root .k-cell.accent .k-val { color: var(--signal); }
.act-root .k-cell .k-label { margin-top: 12px; font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(15,15,15,0.5); }
.act-root .k-cell .k-live { color: var(--signal); }


.act-root .marquee-section { border-top: 1px solid var(--bone); border-bottom: 1px solid var(--bone); overflow: hidden; padding: 48px 0; }
@media (min-width: 768px) { .act-root .marquee-section { padding: 64px 0; } }
.act-root .marquee-track { display: inline-flex; gap: 64px; align-items: center; white-space: nowrap; animation: marquee 40s linear infinite; }
.act-root .marquee-word { font-family: 'Playfair Display', serif; font-style: italic; font-weight: 900; font-size: 110px; line-height: 0.9; color: var(--ink); }
@media (min-width: 768px) { .act-root .marquee-word { font-size: 180px; } }
.act-root .marquee-word.outline { -webkit-text-stroke: 1.5px var(--ink); color: transparent; }
.act-root .marquee-word.accent { color: var(--signal); }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }


.act-root .section { padding: 112px 0 64px; }
.act-root .section-head { display: grid; grid-template-columns: 1fr; gap: 32px; margin-bottom: 64px; }
@media (min-width: 768px) { .act-root .section-head { grid-template-columns: 3fr 9fr; } }
.act-root .section-h2 { font-family: 'Playfair Display', serif; letter-spacing: -0.02em; line-height: 0.95; font-size: 44px; max-width: 800px; }
@media (min-width: 768px) { .act-root .section-h2 { font-size: 72px; } }

.act-root .chapters { display: flex; flex-direction: column; gap: 96px; }
.act-root .chapter { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
@media (min-width: 768px) { .act-root .chapter { grid-template-columns: 5fr 7fr; gap: 40px; } }
.act-root .chapter.reverse .chapter-img { order: 2; }
.act-root .chapter.reverse .chapter-list { order: 1; }

.act-root .chapter-img { position: relative; aspect-ratio: 4/5; overflow: hidden; background: #0F0F0F; }
.act-root .chapter-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms ease-out; }
.act-root .chapter-img:hover img { transform: scale(1.04); }
.act-root .chapter-img .overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, transparent, rgba(15,15,15,0.7)); }
.act-root .chapter-img .top { position: absolute; top: 20px; left: 20px; color: rgba(244,244,242,0.85); font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; }
.act-root .chapter-img .bottom { position: absolute; bottom: 20px; left: 20px; color: var(--paper); font-family: 'Playfair Display', serif; font-style: italic; font-size: 30px; }
@media (min-width: 768px) { .act-root .chapter-img .bottom { font-size: 48px; } }

.act-root .chapter-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 32px; }
.act-root .chapter-header .ch-num { font-family: 'Playfair Display', serif; font-style: italic; font-size: 80px; line-height: 1; color: var(--signal); }
.act-root .chapter-header .ch-label small { font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: rgba(15,15,15,0.5); display: block; }
.act-root .chapter-header .ch-label strong { display: block; font-weight: 500; font-family: 'Playfair Display', serif; font-size: 30px; line-height: 1; margin-top: 4px; }
@media (min-width: 768px) { .act-root .chapter-header .ch-label strong { font-size: 36px; } }

.act-root .calc-list { list-style: none; border-top: 1px solid var(--bone); }
.act-root .calc-list li { border-bottom: 1px solid var(--bone); }
.act-root .calc-list a { display: grid; grid-template-columns: 40px 1fr auto; gap: 20px; padding: 24px 0; align-items: baseline; transition: color 300ms; }
.act-root .calc-list a:hover .calc-title { color: var(--signal); }
.act-root .calc-list a:hover .arrow { opacity: 1; transform: translateX(0); }
.act-root .calc-list .idx { font-size: 11px; letter-spacing: 0.28em; color: rgba(15,15,15,0.4); font-variant-numeric: tabular-nums; }
.act-root .calc-title { font-family: 'Playfair Display', serif; font-size: 24px; line-height: 1; transition: color 300ms; }
@media (min-width: 768px) { .act-root .calc-title { font-size: 30px; } }
.act-root .calc-blurb { margin-top: 8px; font-size: 14px; color: var(--stone); line-height: 1.6; max-width: 40rem; }
.act-root .arrow { font-family: 'Playfair Display', serif; font-size: 24px; opacity: 0; transform: translateX(-8px); transition: opacity 400ms, transform 400ms; }


.act-root .reveal { opacity: 0; transform: translateY(40px); transition: opacity 800ms ease, transform 900ms cubic-bezier(0.22,1,0.36,1); }
.act-root .reveal.in { opacity: 1; transform: translateY(0); }


.act-root .faq { border-top: 1px solid var(--bone); padding: 112px 0; }
.act-root .faq-list { border-top: 1px solid var(--bone); }
.act-root .faq-item { display: grid; grid-template-columns: 1fr; gap: 20px; padding: 40px 0; border-bottom: 1px solid var(--bone); }
@media (min-width: 768px) { .act-root .faq-item { grid-template-columns: 5fr 7fr; gap: 24px; } }
.act-root .faq-q { font-family: 'Playfair Display', serif; font-size: 24px; line-height: 1.2; }
@media (min-width: 768px) { .act-root .faq-q { font-size: 32px; } }
.act-root .faq-q .num { color: var(--signal); margin-right: 12px; font-size: 20px; }
.act-root .faq-a { color: var(--stone); font-size: 18px; line-height: 1.7; }


.act-root .journal { border-top: 1px solid var(--bone); padding: 112px 0; }
.act-root .journal-head { display: grid; grid-template-columns: 1fr; gap: 32px; margin-bottom: 64px; align-items: end; }
@media (min-width: 768px) { .act-root .journal-head { grid-template-columns: 8fr 4fr; } }
.act-root .article-grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 768px) { .act-root .article-grid { grid-template-columns: repeat(12, 1fr); } }
.act-root .article-card { display: block; }
.act-root .article-card:nth-child(1) { grid-column: span 7 / span 7; }
.act-root .article-card:nth-child(2) { grid-column: span 5 / span 5; }
.act-root .article-card:nth-child(3) { grid-column: span 5 / span 5; }
.act-root .article-card:nth-child(4) { grid-column: span 7 / span 7; }
@media (max-width: 767px) { .act-root .article-card { grid-column: 1 / -1 !important; } }
.act-root .article-card .img-wrap { overflow: hidden; background: #0F0F0F; aspect-ratio: 4/3; position: relative; }
.act-root .article-card:nth-child(1) .img-wrap, .act-root .article-card:nth-child(4) .img-wrap { aspect-ratio: 16/10; }
.act-root .article-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms ease-out; }
.act-root .article-card:hover img { transform: scale(1.05); }
.act-root .article-card .category-tag { position: absolute; top: 20px; left: 20px; color: rgba(244,244,242,0.9); background: rgba(15,15,15,0.4); backdrop-filter: blur(10px); padding: 6px 14px; font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; }
.act-root .article-meta { margin-top: 24px; font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(15,15,15,0.5); }
.act-root .article-title { margin-top: 12px; font-family: 'Playfair Display', serif; font-size: 30px; line-height: 1.15; transition: color 300ms; }
@media (min-width: 768px) { .act-root .article-title { font-size: 38px; } }
.act-root .article-card:hover .article-title { color: var(--signal); }
.act-root .article-excerpt { margin-top: 12px; color: var(--stone); line-height: 1.6; max-width: 40rem; }


.act-root .newsletter { background: var(--ink); color: var(--paper); margin-top: 64px; }
.act-root .newsletter-inner { padding: 112px 0; display: grid; grid-template-columns: 1fr; gap: 40px; align-items: end; }
@media (min-width: 768px) { .act-root .newsletter-inner { grid-template-columns: 7fr 5fr; } }
.act-root .newsletter h2 { font-family: 'Playfair Display', serif; letter-spacing: -0.02em; line-height: 0.95; font-size: 52px; }
@media (min-width: 768px) { .act-root .newsletter h2 { font-size: 88px; } }
.act-root .newsletter .eyebrow { color: rgba(244,244,242,0.5); }
.act-root .newsletter .desc { margin-top: 24px; max-width: 32rem; color: rgba(244,244,242,0.7); line-height: 1.6; }
.act-root .newsletter-form { display: flex; flex-direction: column; gap: 24px; }
.act-root .newsletter-row {
  display: flex; align-items: baseline; gap: 16px;
  border-bottom: 1px solid rgba(244,244,242,0.3);
  transition: border-color 200ms;
}
.act-root .newsletter-row:focus-within { border-bottom-color: var(--paper); }
.act-root .newsletter-row input {
  flex: 1; background: transparent; border: 0; outline: none;
  font-size: 24px; font-family: 'Playfair Display', serif; padding: 12px 0; color: var(--paper);
}
@media (min-width: 768px) { .act-root .newsletter-row input { font-size: 28px; } }
.act-root .newsletter-row input::placeholder { color: rgba(244,244,242,0.25); }
.act-root .btn-signal {
  position: relative; overflow: hidden;
  background: var(--signal); color: var(--paper);
  border: 0; padding: 16px 32px;
  font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; font-weight: 500;
  cursor: pointer;
}
.act-root .btn-signal .txt { position: relative; z-index: 1; }
.act-root .btn-signal::after { content: ""; position: absolute; inset: 0; background: var(--paper); transform: translateY(100%); transition: transform 500ms cubic-bezier(0.22,1,0.36,1); }
.act-root .btn-signal:hover::after { transform: translateY(0); }
.act-root .btn-signal:hover .txt { color: var(--ink); }
.act-root .newsletter-msg { font-size: 14px; color: rgba(244,244,242,0.7); }
.act-root .newsletter-msg.error { color: var(--signal); }


.act-root .footer { border-top: 1px solid var(--bone); background: var(--paper); margin-top: 128px; }
.act-root .footer-inner { padding: 80px 0; display: grid; grid-template-columns: 1fr; gap: 40px; }
@media (min-width: 768px) { .act-root .footer-inner { grid-template-columns: 4fr 2fr 2fr 2fr 2fr; } }
.act-root .footer h5 { font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; font-weight: 500; color: rgba(15,15,15,0.6); margin-bottom: 16px; }
.act-root .footer h5 .ch { font-family: 'Playfair Display', serif; font-style: italic; font-size: 18px; color: var(--signal); margin-right: 8px; }
.act-root .footer ul { list-style: none; }
.act-root .footer li { margin-bottom: 8px; }
.act-root .footer li a { font-size: 14px; }
.act-root .footer-brand-mark { font-family: 'Playfair Display', serif; font-style: italic; font-size: 48px; line-height: 1; letter-spacing: -0.02em; }
.act-root .footer-brand-sub { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(15,15,15,0.6); margin-top: 4px; }
.act-root .footer p { max-width: 22rem; color: var(--stone); line-height: 1.6; margin-top: 32px; }
.act-root .footer-bottom { padding: 32px 0; border-top: 1px solid var(--bone); display: flex; flex-direction: column; gap: 16px; justify-content: space-between; font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(15,15,15,0.5); }
@media (min-width: 768px) { .act-root .footer-bottom { flex-direction: row; align-items: center; } }
.act-root .footer-bottom .links { display: flex; gap: 24px; }


.act-root .calc-page { padding-top: 72px; }
.act-root .calc-hero { padding: 80px 0 64px; display: grid; grid-template-columns: 1fr; gap: 32px; align-items: end; }
@media (min-width: 768px) { .act-root .calc-hero { grid-template-columns: 8fr 4fr; padding-top: 112px; } }
.act-root .calc-crumbs { font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: rgba(15,15,15,0.5); margin-bottom: 24px; display: flex; align-items: center; gap: 12px; }
.act-root .calc-title-h1 { font-family: 'Playfair Display', serif; letter-spacing: -0.02em; line-height: 0.92; font-size: 52px; }
@media (min-width: 768px) { .act-root .calc-title-h1 { font-size: 96px; } }
.act-root .calc-title-h1 .dot { color: var(--signal); }
.act-root .calc-blurb-p { margin-top: 24px; max-width: 42rem; color: var(--stone); font-size: 18px; line-height: 1.6; }
.act-root .calc-chapter-num { font-family: 'Playfair Display', serif; font-style: italic; font-size: 120px; line-height: 1; color: var(--signal); text-align: right; }

.act-root .calc-body { display: grid; grid-template-columns: 1fr; gap: 40px; padding-bottom: 96px; }
@media (min-width: 768px) { .act-root .calc-body { grid-template-columns: 5fr 7fr; gap: 40px; } }
.act-root .calc-inputs { border-top: 1px solid var(--bone); padding-top: 40px; }
.act-root .calc-results { border-top: 1px solid var(--bone); padding-top: 40px; }
@media (min-width: 768px) { .act-root .calc-results { border-top: 0; border-left: 1px solid var(--bone); padding-top: 0; padding-left: 40px; } }
.act-root .section-eyebrow { font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: rgba(15,15,15,0.5); margin-bottom: 32px; }
.act-root .field { display: block; margin-bottom: 32px; }
.act-root .field label { display: block; font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(15,15,15,0.6); margin-bottom: 8px; }
.act-root .field input, .act-root .field select {
  width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(15,15,15,0.2);
  padding: 8px 0; font-family: 'Playfair Display', serif; font-size: 24px; color: var(--ink);
  outline: none; border-radius: 0; -webkit-appearance: none; appearance: none;
}
.act-root .field input:focus, .act-root .field select:focus { border-bottom-color: var(--ink); }

.act-root .result-row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 24px;
  border-bottom: 1px solid var(--bone); padding-bottom: 24px; margin-bottom: 40px;
}
.act-root .result-label { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(15,15,15,0.6); max-width: 40%; }
.act-root .result-value {
  font-family: 'Playfair Display', serif; font-variant-numeric: tabular-nums; letter-spacing: -0.03em;
  font-size: 30px; line-height: 1; text-align: right; color: var(--ink);
}
@media (min-width: 768px) { .act-root .result-value { font-size: 40px; } }
.act-root .result-value.big { font-size: 56px; }
@media (min-width: 768px) { .act-root .result-value.big { font-size: 88px; } }
.act-root .result-value .unit { font-family: 'Outfit', sans-serif; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--stone); margin-left: 8px; }
.act-root .result-insight { font-size: 14px; color: var(--stone); font-style: italic; border-left: 2px solid var(--signal); padding-left: 16px; margin-top: 24px; }
.act-root .calc-empty { font-family: 'Playfair Display', serif; font-style: italic; font-size: 28px; color: var(--stone); }

.act-root .related { border-top: 1px solid var(--bone); padding: 64px 0 128px; }
.act-root .related-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 40px; }
.act-root .related-head h3 { font-family: 'Playfair Display', serif; font-size: 32px; }
@media (min-width: 768px) { .act-root .related-head h3 { font-size: 48px; } }
.act-root .related-grid { display: grid; grid-template-columns: 1fr; gap: 24px 40px; }
@media (min-width: 768px) { .act-root .related-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .act-root .related-grid { grid-template-columns: repeat(3, 1fr); } }
.act-root .related-grid a { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 24px; border-bottom: 1px solid var(--bone); }
.act-root .related-grid a:hover .rel-t { color: var(--signal); }
.act-root .related-grid a:hover .arrow { opacity: 1; transform: translateX(0); }
.act-root .rel-t { font-family: 'Playfair Display', serif; font-size: 24px; transition: color 300ms; }


.act-root .blog-hero { padding: 96px 0 64px; }
.act-root .blog-h1 { font-family: 'Playfair Display', serif; letter-spacing: -0.02em; line-height: 0.9; font-size: 64px; }
@media (min-width: 768px) { .act-root .blog-h1 { font-size: 128px; } }
.act-root .blog-list { border-top: 1px solid var(--bone); }
.act-root .blog-list li { border-bottom: 1px solid var(--bone); list-style: none; }
.act-root .blog-list a { display: grid; grid-template-columns: 1fr; gap: 24px; padding: 40px 0; align-items: center; }
@media (min-width: 768px) { .act-root .blog-list a { grid-template-columns: 40px 6fr 4fr 40px; gap: 24px; } }
.act-root .blog-list .idx { font-size: 11px; letter-spacing: 0.28em; color: rgba(15,15,15,0.4); }
.act-root .blog-list .meta { font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(15,15,15,0.4); margin-bottom: 8px; }
.act-root .blog-list h3 { font-family: 'Playfair Display', serif; font-size: 30px; line-height: 1.15; transition: color 300ms; }
@media (min-width: 768px) { .act-root .blog-list h3 { font-size: 48px; } }
.act-root .blog-list a:hover h3 { color: var(--signal); }
.act-root .blog-list .img-wrap { aspect-ratio: 4/3; overflow: hidden; background: #0F0F0F; }
.act-root .blog-list a:hover img { transform: scale(1.05); }


.act-root .article-page { padding-top: 72px; max-width: 1200px; margin: 0 auto; padding-left: 24px; padding-right: 24px; padding-bottom: 96px; }
@media (min-width: 1024px) { .act-root .article-page { padding-left: 40px; padding-right: 40px; } }
.act-root .article-page h1 { font-family: 'Playfair Display', serif; letter-spacing: -0.02em; line-height: 0.92; font-size: 48px; margin-top: 32px; }
@media (min-width: 768px) { .act-root .article-page h1 { font-size: 84px; } }
.act-root .article-page .lede { margin-top: 24px; font-family: 'Playfair Display', serif; font-style: italic; font-size: 24px; color: var(--stone); max-width: 48rem; line-height: 1.6; }
.act-root .article-page .cover { margin-top: 48px; aspect-ratio: 16/9; overflow: hidden; background: #0F0F0F; }
.act-root .article-page .cover img { width: 100%; height: 100%; object-fit: cover; }
.act-root .article-page .body { margin-top: 64px; max-width: 48rem; font-size: 18px; line-height: 1.8; color: rgba(15,15,15,0.85); white-space: pre-line; }


.act-root .notice { position: fixed; bottom: 24px; right: 24px; background: var(--ink); color: var(--paper); padding: 16px 24px; font-size: 12px; z-index: 90; }
