/* Terera: a living room, a held sentence, then the practical details. */
.home-page { overflow-x:clip; }
.home-page h2 { font:400 clamp(42px,4.5vw,74px)/1.06 var(--sans); letter-spacing:-.055em; }
.header-controls { gap:6px; }
.gaze-film,.gaze-film video { position:absolute; inset:0; width:100%; height:100%; }
.gaze-film video { object-fit:cover; object-position:61% center; opacity:0; transition:opacity .55s; }
.gaze-film video.is-active { opacity:1; }
.demo-section { position:relative; padding:65px 0 95px; color:#f0f0e6; }
.demo-section > .shell { position:relative; max-width:1240px; }
.demo-heading { display:flex; align-items:baseline; justify-content:space-between; gap:25px; margin-bottom:20px; }
.home-page .demo-heading h2 { font:400 27px/1.1 var(--sans); letter-spacing:-.03em; }
.demo-heading > p { color:#c0d0c3; font-size:14px; margin:0; }
.demo-theatre { position:relative; color:#f0f0e6; --ink:#f0f0e6; --muted:#c3d0c2; --quiet:#9eb2a4; --rule:#7e9b8445; --signal:#97e0b9; --panel:#17281f; border:1px solid #acc4ad5c; border-radius:15px; background:#0b1610bb; box-shadow:0 45px 110px -35px #000b,inset 0 1px #e5f8e020; backdrop-filter:blur(16px); }
.demo-top { padding:14px 23px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--rule); }
.demo-status { font-size:14px; display:flex; align-items:center; gap:8px; }
#demo-disclosure { color:#abc1ad; font:14px/1.5 var(--mono); }
.demo-modebar { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:12px 20px; }
.mode-tabs { display:flex; gap:5px; }
.mode-tabs button { border:0; border-radius:5px; background:transparent; color:#b6c7b6; padding:11px 17px; font-size:14px; }
.mode-tabs button[aria-selected='true'] { background:#e4eddd; color:#112016; }
.mode-tabs button:hover:not([aria-selected='true']) { background:#e4eddd15; color:white; }
.placement-controls { display:flex; align-items:center; gap:4px; }
.placement-controls > span { margin-right:9px; font-size:14px; color:#a4bca8; }
.placement-controls button { border:1px solid #65866c60; border-radius:4px; padding:8px 10px; color:#c9d8c7; font-size:14px; background:transparent; }
.placement-controls button[aria-pressed='true'] { color:#132a1b; background:#bcd5bb; border-color:#bcd5bb; }
.demo-layout { position:relative; height:450px; isolation:isolate; overflow:hidden; background:#101c14; border-block:1px solid var(--rule); }
.demo-layout > .gaze-film::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#08130fe6,transparent 32%),#0b180e25; }
.script-source { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; clip-path:inset(50%)!important; white-space:nowrap!important; }
.gaze-stations { position:absolute; inset:0; perspective:1200px; transform-style:preserve-3d; z-index:2; }
.reading-station { position:absolute; left:27%; top:44%; width:36%; min-height:205px; padding:25px 28px; color:#eef4e7; background:#0b1a12b8; border:1px solid #accdaf50; border-radius:9px; box-shadow:0 20px 70px -25px #000c,inset 0 1px #d9f7db16; transform:translate(-50%,-50%); backdrop-filter:blur(12px); opacity:.3; }
.reading-station[data-station='right'] { left:73%; }
.reading-station[data-station='centre'] { left:50%; }
.reading-station.is-absent { visibility:hidden; }
.reading-station.is-preview { transform:translate(-50%,-50%) rotateY(-7deg) scale(.94); }
.reading-station.is-live { opacity:1; border-color:#afd8b8b0; box-shadow:0 25px 80px -25px #000c,inset 0 1px #e8fce640; }
.station-dot { width:5px; height:5px; border-radius:50%; display:block; background:#6f987c; }
.is-live .station-dot { background:#9ce5ba; box-shadow:0 0 15px #a6edbf5a; }
.reading-station p { margin:18px 0 24px; font:400 clamp(21px,2.2vw,34px)/1.4 var(--sans); letter-spacing:-.035em; }
.station-word-current { color:#b9f0ce; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
.station-word-read { color:#91a991; }
.station-rule { position:absolute; left:28px; right:28px; bottom:20px; height:1px; background:#76917b36; }
.station-rule::after { content:''; display:block; height:100%; background:#a9dfb6; transform-origin:left; transform:scaleX(var(--phrase-progress,0)); }
[data-mode='solo'] .reading-station { top:40%; width:47%; }
[data-mode='room'] .reading-station { width:29%; min-height:205px; }
[data-mode='room'] .reading-station[data-station='left'] { left:18%; }
[data-mode='room'] .reading-station[data-station='right'] { left:82%; }
[data-mode='room'] .reading-station p { font-size:clamp(19px,1.9vw,28px); }
[data-mode='room'][data-placement='moving'] .reading-station[data-station='centre'] { width:33%; left:clamp(18%,var(--travel-x,50%),82%); top:clamp(120px,var(--travel-y,50%),calc(100% - 132px)); transition:left .85s cubic-bezier(.4,0,.15,1),top .85s cubic-bezier(.4,0,.15,1); }
.travel-route { display:none; }
.gaze-captions { position:absolute; z-index:3; bottom:17px; left:23px; right:23px; display:flex; justify-content:space-between; gap:15px; align-items:center; }
.gaze-state { display:flex; align-items:center; gap:8px; font-size:14px; color:#e0efdf; }
.gaze-state i { width:4px; height:4px; border-radius:50%; background:#9fe3b7; }
.map-note { font-size:14px; text-align:right; color:#bacfb8; margin:0; }
.off-notice { position:absolute; z-index:3; left:23px; bottom:47px; background:#15291ae8; border:1px solid #8cae8c66; border-radius:3px; color:#d5e7d0; padding:8px 12px; font:14px var(--mono); }
.demo-controls { display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:17px 20px; }
.demo-controls .button { min-height:43px; padding:10px 17px; border-radius:5px; font-size:14px; }
.home-page .demo-controls .speak-button { color:#0d2014; background:#b7e6c9; min-width:240px; justify-content:center; touch-action:none; user-select:none; }
.home-page .demo-controls .speak-button:hover { background:#d3f3df; color:#0d2014; }
.home-page .demo-controls .button-outline { color:#e8f0e0; border-color:#b3c9b35e; }
.home-page .demo-controls .button-outline:hover { background:#1e3527; }
.reset-button { border:0; background:transparent; color:#a0b5a4; font-size:14px; padding:12px; }
.reset-button:hover { color:white; }
.demo-key-hint { margin-left:auto; font-size:14px; color:#a0b5a4; }
kbd { border:1px solid #8da89366; border-bottom-width:2px; border-radius:4px; padding:3px 9px; font:14px var(--sans); }
.demo-guide { position:absolute; z-index:6; left:50%; bottom:159px; transform:translateX(-50%); width:max-content; max-width:80%; }
.pickup-cue { padding:12px 20px; background:#deebd5; color:#1b3020; border:1px solid #f4ffef70; border-radius:7px; box-shadow:0 16px 45px #0006; }
.pickup-cue .eyebrow { font:14px/1.4 var(--sans); margin:0 0 4px; color:#4c674f; }
#pickup-words { font:400 19px/1.4 var(--sans); margin:0; letter-spacing:-.015em; }
.mode-description { padding:0 170px 18px 23px; min-height:65px; }
.mode-description h3 { margin:0 0 6px; font:400 13px/1.3 var(--sans); }
.mode-description p { font-size:14px; line-height:1.6; color:#9fb6a1; margin:0; }
.run-progress { display:block; margin-top:16px; height:1px; background:#46644a; }
.run-progress i { display:block; height:100%; background:#a8e0b4; transform-origin:left; transform:scaleX(var(--run-progress,0)); }
.demo-caption { font-size:14px; text-align:center; color:#a6bba8; margin:15px 0 0; }
.demo-caption > span { margin-left:8px; }
.cinema-payoff { position:absolute; bottom:-38px; left:0; right:0; display:flex; justify-content:center; align-items:center; gap:25px; color:#d5ebcf; }
.cinema-payoff p { font:19px var(--serif); margin:0; }
.cinema-payoff a { font-size:14px; }
[data-state='following'] .is-live .station-dot { animation:speaking-light .8s ease-in-out infinite alternate; }
@keyframes speaking-light { to { box-shadow:0 0 0 4px #a6edbf18,0 0 15px #a6edbf7a; } }

/* Progressive enhancement: one short native-scroll camera move. */

/* The theatre releases into a quieter, dimensional photographic sequence. */
.uses-section { padding:0 0 75px; overflow:clip; }
.scene-sequence { position:relative; }
.scene-pin { padding-block:45px; display:grid; grid-template-columns:.32fr 1fr; gap:7%; align-items:center; }
.scene-copy h2 { font-size:clamp(34px,3.2vw,51px); letter-spacing:-.055em; }
.scene-select { display:flex; flex-direction:column; align-items:flex-start; gap:5px; margin-top:30px; }
.scene-select button { display:flex; align-items:center; gap:12px; border:0; color:var(--quiet); background:none; padding:10px 0; font-size:14px; text-align:left; }
.scene-select button::before { content:''; height:4px; width:4px; background:var(--rule); border-radius:50%; }
.scene-select button[aria-pressed='true'] { color:var(--ink); }
.scene-select button[aria-pressed='true']::before { background:var(--signal); box-shadow:0 0 12px #b1e4bd30; }
.scene-window { min-width:0; perspective:1600px; }
.scene-strip { position:relative; display:flex; gap:55px; transform-style:preserve-3d; }
.scene { flex:0 0 100%; margin:0; min-width:0; transform-origin:50% 50%; }
.scene-image { overflow:hidden; border-radius:7px; box-shadow:0 35px 80px -40px #000b; }
.scene-image img { width:100%; aspect-ratio:1.62; object-fit:cover; }
.scene figcaption { display:flex; flex-direction:column; width:100%; gap:9px; margin-top:24px; }
.scene figcaption strong { font-size:21px; font-weight:400; letter-spacing:-.025em; }
.scene figcaption > span { font-size:14px; color:var(--muted); line-height:1.7; max-width:100%; }
.scene-sequence[data-pinned='true'] { height:235svh; }
.scene-sequence[data-pinned='true'] .scene-pin { position:sticky; top:95px; height:calc(100svh - 105px); }
.scene-sequence[data-pinned='true'] .scene-window { clip-path:inset(-90px -100vw -90px -20px); }
.scene-sequence[data-pinned='true'] .scene-strip { transform:translate3d(var(--story-x,0px),0,0); }
.scene-sequence[data-pinned='true'] .scene { transform:perspective(1400px) rotateY(var(--scene-angle,0deg)) translateZ(var(--scene-depth,0px)); opacity:var(--scene-opacity,1); }
.scene-sequence:not([data-pinned='true']) .scene-window { overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--quiet) transparent; padding-bottom:20px; }
.scene-sequence:not([data-pinned='true']) .scene { scroll-snap-align:center; }

/* Actual software, local data, and a straightforward purchase. */
.pricing-section { padding-block:100px; }
.price-layout { display:grid; grid-template-columns:1fr 1fr; gap:13%; align-items:start; }
.price-intro h2 { font-size:clamp(48px,5.2vw,84px); }
.price-intro > p { font-size:15px; color:var(--muted); margin:27px 0; max-width:30em; }
.fit-check { margin-top:35px; padding-top:25px; border-top:1px solid var(--rule); }
.fit-check .eyebrow { font-size:14px; }
.fit-check dl { margin:20px 0; }
.fit-check dl > div { display:grid; grid-template-columns:82px 1fr; gap:18px; margin-bottom:14px; font-size:14px; line-height:1.6; }
.fit-check dt { color:var(--quiet); }
.fit-check dd { margin:0; color:var(--muted); }
.fit-check .text-link { font-size:14px; }
.price-ticket { padding:32px 38px 38px; background:#dce7d6; color:#213e2a; border-radius:9px; box-shadow:14px 16px 0 -1px var(--page),14px 16px 0 var(--rule); }
.ticket-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; }
.ticket-heading .wordmark { font-size:30px; color:#25412e; }
.ticket-heading > span:last-child { font-size:14px; color:#56715a; }
.price { display:flex; justify-content:center; align-items:baseline; gap:12px; margin:25px 0 12px; }
.price strong { font:400 clamp(150px,17vw,270px)/1 var(--serif); letter-spacing:-.065em; }
.price-currency { font-size:14px; align-self:flex-start; margin-top:30px; }
.price-once { font:25px var(--serif); margin-left:7px; }
.price-ticket > p { font-size:14px; color:#49634d; margin:15px 0 30px; }
.price-ticket ul { list-style:none; margin:0 0 28px; padding:22px 0 0; border-top:1px solid #9eb39a; }
.price-ticket li { font-size:14px; margin-bottom:13px; padding-left:23px; position:relative; }
.price-ticket li::before { content:'✓'; position:absolute; left:0; color:#567758; }
.home-page .price-ticket .button { width:100%; background:#224b33; color:#edf5e5; border-radius:5px; }
.home-page .price-ticket .button:hover { background:#163f27; color:white; }
.purchase-notes { margin-top:65px; padding-top:35px; border-top:1px solid var(--rule); display:flex; justify-content:space-between; align-items:center; gap:12%; }
.purchase-notes > div { max-width:41em; }
.purchase-notes h3 { font:400 29px/1.15 var(--serif); margin:0 0 15px; }
.purchase-notes p { font-size:14px; color:var(--muted); margin:0; }
.purchase-notes p a { text-decoration:underline; text-underline-offset:3px; }
.purchase-notes > .text-link { font-size:14px; flex:none; }
.faq-section { padding-block:25px 95px; }
.faq-layout { display:grid; grid-template-columns:.65fr 1fr; gap:13%; }
.faq-layout > div:first-child { position:sticky; top:140px; align-self:start; }
.faqs details { border-top:1px solid var(--rule); }
.faqs details:last-child { border-bottom:1px solid var(--rule); }
.faqs summary { list-style:none; display:flex; justify-content:space-between; align-items:center; gap:25px; cursor:pointer; padding:23px 0; font-size:15px; }
.faqs summary::-webkit-details-marker { display:none; }
.faqs summary span { font-size:20px; font-weight:300; color:var(--sage); transition:transform .2s; }
.faqs details[open] summary span { transform:rotate(45deg); }
.faqs details > p { font-size:14px; line-height:1.8; color:var(--muted); margin:0 0 25px; padding-right:25px; }
.faqs a { text-decoration:underline; text-underline-offset:3px; }

@media (max-width:1100px) {
  .demo-heading > p { font-size:14px; }
  .demo-modebar { padding-inline:15px; gap:12px; }
  .placement-controls > span { display:none; }
  .reading-station { padding:20px; min-height:190px; }
  .mode-description { min-height:62px; }
  .demo-layout { height:410px; }
  .scene-pin { grid-template-columns:.32fr 1fr; gap:6%; }
  .scene-strip { gap:35px; }
  .scene figcaption > span { font-size:14px; }
  .price-layout { gap:8%; }
  .price-ticket { padding-inline:25px; }
}
@media (max-width:960px) {
  .demo-section { padding-top:35px; }
  .scene-pin { grid-template-columns:1fr; gap:30px; }
  .scene-copy { display:flex; align-items:end; justify-content:space-between; gap:25px; }
  .scene-copy h2 { font-size:44px; }
  .scene-copy h2 br { display:none; }
  .scene-copy h2 { max-width:6em; }
  .scene-select { margin:0; }
  .scene { flex-basis:88%; }
  .scene-strip { gap:25px; }
  .scene-window { margin-right:calc(-1 * var(--gutter)); }
  .scene-image img { aspect-ratio:1.6; }
  .purchase-notes { gap:7%; }
}
@media (max-width:760px) {
  .header-inner { gap:12px; }
  .home-page .site-header .motion-toggle { width:28px; }
  .header-controls { gap:3px; }
  .home-page h2 { font-size:42px; }
  .demo-section { padding:25px 0 70px; }
  .demo-section > .shell { width:calc(100% - 24px); }
  .demo-heading { display:block; margin:0 9px 20px; }
  .home-page .demo-heading h2 { font-size:27px; }
  .demo-heading > p { margin-top:10px; font-size:14px; }
  .demo-theatre { border-radius:11px; backdrop-filter:none; background:#132118; }
  .demo-top { padding:13px 15px; align-items:flex-start; flex-direction:column; gap:8px; }
  #demo-disclosure { font-size:14px; }
  .demo-status { font-size:14px; }
  .demo-modebar { flex-wrap:wrap; padding:10px; gap:10px; }
  .mode-tabs { width:100%; gap:4px; }
  .mode-tabs button { flex:1; padding:11px 7px; font-size:14px; }
  .placement-controls { width:100%; justify-content:flex-end; }
  .placement-controls > span { display:block; margin-right:auto; font-size:14px; }
  .placement-controls button { min-height:35px; }
  .demo-layout { height:345px; }
  .reading-station { left:26%; top:42%; width:45%; min-height:190px; padding:15px 12px; border-radius:6px; }
  .reading-station[data-station='right'] { left:74%; }
  .reading-station[data-station='centre'] { left:50%; }
  .reading-station p { font-size:18px; line-height:1.38; margin-top:13px; letter-spacing:-.03em; }
  .station-rule { left:12px; right:12px; bottom:17px; }
  [data-mode='solo'] .reading-station { width:70%; min-height:170px; }
  [data-mode='room'] .reading-station { width:31%; min-height:198px; padding:13px 8px; }
  [data-mode='room'] .reading-station p { font-size:15px; }
  [data-mode='room'][data-placement='moving'] .reading-station[data-station='centre'] { width:50%; min-height:175px; left:clamp(26%,var(--travel-x,50%),74%); top:clamp(103px,var(--travel-y,50%),calc(100% - 145px)); }
  .gaze-captions { left:14px; right:14px; bottom:12px; flex-direction:column; align-items:flex-start; gap:6px; }
  .gaze-state,.map-note { font-size:14px; text-align:left; }
  .off-notice { left:13px; bottom:60px; padding:7px 9px; font-size:14px; }
  .demo-controls { gap:8px; padding:13px; }
  .home-page .demo-controls .speak-button { min-width:100%; }
  .demo-controls .button-outline { flex:1; justify-content:center; }
  .reset-button { flex:1; }
  .demo-key-hint { display:none; }
  .mode-description { min-height:98px; padding:4px 15px 43px; }
  .mode-description h3 { font-size:14px; }
  .mode-description p { font-size:14px; }
  .demo-guide { bottom:242px; max-width:90%; }
  .pickup-cue { padding:10px 13px; }
  #pickup-words { font-size:16px; }
  .demo-caption { font-size:14px; line-height:1.8; padding-inline:10px; }
  .demo-caption > span { display:block; margin:0; }
  .cinema-payoff { position:static; flex-direction:column; gap:2px; align-items:flex-start; padding:20px 10px 0; }
  .uses-section { padding-bottom:45px; }
  .scene-pin { padding-block:35px; }
  .scene-copy { align-items:start; gap:18px; }
  .scene-copy h2 { font-size:33px; }
  .scene-select { padding-top:1px; gap:3px; }
  .scene-select button { font-size:14px; gap:8px; padding-block:8px; }
  .scene { flex-basis:92%; }
  .scene-strip { gap:18px; }
  .scene-image img { aspect-ratio:1.28; }
  .scene figcaption { margin-top:19px; gap:8px; padding-right:5px; }
  .scene figcaption strong { font-size:19px; }
  .scene figcaption > span { font-size:14px; }
  .pricing-section { padding-block:55px 65px; }
  .price-layout { grid-template-columns:1fr; gap:35px; }
  .price-intro h2 { font-size:13.4vw; }
  .price-intro > p { font-size:14px; margin-top:23px; }
  .fit-check { margin-top:26px; }
  .fit-check dl > div { font-size:14px; }
  .price-ticket { padding:25px; margin-right:10px; box-shadow:9px 10px 0 -1px var(--page),9px 10px 0 var(--rule); }
  .ticket-heading > span:last-child { font-size:14px; }
  .price strong { font-size:49vw; }
  .purchase-notes { flex-direction:column; align-items:flex-start; gap:25px; margin-top:45px; padding-top:30px; }
  .purchase-notes p { font-size:14px; }
  .faq-section { padding-block:0 65px; }
  .faq-layout { grid-template-columns:1fr; gap:30px; }
  .faq-layout > div:first-child { position:static; }
  .faqs summary { font-size:14px; padding-block:21px; }
  .faqs details > p { font-size:14px; padding-right:10px; }
}
@media (max-width:360px) {
  .home-page .site-header .wordmark { font-size:26px; gap:7px; }
  .home-page .site-header .wordmark svg { width:23px; height:23px; }
  .home-page .site-header .button-small { padding-inline:10px; gap:8px; font-size:14px; }
  .home-page .site-header .theme-toggle { width:27px; }
  .header-inner { gap:5px; }
  .reading-station p { font-size:16px; }
  [data-mode='room'] .reading-station p { font-size:14px; }
  .scene-copy { flex-direction:column; }
  .scene-copy h2 { max-width:none; }
  .scene-select { flex-direction:row; gap:10px; flex-wrap:wrap; }
  .scene-select button { font-size:14px; gap:5px; }
}
@media (prefers-reduced-motion:reduce) {
  .reading-station,.gaze-film video,.faqs summary span { animation:none!important; transition:none!important; }
}
html[data-motion='paused'] .reading-station,html[data-motion='paused'] .station-dot { animation:none!important; transition:none!important; }
