/*
 * CAMP Portal 44.0 — Stable Responsive Build
 * One stylesheet. No legacy overrides.
 */

:root{
  --ink:#0b0d0c;
  --paper:#f3f4f0;
  --paper-2:#ebece7;
  --surface:#ffffff;
  --muted:#747a75;
  --line:rgba(11,13,12,.10);
  --signal:#d9ff63;
  --cyan:#79ddff;
  --orange:#ffad61;
  --violet:#a98cff;
  --green:#86efa1;
  --yellow:#ffd96a;
  --topbar:76px;
  --nav:68px;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --content-max:780px;
  --home-progress:0;
  --home-intro-y:0px;
  --home-media-y:0px;
  --home-media-scale:1.025;
  --home-orbit-opacity:.34;
  --home-hint-opacity:1;
  --home-card-opacity:0;
  --home-card-y:180px;
  --home-card-scale:.965;
  --ease:cubic-bezier(.22,.78,.22,1);
}

*,
*::before,
*::after{box-sizing:border-box}

html{
  margin:0;
  padding:0;
  background:#101210;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  -webkit-tap-highlight-color:transparent;
}

body{
  margin:0;
  padding:0;
  min-width:280px;
  background:#101210;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-synthesis:none;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

body.camp-portal-page{
  overflow:hidden;
  overscroll-behavior:none;
}

button,input,textarea,select{font:inherit}
button{border:0;background:none;color:inherit;cursor:pointer}
button:disabled{cursor:default;opacity:.34}
img,svg{display:block;max-width:100%}
input,textarea{min-width:0}

.camp-portal-root{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  justify-content:center;
  overflow:hidden;
  background:#101210;
}

.app-shell{
  position:relative;
  width:100%;
  max-width:920px;
  height:100vh;
  height:100dvh;
  min-height:0;
  overflow:hidden;
  background:var(--paper);
  isolation:isolate;
  transition:background .34s ease;
}
@supports not (height:100dvh){
  .app-shell{height:100vh}
}

.app-shell.route-home,
.app-shell.route-topics{background:#090b0a}
.app-shell.route-schedule,
.app-shell.route-questions,
.app-shell.route-feedback{background:var(--paper)}
.app-shell.route-thanks{background:#0b0d0c}

/* ---------- header ---------- */
.app-topbar{
  position:absolute;
  z-index:80;
  top:0;
  left:0;
  right:0;
  height:calc(var(--topbar) + var(--safe-top));
  padding:calc(var(--safe-top) + 14px) clamp(18px,3.2vw,30px) 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  color:var(--ink);
  transition:color .3s ease,background .3s ease,border-color .3s ease;
}

.route-home .app-topbar{
  color:#fff;
  background:linear-gradient(180deg,rgba(0,0,0,.34),rgba(0,0,0,0));
}
.route-topics .app-topbar{
  color:#fff;
  background:rgba(9,11,10,.72);
  border-bottom:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(22px) saturate(125%);
  -webkit-backdrop-filter:blur(22px) saturate(125%);
}
.route-schedule .app-topbar,
.route-questions .app-topbar,
.route-feedback .app-topbar{
  background:rgba(243,244,240,.82);
  border-bottom:1px solid rgba(11,13,12,.08);
  backdrop-filter:blur(22px) saturate(130%);
  -webkit-backdrop-filter:blur(22px) saturate(130%);
}
.route-thanks .app-topbar{
  color:#fff;
  background:rgba(11,13,12,.72);
}

.app-brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:0;
  text-align:left;
}
.brand-mark{width:34px;height:34px;flex:0 0 34px}
.brand-copy{
  min-width:0;
  display:grid;
  grid-template-columns:auto auto;
  grid-template-rows:auto auto;
  column-gap:6px;
  line-height:1;
  white-space:nowrap;
}
.brand-copy small{
  grid-column:1/3;
  margin-bottom:4px;
  font-size:8px;
  font-weight:730;
  letter-spacing:.20em;
  opacity:.72;
}
.brand-copy strong{
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:13px;
  font-weight:670;
  letter-spacing:-.02em;
}
.brand-copy b{
  padding-bottom:1px;
  font-size:10px;
  font-weight:650;
  opacity:.65;
}

.menu-trigger{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-content:center;
  gap:5px;
  border:1px solid currentColor;
  border-radius:50%;
  opacity:.86;
  transition:transform .2s ease,background .2s ease;
}
.menu-trigger:active{transform:scale(.95)}
.menu-trigger span{width:17px;height:1.5px;border-radius:2px;background:currentColor}

/* ---------- route shell ---------- */
.app-main{position:absolute;inset:0;overflow:hidden}

.view{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .24s ease,transform .30s var(--ease),visibility 0s linear .30s;
}
.view.active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
  transition-delay:0s;
}

.section-shell{
  width:100%;
  height:100%;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:
    calc(var(--topbar) + var(--safe-top) + clamp(26px,4.5vh,48px))
    clamp(18px,4vw,38px)
    calc(var(--nav) + var(--safe-bottom) + 28px);
}
.section-shell::-webkit-scrollbar{display:none}
.section-shell>*{
  width:min(100%,var(--content-max));
  margin-left:auto;
  margin-right:auto;
}

/* ---------- shared typography ---------- */
.page-title{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:24px;
}
.page-title .kicker{
  display:block;
  margin-bottom:10px;
  color:var(--muted);
  font-size:9px;
  line-height:1;
  font-weight:760;
  letter-spacing:.19em;
}
.page-title h2{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:clamp(48px,11vw,76px);
  line-height:.88;
  font-weight:710;
  letter-spacing:-.065em;
  overflow-wrap:normal;
  word-break:normal;
}

/* ---------- home ---------- */
#view-home{
  transform:none;
  background:#0c100d;
  touch-action:none;
}
.home-stage{position:absolute;inset:0;overflow:hidden;background:#0c100d}
.home-media{
  position:absolute;
  inset:-2%;
  background:url("home-hero.jpg") center 46%/cover no-repeat;
  filter:saturate(.90) contrast(1.04) brightness(.75);
  transform:translate3d(0,var(--home-media-y),0) scale(var(--home-media-scale));
  transform-origin:center center;
  will-change:transform;
}
.home-scrim{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(3,6,4,.38) 0%,rgba(3,6,4,.04) 28%,rgba(3,6,4,.10) 55%,rgba(2,5,3,.65) 100%);
}
.home-orbit{
  position:absolute;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  pointer-events:none;
  opacity:var(--home-orbit-opacity);
}
.home-orbit-a{
  width:min(68vw,480px);
  aspect-ratio:1;
  right:-26%;
  top:18%;
}
.home-orbit-b{
  width:min(42vw,300px);
  aspect-ratio:1;
  right:-10%;
  top:28%;
  border-color:rgba(217,255,99,.22);
}

.home-intro{
  position:absolute;
  z-index:4;
  left:clamp(20px,4vw,40px);
  right:clamp(20px,4vw,40px);
  bottom:calc(var(--nav) + var(--safe-bottom) + clamp(62px,10vh,108px));
  max-width:760px;
  color:#fff;
  transform:translate3d(0,var(--home-intro-y),0);
  will-change:transform;
  pointer-events:none;
}
.home-eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
  color:rgba(255,255,255,.74);
  font-size:9px;
  font-weight:730;
  letter-spacing:.19em;
}
.home-eyebrow i{width:28px;height:1px;background:var(--signal)}
.home-intro h1{
  margin:0;
  display:flex;
  flex-direction:column;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:clamp(48px,12.8vw,92px);
  line-height:.86;
  font-weight:630;
  letter-spacing:-.065em;
}
.home-intro h1 span{max-width:100%;white-space:nowrap}
.home-intro h1 span:nth-child(2){padding-left:clamp(0px,4vw,28px)}
.home-intro h1 em{
  margin-top:12px;
  color:var(--signal);
  font-size:.32em;
  line-height:1;
  font-style:normal;
  font-weight:680;
  letter-spacing:.02em;
}
.home-place{
  margin-top:16px;
  color:rgba(255,255,255,.62);
  font-size:9px;
  font-weight:650;
  letter-spacing:.17em;
}

.home-gesture-hint{
  position:absolute;
  z-index:5;
  left:50%;
  bottom:calc(var(--nav) + var(--safe-bottom) + 14px);
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
  color:rgba(255,255,255,.50);
  opacity:var(--home-hint-opacity);
  pointer-events:none;
}
.home-gesture-hint span{width:38px;height:4px;border-radius:20px;background:rgba(255,255,255,.43)}
.home-gesture-hint small{font-size:7px;font-weight:730;letter-spacing:.18em}

.home-live-glass{
  position:absolute;
  z-index:6;
  left:clamp(12px,3vw,26px);
  right:clamp(12px,3vw,26px);
  bottom:calc(var(--nav) + var(--safe-bottom) + 20px);
  max-width:720px;
  margin-inline:auto;
  opacity:var(--home-card-opacity);
  transform:translate3d(0,var(--home-card-y),0) scale(var(--home-card-scale));
  pointer-events:none;
  will-change:transform,opacity;
}
.home-expanded .home-live-glass{pointer-events:auto}

.live-surface{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.20);
  border-radius:30px;
  background:linear-gradient(135deg,rgba(255,255,255,.15),rgba(255,255,255,.045));
  box-shadow:0 24px 65px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.16);
  backdrop-filter:blur(26px) saturate(130%);
  -webkit-backdrop-filter:blur(26px) saturate(130%);
  color:#fff;
}
.live-surface::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 18% 0%,rgba(255,255,255,.16),transparent 38%);
}
.live-topline{
  position:relative;
  z-index:1;
  padding:16px 18px 4px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.current-label{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  font-size:9px;
  font-weight:760;
  letter-spacing:.18em;
}
.current-label i{
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:50%;
  background:var(--signal);
  box-shadow:0 0 0 5px rgba(217,255,99,.12);
}
.live-chip{
  flex:0 0 auto;
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:999px;
  color:rgba(255,255,255,.68);
  font-size:7px;
  font-weight:700;
  letter-spacing:.14em;
}
.live-main-row{
  position:relative;
  z-index:1;
  padding:10px 18px 14px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
}
.live-main-row>div:first-child{min-width:0;display:flex;flex-direction:column}
.live-caption{
  margin-bottom:7px;
  color:var(--signal);
  font-size:7px;
  font-weight:750;
  letter-spacing:.16em;
}
.live-main-row strong{
  min-width:0;
  color:#fff;
  font-size:clamp(23px,6vw,31px);
  line-height:1.02;
  font-weight:620;
  letter-spacing:-.04em;
  overflow-wrap:anywhere;
}
.live-main-row>div:first-child>span:last-child{
  margin-top:7px;
  color:rgba(255,255,255,.66);
  font-size:10px;
  line-height:1.3;
}
.live-arrow{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:18px;
  transition:transform .18s ease,background .18s ease;
}
.live-arrow:active{transform:scale(.94);background:rgba(255,255,255,.17)}
.current-progress{
  position:relative;
  z-index:1;
  height:1px;
  margin:0 18px;
  background:rgba(255,255,255,.15);
}
.current-progress span{
  display:block;
  width:0;
  height:100%;
  background:var(--signal);
  transition:width .6s linear;
}
.home-live-next{
  position:relative;
  z-index:1;
  padding:14px 18px 16px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:13px;
}
.section-kicker{
  color:var(--signal);
  font-size:8px;
  font-weight:750;
  letter-spacing:.17em;
}
.home-live-next strong{
  min-width:0;
  color:#fff;
  font-size:16px;
  font-weight:590;
  letter-spacing:-.02em;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.home-live-next>span{
  color:rgba(255,255,255,.55);
  font-size:9px;
  white-space:nowrap;
}

/* ---------- schedule ---------- */
.schedule-shell{
  background:
    radial-gradient(circle at 92% 0%,rgba(176,200,186,.18),transparent 28%),
    linear-gradient(180deg,#f4f5f1 0%,#eeeeea 100%);
}
.schedule-title{margin-bottom:22px}
.date-switcher{
  height:60px;
  margin-bottom:14px;
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 54px;
  align-items:center;
  overflow:hidden;
  border:1px solid rgba(11,13,12,.08);
  border-radius:22px;
  background:rgba(255,255,255,.66);
  box-shadow:0 10px 30px rgba(16,18,16,.04),inset 0 1px 0 rgba(255,255,255,.75);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.date-switcher button{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  font-size:18px;
}
.date-switcher>div{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-align:center;
}
.date-switcher strong{
  font-size:9px;
  font-weight:760;
  letter-spacing:.15em;
}
.date-switcher span{
  color:#747974;
  font-size:9px;
  font-weight:650;
  letter-spacing:.10em;
}

.schedule-live-glass{margin-bottom:20px}
.schedule-live-surface{
  color:#fff;
  background:
    radial-gradient(circle at 18% 0%,rgba(255,255,255,.14),transparent 34%),
    linear-gradient(145deg,#131714 0%,#090b0a 100%);
  border-color:rgba(255,255,255,.08);
  box-shadow:0 18px 45px rgba(10,12,10,.16);
}

.timeline{display:grid;gap:12px}
.timeline-row{
  min-width:0;
  display:grid;
  grid-template-columns:clamp(68px,12vw,92px) minmax(0,1fr);
  gap:12px;
  align-items:stretch;
}
.timeline-time{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.timeline-time span{
  color:#676c67;
  font-size:11px;
  line-height:1.2;
  font-weight:760;
  white-space:nowrap;
}
.timeline-copy-wrap{min-width:0;display:flex}
.timeline-copy{
  width:100%;
  min-width:0;
  padding:15px 16px;
  border:1px solid rgba(11,13,12,.07);
  border-radius:22px;
  background:rgba(255,255,255,.90);
  box-shadow:0 8px 22px rgba(12,14,12,.04);
}
.timeline-row.past{opacity:.62}
.timeline-row.live-row{opacity:1}
.timeline-row.live-row .timeline-copy{
  color:#fff;
  background:linear-gradient(145deg,#111411,#191c19);
  border-color:rgba(255,255,255,.08);
  box-shadow:0 15px 35px rgba(6,8,6,.16);
}
.timeline-card-head{
  min-width:0;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.timeline-card-head strong{
  min-width:0;
  font-size:clamp(17px,4vw,21px);
  line-height:1.08;
  font-weight:640;
  letter-spacing:-.035em;
  overflow-wrap:anywhere;
}
.state-tag{
  flex:0 0 auto;
  padding:5px 7px;
  border-radius:999px;
  background:var(--signal);
  color:#111;
  font-size:7px;
  font-weight:800;
  letter-spacing:.12em;
}
.event-theme,
.event-speaker{
  display:block;
  margin-top:8px;
  font-size:12px;
  line-height:1.38;
}
.event-theme{color:#535953}
.event-speaker{color:#777d77}
.live-row .event-theme{color:rgba(255,255,255,.80)}
.live-row .event-speaker{color:rgba(255,255,255,.60)}
.event-segments{
  display:grid;
  gap:0;
  margin-top:12px;
  overflow:hidden;
  border:1px solid rgba(11,13,12,.07);
  border-radius:14px;
  background:rgba(245,246,242,.75);
}
.event-segments span{
  min-width:0;
  padding:10px 11px;
  display:grid;
  gap:4px;
  border-bottom:1px solid rgba(11,13,12,.06);
}
.event-segments span:last-child{border-bottom:0}
.event-segments b{
  min-width:0;
  font-size:12px;
  line-height:1.32;
  font-weight:650;
  overflow-wrap:anywhere;
}
.event-segments em{
  color:#7a807a;
  font-size:10px;
  line-height:1.3;
  font-style:normal;
}
.live-row .event-segments{
  border-color:rgba(255,255,255,.08);
  background:rgba(255,255,255,.05);
}
.live-row .event-segments span{border-bottom-color:rgba(255,255,255,.07)}
.live-row .event-segments em{color:rgba(255,255,255,.58)}

/* ---------- topics ---------- */
.topics-shell{
  color:#fff;
  background:
    radial-gradient(900px 360px at 50% -6%,rgba(255,255,255,.05),transparent 58%),
    linear-gradient(180deg,#070908 0%,#090b0a 100%);
}
.topics-shell .page-title .kicker{color:#737974}
.topics-shell .page-title h2{color:#fff}
.topics-title{margin-bottom:20px}
.topics-list{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.topic-card{
  --accent:var(--signal);
  position:relative;
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:28px;
  background:
    radial-gradient(220px 140px at 88% 0%,rgba(255,255,255,.075),transparent 62%),
    linear-gradient(180deg,rgba(30,33,31,.95) 0%,rgba(15,17,16,.985) 100%);
  box-shadow:0 19px 48px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.08);
}
.topic-card:nth-child(2){--accent:var(--cyan)}
.topic-card:nth-child(3){--accent:var(--orange)}
.topic-card:nth-child(4){--accent:var(--violet)}
.topic-card:nth-child(5){--accent:var(--green)}
.topic-card:nth-child(6){--accent:var(--yellow)}
.topic-card::before{
  content:"";
  position:absolute;
  left:14px;
  top:74px;
  bottom:54px;
  width:3px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--accent),transparent);
}
.topic-copy{
  min-width:0;
  padding:20px 20px 0 26px;
}
.topic-meta{
  min-width:0;
  margin-bottom:17px;
  display:flex;
  align-items:center;
  gap:10px;
}
.topic-meta b{
  height:27px;
  padding:0 10px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(255,255,255,.055);
  color:#f4f5f3;
  font-size:9px;
  font-weight:760;
  letter-spacing:.14em;
  white-space:nowrap;
}
.topic-meta b::before{
  content:"";
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 4px rgba(255,255,255,.045);
}
.topic-meta em{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#858b86;
  font-size:9px;
  font-weight:650;
  font-style:normal;
  letter-spacing:.14em;
}
.topic-copy>strong{
  display:block;
  min-width:0;
  color:#fbfbfa;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:clamp(23px,5.4vw,31px);
  line-height:1.08;
  font-weight:690;
  letter-spacing:-.038em;
  overflow-wrap:anywhere;
}
.topic-copy p{
  margin:13px 0 18px;
  color:#b4b9b5;
  font-size:14px;
  line-height:1.48;
  font-weight:420;
}
.topic-speaker{
  width:calc(100% + 46px);
  min-height:52px;
  margin:0 -20px 0 -26px;
  padding:0 20px 0 26px;
  display:flex;
  align-items:center;
  border-top:1px solid rgba(255,255,255,.09);
  background:linear-gradient(180deg,rgba(255,255,255,.012),rgba(255,255,255,.03));
  color:#f5f6f4;
  font-size:13px;
  line-height:1.3;
  font-weight:680;
  overflow-wrap:anywhere;
}

/* ---------- question ---------- */
.question-shell{
  background:linear-gradient(180deg,#f5f5f1,#efefea);
}
.question-title{margin-bottom:18px}
.question-form-simple{
  padding:clamp(18px,3vw,26px);
  border:1px solid rgba(11,13,12,.08);
  border-radius:28px;
  background:#fff;
  box-shadow:0 18px 50px rgba(18,21,18,.065);
}
.question-form-simple>label{
  margin:0 0 8px;
  display:flex;
  align-items:center;
  gap:7px;
  color:#555b55;
  font-size:10px;
  line-height:1.2;
  font-weight:670;
}
.question-form-simple>label b{color:#111}
.optional-label{
  color:#9da19d;
  font-size:8px;
  font-weight:720;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.question-box{
  position:relative;
  margin-bottom:16px;
}
.question-box textarea{
  display:block;
  width:100%;
  min-height:clamp(170px,26dvh,225px);
  max-height:42dvh;
  resize:vertical;
  border:0;
  outline:0;
  border-radius:21px;
  background:#f4f5f1;
  padding:16px 16px 30px;
  color:var(--ink);
  font-size:16px;
  line-height:1.42;
  letter-spacing:-.01em;
}
.question-box textarea::placeholder,
.question-context::placeholder{color:#a8aca8}
.question-box small{
  position:absolute;
  right:14px;
  bottom:10px;
  color:#898e89;
  font-size:9px;
}
.question-context{
  width:100%;
  height:54px;
  margin-bottom:18px;
  border:0;
  outline:0;
  border-radius:18px;
  background:#f4f5f1;
  padding:0 15px;
  color:var(--ink);
  font-size:16px;
}
.question-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
}
.anonymous-row{
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  color:#5d625d;
  font-size:11px;
}
.toggle{display:inline-flex;flex:0 0 auto}
.toggle input{position:absolute;opacity:0;pointer-events:none}
.toggle>span{
  position:relative;
  width:42px;
  height:24px;
  border-radius:999px;
  background:#d8dad6;
  transition:background .2s ease;
}
.toggle>span::after{
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.16);
  transition:transform .2s ease;
}
.toggle input:checked+span{background:var(--ink)}
.toggle input:checked+span::after{transform:translateX(18px)}
.submit-question{
  min-width:0;
  height:50px;
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  border-radius:999px;
  background:var(--ink);
  color:#fff;
  font-size:9px;
  font-weight:760;
  letter-spacing:.11em;
  white-space:nowrap;
  transition:transform .18s ease,opacity .18s ease;
}
.submit-question span{color:var(--signal);font-size:14px}
.submit-question:active{transform:scale(.98)}

/* ---------- thanks ---------- */
.thank-you{background:#0b0d0c;color:#fff}
.thanks-wrap{
  width:min(100%,700px);
  height:100%;
  margin:auto;
  padding:calc(var(--topbar) + var(--safe-top) + 42px) clamp(24px,5vw,46px) calc(var(--nav) + var(--safe-bottom) + 44px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}
.thanks-icon{
  width:56px;
  height:56px;
  margin-bottom:26px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--signal);
  color:#111;
  font-size:25px;
}
.thanks-wrap .kicker{
  color:#8e938e;
  font-size:9px;
  font-weight:750;
  letter-spacing:.18em;
}
.thanks-wrap h2{
  margin:12px 0 14px;
  font-size:clamp(48px,12vw,68px);
  line-height:.90;
  font-weight:700;
  letter-spacing:-.06em;
}
.thanks-wrap p{margin:0;color:#a2a7a2;font-size:14px;line-height:1.45}
.thanks-wrap button{
  margin-top:24px;
  padding:13px 17px;
  border-radius:999px;
  background:#fff;
  color:#111;
  font-size:9px;
  font-weight:760;
  letter-spacing:.12em;
}

/* ---------- bottom nav ---------- */
.bottom-tabs{
  position:absolute;
  z-index:70;
  left:50%;
  bottom:calc(10px + var(--safe-bottom));
  width:min(calc(100% - 24px),760px);
  height:58px;
  padding:5px;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:3px;
  border-radius:21px;
  backdrop-filter:blur(26px) saturate(135%);
  -webkit-backdrop-filter:blur(26px) saturate(135%);
  transition:background .28s ease,border-color .28s ease,box-shadow .28s ease,color .28s ease;
}
.route-home .bottom-tabs,
.route-topics .bottom-tabs,
.route-thanks .bottom-tabs{
  color:#b8bcb8;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(17,19,17,.58);
  box-shadow:0 14px 38px rgba(0,0,0,.22);
}
.route-schedule .bottom-tabs,
.route-questions .bottom-tabs,
.route-feedback .bottom-tabs{
  color:#777c77;
  border:1px solid rgba(11,13,12,.08);
  background:rgba(255,255,255,.76);
  box-shadow:0 14px 40px rgba(18,20,18,.08);
}
.bottom-tab{
  position:relative;
  min-width:0;
  border-radius:16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  font-size:7px;
  font-weight:650;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.bottom-tab svg{width:18px;height:18px;flex:0 0 18px}
.bottom-tab:active{transform:scale(.96)}
.route-home .bottom-tab.active,
.route-topics .bottom-tab.active,
.route-thanks .bottom-tab.active{
  color:#fff;
  background:rgba(255,255,255,.12);
}
.route-schedule .bottom-tab.active,
.route-questions .bottom-tab.active,
.route-feedback .bottom-tab.active{
  color:#fff;
  background:#111;
}

/* ---------- drawer ---------- */
.menu-overlay{
  position:absolute;
  inset:0;
  z-index:90;
  background:rgba(0,0,0,.38);
  opacity:0;
  transition:opacity .25s ease;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.menu-overlay.show{opacity:1}
.drawer{
  position:absolute;
  z-index:100;
  inset:0;
  padding:calc(var(--safe-top) + 22px) clamp(20px,4vw,34px) calc(var(--safe-bottom) + 22px);
  display:flex;
  flex-direction:column;
  color:#fff;
  background:#090b0a;
  transform:translateY(-102%);
  transition:transform .42s var(--ease);
}
.drawer.open{transform:none}
.drawer-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.drawer-brand{display:grid;line-height:1}
.drawer-brand span{
  margin-bottom:5px;
  color:#7c817c;
  font-size:8px;
  font-weight:750;
  letter-spacing:.20em;
}
.drawer-brand strong{font-size:17px;letter-spacing:-.025em}
.drawer-brand b{margin-top:4px;color:var(--signal);font-size:10px}
.drawer-top button{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  color:#fff;
  font-size:28px;
}
.drawer nav{
  width:min(100%,700px);
  margin:auto 0;
  display:grid;
}
.drawer nav button{
  min-width:0;
  padding:11px 0;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:baseline;
  border-bottom:1px solid rgba(255,255,255,.08);
  color:#fff;
  text-align:left;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:clamp(38px,10vw,62px);
  line-height:.92;
  font-weight:620;
  letter-spacing:-.055em;
}
.drawer nav button span{
  color:var(--signal);
  font-size:8px;
  font-weight:760;
  letter-spacing:.12em;
}
.drawer-footer-wrap{display:grid;gap:9px}
.drawer-footer{
  display:flex;
  justify-content:space-between;
  gap:16px;
  color:#717671;
  font-size:8px;
  font-weight:700;
  letter-spacing:.12em;
}
.portal-credit{
  color:#626762;
  font-size:7px;
  line-height:1.3;
  letter-spacing:.055em;
  text-align:center;
}

/* ---------- compact phones ---------- */
@media (max-width:374px){
  :root{--topbar:70px;--nav:64px}
  .app-topbar{padding-left:16px;padding-right:16px}
  .brand-mark{width:30px;height:30px;flex-basis:30px}
  .brand-copy strong{font-size:11px}
  .menu-trigger{width:40px;height:40px;flex-basis:40px}
  .section-shell{
    padding-left:15px;
    padding-right:15px;
    padding-top:calc(var(--topbar) + var(--safe-top) + 22px);
  }
  .page-title h2{font-size:45px}
  .home-intro{left:17px;right:17px}
  .home-intro h1{font-size:clamp(43px,14vw,56px)}
  .live-main-row strong{font-size:22px}
  .live-chip{display:none}
  .home-live-next{grid-template-columns:auto minmax(0,1fr)}
  .home-live-next>span{grid-column:2;font-size:8px}
  .timeline-row{grid-template-columns:64px minmax(0,1fr);gap:8px}
  .timeline-time span{font-size:10px}
  .timeline-copy{padding:13px}
  .topic-copy{padding-left:23px;padding-right:17px}
  .topic-card::before{left:12px}
  .topic-speaker{
    width:calc(100% + 40px);
    margin-left:-23px;
    margin-right:-17px;
    padding-left:23px;
    padding-right:17px;
  }
  .question-actions{grid-template-columns:1fr}
  .submit-question{width:100%}
  .bottom-tabs{width:calc(100% - 16px);bottom:calc(8px + var(--safe-bottom))}
}

/* ---------- tablets ---------- */
@media (min-width:744px){
  :root{--topbar:82px;--nav:72px;--content-max:800px}
  .app-topbar{padding-left:30px;padding-right:30px}
  .brand-mark{width:38px;height:38px;flex-basis:38px}
  .brand-copy small{font-size:9px}
  .brand-copy strong{font-size:15px}
  .brand-copy b{font-size:11px}
  .menu-trigger{width:50px;height:50px;flex-basis:50px}
  .section-shell{
    padding-top:calc(var(--topbar) + var(--safe-top) + 42px);
    padding-left:32px;
    padding-right:32px;
  }
  .page-title h2{font-size:72px}
  .date-switcher{height:64px;border-radius:25px}
  .timeline-row{grid-template-columns:104px minmax(0,1fr);gap:16px}
  .timeline-time span{font-size:12px}
  .timeline-copy{padding:18px;border-radius:26px}
  .timeline-card-head strong{font-size:22px}
  .topic-card{border-radius:31px}
  .topic-copy{padding:24px 24px 0 31px}
  .topic-card::before{left:17px;top:82px;bottom:58px}
  .topic-copy>strong{font-size:31px}
  .topic-copy p{font-size:15px;max-width:92%}
  .topic-speaker{
    width:calc(100% + 55px);
    min-height:57px;
    margin-left:-31px;
    margin-right:-24px;
    padding-left:31px;
    padding-right:24px;
    font-size:14px;
  }
  .question-form-simple{padding:28px;border-radius:32px}
  .question-box textarea{min-height:220px}
  .bottom-tabs{height:64px;bottom:calc(14px + var(--safe-bottom));border-radius:23px}
  .bottom-tab{font-size:8px}
  .bottom-tab svg{width:19px;height:19px}
}

/* ---------- short landscape / small-height devices ---------- */
@media (max-height:650px){
  .home-intro{
    bottom:calc(var(--nav) + var(--safe-bottom) + 48px);
  }
  .home-intro h1{font-size:clamp(40px,10.5vw,57px)}
  .home-eyebrow{margin-bottom:9px}
  .home-place{margin-top:10px}
  .home-live-glass{bottom:calc(var(--nav) + var(--safe-bottom) + 12px)}
  .live-topline{padding-top:12px}
  .home-live-next{padding-top:11px;padding-bottom:12px}
  .section-shell{
    padding-top:calc(var(--topbar) + var(--safe-top) + 20px);
  }
  .question-box textarea{min-height:130px;max-height:34dvh}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
}


/* Extra-safe phone rules: never allow the Question controls to collide. */
@media (max-width:410px){
  .question-actions{grid-template-columns:1fr}
  .anonymous-row{justify-content:space-between}
  .submit-question{width:100%}
}


/* ---------- V45 cross-device stability ---------- */
.home-stage,
.home-intro,
.home-live-glass,
.live-surface,
.timeline-copy,
.topic-card,
.question-form-simple{
  min-width:0;
}

.home-intro{
  max-width:min(760px,calc(100% - 40px));
  contain:layout style;
}
.home-intro h1{
  max-width:100%;
}
.home-live-glass{
  contain:layout style;
}
.live-main-row>div:first-child,
.home-live-next,
.topic-copy,
.timeline-copy{
  min-width:0;
}

@media (max-width:360px){
  .home-intro h1{
    font-size:clamp(40px,12.6vw,48px);
  }
  .home-intro h1 span:nth-child(2){
    padding-left:0;
  }
  .home-place{
    letter-spacing:.13em;
  }
}

@media (orientation:landscape) and (max-height:520px){
  :root{--topbar:62px;--nav:58px}
  .app-topbar{padding-top:calc(var(--safe-top) + 8px);padding-bottom:8px}
  .brand-mark{width:29px;height:29px;flex-basis:29px}
  .menu-trigger{width:38px;height:38px;flex-basis:38px}
  .home-intro{
    bottom:calc(var(--nav) + var(--safe-bottom) + 34px);
  }
  .home-eyebrow{margin-bottom:7px}
  .home-intro h1{font-size:clamp(34px,8.5vw,48px)}
  .home-intro h1 em{margin-top:6px}
  .home-place{margin-top:7px}
  .home-live-glass{
    left:clamp(10px,2vw,18px);
    right:clamp(10px,2vw,18px);
    bottom:calc(var(--nav) + var(--safe-bottom) + 9px);
  }
  .live-topline{padding:10px 14px 2px}
  .live-main-row{padding:8px 14px 10px}
  .live-main-row strong{font-size:20px}
  .current-progress{margin:0 14px}
  .home-live-next{padding:9px 14px 10px}
  .bottom-tabs{height:52px;bottom:calc(6px + var(--safe-bottom))}
}


/* ---------- feedback ---------- */
.feedback-shell{
  background:
    radial-gradient(circle at 90% 0%,rgba(184,205,188,.20),transparent 27%),
    linear-gradient(180deg,#f5f6f2 0%,#eeeeea 100%);
}
.feedback-title{margin-bottom:18px}
.feedback-intro{
  padding:0 2px;
  margin-bottom:18px;
}
.feedback-intro>span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 9px;
  border-radius:999px;
  background:#141714;
  color:var(--signal);
  font-size:8px;
  font-weight:780;
  letter-spacing:.14em;
}
.feedback-intro h3{
  margin:14px 0 8px;
  color:#111411;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:clamp(30px,7.5vw,42px);
  line-height:.98;
  font-weight:710;
  letter-spacing:-.05em;
}
.feedback-intro p{
  max-width:560px;
  margin:0;
  color:#6e746f;
  font-size:13px;
  line-height:1.5;
}
.feedback-form{
  display:grid;
  gap:14px;
}
.feedback-honeypot{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
}
.feedback-card{
  min-width:0;
  padding:18px;
  border:1px solid rgba(11,13,12,.08);
  border-radius:26px;
  background:rgba(255,255,255,.91);
  box-shadow:0 12px 32px rgba(17,20,17,.045);
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.feedback-card.needs-rating{
  border-color:rgba(209,112,72,.55);
  box-shadow:0 0 0 4px rgba(209,112,72,.09),0 12px 32px rgba(17,20,17,.045);
}
.feedback-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:13px;
}
.feedback-card-head>div{
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
}
.feedback-card-head small{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#121512;
  color:var(--signal);
  font-size:8px;
  font-weight:800;
}
.feedback-card-head strong{
  min-width:0;
  color:#1b1e1b;
  font-size:14px;
  line-height:1.25;
  font-weight:710;
}
.feedback-card-head>span{
  flex:0 0 auto;
  color:#9aa09b;
  font-size:8px;
  line-height:1;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.feedback-overall-card>p{
  margin:0 0 16px;
  color:#717771;
  font-size:12px;
  line-height:1.42;
}
.star-rating{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:2px;
}
.star-rating button{
  width:31px;
  height:31px;
  flex:0 0 31px;
  padding:0;
  display:grid;
  place-items:center;
  color:#d7dad6;
  font-size:24px;
  line-height:1;
  transform-origin:center;
  transition:color .16s ease,transform .16s ease;
}
.star-rating button.active{color:#171a17}
.star-rating button:active{transform:scale(.88)}
.star-rating-large{
  justify-content:flex-start;
  gap:5px;
}
.star-rating-large button{
  width:44px;
  height:44px;
  flex-basis:44px;
  font-size:35px;
}
.star-rating-large button.active{color:#c99538}
.feedback-rating-list{
  display:grid;
  gap:0;
  border-top:1px solid #eceeea;
}
.feedback-rating-row{
  min-width:0;
  padding:14px 0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  border-bottom:1px solid #eceeea;
}
.feedback-rating-row:last-child{border-bottom:0;padding-bottom:1px}
.feedback-rating-row>span{min-width:0;display:grid;gap:4px}
.feedback-rating-row b{
  color:#303530;
  font-size:12px;
  line-height:1.25;
  font-weight:680;
}
.feedback-rating-row small{
  color:#9a9f9a;
  font-size:9px;
  line-height:1.3;
}
.feedback-text-field{
  display:grid;
  gap:8px;
  margin-top:16px;
}
.feedback-text-field:first-of-type{margin-top:4px}
.feedback-text-field>span{
  color:#434843;
  font-size:11px;
  line-height:1.3;
  font-weight:680;
}
.feedback-text-field textarea{
  width:100%;
  min-height:112px;
  resize:vertical;
  border:1px solid #e8eae6;
  outline:0;
  border-radius:17px;
  background:#f5f6f2;
  padding:14px;
  color:#161916;
  font-size:16px;
  line-height:1.42;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.feedback-text-field textarea:focus{
  border-color:#bfc5bf;
  background:#fff;
  box-shadow:0 0 0 4px rgba(24,28,24,.04);
}
.feedback-text-field textarea::placeholder{color:#a5aaa5}
.feedback-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.feedback-last-field{margin-top:20px}
.feedback-submit-wrap{
  padding:5px 2px 8px;
}
.feedback-submit{
  width:100%;
  min-height:56px;
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-radius:999px;
  background:#111411;
  color:#fff;
  box-shadow:0 12px 28px rgba(15,18,15,.14);
  transition:transform .18s ease,opacity .18s ease;
}
.feedback-submit span{
  font-size:10px;
  font-weight:780;
  letter-spacing:.11em;
}
.feedback-submit b{
  color:var(--signal);
  font-size:18px;
  font-weight:500;
}
.feedback-submit:active{transform:scale(.99)}
.feedback-submit:disabled{opacity:.56}
.feedback-submit-wrap p{
  margin:10px 0 0;
  color:#8f958f;
  font-size:9px;
  line-height:1.35;
  text-align:center;
}
.feedback-success{
  padding:48px 24px;
  border:1px solid rgba(11,13,12,.08);
  border-radius:28px;
  background:#fff;
  text-align:center;
  box-shadow:0 18px 48px rgba(16,19,16,.06);
}
.feedback-success>span{
  width:54px;
  height:54px;
  margin:0 auto 18px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#111411;
  color:var(--signal);
  font-size:23px;
}
.feedback-success small{
  color:#979d97;
  font-size:9px;
  font-weight:760;
  letter-spacing:.16em;
}
.feedback-success h3{
  margin:10px 0 9px;
  font-size:40px;
  line-height:.95;
  font-weight:720;
  letter-spacing:-.05em;
}
.feedback-success p{
  max-width:420px;
  margin:0 auto;
  color:#737973;
  font-size:13px;
  line-height:1.5;
}
.feedback-success button{
  min-height:45px;
  margin-top:20px;
  padding:0 16px;
  border-radius:999px;
  background:#111411;
  color:#fff;
  font-size:9px;
  font-weight:760;
  letter-spacing:.10em;
}

@media(max-width:374px){
  .feedback-card{padding:15px;border-radius:22px}
  .feedback-rating-row{grid-template-columns:1fr;gap:8px}
  .feedback-rating-row .star-rating{justify-content:flex-start}
  .star-rating button{width:30px;height:30px;flex-basis:30px}
  .star-rating-large button{width:40px;height:40px;flex-basis:40px}
}

@media(min-width:744px){
  .feedback-card{padding:24px;border-radius:30px}
  .feedback-form{gap:16px}
  .feedback-rating-row{padding:17px 0}
  .feedback-rating-row b{font-size:14px}
  .feedback-rating-row small{font-size:10px}
  .feedback-text-field textarea{min-height:130px}
}


/* =========================================================
   V46.1 — consistent English portal navigation
   ========================================================= */
.bottom-tabs{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
}
.bottom-tab{
  min-width:0;
}
.bottom-tab span{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:360px){
  .bottom-tab{
    padding-left:2px !important;
    padding-right:2px !important;
  }
  .bottom-tab span{
    font-size:8px !important;
    letter-spacing:.01em !important;
  }
}


/* =========================================================
   V46.3 — every feedback question is required
   ========================================================= */
.feedback-required-mark{
  margin-left:3px;
  color:#171a17;
  font-size:12px;
  font-weight:800;
}
.feedback-required-help{
  margin:0 0 12px;
  color:#929892;
  font-size:10px;
  line-height:1.35;
}
.feedback-rating-row.has-error{
  margin-left:-9px;
  margin-right:-9px;
  padding-left:9px;
  padding-right:9px;
  border-radius:13px;
  background:#fff5f2;
}
.feedback-text-field.has-error textarea{
  border-color:#d9745c !important;
  background:#fff8f6 !important;
  box-shadow:0 0 0 4px rgba(217,116,92,.10) !important;
}
.feedback-chips.has-error{
  margin:-5px;
  padding:5px;
  border-radius:16px;
  box-shadow:0 0 0 2px rgba(217,116,92,.28);
  background:#fff8f6;
}
.feedback-card-head>span{
  white-space:nowrap;
}


/* =========================================================
   V46.7 — Safari-safe feedback choice chips
   Native hidden checkbox/label controls were removed because
   iOS Safari can jump/focus the invisible absolute checkbox.
   ========================================================= */
.feedback-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.feedback-chip{
  appearance:none;
  -webkit-appearance:none;
  min-height:39px;
  padding:0 13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #e2e5e1;
  border-radius:999px;
  background:#f7f8f5;
  color:#5b615b;
  font-family:inherit;
  font-size:10px;
  line-height:1;
  font-weight:650;
  text-align:center;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  -webkit-user-select:none;
  transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease;
}
.feedback-chip.selected,
.feedback-chip[aria-pressed="true"]{
  border-color:#171a17;
  background:#171a17;
  color:#fff;
}
.feedback-chip:active{transform:scale(.97)}
.feedback-chip:focus-visible{
  outline:2px solid rgba(17,20,17,.28);
  outline-offset:2px;
}
.feedback-chips.has-error .feedback-chip{
  border-color:rgba(217,116,92,.48);
}

/* V46.8 verified touch safety */
.route-feedback .section-shell{
  scroll-padding-bottom:calc(var(--nav) + var(--safe-bottom) + 34px);
}
.feedback-chips,
.feedback-last-field,
.feedback-submit-wrap{
  scroll-margin-bottom:calc(var(--nav) + var(--safe-bottom) + 34px);
}
.feedback-chip{
  position:relative;
  z-index:1;
}


/* =========================================================
   V46.9 — terminal feedback success screen
   After submission the form is fully replaced by a centered
   thank-you state; there is nothing to scroll back to.
   ========================================================= */
.feedback-success[hidden]{
  display:none !important;
}

#view-feedback.feedback-complete .feedback-shell{
  overflow:hidden !important;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:
    calc(var(--topbar) + var(--safe-top) + 16px)
    clamp(18px,4vw,38px)
    calc(var(--safe-bottom) + 18px);
}

#view-feedback.feedback-complete .feedback-title,
#view-feedback.feedback-complete .feedback-intro,
#view-feedback.feedback-complete .feedback-form{
  display:none !important;
}

#view-feedback.feedback-complete .feedback-success{
  width:min(100%,560px);
  min-height:min(56dvh,470px);
  margin:auto !important;
  padding:clamp(34px,6vh,56px) clamp(22px,6vw,44px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-radius:30px;
  outline:0;
}

#view-feedback.feedback-complete .feedback-success>span{
  flex:0 0 auto;
}

#view-feedback.feedback-complete .feedback-success h3{
  font-size:clamp(46px,11vw,72px);
}

#view-feedback.feedback-complete .feedback-success p{
  font-size:clamp(13px,3.4vw,16px);
  line-height:1.5;
}

#view-feedback.feedback-complete .feedback-success button{
  min-height:50px;
  padding:0 22px;
}

/* The success screen has its own Back Home action, so the participant
   cannot accidentally return to the submitted form through bottom tabs. */
.app-shell.feedback-done.route-feedback .bottom-tabs{
  display:none !important;
}

@media(max-height:650px){
  #view-feedback.feedback-complete .feedback-success{
    min-height:360px;
    padding-top:28px;
    padding-bottom:28px;
  }
  #view-feedback.feedback-complete .feedback-success h3{
    font-size:44px;
  }
}
