:root{
  --spruce:#131A12;
  --field:#1C2518;
  --raise:#243020;
  --line:#35442C;
  --canvas:#CDC0A0;
  --canvas-dim:#8E8A72;
  --amber:#E89A2A;
  --flare:#C0482C;
  --go:#7FA24A;
  --rad:3px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--spruce) url("/topo.jpg") center/cover no-repeat fixed;
  color:var(--canvas);
  font:400 17px/1.55 "IBM Plex Sans",system-ui,sans-serif;
  min-height:100vh;
}
body::before{
  content:"";position:fixed;inset:0;z-index:-1;
  background:
    radial-gradient(120% 90% at 22% 2%, rgba(19,26,18,.15), rgba(19,26,18,.45) 72%),
    linear-gradient(180deg, rgba(19,26,18,.25), rgba(19,26,18,.55));
}
.scanlines{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:repeating-linear-gradient(180deg, rgba(205,192,160,.035) 0 1px, transparent 1px 4px);
}
main,header,footer{position:relative;z-index:1}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- top bar ---------- */
.bar{
  display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;
  padding:18px clamp(18px,5vw,56px);border-bottom:1px solid var(--line);
  background:rgba(19,26,18,.72);backdrop-filter:blur(6px);
}
.mark{display:flex;align-items:baseline;gap:10px}
.mark__dot{
  width:9px;height:9px;border-radius:50%;background:var(--canvas-dim);
  align-self:center;box-shadow:0 0 0 3px rgba(205,192,160,.08);transition:background .2s;
}
.mark__dot.live{background:var(--flare);box-shadow:0 0 14px var(--flare)}
.mark__dot.talk{background:var(--amber);box-shadow:0 0 14px var(--amber)}
.mark__name{
  font-family:"Big Shoulders Display",sans-serif;font-weight:900;font-size:30px;
  letter-spacing:.06em;line-height:1;color:var(--canvas);
}
.mark__sub{font-size:13.5px;color:var(--canvas-dim)}
.bar__right{display:flex;align-items:center;gap:16px}
.chan{font-size:13.5px;color:var(--canvas-dim);min-width:11ch}
.toggle{
  font:500 14px/1 "IBM Plex Sans",sans-serif;color:var(--canvas);
  background:transparent;border:1px solid var(--line);border-radius:var(--rad);
  padding:9px 14px;cursor:pointer;transition:border-color .15s,color .15s;
}
.toggle:hover{border-color:var(--amber);color:var(--amber)}
.toggle[aria-pressed="true"]{color:var(--canvas-dim);border-style:dashed}

/* ---------- hero rig ---------- */
.rig{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);
  gap:clamp(28px,5vw,64px);align-items:center;
  padding:clamp(40px,7vw,86px) clamp(18px,5vw,56px) clamp(28px,4vw,48px);
  max-width:1240px;margin:0 auto;
}
h1{
  font-family:"Big Shoulders Display",sans-serif;font-weight:900;
  font-size:clamp(48px,7.2vw,94px);line-height:.9;letter-spacing:-.005em;
  margin:0 0 20px;color:#EADCB8;
}
.lede{max-width:48ch;margin:0 0 18px;color:#B9AE92}
.hint{font-size:14.5px;color:var(--canvas-dim);border-left:2px solid var(--line);padding-left:12px}
.hint.bad{color:var(--flare);border-color:var(--flare)}

.rig__ptt{display:flex;flex-direction:column;align-items:center;gap:14px}
.ptt{
  position:relative;width:min(300px,72vw);aspect-ratio:1;border-radius:50%;
  background:
    radial-gradient(circle at 50% 38%, var(--raise), #182115 72%);
  border:1px solid var(--line);color:var(--canvas);cursor:pointer;
  display:grid;place-items:center;
  box-shadow:inset 0 2px 0 rgba(234,220,184,.07), 0 18px 40px rgba(0,0,0,.45);
  touch-action:none;-webkit-user-select:none;user-select:none;
  transition:transform .08s ease, border-color .2s;
}
.ptt:hover{border-color:#4A5D3C}
.ptt:focus-visible{outline:2px solid var(--amber);outline-offset:6px}
.ptt__ring{
  position:absolute;inset:14px;border-radius:50%;
  border:2px solid rgba(205,192,160,.16);
}
.ptt__face{display:grid;gap:8px;text-align:center;padding:0 24px}
.ptt__verb{
  font-family:"Big Shoulders Display",sans-serif;font-weight:700;
  font-size:clamp(28px,6vw,38px);line-height:1;letter-spacing:.02em;
}
.ptt__key{font-size:13px;color:var(--canvas-dim)}
.ptt__key kbd{
  font:inherit;border:1px solid var(--line);border-radius:2px;padding:1px 5px;
}
.ptt.hot{transform:scale(.985);border-color:var(--flare)}
.ptt.hot .ptt__ring{
  border-color:var(--flare);
  animation:pulse 1.1s ease-in-out infinite;
}
.ptt.hot .ptt__verb{color:#F0C9A4}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(192,72,44,.42)}
  50%{box-shadow:0 0 0 16px rgba(192,72,44,0)}
}
.pttHelp{font-size:14px;color:var(--canvas-dim);text-align:center;max-width:34ch;margin:0}

/* ---------- desk ---------- */
.desk{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:clamp(18px,2.5vw,28px);align-items:start;
  max-width:1240px;margin:0 auto;padding:0 clamp(18px,5vw,56px) clamp(40px,6vw,76px);
}
.panel{
  background:rgba(28,37,24,.82);border:1px solid var(--line);border-radius:var(--rad);
  padding:clamp(20px,3vw,30px);
}
.panel--out{border-color:#46562F;background:rgba(32,42,26,.9);display:none}
.panel__h{
  font:500 14px/1 "IBM Plex Sans",sans-serif;letter-spacing:.02em;
  color:var(--canvas-dim);margin:0 0 16px;
}
.heard{
  font-size:19px;line-height:1.45;margin:0 0 20px;color:#DCCFAE;min-height:3em;
  font-style:italic;
}
.heard.empty{font-style:normal;color:var(--canvas-dim);font-size:16px}
.typed{display:flex;gap:8px;margin-bottom:16px}
.typed input{
  flex:1;min-width:0;font:400 16px/1 "IBM Plex Sans",sans-serif;color:var(--canvas);
  background:#161E13;border:1px solid var(--line);border-radius:var(--rad);padding:12px 13px;
}
.typed input::placeholder{color:#6F6C5B}
.typed input:focus-visible{outline:2px solid var(--amber);outline-offset:1px}
.typed button{
  font:600 15px/1 "IBM Plex Sans",sans-serif;background:var(--amber);color:#1A1407;
  border:0;border-radius:var(--rad);padding:0 18px;cursor:pointer;
}
.typed button:hover{background:#F2AA3F}
.presets{display:flex;flex-wrap:wrap;gap:8px}
.presets button{
  font:400 14px/1 "IBM Plex Sans",sans-serif;color:#B9AE92;background:transparent;
  border:1px dashed var(--line);border-radius:999px;padding:8px 13px;cursor:pointer;
  transition:color .15s,border-color .15s;
}
.presets button:hover{color:var(--amber);border-color:var(--amber);border-style:solid}

.prio{
  font-family:"Big Shoulders Display",sans-serif;font-weight:900;
  font-size:clamp(34px,5.2vw,58px);line-height:.95;margin:0 0 18px;color:#F1D9A6;
}
.prio.danger{color:#E98B6C}
.prio.calm{color:#C3D79A}
.steps{margin:0 0 18px;padding:0;list-style:none;counter-reset:s}
.steps li{
  counter-increment:s;position:relative;padding:11px 0 11px 42px;
  border-top:1px solid rgba(205,192,160,.12);font-size:17px;
}
.steps li:first-child{border-top:0;padding-top:2px}
.steps li::before{
  content:counter(s);position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border:1px solid var(--line);border-radius:50%;
  display:grid;place-items:center;font-size:13px;color:var(--amber);
}
.steps li:first-child::before{top:14px;transform:none}
.steps--idle li{padding-left:0;color:var(--canvas-dim)}
.steps--idle li::before{display:none}
.why{font-size:15.5px;color:#A49B81;margin:0 0 16px;max-width:52ch}
.read{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:7px}
.read li{
  font-size:13px;color:#C8BB9B;border:1px solid var(--line);border-radius:2px;
  padding:4px 9px;background:rgba(19,26,18,.6);
}
.again{
  margin-top:16px;font:500 14px/1 "IBM Plex Sans",sans-serif;color:var(--canvas);
  background:transparent;border:1px solid var(--line);border-radius:var(--rad);
  padding:10px 15px;cursor:pointer;
}
.again:hover{border-color:var(--amber);color:var(--amber)}

/* ---------- phrasebook ---------- */
.phrase{
  max-width:1240px;margin:0 auto;padding:0 clamp(18px,5vw,56px) clamp(40px,6vw,70px);
}
.phrase h2{
  font-family:"Big Shoulders Display",sans-serif;font-weight:700;font-size:34px;
  margin:0 0 20px;color:#EADCB8;letter-spacing:.02em;
}
.phrase__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--line)}
@media (min-width:860px){.phrase__grid{grid-template-columns:repeat(3,1fr)}}
.phrase__grid > div{background:rgba(28,37,24,.72);padding:18px 20px;display:grid;gap:5px}
.phrase__grid b{font-weight:600;font-size:16px;color:#DCCFAE}
.phrase__grid span{font-size:14.5px;color:#9D9480;line-height:1.5}

/* ---------- footer ---------- */
.foot{
  border-top:1px solid var(--line);padding:26px clamp(18px,5vw,56px)42px;
  background:rgba(19,26,18,.75);
}
.foot p{margin:0 0 8px;font-size:14px;color:#8E8A72;max-width:74ch}
.foot__fine{font-size:12.5px;color:#6F6C5B}

@media (max-width:900px){
  .rig{grid-template-columns:1fr;padding-top:34px}
  .rig__ptt{order:-1}
  .desk{grid-template-columns:1fr}
  h1{font-size:clamp(44px,13vw,70px)}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
