/* A living portrait: irregular contours settle as the reader moves forward. */
:root {
  --motion-ease: cubic-bezier(.16, 1, .3, 1);
  --deep: #14152e;
  --purple: #42228a;
  --blue: #9bdcff;
  --turquoise: #45deca;
  --yellow: #f6d665;
  --paper: #f1f6fc;
  --page-progress: 0;
}
::selection { color: #14152e; background: #76e6d6; }
html { scrollbar-color: #7263ac #e6eaf4; }
body { overflow-x: clip; }
a, button, summary, input { -webkit-tap-highlight-color: #45deca30; }
:focus-visible { outline: 3px solid #16ad9f; outline-offset: 5px; }
input { caret-color: #542ba1; }
.site-header, .site-header.is-fixed, .detail-page .site-header {
  position: fixed;
  padding-top: 12px;
  padding-bottom: 12px;
  animation: none;
  transition: background-color 220ms ease, box-shadow 220ms ease;
}
.home-page .site-header:not(.is-fixed) { background: #14152ef2; }
.site-header.is-fixed, .detail-page .site-header {
  background: #14152ef5;
  box-shadow: 0 8px 24px #0c10231a;
  border-bottom: 0;
}
.detail-page .site-header { position: sticky; }
.site-header::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--turquoise);
  transform: scaleX(var(--page-progress));
  transform-origin: left;
  pointer-events: none;
}
.desktop-nav a {
  border: 0;
  border-radius: 0;
  padding: 10px 9px;
  position: relative;
}
.desktop-nav a::after {
  content: '';
  position: absolute;
  bottom: 3px;
  left: 9px;
  right: 9px;
  height: 1px;
  background: var(--turquoise);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 220ms var(--motion-ease);
}
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { transform: scaleX(1); }
.home-page .site-header .desktop-nav a:hover { background: transparent; color: var(--turquoise); }

.author-hero {
  background: #14152e;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  padding-top: 118px;
  padding-bottom: 40px;
  gap: clamp(30px, 5vw, 72px);
  border: 0;
  isolation: isolate;
}
.author-halo, .author-portrait::before { display: none; }
.author-hero::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0 0 0 58%;
  background: linear-gradient(145deg, #242158, #193c4a);
  opacity: .65;
  pointer-events: none;
}
.author-copy { position: relative; z-index: 2; }
.author-copy > .eyebrow { display: none; }
.author-copy h1.author-name {
  margin: 0;
  line-height: 1;
  letter-spacing: -.025em;
  overflow-wrap: normal;
}
.author-copy h1 .name-given {
  display: block;
  font: 600 clamp(1.8rem, 3.2vw, 2.8rem)/1.2 var(--sans);
  letter-spacing: .08em;
  --name-face: #6de7d2;
  --name-edge: #c9fff5;
  --name-side: #208d95;
  --name-depth: #17516f;
}
.author-copy h1 .name-family {
  display: block;
  margin-top: 5px;
  font: 600 clamp(3.8rem, 7.4vw, 6rem)/1.02 var(--serif);
  letter-spacing: .012em;
  --name-face: #c9b7ff;
  --name-edge: #f2eaff;
  --name-side: #8260cd;
  --name-depth: #493282;
}
.author-copy h1 .name-given, .author-copy h1 .name-family {
  color: var(--name-face);
  /* A bevel, solid thickness, then a soft cast shadow. Also visible without JS. */
  text-shadow: 0 -.012em 0 var(--name-edge),
    .009em .012em 0 var(--name-side),
    .018em .024em 0 var(--name-side),
    .027em .036em 0 var(--name-depth),
    .036em .048em 0 var(--name-depth),
    .055em .09em .11em #070d2bb3;
}
.name-letter {
  display: inline-block;
  position: relative;
  perspective: 460px;
  vertical-align: baseline;
}
.author-copy h1 .name-letter, .author-copy h1 .name-glyph { color: inherit; }
.name-glyph {
  display: inline-block;
  position: relative;
  transform-origin: 50% 58%;
  transform: rotateX(var(--glyph-rx, 0deg)) rotateY(var(--glyph-ry, 0deg)) translateZ(var(--glyph-z, 0px));
  transition: transform 260ms cubic-bezier(.16,1,.3,1), color 180ms ease;
  pointer-events: none;
}
.name-glyph::after {
  content: attr(data-glyph);
  position: absolute;
  inset: 0;
  color: transparent;
  -webkit-text-stroke: .007em #fff7df;
  text-shadow: none;
  opacity: 0;
  transition: opacity 180ms ease;
  pointer-events: none;
}
.author-copy h1 .name-letter.is-letter-active {
  color: #ffe1a0;
  --glyph-z: .04em;
  z-index: 1;
}
.is-letter-active .name-glyph::after { opacity: .8; }
.author-name { perspective: 700px; }
.text-lens-ready .lens-word {
  display: inline-block;
  position: relative;
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  vertical-align: baseline;
  transform-origin: 50% 60%;
  transform: scale(var(--lens-scale, 1));
  transition: transform 160ms var(--motion-ease);
}
.text-lens-active .lens-word[style] { z-index: 1; }
.author-lead { margin-top: 22px; max-width: 570px; color: #dddff0; }
.author-lead em { color: #fff; border-color: #45deca90; }
.author-topics { margin-top: 18px; }
.author-topics a {
  padding: 7px 12px;
  background: transparent;
  border-color: #687492;
  transition: color 160ms, background-color 160ms, border-color 160ms;
}
.author-topics a:hover { background: var(--turquoise); border-color: var(--turquoise); transform: none; }
.author-actions { margin-top: 24px; }
.author-footnote { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 20px; }
.author-footnote .author-signature { margin: 0; max-width: 295px; color: #b9c6df; }
.author-portrait { width: 100%; max-width: 440px; justify-self: end; margin: 0; perspective: 1000px; }
.portrait-frame {
  z-index: 1;
  border: 0;
  border-radius: 16px;
  box-shadow: 0 24px 56px #080b2140;
  transform: rotateX(var(--portrait-rx, 0deg)) rotateY(var(--portrait-ry, 0deg));
  transform-style: preserve-3d;
}
.portrait-frame img {
  width: 100%;
  height: clamp(310px, 28vw, 350px);
  aspect-ratio: auto;
  display: block;
  object-fit: cover;
  object-position: 50% 62%;
  transform: translateY(var(--depth-y, 0px)) scale(var(--depth-portrait-scale, 1.025)) translate(var(--portrait-x, 0px), var(--portrait-y, 0px));
}
.portrait-frame::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(120deg, #ffffff12, transparent 45%, #17355a18);
}
.author-portrait .portrait-mission {
  margin: 0;
  padding: 18px 0 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: none;
  position: relative;
  z-index: 1;
}
.author-portrait .portrait-mission .mission-label {
  color: var(--turquoise);
  font-size: .875rem;
  letter-spacing: .04em;
  margin-bottom: 5px;
}
.portrait-mission p { font-size: 1.25rem; line-height: 1.4; max-width: 430px; }
.portrait-mission a { border: 0; padding: 0; margin-top: 12px; justify-content: flex-start; gap: 18px; }
.author-contours {
  position: absolute;
  width: 145%;
  height: 120%;
  top: -20%;
  left: -22%;
  z-index: 0;
  overflow: visible;
  opacity: .85;
  pointer-events: none;
  mask-image: linear-gradient(#000 65%, transparent 97%);
}
.author-contours path { fill: none; stroke-width: 1; vector-effect: non-scaling-stroke; }
.author-contours path:nth-child(3n + 1) { stroke: #45deca; opacity: .6; }
.author-contours path:nth-child(3n + 2) { stroke: #9bdcff; opacity: .4; }
.author-contours path:nth-child(3n) { stroke: #f6d665; opacity: .45; }

.motion-toggle, .footer-motion-toggle {
  position: static;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 7px 11px;
  border: 1px solid #71809e;
  border-radius: 24px;
  color: #e7f1ff;
  background: transparent;
  font: 400 .875rem/1.3 var(--sans);
  cursor: pointer;
}
.motion-toggle svg, .footer-motion-toggle svg { width: 15px; height: 15px; flex-shrink: 0; }
.motion-toggle span, .footer-motion-toggle span { font: inherit; }
.motion-toggle:disabled, .footer-motion-toggle:disabled { cursor: default; }
.motion-toggle:hover, .footer-motion-toggle:hover { background: #ffffff10; border-color: var(--turquoise); }
.footer-bottom { align-items: center; flex-wrap: wrap; }
.footer-bottom .footer-motion-toggle { margin-left: auto; }

.button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 12px;
  transition: box-shadow 200ms ease, background-color 200ms ease, transform 160ms var(--motion-ease);
}
.button-yellow, .author-actions .button-purple { background: var(--yellow); color: var(--deep); box-shadow: none; }
.button-purple { background: #4e2aa0; box-shadow: none; }
.button:hover { transform: none; box-shadow: 0 10px 24px #0c10231c; }
.button::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--button-x, 75%) var(--button-y, 35%), #ffffff80, #ffffff0a 64%);
  opacity: 0;
  transition: opacity 220ms ease;
  z-index: -1;
  pointer-events: none;
}
.button.pointer-active::before, .button:focus-visible::before { opacity: 1; }
.button::after {
  content: '';
  position: absolute;
  top: -35%;
  bottom: -35%;
  left: -60%;
  width: 38%;
  background: linear-gradient(90deg, transparent, #ffffff48, transparent);
  transform: skewX(-22deg);
  transition: transform 540ms var(--motion-ease);
  z-index: -1;
  pointer-events: none;
}
.button.pointer-active::after, .button:focus-visible::after { transform: translateX(440%) skewX(-22deg); }
.button .cta-label {
  transform: translate(var(--button-dx, 0px), var(--button-dy, 0px));
  transition: transform 180ms var(--motion-ease);
}
.button:active { transform: scale(.98); }
.button .button-ripple, .rail-controls button .button-ripple,
#video-search button .button-ripple, .catalog-filters button .button-ripple, .catalog-pagination button .button-ripple {
  position: absolute;
  display: block;
  border-radius: 50%;
  background: #ffffffa0;
  border: 1px solid #ffffffb3;
  transform: scale(0);
  pointer-events: none;
  z-index: -1;
}
.button .cta-arrow, .author-more span, .portrait-mission a span, .card-action > span,
.read-more > span, .contact-arrow, .program-arrow {
  transition: transform 220ms var(--motion-ease);
}
.button:hover .cta-arrow, .portrait-mission a:hover span, .request-card:hover .card-action > span,
.article-card:hover .read-more > span, .contact-card:hover .contact-arrow { transform: translate(3px, -3px); }
.button.pointer-active .cta-arrow, .button:focus-visible .cta-arrow {
  transform: translate(calc(4px + var(--button-dx, 0px)), calc(-4px + var(--button-dy, 0px))) rotate(-6deg);
}
.author-more:hover span { transform: translateY(3px); }
.hero-acceptance .hero-content { padding-top: 44px; padding-bottom: 48px; }
.hero-acceptance .hero-shade { background: linear-gradient(90deg, #151b3ff5, #272254e8 62%, #203d5aca); }
.hero-acceptance .acceptance-woman { border-radius: 16px; }
.acceptance-image-stage {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: 16px;
  transform: perspective(900px) rotateX(var(--meditation-rx, 0deg)) rotateY(var(--meditation-ry, 0deg));
  transition: transform 480ms var(--motion-ease);
}
.hero-acceptance .acceptance-image-stage .acceptance-woman {
  display: block;
  z-index: 0;
  border-radius: 0;
  transform-origin: 50% 56%;
  animation: meditation-breathe 9s ease-in-out infinite;
}
.acceptance-image-stage::after {
  content: '';
  position: absolute;
  inset: -12%;
  background: radial-gradient(ellipse at 65% 20%, #ffe7a538, transparent 56%);
  opacity: .4;
  animation: meditation-light 9s ease-in-out infinite;
  pointer-events: none;
}
.acceptance-visual::after { border-radius: 0 0 16px 16px; }
.acceptance-orbit, .mission-ornament, .closing-star, .breath-ring { display: none; }
.mission-section { background: #f1f6fc; }
.mission-manifesto { background: #222046; border: 0; box-shadow: none; }
.requests-section { background: #f1f6fc; }
.request-card { border: 0; box-shadow: 0 5px 18px #20173608; }
.request-card:hover { transform: none; box-shadow: 0 12px 30px #20173614; }
.request-card .icon-tile { transition: color 200ms, background-color 200ms; box-shadow: none; }
.request-card:hover .icon-tile { color: #fff; background: #4b2998; }
.request-card .ui-icon { transition: transform 240ms var(--motion-ease); }
.request-card:hover .ui-icon { transform: rotate(-8deg); }
.video-section { background: #32206b; }
.long-videos .video-card { background: #ffffff07; border: 1px solid #ffffff24; }
.video-card .video-thumb img, .publication-card img {
  transition: transform 400ms var(--motion-ease);
}
.video-card button:hover .video-thumb img, .video-card button:focus-visible .video-thumb img,
.publication-card:hover img { transform: scale(1.035); }
.play-button { transition: transform 240ms var(--motion-ease), background-color 160ms; }
.video-card button:hover .play-button, .video-card button:focus-visible .play-button { transform: scale(1.1); background: #76e6d6; }
.rail-controls button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition: color 180ms, background-color 180ms, border-color 180ms, transform 180ms var(--motion-ease);
  min-width: 44px;
  min-height: 44px;
}
.rail-controls button:not(:disabled):hover { color: var(--deep); background: var(--turquoise); border-color: var(--turquoise); }
.rail-controls button:not(:disabled):active { transform: scale(.9); }
#video-search button, .catalog-filters button, .catalog-pagination button { position: relative; overflow: hidden; isolation: isolate; }
.long-videos, .short-videos, .review-rail { scrollbar-width: thin; scrollbar-color: #9bdcff80 transparent; }
.publication-card:hover, .article-card:hover { transform: none; }
.publication-card { border: 0; box-shadow: 0 5px 22px #2017360b; }
.publication-card:hover { box-shadow: 0 14px 32px #2017361a; }
.review-card { border: 0; box-shadow: 0 6px 24px #19113b0d; }
.review-original, .text-link, .source-link, .reading-body a { text-underline-offset: .24em; }
.pause-content { padding-top: 42px; padding-bottom: 48px; }
.pause-content .button { margin-bottom: 0; }
.program-row { transition: background-color 180ms; }
.program-row:hover { background: #ffffff12; }
.program-row:hover .program-arrow { transform: rotate(45deg); }
.contact-card { transition: background-color 180ms, box-shadow 200ms; }
.contact-card:hover { transform: none; }
.faq-plus { display: inline-block; transition: transform 220ms var(--motion-ease); }
.faq-list details[open] .faq-plus { transform: rotate(45deg); }
.faq-list details[open] .faq-answer { animation: answer-in 220ms var(--motion-ease); }
.mobile-nav:not([hidden]) { animation: menu-in 220ms var(--motion-ease); }
.video-dialog[open], .review-dialog[open] { animation: dialog-in 260ms var(--motion-ease); }
.video-dialog[open]::backdrop, .review-dialog[open]::backdrop { animation: backdrop-in 180ms ease; }
.video-dialog, .review-dialog { border-radius: 16px; }
.js-ready .reveal { opacity: 1; transform: none; transition: none; }
.motion-outside *, .motion-outside *::before, .motion-outside *::after,
.document-hidden *, .document-hidden *::before, .document-hidden *::after { animation-play-state: paused !important; }
.motion-paused .portrait-frame, .motion-paused .portrait-frame img { transform: none; }
.motion-paused .video-card button .video-thumb img, .motion-paused .publication-card .publication-card-image img { transform: none; }
.motion-paused .motion-toggle, .motion-paused .footer-motion-toggle { border-color: #aac5d8; }
.motion-paused .name-letter, .motion-paused .name-glyph, .motion-paused .lens-word,
.motion-paused .acceptance-image-stage, .motion-paused .acceptance-image-stage .acceptance-woman,
.motion-paused .button .cta-label, .motion-paused .button .cta-arrow,
.motion-paused .button:active, .motion-paused .rail-controls button:active { transform: none !important; }
.motion-paused .button::after { display: none; }
.motion-paused .button:hover::before { opacity: .45; }
.motion-paused *, .motion-paused *::before, .motion-paused *::after { animation: none !important; transition: none !important; }
@keyframes meditation-breathe {
  0%, 100% { transform: translateY(var(--depth-y, 0px)) scale(var(--depth-meditation-min, 1.015)) translateY(.15%); }
  50% { transform: translateY(var(--depth-y, 0px)) scale(var(--depth-meditation-max, 1.045)) translateY(-.4%); }
}
@keyframes meditation-light {
  0%, 100% { opacity: .35; transform: translate(-2%, calc(2% + var(--depth-counter-y, 0px))); }
  50% { opacity: .8; transform: translate(2%, calc(-2% + var(--depth-counter-y, 0px))); }
}
@keyframes answer-in { from { opacity: .6; transform: translateY(-5px); } to { opacity: 1; transform: none; } }
@keyframes menu-in { from { opacity: .7; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes dialog-in { from { opacity: .4; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@media (min-width: 1500px) { .author-hero { padding-top: 126px; padding-bottom: 48px; } }
@media (max-width: 1100px) {
  .desktop-nav a { font-size: .875rem; padding-inline: 6px; }
  .site-header, .site-header.is-fixed { gap: 12px; }
  .author-hero { gap: 36px; }
  .author-portrait { max-width: 370px; }
  .portrait-frame img { height: 310px; }
  .author-actions { gap: 16px; flex-wrap: wrap; }
  .author-contours { width: 138%; left: -19%; }
}
@media (max-width: 850px) {
  .site-header, .site-header.is-fixed { padding-top: 10px; padding-bottom: 10px; }
  .author-hero { padding-top: 110px; gap: 28px; }
  .author-copy h1 .name-given { font-size: 1.9rem; }
  .author-copy h1 .name-family { font-size: clamp(3rem, 7vw, 4.3rem); }
  .author-lead { font-size: 1.0625rem; line-height: 1.55; }
  .portrait-mission p { font-size: 1.125rem; }
  .portrait-frame img { height: 300px; }
  .author-topics { gap: 6px; }
  .author-topics a { font-size: .875rem; }
}
@media (max-width: 650px) {
  .author-hero { grid-template-columns: 1fr; gap: 28px; padding-top: 102px; padding-bottom: 32px; }
  .author-hero::after { inset: 42% 0 0 38%; opacity: .5; }
  .author-copy h1 .name-given { font-size: 1.8rem; }
  .author-copy h1 .name-family { font-size: clamp(3rem, 13.4vw, 5.1rem); margin-top: 2px; }
  .author-lead { margin-top: 16px; font-size: 1.0625rem; }
  .author-topics { margin-top: 14px; }
  .author-actions { margin-top: 18px; gap: 14px; }
  .author-actions .button[data-practice-cta] { padding-inline: 17px; }
  .author-footnote { margin-top: 15px; gap: 10px 16px; }
  .author-footnote .author-signature { max-width: 205px; font-size: .875rem; }
  .author-portrait { max-width: 440px; width: 100%; margin: 0; justify-self: center; }
  .portrait-frame img { height: 290px; object-position: 50% 61%; }
  .author-portrait .portrait-mission { padding-top: 16px; }
  .portrait-mission p { font-size: 1.25rem; }
  .author-contours { width: 128%; left: -14%; height: 106%; top: -10%; opacity: .6; }
  .hero-acceptance .hero-content { padding-top: 36px; padding-bottom: 36px; }
  .hero-acceptance .acceptance-woman { max-height: 390px; object-fit: cover; }
  .footer-bottom .footer-motion-toggle { margin-left: 0; }
  .video-dialog, .review-dialog { border-radius: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: 0s !important; }
  .portrait-frame, .portrait-frame img { transform: none !important; }
  .video-card button .video-thumb img, .publication-card .publication-card-image img { transform: none !important; }
  .name-letter, .name-glyph, .lens-word, .acceptance-image-stage, .acceptance-image-stage .acceptance-woman,
  .button .cta-label, .button .cta-arrow, .button:active, .rail-controls button:active { transform: none !important; }
  .button::after { display: none; }
}
@media (hover: none), (pointer: coarse) {
  .name-letter, .name-glyph, .lens-word { transform: none; }
  .button::after { display: none; }
}
@media (forced-colors: active) {
  .author-copy h1 .name-given, .author-copy h1 .name-family,
  .author-copy h1 .name-letter.is-letter-active { color: CanvasText; text-shadow: none; }
  .name-glyph::after { display: none; }
}
