/* Lithos reference composition, with a larger interactive reveal and shared camera. */
.hero{height:100svh;min-height:720px;max-height:none;background:#000;touch-action:pan-y;user-select:none}
.hero-scene{inset:0;overflow:hidden}
.scene-float{inset:-4%;aspect-ratio:auto;animation:scene-arrive 1.8s cubic-bezier(.16,1,.3,1) both;will-change:transform}
.scene-camera{inset:0;animation:none;transform-origin:50% 50%;will-change:transform;backface-visibility:hidden}
.terrain-base,.terrain-reveal,.terrain-full{object-fit:cover;object-position:50% 50%;filter:none}
.reveal-window{transform-origin:0 0;transition:opacity .45s;mask-image:radial-gradient(closest-side,#000 0%,#000 48%,#000c 65%,#0006 79%,#0002 91%,transparent 100%);-webkit-mask-image:radial-gradient(closest-side,#000 0%,#000 48%,#000c 65%,#0006 79%,#0002 91%,transparent 100%)}
.terrain-reveal{transform-origin:0 0}
.terrain-full{transition:opacity 1s cubic-bezier(.22,.61,.36,1)}
.moss-expanded .terrain-full{opacity:1}
.moss-expanded .reveal-window{opacity:0}
.hero-shade{background:linear-gradient(0deg,#101410 0%,#0009 10%,#0001 28%,transparent 45%);pointer-events:none}
.hero .hero-copy{top:15%;padding:0 20px;will-change:transform}
.hero h1{font-size:clamp(58px,5.6vw,90px);line-height:1.14;letter-spacing:.045em;color:#f8f7f1}
.hero h1>span:last-child{color:#eee8da}
.hero h1>span{animation:text-arrive 1.15s .15s cubic-bezier(.16,1,.3,1) both}
.hero h1>span:last-child{animation-delay:.3s}
.hero-bottom{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;left:4.8%;right:4.8%;bottom:42px;align-items:end}
.author-mini{width:250px}
.author-name{color:#f3efe5;font-size:24px;text-shadow:0 2px 16px #000}
.author-name>span{color:#dcd8c8}
.author-mini p{color:#d8d8cd;font-size:14px;line-height:1.8;margin:12px 0 10px;text-shadow:0 2px 16px #000}
.reveal-toggle{color:#f1dec8;border-color:#ddb99170;gap:19px;min-height:42px;font-size:14px}
.reveal-toggle:hover,.reveal-toggle[aria-pressed=true]{color:#fff}
.hero-invitation{justify-self:end;max-width:none;width:242px}
.hero-invitation>p{color:#d8d8cd;font-size:14px;text-shadow:0 2px 16px #000;line-height:1.8;margin-bottom:20px}
.hero .primary-link{border:1px solid #d387537a;background:#a94f21;color:#fff4e9;min-height:46px;padding:11px 25px;font-size:14px;backdrop-filter:none;box-shadow:0 6px 30px #0003;transition:background .3s,transform .35s,box-shadow .35s}
.hero .primary-link:hover{background:#ba5c29;transform:translateY(-3px);box-shadow:0 12px 35px #b74c2425}
.hero .primary-link:active{transform:scale(.97)}
.scene-instructions{align-self:end;text-align:center;color:#d0d0bf;font-size:12px;line-height:1.85;letter-spacing:.045em;padding-bottom:6px;text-shadow:0 2px 14px #000}
.scene-instructions>span{display:block}
.scene-instructions>span:first-child{font-size:14px;color:#e6e1d4;margin-bottom:3px}
.scene-instructions .touch-instruction{display:none}
.scene-instructions>small{display:block;font-size:12px;color:#b3b6a5}
.scene-cursor{position:absolute;left:0;top:0;width:28px;height:28px;margin:-14px 0 0 -14px;border:1px solid #f9e9cdba;border-radius:50%;z-index:4;pointer-events:none;opacity:0;transition:opacity .2s,border-color .3s;will-change:transform}
.scene-cursor:before{content:"";position:absolute;inset:10px;border-radius:50%;background:#fae9cb;transition:transform .35s}
.scene-cursor:after{content:"";position:absolute;inset:-7px;border:1px solid #f1c59800;border-radius:50%;transform:scale(.6);transition:transform .45s,border-color .3s}
.cursor-note{position:absolute;top:39px;left:14px;transform:translateX(-50%);white-space:nowrap;font-size:12px;letter-spacing:.08em;color:#f8ebd7;text-shadow:0 2px 12px #000}
.is-pressing .scene-cursor:after{border-color:#f1c598a3;transform:scale(1.18)}
.is-pressing .scene-cursor:before{transform:scale(.6)}
.is-pressing .cursor-note{color:#f5c69d}
.scene-paused .scene-float{animation-play-state:paused}
@media(hover:hover) and (pointer:fine){.hero.is-pointing{cursor:none}.is-pointing .scene-cursor{opacity:1}.hero a,.hero button{cursor:pointer}}
@keyframes scene-arrive{from{opacity:.2;transform:scale(1.09)}to{opacity:1;transform:scale(1)}}
@keyframes text-arrive{from{opacity:0;filter:blur(8px);transform:translateY(24px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}
@media(min-width:701px) and (max-height:800px){.hero{min-height:700px}.hero .hero-copy{top:15%}.hero h1{font-size:66px}.hero-bottom{bottom:30px}.hero-invitation>p{margin-bottom:15px}}
@media(max-width:1100px){.hero-bottom{gap:18px}.author-mini{width:225px}.hero-invitation{width:220px}.scene-instructions>small{max-width:130px;margin:auto}.scene-instructions>span:first-child{font-size:13px}}
@media(max-width:700px){
  .hero{height:100svh;min-height:740px;max-height:none}
  .scene-float{inset:-4%;aspect-ratio:auto}
  .hero .hero-copy{top:18%;padding:0 15px}
  .hero h1{font-size:clamp(44px,11.8vw,70px);line-height:1.25;letter-spacing:.03em}
  .terrain-base,.terrain-full,.terrain-reveal{object-position:56% center}
  .hero-shade{background:linear-gradient(0deg,#101410 0%,#000e 8%,#0008 23%,transparent 55%)}
  .hero-bottom{left:6%;right:6%;bottom:23px;grid-template-columns:1fr auto;gap:15px 10px}
  .author-mini{width:auto}
  .author-name{font-size:21px;gap:8px}
  .author-name>span{font-size:16px}
  .author-mini p{font-size:13px;line-height:1.8;margin:9px 0 4px;max-width:180px}
  .reveal-toggle{font-size:13px;min-height:42px;gap:15px}
  .hero-invitation{width:auto}
  .hero-invitation>p{display:none}
  .hero .primary-link{font-size:13px;padding:10px 16px;gap:14px;min-height:44px}
  .scene-instructions{grid-column:1/-1;grid-row:2;text-align:left;border-top:1px solid #d5bf9d33;padding-top:11px;padding-bottom:0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .scene-instructions .mouse-instruction{display:none}
  .scene-instructions .touch-instruction{display:inline;font-size:12px;margin:0}
  .scene-instructions>small{font-size:12px;max-width:none;margin:0;color:#bab9aa}
  .scene-cursor{display:none}
}
@media(prefers-reduced-motion:reduce){.scene-float,.scene-camera,.hero h1>span{animation:none!important;transform:none!important;will-change:auto}.hero .hero-copy{transform:none!important;will-change:auto}.terrain-full,.reveal-window,.scene-cursor,.scene-cursor:after,.scene-cursor:before{transition:none!important}.hero .primary-link:hover{transform:none}}
