/* Morning sea — shared presentation; no frontend framework or external fonts. */
@font-face {
  font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500;
  font-display: swap; src: url('../fonts/cormorant-italic-latin.woff') format('woff');
}
:root {
  --bg: #f7fafb; --surface: #edf3f6; --surface-deep: #e2edf2;
  --ink: #233e4c; --ink-soft: #536c78; --ink-faint: #556f7d;
  --line: rgba(47,85,103,.14); --line-strong: rgba(47,85,103,.26);
  --accent: #336b86; --accent-deep: #245570; --accent-soft: #8db9ca;
  --amber: #c1ab80; --navy: #233e4c; --hero-bg: #dbeaf0;
  --sans: 'SF Pro Text', 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Noto Sans SC', 'Microsoft YaHei', sans-serif;
  --mono: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
  --radius: 14px; --radius-lg: 20px; --radius-xl: 24px;
  --shadow-card: 0 2px 4px #24495904, 0 14px 40px #24495907;
  --shadow-card-hover: 0 4px 8px #24495906, 0 22px 45px #24495912;
  --wrap: min(1240px, calc(100vw - 80px)); --header-height: 80px;
}
html.js::after { content: none; }
body.georgefeng-site { background: var(--bg); }
.eyebrow { color: var(--ink-soft); letter-spacing: .12em; }
.eyebrow--gold { color: var(--accent); }
.site-header { background: rgba(247,250,251,.94); border-color: transparent; }
.site-header.is-scrolled { background: rgba(247,250,251,.93); border-color: var(--line); backdrop-filter: blur(10px); }
.site-brand__name { font-weight: 500; letter-spacing: .15em; }
.site-brand__monogram { color: var(--accent); }
.site-nav__cta, .site-nav__search, .language-switcher { background: rgba(255,255,255,.55); }
.language-switcher a.is-active { background: var(--ink); color: white; }
.home-hero {
  margin: var(--header-height) 0 0; min-height: min(760px, calc(100svh - 80px));
  padding: 96px 0 0; border-radius: 0; background: #e5eff3; color: var(--ink);
  display: flex; flex-direction: column; justify-content: space-between;
}
.admin-bar .home-hero { margin-top: calc(var(--header-height) + 32px); }
.sea-scene { position: absolute; inset: 0; z-index: -3; background: url('../images/sea-poster-desktop.webp') center / cover; }
.sea-scene__canvas { display: block; width: 100%; height: 100%; opacity: 0; transition: opacity 1.2s ease; }
.sea-scene.is-ready .sea-scene__canvas { opacity: 1; }
.sea-scene__veil { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, rgba(241,247,249,.95), rgba(241,247,249,.62) 25%, rgba(241,247,249,.03) 58%, transparent 78%), linear-gradient(0deg, var(--bg), transparent 19%);
}
.home-hero__frame { display: block; width: var(--wrap); }
.home-hero__main { max-width: 720px; }
.home-hero__badge { display: flex; flex-wrap: wrap; width: fit-content; gap: 0 6px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--ink-soft); font-size: 12px; letter-spacing: .035em; margin: 0 0 35px; }
.home-hero__badge i { width: 5px; height: 5px; margin-right: 9px; background: #467d8c; box-shadow: 0 0 0 5px #467d8c0b; animation: none; }
.home-hero__badge .rocket-capital-link { color: inherit; }
.home-hero__title { font-size: clamp(94px, 12.5vw, 174px); color: var(--ink); letter-spacing: -.065em; line-height: .95; margin: 0 0 30px; font-weight: 500; white-space: nowrap; text-wrap: nowrap; }
.hero-swash { min-width: 0; color: #537f90; }
.home-hero__sub { max-width: 445px; font-size: clamp(18px, 1.55vw, 22px); color: #405e6d; line-height: 1.9; letter-spacing: .035em; }
.home-hero__foot { margin-top: 34px; gap: 16px; }
.home-hero .btn { min-height: 46px; padding: 12px 23px; font-size: 12px; }
.home-hero .btn--light { background: var(--ink); border-color: var(--ink); color: white; box-shadow: 0 6px 20px #24495914; }
.home-hero .btn--light:hover { background: var(--accent); }
.home-hero .btn--ghost-dark { background: rgba(250,253,254,.48); border-color: #7393a04d; color: var(--ink); }
.home-hero .btn--ghost-dark:hover { background: #ffffffa6; }
.home-hero__horizon { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 72px 0 32px; width: var(--wrap); }
.home-hero__caption { margin: 0; color: #456574; font-size: 12px; letter-spacing: .17em; }
.home-hero__caption span { font-size: 21px; vertical-align: middle; margin-right: 9px; }
.home-hero__coordinate { color: #456574; font: 9px var(--mono); letter-spacing: .18em; }
.home-intro { display: grid; grid-template-columns: 1fr 1.8fr; align-items: start; gap: 60px; padding: 45px 0; border-bottom: 1px solid var(--line); }
.home-intro__label { margin: 4px 0; color: var(--ink-soft); font-size: 11px; letter-spacing: .14em; }
.home-intro__copy { margin: 0; max-width: 710px; color: var(--ink-soft); font-size: 14px; line-height: 2; }
.latest-section { padding-top: 80px; }
.section-heading { margin-bottom: 35px; }
.section-heading h2 { font-size: clamp(28px, 3vw, 40px); font-weight: 400; letter-spacing: -.025em; }
.section-heading__index { color: var(--ink-faint); font-size: 10px; }
.post-card { padding: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fcfefe; overflow: hidden; box-shadow: var(--shadow-card); transition: transform .35s var(--ease), box-shadow .35s ease; }
.post-card__visual { border-radius: 0; box-shadow: none; }
.post-card:hover .post-card__visual { box-shadow: none; }
.post-card__body { padding: 26px 28px 30px; }
.post-card__title { font-weight: 500; line-height: 1.5; }
.post-card--featured { gap: 0; align-items: stretch; }
.post-card--featured .post-card__body { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 4vw, 56px); }
.post-card--featured .post-card__visual { min-height: 100%; }
.post-card--featured .post-card__title { font-size: clamp(27px, 3vw, 39px); }
.post-card--featured .post-card__excerpt { font-size: 14px; }
.post-card__visual img { transition: transform .8s var(--ease), opacity .25s ease; }
.post-card:hover .post-card__visual img { transform: scale(1.025); }
.principle-list { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.principle:nth-child(n) { grid-column: auto; padding: 32px 25px; background: transparent; color: var(--ink); border: 1px solid var(--line); border-radius: 15px; }
.principle:nth-child(2n) { background: #eef4f6; }
.principle:nth-child(n) .principle__index { color: var(--accent); -webkit-text-stroke: 0; font: italic 500 42px var(--display-serif); opacity: .8; margin-bottom: 35px; }
.principle::after { height: 130px; width: 130px; opacity: .08; }
.principle__name { font-size: 20px; }
.principle__text { font-size: 13px; line-height: 1.95; color: var(--ink-soft); opacity: 1; }
.about-strip { margin: 0; padding: 100px 0; border-radius: 0; background: radial-gradient(ellipse at 90% 5%, #cde3ec80, transparent 65%), linear-gradient(135deg,#eef4f6,#e8f1f4); color: var(--ink); border-block: 1px solid var(--line); }
.about-strip__heading h2 { font-size: clamp(29px,3.3vw,45px); color: var(--ink); line-height: 1.65; font-weight: 400; }
.about-strip__copy p { color: var(--ink-soft); font-size: 15px; line-height: 2.05; }
.about-strip__heading .eyebrow { color: var(--accent); }
.about-strip .btn--ghost-dark { color: var(--ink); border-color: var(--line-strong); }
.topics-section { background: transparent; padding-block: 30px; }
.topic-row { border-radius: 12px; background: #edf3f6; }
.archive-hero, .page-header, .search-hero, .article-header { position: relative; }
.archive-hero h1, .page-header h1, .search-hero h1, .article-header__title { color: var(--ink); letter-spacing: -.035em; font-weight: 400; }
.article-header__title { line-height: 1.4; text-wrap: balance; }
.article-body { color: var(--ink); }
.article-body blockquote { background: #edf4f7; border-color: #90b7c9; border-radius: 0 14px 14px 0; }
.article-body pre { background: #eaf1f4; color: #233e4c; border: 1px solid var(--line); }
.article-body pre code { color: inherit; background: transparent; }
.ai-summary { border-color: #c4d9e3; box-shadow: none; }
.ai-summary__trigger, .ai-summary__panel { background: #eef5f8; }
.author-note { background: #edf4f6; border-color: var(--line); }
.reader-card, .article-comments .comment-respond { background: linear-gradient(145deg,#ffffff,#eef5f7); border: 1px solid var(--line); box-shadow: var(--shadow-card); }
.reader-form input:not([type="submit"]), .reader-form textarea, .article-comments textarea, .article-comments input:not([type="submit"]) { background: #fcfefe; border-color: #b5cbd5; }
.inbox-item.is-unread { background: #eaf3f7; }
.reader-page__signature { color: #89acbc; }
.share-dialog__panel { box-shadow: 0 22px 90px #2346542b; }
.share-dialog__preview-wrap { background: #e5eff3; }
.share-dialog__controls { background: #f9fcfd; }
.site-footer { position: relative; margin: 0; border-radius: 0; background: radial-gradient(ellipse at 85% 10%, #f8fcfd, transparent 65%), linear-gradient(175deg,#eaf3f6,#d8e9f0); color: var(--ink); border-top: 1px solid var(--line); }
.site-footer__inner { width: var(--wrap); padding-top: 80px; }
.site-footer__statement { color: var(--ink); font-size: clamp(28px,3.2vw,45px); line-height: 1.6; font-weight: 400; }
.site-footer__statement em { color: #5b7c8b; }
.site-footer .eyebrow--gold { color: var(--accent); }
.site-footer__links a, .site-footer__bottom p { color: var(--ink-soft); }
.site-footer__links a:hover { color: var(--accent); }
.site-footer__links a span { border-color: var(--line-strong); }
.site-footer__links a:hover span { color: white; }
.site-footer__bottom { border-color: var(--line); }
body .gf-assistant { --gf-ai-ink: #233e4c; --gf-ai-muted: #597581; --gf-ai-paper: #f9fcfd; --gf-ai-accent: #336b86; --gf-ai-line: #dbe7ed; }
body .gf-assistant__launcher { background: #315f74; box-shadow: 0 5px 24px #24495926; border: 1px solid #d8e7ef; }
body .gf-assistant__panel { border-color: #cadde5; box-shadow: 0 18px 65px #24495924; }
body .gf-assistant__monogram, body .gf-assistant__welcome-mark { color: #49798e; background: #e5f0f5; border-color: #d4e4eb; }
body .gf-assistant__welcome p { color: #587381; }
html.js .reveal { opacity: 1; transform: none; transition: none; }
html.js .will-reveal:not(.is-visible) { opacity: 0; transform: translateY(14px); }
html.js .will-reveal { transition: opacity .55s ease, transform .65s var(--ease); }
.gf-image-shell.gf-image-pending::before, .gf-image-shell.gf-image-error::before { animation: none; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); }
  .principle:hover { transform: translateY(-3px); box-shadow: var(--shadow-card); }
}
@media (min-width:861px) {
  html[lang^="en"] .home-hero__main { max-width: 580px; }
}
@media (max-width:1100px) {
  .principle-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-hero { min-height: 650px; padding-top: 85px; }
  .home-hero__title { font-size: clamp(94px,14vw,150px); }
}
@media (max-width:860px) {
  .sea-scene { background-image: url('../images/sea-poster-mobile.webp'); }
  :root { --wrap: calc(100vw - 48px); --header-height:72px; }
  .home-hero { min-height: 670px; padding-top: 72px; }
  .home-hero__frame { width: var(--wrap); }
  .home-hero__title { font-size: clamp(84px,15vw,125px); }
  .home-hero__sub { max-width: 350px; font-size: 18px; }
  .home-hero__horizon { padding-bottom: 28px; }
  .home-hero__coordinate { display: none; }
  .home-intro { grid-template-columns: 1fr; gap: 14px; padding-block: 32px; }
  .home-intro__copy { font-size: 13px; }
  .home-hero__badge { font-size: 11px; margin-bottom: 28px; }
  .sea-scene__veil { background: linear-gradient(180deg,rgba(241,247,249,.65),rgba(241,247,249,.38) 40%,transparent 67%,var(--bg)),linear-gradient(90deg,#f1f7f980,transparent 75%); }
  .latest-section { padding-top: 55px; }
  .post-card--featured .post-card__visual { min-height: 0; }
  .about-strip { padding-block: 65px; }
  .site-footer__inner { padding-top: 55px; }
  .site-footer__top { padding-bottom: 40px; }
}
@media (max-width:480px) {
  :root { --wrap:calc(100vw - 40px); }
  .home-hero { min-height: 660px; padding-top: 58px; }
  .home-hero__title { font-size: clamp(77px,21vw,101px); margin-bottom: 24px; }
  .home-hero__sub { font-size: 17px; max-width: 310px; }
  .home-hero__foot { margin-top: 27px; gap: 10px; flex-wrap: wrap; }
  .home-hero .btn { font-size: 11px; padding: 11px 20px; }
  .home-hero__caption { font-size: 11px; letter-spacing: .12em; }
  .principle-list { gap: 12px; }
  .principle:nth-child(n) { padding: 23px 18px; }
  .principle__name { font-size: 17px; }
  .principle__text { font-size: 12px; }
  .post-card__body { padding: 23px; }
  .home-hero__badge { font-size: 10px; letter-spacing: 0; }
  .site-footer__statement { font-size: 27px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  html.js .will-reveal:not(.is-visible) { opacity: 1; transform: none; }
  .sea-scene__canvas, .post-card, .post-card__visual img, .principle, .btn, .site-header { transition: none; }
  .post-card:hover, .principle:hover, .post-card:hover .post-card__visual img { transform: none; }
}

/* Harmonize inherited dark controls and preserve the card edge. */
.post-card--featured .post-card__visual { border-radius: 0; }
.about-strip .btn--light { background: var(--ink); color: white; border-color: var(--ink); }
.share-dialog__backdrop { background: rgba(30,57,71,.48); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }

/* Pages move as solid planes in the same space; only snapshots are transformed. */
:root {
  --page-direction: 1;
  --page-turn: 14deg;
  --page-travel: 18vw;
  --page-depth: -180px;
  --page-duration: .6s;
}
html.page-back { --page-direction: -1; }
@view-transition { navigation: auto; }
::view-transition {
  overflow: clip;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 36%, #dceaf0, #9cb8c7);
}
::view-transition-group(root) { animation: none; }
::view-transition-image-pair(root) {
  isolation: isolate;
  perspective: 1800px;
  perspective-origin: 50% 45%;
}
::view-transition-old(root),
::view-transition-new(root) {
  height: 100%;
  object-fit: cover;
  transform-origin: 50% 45%;
  backface-visibility: hidden;
  mix-blend-mode: normal;
  box-shadow: 0 16px 40px #17394929;
  will-change: transform, opacity;
  animation-duration: var(--page-duration);
  animation-timing-function: cubic-bezier(.22, .8, .25, 1);
  animation-fill-mode: both;
}
::view-transition-old(root) { animation-name: gf-page-recede; }
::view-transition-new(root) { animation-name: gf-page-advance; }
@keyframes gf-page-recede {
  from { transform: translate3d(0, 0, 0) rotateY(0); }
  to {
    transform: translate3d(calc(var(--page-travel) * var(--page-direction) * -.65), 0, var(--page-depth)) rotateY(calc(var(--page-turn) * var(--page-direction)));
  }
}
@keyframes gf-page-advance {
  from {
    opacity: 0;
    transform: translate3d(calc(var(--page-travel) * var(--page-direction)), 0, var(--page-depth)) rotateY(calc(var(--page-turn) * var(--page-direction) * -1));
  }
  30% { opacity: 1; }
  to { opacity: 1; transform: translate3d(0, 0, 0) rotateY(0); }
}
/* A short 3D departure for browsers without cross-document snapshots. */
html.page-departing main {
  transform-origin: 50% var(--page-origin-y, 50vh);
  animation: gf-page-depart .18s ease-in both;
}
@keyframes gf-page-depart {
  to { opacity: .65; transform: perspective(1400px) translate3d(-2vw, 0, -75px) rotateY(5deg); }
}
@media (max-width: 860px) {
  :root { --page-turn: 8deg; --page-travel: 12vw; --page-depth: -90px; --page-duration: .52s; }
}
@media (prefers-reduced-motion:no-preference) {
  .home-hero__badge { animation: sea-text-enter .8s var(--ease) both; }
  .home-hero__title { animation: sea-title-enter 1.1s var(--ease) both; }
  .home-hero__sub { animation: sea-text-enter .9s var(--ease) .12s both; }
  .home-hero__foot { animation: sea-text-enter .9s var(--ease) .22s both; }
  /* The page already enters in 3D; replaying its children adds a second start. */
  html.page-arrived .home-hero__badge,
  html.page-arrived .home-hero__title,
  html.page-arrived .home-hero__sub,
  html.page-arrived .home-hero__foot { animation: none; }
  .home-hero__caption span { display:inline-block; animation:sea-star-turn 12s ease-in-out infinite; }
  html.js .will-reveal { transition:opacity .7s ease,transform .9s var(--ease); }
  html.js .will-reveal:not(.is-visible) { opacity:0; transform:perspective(1100px) translateY(38px) rotateX(5deg); }
}
@keyframes sea-title-enter { from { transform:translateY(30px) rotateX(12deg); opacity:.25; } to { transform:none; opacity:1; } }
@keyframes sea-text-enter { from { transform:translateY(24px); opacity:0; } to { transform:none; opacity:1; } }
@keyframes sea-star-turn { 0%,100% { transform:rotate(0) scale(1); } 50% { transform:rotate(90deg) scale(1.2); } }
.post-card::after { content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:radial-gradient(circle at var(--light-x,50%) var(--light-y,0%),#ffffff45,transparent 58%); opacity:0; transition:opacity .3s ease; }
.post-card { position:relative; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  html.js .post-card.is-tilting, html.js .principle.is-tilting { transform:perspective(1000px) translateY(-7px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition:transform .16s ease-out,box-shadow .3s ease; box-shadow:0 8px 15px #2449590b,0 28px 55px #24495920; }
  .post-card.is-tilting::after { opacity:1; }
  .post-card:hover .post-card__visual img { transform:scale(1.055); }
  .btn:hover { transform:translateY(-3px); box-shadow:0 9px 18px #24495916; }
}
@media (prefers-reduced-motion:reduce) {
  @view-transition { navigation: none; }
  ::view-transition-old(root), ::view-transition-new(root), html.page-departing main { animation:none; }
}

.home-hero:not(.sea-is-visible) .home-hero__caption span { animation-play-state: paused; }
