/* Talk to Nia (docs/epliv/NIA_TOUR.md): the dark stage over the page. Nia is the light in the room. */

/* The page under the stage: her film, the button, and every topic's words (search engines, no script, no sound). */
.talk-hero{padding:72px 0 40px;background:radial-gradient(1200px 600px at 20% 10%,#16264a 0,#0b1222 60%);color:var(--white)}
.talk-hero .container{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:48px;align-items:center}
.talk-hero h1{font:600 clamp(34px,5vw,56px)/1.05 var(--display);margin:10px 0 16px;letter-spacing:-.02em}
.talk-hero .lead{color:rgba(255,255,255,.82);max-width:640px}
.talk-hero .small{color:rgba(255,255,255,.6);margin-top:18px}
.talk-hero-nia video,.talk-hero-nia img{width:100%;border-radius:28px;display:block;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.talk-hero .btn svg{width:18px;height:18px}
.talk-text{display:grid;grid-template-columns:260px 1fr;gap:56px}
.talk-text nav{position:sticky;top:96px;align-self:start}
.talk-text nav h2{font:600 18px/1.3 var(--display);margin:0 0 12px}
.talk-text nav ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.talk-text nav a{color:var(--brand);text-decoration:none}
.talk-topic{padding:0 0 28px;margin:0 0 28px;border-bottom:1px solid var(--line)}
.talk-topic h2{font:600 24px/1.25 var(--display);margin:0 0 12px}
.talk-topic h2 a{color:inherit;text-decoration:none}
.talk-topic p{margin:0 0 10px;color:var(--muted);max-width:720px}
@media (max-width:820px){.talk-hero .container,.talk-text{grid-template-columns:1fr}.talk-hero-nia{max-width:260px}.talk-text nav{position:static}}

/* The stage. */
body.talk-open{overflow:hidden}
.talk{position:fixed;inset:0;z-index:1000;background:#000;color:#fff;display:flex;flex-direction:column;font-family:var(--text)}
.talk[hidden]{display:none}
.talk.opening{animation:talk-door .7s cubic-bezier(.6,0,.2,1) both}
@keyframes talk-door{from{clip-path:circle(0 at var(--x,50%) var(--y,50%))}to{clip-path:circle(150% at var(--x,50%) var(--y,50%))}}
.talk::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(1px 1px at 12% 22%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 78% 14%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 64% 72%,#cfe0ff 50%,transparent 51%),radial-gradient(1px 1px at 30% 80%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 90% 58%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 46% 34%,#9fd8ff 50%,transparent 51%);transition:transform 6s linear,opacity .6s}
.talk.talking::before{transform:translateY(-14px);opacity:.75}
.talk.less-motion::before{display:none}

.talk-top{position:relative;z-index:2;display:flex;align-items:center;gap:14px;padding:14px 20px}
.talk-ic{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.04);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.talk-ic svg{width:19px;height:19px}
.talk-ic:hover{background:rgba(255,255,255,.12)}
.talk-ic:disabled{opacity:.3;cursor:default}
[data-talk-back] svg{transform:rotate(180deg)}
.talk-ic .off{display:none}
.talk.muted .talk-ic .on{display:none}.talk.muted .talk-ic .off{display:inline}
.talk-progress{position:relative;flex:1;height:2px;background:rgba(255,255,255,.14);border-radius:2px}
.talk-progress span{position:absolute;inset:0 auto 0 0;width:calc(var(--p,0)*100%);background:linear-gradient(90deg,var(--accent),#7fb2ff);border-radius:2px;transition:width .8s ease}
.talk-plane{position:absolute;top:50%;left:calc(var(--p,0)*100%);transform:translate(-50%,-50%) rotate(45deg);width:18px;height:18px;color:#cfe0ff;transition:left .8s ease}
.talk-plane svg{width:18px;height:18px}
.talk-topic-name{font:500 14px/1.2 var(--text);color:rgba(255,255,255,.75);white-space:nowrap;max-width:32vw;overflow:hidden;text-overflow:ellipsis}

.talk-body{position:relative;z-index:1;flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr auto;gap:0 40px;padding:0 5vw 4vh;min-height:0}
.talk-nia{grid-column:1;grid-row:1/3;position:relative;min-height:0;display:flex;align-items:flex-end;justify-content:center}
.talk-nia video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;transition:opacity .35s ease}
.talk-nia [data-talk-talking]{opacity:0}
.talk.talking .talk-nia [data-talk-talking]{opacity:1}
.talk.talking .talk-nia [data-talk-idle]{opacity:0}
.talk.has-screen .talk-nia{transform:translateX(-4%);transition:transform .8s ease}

.talk-screen{grid-column:2;grid-row:1;align-self:center;justify-self:start;width:min(440px,100%);opacity:0;transform:translateX(40px) scale(.97);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.talk.has-screen .talk-screen{opacity:1;transform:none;pointer-events:auto}
.talk.less-motion .talk-screen{transition:none}
.talk-screen-card{border-radius:24px;padding:18px;background:linear-gradient(160deg,rgba(255,255,255,.1),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.16);box-shadow:-30px 0 80px rgba(80,140,255,.12),0 30px 60px rgba(0,0,0,.5);max-height:56vh;overflow:auto}

.talk-words{grid-column:2;grid-row:2;align-self:end;max-width:640px}
.talk-prev{display:block;background:none;border:0;padding:0;margin:0 0 10px;color:rgba(255,255,255,.38);font:400 16px/1.45 var(--text);text-align:left;cursor:pointer}
.talk-prev:hover{color:rgba(255,255,255,.6)}
.talk-line{font:500 clamp(20px,2.3vw,28px)/1.38 var(--display);margin:0;min-height:2.8em;cursor:pointer;letter-spacing:-.005em}
.talk-line .w{opacity:.08;transition:opacity .25s ease}
.talk-line .w.on{opacity:1}
.talk-choices{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;min-height:52px}
.talk-choice{display:inline-flex;align-items:center;gap:10px;padding:12px 18px 12px 12px;border-radius:14px;border:1px dashed rgba(255,255,255,.35);background:rgba(255,255,255,.06);color:#fff;font:500 15px/1.2 var(--text);cursor:pointer;opacity:0;transform:translateY(12px);animation:talk-rise .45s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i,0)*70ms)}
.talk-choice .n{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-size:12px;color:rgba(255,255,255,.8)}
.talk-choice:hover,.talk-choice:focus-visible{background:#fff;color:var(--ink);border-style:solid;outline:none}
.talk-choice:hover .n,.talk-choice:focus-visible .n{background:var(--brand-soft);color:var(--brand)}
.talk-choice.join{background:var(--brand);border:1px solid var(--brand)}
.talk-choice.join .n{background:rgba(255,255,255,.2);color:#fff}
@keyframes talk-rise{to{opacity:1;transform:none}}
.talk.less-motion .talk-choice{animation:none;opacity:1;transform:none}

/* The first screen: the sound question. */
.talk-gate{position:absolute;inset:auto 0 0 0;z-index:3;padding:32px 5vw 7vh;background:linear-gradient(transparent,rgba(0,0,0,.85) 40%);text-align:center}
.talk-gate p{font:500 clamp(20px,2.4vw,28px)/1.35 var(--display);margin:0 0 20px}
.talk-gate-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.talk.at-gate .talk-words,.talk.at-gate .talk-top [data-talk-back],.talk.at-gate .talk-progress{visibility:hidden}

/* What the side screen shows (the templates in the page). */
.tk-kicker{display:block;font:600 11px/1 var(--text);letter-spacing:.14em;text-transform:uppercase;color:#9fd8ff;margin:2px 0 12px}
.tk-example{display:inline-block;margin-top:10px;font:500 11px/1 var(--text);letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.tk-card{color:#fff}
.tk-card h3{font:600 22px/1.25 var(--display);margin:6px 0 8px}
.tk-card p{color:rgba(255,255,255,.78);margin:0}
.tk-card-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.1);color:#9fd8ff}
.tk-card-ic svg{width:22px;height:22px}
.tk-card.warn .tk-card-ic,.tk-card.warn .tk-kicker{color:#ffb4a2}
.tk-note{margin-top:12px!important;font-size:14px}
.tk-note a,.tk-card a{color:#9fd8ff}
.tk-chips{display:flex;flex-wrap:wrap;gap:8px}
.tk-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);font-size:14px}
.tk-chip svg{width:16px;height:16px;color:#9fd8ff}
.tk-prices ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.tk-prices li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.06)}
.tk-prices .tk-price{font:600 18px/1.2 var(--display);text-align:right}
.tk-prices .tk-price small{font:400 12px/1 var(--text);color:rgba(255,255,255,.6)}
.tk-prices .tk-what{grid-column:1/3;font-size:13px;color:rgba(255,255,255,.65)}
.tk-flags{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tk-flags li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:rgba(255,120,90,.08);font-size:15px}
.tk-flags svg{width:18px;height:18px;color:#ffb4a2;flex:none}
.tk-flag{font:600 12px/1 var(--text);color:#ffb4a2}
.tk-checks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tk-checks li{display:flex;gap:10px;align-items:center;color:rgba(255,255,255,.7)}
.tk-checks li.done{color:#fff}
.tk-checks svg{width:18px;height:18px;color:var(--accent);flex:none}
.tk-checks li:not(.done) svg{color:rgba(255,255,255,.4)}
.tk-cv-doc{display:grid;gap:8px;padding:16px;border-radius:12px;background:#fff;color:var(--ink)}
.tk-cv-doc b{font:600 18px/1.2 var(--display)}
.tk-cv-doc span{height:10px;border-radius:5px;background:#e9edf5;color:transparent;font-size:1px}
.tk-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(43,196,178,.16);color:#7fe3d6;font-size:14px;margin-bottom:12px}
.tk-badge svg{width:16px;height:16px}
.tk-stack{display:grid;gap:12px}
.tk-stack .pass{margin:0;color:var(--ink)}
.tk-many .pass:nth-child(n+4){display:none}
.tk-film video{width:100%;border-radius:16px;display:block}
.tk-phone{max-width:300px;margin:0 auto;color:var(--ink)}
.tk-phone .screen{margin:0}
.tk-chat{display:grid;gap:8px;color:#fff}
.tk-chat .bubble{padding:10px 14px;border-radius:16px;max-width:85%;font-size:14px;line-height:1.4}
.tk-chat .bubble.me{justify-self:end;background:var(--brand)}
.tk-chat .bubble.nia{justify-self:start;background:rgba(255,255,255,.12)}

/* Phones: Nia on top, the side screen under her, her words and the buttons at the bottom (thumb reach). */
@media (max-width:820px){
  .talk-top{padding:10px 12px;gap:8px}
  .talk-topic-name{display:none}
  .talk-body{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto auto;padding:0 16px 18px;gap:10px}
  .talk-nia{grid-column:1;grid-row:1}
  .talk.has-screen .talk-nia{transform:none}
  .talk-screen{grid-column:1;grid-row:2;justify-self:stretch;width:100%;transform:translateY(20px)}
  .talk:not(.has-screen) .talk-screen{display:none}
  .talk-screen-card{max-height:30vh;padding:12px;border-radius:18px}
  .talk-words{grid-column:1;grid-row:3}
  .talk-prev{display:none}
  .talk-line{font-size:19px;min-height:2.6em}
  .talk-choice{padding:11px 14px 11px 10px;font-size:14px}
  .tk-card h3{font-size:18px}
}
@media (prefers-reduced-motion:reduce){.talk.opening{animation:none}.talk-progress span,.talk-plane{transition:none}}
/* The website's cards fade in on scroll (site.js); on the stage there is no scroll: they show at once. */
.talk-screen .reveal{opacity:1!important;transform:none!important;animation:none!important}
