:root {
  color-scheme: dark;
  --tns-void:#03060b;
  --tns-deep:#061019;
  --tns-panel:rgba(7,18,28,.78);
  --tns-panel-strong:rgba(8,22,33,.94);
  --tns-ink:#f7f3e8;
  --tns-muted:#9eb1b5;
  --tns-dim:#6e8389;
  --tns-teal:#58b8af;
  --tns-teal-soft:#9bd8d1;
  --tns-gold:#f0c874;
  --tns-copper:#c78159;
  --tns-rose:#db827b;
  --tns-line:rgba(151,210,207,.16);
  --tns-line-strong:rgba(151,210,207,.34);
  --tns-shadow:0 26px 90px rgba(0,0,0,.48);
  --tns-safe-top:env(safe-area-inset-top,0px);
  --tns-safe-bottom:env(safe-area-inset-bottom,0px);
  --tns-ease:cubic-bezier(.22,.86,.32,1);
  --tns-stage-accent:var(--tns-teal);
  font-size:16px;
}

* { box-sizing:border-box; }
html, body { width:100%; height:100%; margin:0; overflow:hidden; }
body {
  background:var(--tns-void);
  color:var(--tns-ink);
  font-family:"Trebuchet MS","Avenir Next",Avenir,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
button,input,textarea,select { font:inherit; }
button { -webkit-tap-highlight-color:transparent; }
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:2px solid var(--tns-gold);
  outline-offset:3px;
}
button:disabled { cursor:not-allowed; opacity:.42; }

.tns-noscript { min-height:100vh; display:grid; place-content:center; padding:32px; text-align:center; background:#071019; }
.tns-app { position:relative; width:100%; height:100dvh; min-height:100%; overflow:hidden; isolation:isolate; background:
  radial-gradient(circle at 50% 45%, rgba(38,106,107,.11), transparent 33%),
  radial-gradient(circle at 20% 90%, rgba(158,94,61,.08), transparent 30%),
  linear-gradient(145deg,#02050a 0%,#07121d 48%,#03070c 100%);
}
.tns-sky { position:absolute; inset:0; width:100%; height:100%; z-index:-5; }
.tns-nebula { position:absolute; width:58vmax; height:58vmax; border-radius:50%; filter:blur(80px); opacity:.12; z-index:-4; pointer-events:none; mix-blend-mode:screen; }
.tns-nebula-a { left:-24vmax; top:-18vmax; background:radial-gradient(circle,rgba(72,181,176,.72),transparent 62%); animation:tns-nebula-drift 24s ease-in-out infinite alternate; }
.tns-nebula-b { right:-28vmax; bottom:-27vmax; background:radial-gradient(circle,rgba(196,112,75,.58),transparent 64%); animation:tns-nebula-drift 31s ease-in-out infinite alternate-reverse; }
.tns-grain { position:absolute; inset:0; z-index:20; pointer-events:none; opacity:.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); }

.tns-topbar {
  position:absolute; z-index:30; top:0; left:0; right:0;
  min-height:calc(58px + var(--tns-safe-top)); padding:calc(10px + var(--tns-safe-top)) 18px 8px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:linear-gradient(180deg,rgba(1,5,9,.8),rgba(1,5,9,0));
}
.tns-wordmark { display:flex; align-items:center; gap:9px; border:0; background:transparent; color:var(--tns-ink); padding:4px; cursor:pointer; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; }
.tns-wordmark svg { width:24px; height:24px; fill:none; stroke:var(--tns-gold); stroke-width:1.2; filter:drop-shadow(0 0 7px rgba(240,200,116,.35)); }
.tns-top-actions { display:flex; gap:7px; }
.tns-tool { width:39px; height:39px; border-radius:50%; border:1px solid var(--tns-line); background:rgba(4,13,20,.56); color:var(--tns-muted); display:grid; place-items:center; cursor:pointer; backdrop-filter:blur(14px); transition:border-color .22s ease,color .22s ease,background .22s ease,transform .22s ease; }
.tns-tool:hover:not(:disabled) { border-color:var(--tns-line-strong); color:var(--tns-ink); background:rgba(13,34,46,.72); transform:translateY(-1px); }
.tns-tool span { line-height:1; }

.tns-main,.tns-view { width:100%; height:100%; }
.tns-view { position:absolute; inset:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .55s ease,visibility .55s; }
.tns-view.is-active { opacity:1; visibility:visible; pointer-events:auto; }

/* Intro */
.tns-intro { display:grid; grid-template-columns:minmax(340px,1.08fr) minmax(360px,.92fr); align-items:center; gap:clamp(30px,7vw,110px); padding:calc(76px + var(--tns-safe-top)) clamp(24px,7vw,110px) calc(30px + var(--tns-safe-bottom)); }
.tns-intro-engine { position:relative; width:min(52vw,690px); aspect-ratio:1; justify-self:end; transform:perspective(1200px) rotateX(64deg) rotateZ(-11deg); filter:drop-shadow(0 40px 70px rgba(0,0,0,.55)); }
.tns-intro-engine::before { content:""; position:absolute; inset:19%; border-radius:50%; background:radial-gradient(circle,rgba(238,198,112,.31),rgba(74,164,158,.06) 43%,transparent 67%); filter:blur(18px); animation:tns-core-breathe 5s ease-in-out infinite; }
.tns-intro-halo { position:absolute; border-radius:50%; border:1px solid rgba(128,201,197,.28); box-shadow:inset 0 0 28px rgba(82,176,169,.05),0 0 24px rgba(82,176,169,.05); }
.halo-one { inset:2%; border-width:2px; border-style:double; animation:tns-orbit 38s linear infinite; }
.halo-one::before { content:""; position:absolute; width:10px; height:10px; left:50%; top:-5px; border-radius:50%; background:var(--tns-gold); box-shadow:0 0 26px var(--tns-gold); }
.halo-two { inset:17%; border-color:rgba(240,200,116,.28); border-style:dashed; animation:tns-orbit-reverse 29s linear infinite; }
.halo-three { inset:34%; border-color:rgba(100,197,190,.45); animation:tns-orbit 21s linear infinite; }
.tns-intro-axis { position:absolute; left:10%; right:10%; top:50%; height:1px; background:linear-gradient(90deg,transparent,rgba(139,207,203,.25),transparent); }
.axis-two { transform:rotate(90deg); }
.tns-intro-core { position:absolute; inset:42%; border:1px solid rgba(240,200,116,.62); transform:rotate(45deg); display:grid; place-items:center; background:rgba(5,13,19,.82); box-shadow:0 0 55px rgba(88,184,175,.25),inset 0 0 20px rgba(240,200,116,.09); }
.tns-intro-core span { width:15px; height:15px; border-radius:50%; background:var(--tns-gold); box-shadow:0 0 35px var(--tns-gold); animation:tns-core-breathe 3.4s ease-in-out infinite; }
.tns-intro-comet { position:absolute; width:8px; height:8px; border-radius:50%; background:var(--tns-teal-soft); box-shadow:-30px 0 22px rgba(97,203,196,.24),0 0 18px var(--tns-teal); }
.comet-one { top:16%; left:28%; animation:tns-comet 7s ease-in-out infinite; }
.comet-two { right:13%; bottom:31%; animation:tns-comet 9s ease-in-out infinite reverse; }
.tns-intro-copy { max-width:650px; animation:tns-rise .9s var(--tns-ease) both; }
.tns-eyebrow { margin:0 0 12px; color:var(--tns-teal-soft); font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; line-height:1.4; }
.tns-intro h1,.tns-result h2,.tns-console h2 { font-family:Georgia,"Times New Roman",serif; font-weight:400; }
.tns-intro h1 { margin:0; max-width:680px; font-size:clamp(3.4rem,7vw,7.6rem); line-height:.86; letter-spacing:-.055em; text-wrap:balance; }
.tns-intro-lead { margin:24px 0 0; max-width:53ch; color:#d8ded9; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.18rem,2vw,1.55rem); line-height:1.48; }
.tns-intro-note { margin:18px 0 0; max-width:58ch; color:var(--tns-muted); font-size:.92rem; line-height:1.6; }
.tns-intro-actions { display:flex; flex-wrap:wrap; gap:11px; margin-top:30px; }
.tns-emergency-note { margin:17px 0 0; color:var(--tns-dim); font-size:.76rem; }

/* Buttons */
.tns-cta { min-height:50px; border-radius:999px; border:1px solid transparent; padding:12px 19px; display:inline-flex; align-items:center; justify-content:center; gap:12px; color:var(--tns-ink); cursor:pointer; font-weight:750; letter-spacing:.01em; transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease,opacity .22s ease; }
.tns-cta:hover:not(:disabled) { transform:translateY(-2px); }
.tns-cta-primary { background:linear-gradient(135deg,#f2ce7c,#c98357 72%); color:#061018; box-shadow:0 13px 35px rgba(188,118,75,.22),inset 0 1px rgba(255,255,255,.42); }
.tns-cta-primary:hover:not(:disabled) { box-shadow:0 18px 44px rgba(188,118,75,.3),inset 0 1px rgba(255,255,255,.5); }
.tns-cta-secondary { background:linear-gradient(180deg,rgba(13,40,49,.88),rgba(8,25,33,.9)); border-color:var(--tns-line-strong); color:var(--tns-ink); }
.tns-cta-quiet { background:rgba(5,15,23,.46); border-color:var(--tns-line); color:var(--tns-muted); }
.tns-cta-danger { background:rgba(116,40,42,.24); border-color:rgba(219,130,123,.42); color:#ffd3cf; }
.tns-cta-arrow { font-size:1.15rem; }

/* Journey layout */
.tns-journey { display:grid; grid-template-columns:minmax(320px,.92fr) minmax(460px,1.08fr); align-items:stretch; gap:clamp(22px,4vw,70px); padding:calc(64px + var(--tns-safe-top)) clamp(20px,5vw,72px) calc(18px + var(--tns-safe-bottom)); }
.tns-world { position:relative; display:grid; place-items:center; min-width:0; }
.tns-stage-orbit-label { position:absolute; top:7%; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:11px; color:var(--tns-muted); font-size:.7rem; letter-spacing:.14em; z-index:3; }
.tns-stage-orbit-label i { width:68px; height:1px; background:linear-gradient(90deg,var(--tns-teal),var(--tns-gold)); opacity:.6; }
.tns-engine { width:min(47vw,660px); max-height:calc(100dvh - 105px); overflow:visible; filter:drop-shadow(0 40px 60px rgba(0,0,0,.52)); transform:perspective(1200px) rotateX(48deg) rotateZ(-6deg) scale(.96); transform-origin:center; transition:transform .8s var(--tns-ease),filter .5s ease; }
.tns-engine-shadow ellipse { fill:rgba(0,0,0,.34); filter:blur(14px); }
.tns-engine-frame { transform-origin:300px 300px; }
.tns-ring { fill:none; stroke:rgba(112,187,183,.18); vector-effect:non-scaling-stroke; }
.tns-ring-outer { stroke-width:2; stroke-dasharray:2 8; animation:tns-svg-spin 50s linear infinite; transform-origin:300px 300px; }
.tns-ring-clock { stroke:rgba(240,200,116,.2); stroke-width:1; stroke-dasharray:1 12; animation:tns-svg-spin-reverse 38s linear infinite; transform-origin:300px 300px; }
.tns-ring-mid { stroke-width:1.4; stroke-dasharray:28 5 2 5; animation:tns-svg-spin 30s linear infinite; transform-origin:300px 300px; }
.tns-ring-inner { stroke:rgba(132,214,209,.28); stroke-width:1.5; stroke-dasharray:8 5; animation:tns-svg-spin-reverse 22s linear infinite; transform-origin:300px 300px; }
.tns-ring-core { stroke:rgba(240,200,116,.29); stroke-width:1; }
.tns-axis,.tns-diagonal { fill:none; stroke:rgba(116,190,186,.12); stroke-width:1; vector-effect:non-scaling-stroke; }
.tns-diagonal { stroke-dasharray:2 10; }
.tns-bearing { fill:rgba(240,200,116,.72); filter:drop-shadow(0 0 8px rgba(240,200,116,.5)); }
.tns-weight-arcs path { fill:none; stroke:rgba(96,174,169,.08); stroke-width:4; stroke-linecap:round; vector-effect:non-scaling-stroke; transition:stroke .5s ease,stroke-width .5s ease,filter .5s ease; }
.tns-weight-arcs path[data-weight="low"] { stroke:rgba(91,184,175,.32); stroke-width:5; }
.tns-weight-arcs path[data-weight="meaningful"] { stroke:rgba(210,160,91,.57); stroke-width:8; }
.tns-weight-arcs path[data-weight="heavy"] { stroke:rgba(221,126,89,.82); stroke-width:13; filter:drop-shadow(0 0 8px rgba(221,126,89,.45)); }
.tns-weight-arcs path[data-weight="unknown"] { stroke:rgba(165,176,179,.35); stroke-width:7; stroke-dasharray:3 7; }
.tns-vector-gates g { opacity:.12; transition:opacity .5s ease,filter .5s ease,transform .6s var(--tns-ease); transform-box:fill-box; transform-origin:center; }
.tns-vector-gates circle { fill:rgba(5,16,23,.92); stroke:rgba(117,197,192,.42); stroke-width:1.5; }
.tns-vector-gates path { fill:none; stroke:var(--tns-teal-soft); stroke-width:2; stroke-linecap:round; }
.tns-vector-gates g.is-suggested { opacity:.55; filter:drop-shadow(0 0 8px rgba(86,181,174,.42)); }
.tns-vector-gates g.is-selected { opacity:1; filter:drop-shadow(0 0 15px rgba(240,200,116,.75)); transform:scale(1.14); }
.tns-vector-gates g.is-selected circle { stroke:var(--tns-gold); fill:rgba(69,47,28,.82); }
.tns-interference-nodes circle { fill:rgba(219,130,123,.82); filter:drop-shadow(0 0 8px rgba(219,130,123,.65)); }
.tns-interference-nodes path { fill:none; stroke:rgba(219,130,123,.42); stroke-width:1; stroke-dasharray:2 4; }
.tns-position path { fill:rgba(3,12,18,.95); stroke:var(--tns-teal-soft); stroke-width:2; filter:drop-shadow(0 0 8px rgba(88,184,175,.5)); }
.tns-position circle { fill:var(--tns-teal-soft); }
.tns-position { transition:transform .9s var(--tns-ease); }
.tns-fixed-star { opacity:.2; transition:opacity .55s ease,filter .55s ease,transform .8s var(--tns-ease); }
.tns-fixed-star-glow { fill:rgba(240,200,116,.16); }
.tns-fixed-star path { fill:var(--tns-gold); }
.tns-fixed-star circle { fill:#fff8dc; }
.tns-fixed-star.is-locked { opacity:1; filter:drop-shadow(0 0 18px rgba(240,200,116,.78)); }
.tns-course-line { fill:none; stroke:url(#courseGradient); stroke-width:3; stroke-linecap:round; stroke-dasharray:720; stroke-dashoffset:720; opacity:.16; filter:drop-shadow(0 0 7px rgba(195,125,82,.42)); transition:stroke-dashoffset .8s var(--tns-ease),opacity .5s ease,stroke-width .5s ease; }
.tns-course-line[data-progress="1"] { stroke-dashoffset:585; opacity:.42; }
.tns-course-line[data-progress="2"] { stroke-dashoffset:450; opacity:.56; }
.tns-course-line[data-progress="3"] { stroke-dashoffset:315; opacity:.7; }
.tns-course-line[data-progress="4"] { stroke-dashoffset:180; opacity:.85; }
.tns-course-line.is-locked { stroke-dashoffset:0; opacity:1; stroke-width:4; }
.tns-scan { opacity:0; transition:opacity .4s ease; }
.tns-scan path,.tns-scan circle { fill:none; stroke:rgba(240,200,116,.45); stroke-width:1.2; vector-effect:non-scaling-stroke; }
.tns-scan path { stroke-dasharray:20 8; }
.tns-scan.is-active { opacity:1; animation:tns-scan-turn 4.5s linear infinite; transform-origin:300px 300px; }
.tns-core-aura { opacity:.72; animation:tns-core-breathe 4s ease-in-out infinite; }
.tns-core-shell { fill:rgba(5,17,24,.92); stroke:rgba(155,216,209,.52); stroke-width:1.2; }
.tns-core-light { fill:var(--tns-stage-accent); filter:drop-shadow(0 0 12px var(--tns-stage-accent)); transition:fill .5s ease; }
.tns-core text { fill:var(--tns-ink); font-family:Georgia,"Times New Roman",serif; font-size:25px; }
.tns-engine-caption { position:absolute; bottom:7%; left:50%; transform:translateX(-50%); min-width:230px; display:flex; align-items:center; justify-content:center; gap:12px; color:var(--tns-muted); font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; text-align:center; }
.tns-engine-caption i { width:8px; height:8px; border-radius:50%; background:var(--tns-stage-accent); box-shadow:0 0 14px var(--tns-stage-accent); animation:tns-core-breathe 2.7s ease-in-out infinite; }

.tns-console { align-self:center; width:100%; max-width:720px; min-height:min(660px,calc(100dvh - 96px)); max-height:calc(100dvh - 96px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; border-radius:34px; background:
  linear-gradient(180deg,rgba(11,28,41,.91),rgba(5,15,23,.88)),
  radial-gradient(circle at 20% 0%,rgba(82,184,175,.12),transparent 35%);
  border:1px solid rgba(145,207,203,.18); box-shadow:var(--tns-shadow),inset 0 1px rgba(255,255,255,.025); backdrop-filter:blur(24px); overflow:hidden; position:relative;
}
.tns-console::before { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:linear-gradient(125deg,rgba(255,255,255,.035),transparent 28%,transparent 70%,rgba(240,200,116,.025)); }
.tns-console-head { padding:clamp(22px,3.5vh,34px) clamp(20px,3vw,36px) 10px; }
.tns-progress-dots { display:flex; gap:7px; margin-bottom:16px; }
.tns-progress-dots i { width:7px; height:7px; border-radius:50%; background:rgba(151,210,207,.14); border:1px solid rgba(151,210,207,.12); transition:width .4s var(--tns-ease),background .4s ease,box-shadow .4s ease; }
.tns-progress-dots i.is-complete { background:rgba(88,184,175,.5); }
.tns-progress-dots i.is-current { width:28px; border-radius:999px; background:linear-gradient(90deg,var(--tns-teal),var(--tns-gold)); box-shadow:0 0 13px rgba(88,184,175,.22); }
.tns-console h2 { margin:0; font-size:clamp(2.25rem,4.6vw,4.4rem); line-height:.95; letter-spacing:-.035em; text-wrap:balance; }
.tns-stage-help { margin:12px 0 0; color:var(--tns-muted); line-height:1.5; max-width:58ch; font-size:.92rem; }
.tns-stage-content { min-height:0; padding:12px clamp(20px,3vw,36px) 14px; display:flex; flex-direction:column; justify-content:center; overflow:hidden; position:relative; }
.tns-console-foot { min-height:76px; padding:12px clamp(20px,3vw,36px) calc(16px + var(--tns-safe-bottom)); display:flex; align-items:center; justify-content:space-between; gap:14px; border-top:1px solid rgba(147,207,203,.11); background:rgba(3,11,17,.28); }
.tns-console-foot .tns-cta { flex:0 0 auto; min-width:174px; }
.tns-inline-status { margin:0; color:var(--tns-teal-soft); font-size:.82rem; line-height:1.4; max-width:42ch; }
.tns-inline-status.is-warning { color:#f2aaa3; }

/* Dynamic content primitives */
.tns-beat { animation:tns-rise .42s var(--tns-ease) both; }
.tns-beat-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.tns-beat-count { color:var(--tns-dim); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; }
.tns-beat-title { margin:0; color:var(--tns-ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.35rem,2.7vw,2rem); line-height:1.15; }
.tns-beat-copy { margin:8px 0 0; color:var(--tns-muted); line-height:1.45; font-size:.88rem; }
.tns-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tns-choice-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.tns-choice,.tns-orb-choice,.tns-vector-choice,.tns-answer,.tns-segment-choice { border:1px solid var(--tns-line); background:linear-gradient(180deg,rgba(10,30,41,.72),rgba(5,18,27,.76)); color:var(--tns-ink); cursor:pointer; transition:border-color .22s ease,background .22s ease,box-shadow .22s ease,transform .22s ease; }
.tns-choice { min-height:70px; border-radius:18px; padding:12px 14px; text-align:left; display:flex; align-items:center; gap:11px; line-height:1.25; font-size:.9rem; }
.tns-choice b { width:24px; height:24px; flex:0 0 24px; border-radius:50%; border:1px solid rgba(151,210,207,.28); display:grid; place-items:center; color:var(--tns-teal-soft); font-size:.67rem; font-weight:700; }
.tns-choice:hover,.tns-orb-choice:hover,.tns-vector-choice:hover,.tns-answer:hover,.tns-segment-choice:hover { border-color:var(--tns-line-strong); transform:translateY(-1px); }
.tns-choice.is-selected,.tns-orb-choice.is-selected,.tns-vector-choice.is-selected,.tns-answer.is-selected,.tns-segment-choice.is-selected { border-color:rgba(240,200,116,.72); background:linear-gradient(180deg,rgba(88,60,36,.42),rgba(33,30,25,.58)); box-shadow:0 0 0 1px rgba(240,200,116,.08),inset 0 0 28px rgba(240,200,116,.035); }
.tns-choice.is-selected b { color:#071018; border-color:var(--tns-gold); background:var(--tns-gold); }
.tns-pager { margin-top:12px; display:flex; align-items:center; justify-content:center; gap:8px; }
.tns-pager button { width:36px; height:36px; border-radius:50%; border:1px solid var(--tns-line); background:rgba(5,18,26,.66); color:var(--tns-muted); cursor:pointer; }
.tns-pager-dots { display:flex; gap:6px; }
.tns-pager-dots i { width:7px; height:7px; border-radius:50%; background:rgba(151,210,207,.18); }
.tns-pager-dots i.is-active { width:20px; border-radius:999px; background:var(--tns-teal); }

.tns-field { display:grid; gap:8px; }
.tns-field label { color:var(--tns-teal-soft); font-size:.77rem; letter-spacing:.08em; text-transform:uppercase; }
.tns-input,.tns-textarea { width:100%; border:1px solid var(--tns-line); border-radius:18px; background:rgba(2,10,16,.68); color:var(--tns-ink); padding:14px 16px; box-shadow:inset 0 0 22px rgba(0,0,0,.14); }
.tns-input { min-height:54px; }
.tns-textarea { min-height:86px; resize:none; line-height:1.45; }
.tns-input::placeholder,.tns-textarea::placeholder { color:#61777b; }
.tns-char { text-align:right; color:var(--tns-dim); font-size:.72rem; }
.tns-optional { color:var(--tns-dim); font-size:.74rem; }
.tns-preview { margin-top:14px; padding:14px 16px; border-left:2px solid var(--tns-copper); background:linear-gradient(90deg,rgba(195,125,82,.09),transparent); border-radius:0 16px 16px 0; }
.tns-preview span { display:block; margin-bottom:6px; color:var(--tns-dim); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.tns-preview strong { font-family:Georgia,"Times New Roman",serif; font-weight:400; color:#efe7d5; line-height:1.45; }

.tns-signal-family { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.tns-orb-choice { min-height:130px; border-radius:22px; padding:15px 13px; text-align:left; position:relative; overflow:hidden; }
.tns-orb-choice::before { content:""; position:absolute; width:66px; height:66px; border-radius:50%; right:-18px; top:-18px; background:radial-gradient(circle,rgba(88,184,175,.22),transparent 66%); }
.tns-orb-choice strong { display:block; margin-bottom:8px; font-size:1rem; }
.tns-orb-choice span { color:var(--tns-muted); font-size:.78rem; line-height:1.4; }
.tns-orb-choice i { display:block; margin-bottom:17px; width:18px; height:18px; border-radius:50%; background:var(--orb-color,var(--tns-teal)); box-shadow:0 0 18px var(--orb-color,var(--tns-teal)); }
.tns-signal-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tns-strength { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.tns-segment-choice { min-height:78px; border-radius:18px; padding:13px; text-align:center; }
.tns-segment-choice strong { display:block; margin-bottom:5px; }
.tns-segment-choice span { color:var(--tns-muted); font-size:.75rem; }

.tns-trajectory-card { position:relative; padding:18px; border-radius:24px; border:1px solid var(--tns-line); background:
  radial-gradient(circle at 92% 8%,rgba(88,184,175,.12),transparent 32%),
  linear-gradient(180deg,rgba(10,31,42,.78),rgba(5,16,24,.82)); overflow:hidden; }
.tns-trajectory-card::after { content:""; position:absolute; right:-36px; top:-36px; width:130px; height:130px; border-radius:50%; border:1px dashed rgba(150,210,205,.15); }
.tns-trajectory-name { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.tns-trajectory-symbol { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(240,200,116,.3); color:var(--tns-gold); background:rgba(78,53,32,.18); }
.tns-trajectory-name h3 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:1.35rem; font-weight:400; }
.tns-weight-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.tns-weight-options .tns-segment-choice { min-height:58px; padding:9px 6px; font-size:.78rem; }
.tns-reversible-row { margin-top:11px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tns-reversible-row span { color:var(--tns-muted); font-size:.82rem; }
.tns-mini-options { display:flex; gap:7px; }
.tns-mini-options button { min-width:58px; min-height:36px; border-radius:999px; border:1px solid var(--tns-line); background:rgba(4,15,22,.64); color:var(--tns-muted); cursor:pointer; }
.tns-mini-options button.is-selected { border-color:var(--tns-gold); color:var(--tns-ink); background:rgba(87,58,34,.32); }
.tns-trajectory-note { margin-top:12px; }
.tns-trajectory-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tns-summary-tile { min-height:84px; border:1px solid var(--tns-line); border-radius:18px; padding:12px; background:rgba(5,18,26,.58); }
.tns-summary-tile span { color:var(--tns-dim); font-size:.66rem; letter-spacing:.09em; text-transform:uppercase; }
.tns-summary-tile strong { display:block; margin-top:7px; font-size:.9rem; }

.tns-protection-families { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tns-protection-family { min-height:104px; border-radius:20px; padding:15px; }
.tns-protection-family strong { display:block; font-size:1rem; margin-bottom:6px; }
.tns-protection-family span { color:var(--tns-muted); font-size:.78rem; line-height:1.35; }
.tns-star-lock { display:flex; align-items:center; gap:16px; margin-top:14px; padding:13px 16px; border-radius:18px; background:linear-gradient(90deg,rgba(91,62,37,.24),rgba(8,24,31,.25)); border:1px solid rgba(240,200,116,.22); }
.tns-star-lock i { width:30px; height:30px; flex:0 0 30px; clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%); background:var(--tns-gold); box-shadow:0 0 22px rgba(240,200,116,.55); }
.tns-star-lock strong { display:block; font-family:Georgia,"Times New Roman",serif; font-weight:400; }
.tns-star-lock span { color:var(--tns-muted); font-size:.76rem; }

.tns-vector-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tns-vector-choice { min-height:132px; border-radius:22px; padding:15px; text-align:left; position:relative; overflow:hidden; }
.tns-vector-choice::after { content:""; position:absolute; right:13px; top:12px; width:24px; height:24px; border:1px solid rgba(151,210,207,.22); border-radius:50%; }
.tns-vector-choice h3 { margin:0 0 8px; font-size:1rem; letter-spacing:.08em; }
.tns-vector-choice p { margin:0; color:var(--tns-muted); font-size:.77rem; line-height:1.4; }
.tns-vector-choice .tns-vector-badge { display:inline-block; margin-top:10px; color:var(--tns-teal-soft); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; }
.tns-vector-choice.is-selected::after { background:var(--tns-gold); border-color:var(--tns-gold); box-shadow:0 0 15px rgba(240,200,116,.5); }

.tns-course-beat { max-width:590px; margin:0 auto; width:100%; }
.tns-course-stepper { display:flex; gap:6px; margin-bottom:17px; }
.tns-course-stepper i { height:3px; flex:1; border-radius:999px; background:rgba(151,210,207,.12); }
.tns-course-stepper i.is-complete { background:var(--tns-teal); }
.tns-course-stepper i.is-current { background:linear-gradient(90deg,var(--tns-teal),var(--tns-gold)); box-shadow:0 0 10px rgba(88,184,175,.28); }

.tns-integrity-question { max-width:590px; margin:0 auto; text-align:center; }
.tns-integrity-symbol { width:76px; height:76px; margin:0 auto 16px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(240,200,116,.32); background:radial-gradient(circle,rgba(240,200,116,.14),rgba(6,19,28,.72)); box-shadow:0 0 45px rgba(88,184,175,.08); color:var(--tns-gold); font-size:1.7rem; }
.tns-integrity-question h3 { margin:0 auto; max-width:30ch; font-family:Georgia,"Times New Roman",serif; font-weight:400; font-size:clamp(1.35rem,2.5vw,1.8rem); line-height:1.3; }
.tns-integrity-question p { margin:10px auto 0; color:var(--tns-muted); max-width:48ch; font-size:.84rem; line-height:1.45; }
.tns-integrity-answers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:18px; }
.tns-answer { min-height:66px; border-radius:18px; font-weight:700; }
.tns-answer.is-no.is-selected { border-color:rgba(219,130,123,.72); background:rgba(99,43,43,.36); }
.tns-integrity-summary { display:grid; gap:10px; }
.tns-integrity-state { display:flex; align-items:center; gap:14px; padding:15px 16px; border-radius:19px; border:1px solid var(--tns-line); background:rgba(5,18,26,.64); }
.tns-integrity-state i { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:rgba(88,184,175,.13); color:var(--tns-teal-soft); font-style:normal; }
.tns-integrity-state.is-repair i { background:rgba(219,130,123,.13); color:#f2aaa3; }
.tns-integrity-state strong { display:block; margin-bottom:3px; }
.tns-integrity-state span { color:var(--tns-muted); font-size:.8rem; line-height:1.35; }

/* Result */
.tns-result { display:grid; grid-template-columns:minmax(330px,.9fr) minmax(470px,1.1fr); gap:clamp(24px,5vw,80px); align-items:center; padding:calc(76px + var(--tns-safe-top)) clamp(24px,7vw,100px) calc(28px + var(--tns-safe-bottom)); }
.tns-result-world { display:grid; place-items:center; }
.tns-result-engine { width:min(48vw,650px); filter:drop-shadow(0 32px 70px rgba(0,0,0,.55)); transform:perspective(1100px) rotateX(45deg) rotateZ(-5deg); }
.tns-result-orbit { fill:none; stroke:rgba(113,197,191,.24); stroke-width:1.4; stroke-dasharray:8 8; transform-origin:300px 300px; }
.orbit-a { animation:tns-svg-spin 48s linear infinite; }
.orbit-b { stroke:rgba(240,200,116,.32); animation:tns-svg-spin-reverse 34s linear infinite; }
.orbit-c { animation:tns-svg-spin 23s linear infinite; }
.tns-result-course { fill:none; stroke:url(#courseGradient); stroke-width:4; stroke-linecap:round; filter:drop-shadow(0 0 8px rgba(240,200,116,.58)); stroke-dasharray:760; animation:tns-draw-course 2s var(--tns-ease) both; }
.tns-result-star-glow { fill:rgba(240,200,116,.14); filter:blur(8px); animation:tns-core-breathe 3.6s ease-in-out infinite; }
.tns-result-star { fill:var(--tns-gold); filter:drop-shadow(0 0 12px rgba(240,200,116,.8)); }
.tns-result-core { fill:#fff4cf; filter:drop-shadow(0 0 15px rgba(88,184,175,.8)); }
.tns-result-copy { max-width:720px; }
.tns-result h2 { margin:0; font-size:clamp(3rem,6vw,6.4rem); line-height:.88; letter-spacing:-.052em; }
.tns-result-intro { color:var(--tns-muted); line-height:1.55; max-width:54ch; }
.tns-course-result { margin:20px 0 16px; padding:18px 0 18px 21px; border-left:2px solid var(--tns-copper); color:#f0e8d9; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.12rem,2vw,1.45rem); line-height:1.48; }
.tns-result-snapshot { display:flex; flex-wrap:wrap; gap:8px; }
.tns-result-chip { min-height:35px; padding:8px 11px; border-radius:999px; border:1px solid var(--tns-line); background:rgba(8,23,31,.64); color:var(--tns-muted); font-size:.76rem; }
.tns-result-chip strong { color:var(--tns-ink); font-weight:700; }
.tns-result-actions { margin-top:19px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.tns-result-actions .tns-cta { min-height:48px; }
.tns-closing { margin:15px 0 0; color:var(--tns-dim); font-family:Georgia,"Times New Roman",serif; font-style:italic; font-size:.9rem; }

/* Dialogs */
.tns-dialog { width:min(92vw,620px); max-height:min(84dvh,760px); border:1px solid rgba(151,210,207,.22); border-radius:28px; padding:0; background:linear-gradient(180deg,rgba(11,29,41,.98),rgba(4,13,20,.99)); color:var(--tns-ink); box-shadow:0 30px 120px rgba(0,0,0,.7); }
.tns-dialog::backdrop { background:rgba(0,3,7,.78); backdrop-filter:blur(12px); }
.tns-dialog form { padding:24px; overflow:auto; max-height:inherit; }
.tns-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.tns-dialog-head h2 { margin:0; font-family:Georgia,"Times New Roman",serif; font-weight:400; font-size:1.8rem; }
.tns-dialog p { color:var(--tns-muted); line-height:1.55; }
.tns-switch-row { min-height:58px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-top:1px solid var(--tns-line); }
.tns-switch-row input { width:22px; height:22px; accent-color:var(--tns-gold); }
.tns-dialog-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
.tns-dialog-stack { flex-direction:column; }
.tns-dialog-notice { padding:12px 14px; border-radius:14px; background:rgba(88,184,175,.1); color:var(--tns-teal-soft); }
.tns-record-dialog { width:min(94vw,760px); }
.tns-record-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tns-record-item { padding:14px; border-radius:17px; border:1px solid var(--tns-line); background:rgba(5,17,25,.7); }
.tns-record-item.is-course { grid-column:1/-1; border-color:rgba(240,200,116,.28); }
.tns-record-item span { color:var(--tns-dim); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; }
.tns-record-item div { margin-top:7px; line-height:1.42; }

/* Stage-specific accents */
.tns-app[data-stage="1"] { --tns-stage-accent:#77c8c1; }
.tns-app[data-stage="2"] { --tns-stage-accent:#dd8a7f; }
.tns-app[data-stage="3"] { --tns-stage-accent:#d29b62; }
.tns-app[data-stage="4"] { --tns-stage-accent:#f0c874; }
.tns-app[data-stage="5"] { --tns-stage-accent:#7bc9bd; }
.tns-app[data-stage="6"] { --tns-stage-accent:#c98459; }
.tns-app[data-stage="7"] { --tns-stage-accent:#efd48a; }
.tns-app[data-stage="2"] .tns-engine { transform:perspective(1200px) rotateX(51deg) rotateZ(-9deg) scale(1); }
.tns-app[data-stage="3"] .tns-engine { transform:perspective(1200px) rotateX(55deg) rotateZ(2deg) scale(.98); }
.tns-app[data-stage="4"] .tns-engine { transform:perspective(1200px) rotateX(45deg) rotateZ(0deg) scale(1.02); }
.tns-app[data-stage="5"] .tns-engine { transform:perspective(1200px) rotateX(48deg) rotateZ(8deg) scale(1); }
.tns-app[data-stage="6"] .tns-engine { transform:perspective(1200px) rotateX(42deg) rotateZ(-3deg) scale(1.03); }
.tns-app[data-stage="7"] .tns-engine { transform:perspective(1200px) rotateX(35deg) rotateZ(0deg) scale(1.04); }

/* Accessibility states */
.tns-app.tns-large-text { font-size:18px; }
.tns-app.tns-high-contrast { --tns-ink:#fff; --tns-muted:#d5e0e1; --tns-dim:#b0c1c4; --tns-line:rgba(255,255,255,.31); --tns-line-strong:rgba(255,255,255,.62); }
.tns-app.tns-high-contrast .tns-console { background:rgba(2,9,14,.98); }
.tns-app.tns-simplified .tns-nebula,.tns-app.tns-simplified .tns-grain { display:none; }
.tns-app.tns-simplified .tns-ring-outer,.tns-app.tns-simplified .tns-ring-clock,.tns-app.tns-simplified .tns-diagonal { opacity:.25; }
.tns-app.tns-reduced-motion *,.tns-app.tns-reduced-motion *::before,.tns-app.tns-reduced-motion *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }

/* Compact tablet/mobile: the world is visible, the console never scrolls */
@media (max-width:900px) {
  .tns-wordmark span { display:none; }
  .tns-topbar { padding-left:12px; padding-right:12px; }
  .tns-intro { grid-template-columns:1fr; grid-template-rows:minmax(260px,44vh) 1fr; gap:2px; padding:calc(58px + var(--tns-safe-top)) 20px calc(18px + var(--tns-safe-bottom)); text-align:center; }
  .tns-intro-engine { width:min(78vw,470px); justify-self:center; transform:perspective(900px) rotateX(62deg) rotateZ(-9deg); margin-top:-8%; }
  .tns-intro-copy { justify-self:center; align-self:start; margin-top:-3%; }
  .tns-intro h1 { font-size:clamp(3.25rem,13.7vw,5.2rem); }
  .tns-intro-lead { margin:14px auto 0; font-size:1.04rem; }
  .tns-intro-note { margin:11px auto 0; font-size:.81rem; }
  .tns-intro-actions { justify-content:center; margin-top:17px; }
  .tns-emergency-note { margin-top:10px; }

  .tns-journey { grid-template-columns:1fr; grid-template-rows:minmax(235px,42vh) minmax(0,1fr); gap:0; padding:calc(50px + var(--tns-safe-top)) 0 0; }
  .tns-world { min-height:0; overflow:hidden; }
  .tns-engine { width:min(92vw,500px); height:auto; max-height:47vh; transform:perspective(900px) rotateX(52deg) rotateZ(-6deg) scale(.9); margin-top:-5%; }
  .tns-stage-orbit-label { top:3px; }
  .tns-engine-caption { bottom:5px; font-size:.62rem; min-width:190px; }
  .tns-console { align-self:stretch; max-width:none; width:100%; min-height:0; max-height:none; border-radius:30px 30px 0 0; border-left:0; border-right:0; border-bottom:0; box-shadow:0 -20px 70px rgba(0,0,0,.38); }
  .tns-console-head { padding:16px 18px 7px; }
  .tns-progress-dots { margin-bottom:9px; }
  .tns-console h2 { font-size:clamp(2rem,8.2vw,2.75rem); }
  .tns-stage-help { margin-top:7px; font-size:.8rem; line-height:1.35; }
  .tns-stage-content { padding:7px 18px 8px; justify-content:center; }
  .tns-console-foot { min-height:65px; padding:8px 18px calc(10px + var(--tns-safe-bottom)); }
  .tns-console-foot .tns-cta { min-width:145px; min-height:46px; padding:10px 15px; }
  .tns-inline-status { font-size:.74rem; max-width:45%; }
  .tns-beat-top { margin-bottom:9px; }
  .tns-beat-title { font-size:1.18rem; }
  .tns-beat-copy { font-size:.78rem; margin-top:5px; }
  .tns-choice-grid { gap:8px; }
  .tns-choice { min-height:58px; padding:9px 10px; font-size:.78rem; border-radius:15px; }
  .tns-choice b { width:21px; height:21px; flex-basis:21px; }
  .tns-pager { margin-top:8px; }
  .tns-field { gap:6px; }
  .tns-input { min-height:47px; padding:11px 13px; border-radius:14px; }
  .tns-textarea { min-height:66px; padding:10px 13px; }
  .tns-preview { margin-top:9px; padding:10px 12px; }
  .tns-preview strong { font-size:.83rem; }
  .tns-orb-choice { min-height:96px; padding:11px; border-radius:17px; }
  .tns-orb-choice i { margin-bottom:9px; width:14px; height:14px; }
  .tns-orb-choice strong { margin-bottom:4px; font-size:.86rem; }
  .tns-orb-choice span { font-size:.68rem; }
  .tns-signal-list { gap:8px; }
  .tns-strength { gap:8px; }
  .tns-segment-choice { min-height:59px; padding:9px 7px; font-size:.76rem; }
  .tns-trajectory-card { padding:12px; border-radius:18px; }
  .tns-trajectory-name { margin-bottom:9px; }
  .tns-trajectory-symbol { width:34px; height:34px; }
  .tns-trajectory-name h3 { font-size:1.05rem; }
  .tns-weight-options { gap:6px; }
  .tns-weight-options .tns-segment-choice { min-height:46px; font-size:.67rem; }
  .tns-reversible-row { margin-top:8px; }
  .tns-mini-options button { min-width:50px; min-height:32px; font-size:.72rem; }
  .tns-trajectory-note { margin-top:8px; }
  .tns-summary-tile { min-height:65px; padding:9px; }
  .tns-summary-tile strong { font-size:.77rem; }
  .tns-protection-family { min-height:74px; padding:10px; }
  .tns-protection-family strong { font-size:.85rem; margin-bottom:3px; }
  .tns-protection-family span { font-size:.68rem; }
  .tns-star-lock { margin-top:8px; padding:9px 11px; }
  .tns-star-lock i { width:23px; height:23px; flex-basis:23px; }
  .tns-vector-choice { min-height:99px; padding:11px; border-radius:17px; }
  .tns-vector-choice h3 { font-size:.83rem; margin-bottom:4px; }
  .tns-vector-choice p { font-size:.67rem; line-height:1.3; }
  .tns-vector-choice .tns-vector-badge { margin-top:5px; font-size:.57rem; }
  .tns-course-stepper { margin-bottom:10px; }
  .tns-integrity-symbol { width:52px; height:52px; margin-bottom:10px; font-size:1.2rem; }
  .tns-integrity-question h3 { font-size:1.16rem; }
  .tns-integrity-question p { margin-top:6px; font-size:.73rem; }
  .tns-integrity-answers { margin-top:12px; }
  .tns-answer { min-height:49px; }
  .tns-integrity-state { padding:10px; }

  .tns-result { grid-template-columns:1fr; grid-template-rows:minmax(220px,39vh) 1fr; gap:0; padding:calc(55px + var(--tns-safe-top)) 18px calc(14px + var(--tns-safe-bottom)); text-align:center; }
  .tns-result-world { overflow:hidden; }
  .tns-result-engine { width:min(88vw,460px); margin-top:-10%; transform:perspective(900px) rotateX(50deg) rotateZ(-5deg); }
  .tns-result-copy { align-self:start; margin-top:-5px; }
  .tns-result h2 { font-size:clamp(2.65rem,12vw,4.2rem); }
  .tns-result-intro { margin:8px auto 0; font-size:.79rem; }
  .tns-course-result { margin:10px 0; padding:10px 12px; border-left:0; border-top:1px solid rgba(195,125,82,.5); border-bottom:1px solid rgba(195,125,82,.25); font-size:.91rem; }
  .tns-result-snapshot { justify-content:center; }
  .tns-result-chip { font-size:.66rem; min-height:31px; padding:6px 9px; }
  .tns-result-actions { margin-top:11px; gap:7px; }
  .tns-result-actions .tns-cta { min-height:43px; padding:8px 11px; font-size:.73rem; }
  .tns-closing { margin-top:9px; font-size:.76rem; }
}

@media (max-width:480px) {
  .tns-top-actions { gap:5px; }
  .tns-tool { width:36px; height:36px; font-size:.82rem; }
  .tns-intro { grid-template-rows:minmax(230px,41vh) 1fr; }
  .tns-intro-engine { width:min(83vw,390px); }
  .tns-intro h1 { font-size:clamp(3rem,14vw,4.15rem); }
  .tns-eyebrow { font-size:.61rem; }
  .tns-journey { grid-template-rows:minmax(205px,37vh) minmax(0,1fr); }
  .tns-engine { width:min(94vw,430px); max-height:42vh; margin-top:-8%; }
  .tns-engine-caption { bottom:0; }
  .tns-console-head { padding-top:12px; }
  .tns-console h2 { font-size:clamp(1.7rem,7.8vw,2.25rem); }
  .tns-stage-help { font-size:.73rem; }
  .tns-stage-content { padding-top:4px; padding-bottom:5px; }
  .tns-console-foot { min-height:60px; }
  .tns-inline-status { max-width:44%; font-size:.67rem; }
  .tns-console-foot .tns-cta { min-width:130px; font-size:.76rem; }
  .tns-choice { min-height:53px; font-size:.72rem; }
  .tns-signal-family { gap:7px; }
  .tns-orb-choice { min-height:87px; padding:9px; }
  .tns-orb-choice span { display:none; }
  .tns-orb-choice strong { font-size:.77rem; }
  .tns-trajectory-note .tns-input { min-height:41px; font-size:.78rem; }
  .tns-protection-family span { display:none; }
  .tns-protection-family { min-height:61px; display:flex; align-items:center; }
  .tns-vector-choice p { display:none; }
  .tns-vector-choice { min-height:76px; display:flex; flex-direction:column; justify-content:center; }
  .tns-vector-choice .tns-vector-badge { margin-top:3px; }
  .tns-result { grid-template-rows:minmax(188px,32vh) 1fr; }
  .tns-result-engine { width:min(82vw,380px); }
  .tns-result h2 { font-size:2.55rem; }
  .tns-result-intro { display:none; }
  .tns-course-result { font-size:.8rem; line-height:1.35; }
  .tns-result-chip:nth-child(n+4) { display:none; }
  .tns-closing { display:none; }
}

@media (max-height:760px) and (max-width:900px) {
  .tns-journey { grid-template-rows:minmax(180px,34vh) minmax(0,1fr); }
  .tns-engine { max-height:38vh; width:min(82vw,390px); margin-top:-10%; }
  .tns-engine-caption { display:none; }
  .tns-console-head { padding-top:10px; }
  .tns-console h2 { font-size:1.65rem; }
  .tns-stage-help { max-height:2.7em; overflow:hidden; }
  .tns-progress-dots { margin-bottom:6px; }
  .tns-console-foot { min-height:55px; }
  .tns-choice { min-height:48px; }
  .tns-orb-choice { min-height:78px; }
  .tns-trajectory-card { padding:9px; }
  .tns-result { grid-template-rows:minmax(165px,29vh) 1fr; }
  .tns-result-engine { width:min(76vw,330px); }
  .tns-result h2 { font-size:2.2rem; }
  .tns-course-result { margin:7px 0; padding:7px 10px; }
  .tns-result-actions { margin-top:7px; }
}

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

@keyframes tns-nebula-drift { to { transform:translate3d(7vw,5vh,0) scale(1.08); } }
@keyframes tns-orbit { to { transform:rotate(360deg); } }
@keyframes tns-orbit-reverse { to { transform:rotate(-360deg); } }
@keyframes tns-svg-spin { to { transform:rotate(360deg); } }
@keyframes tns-svg-spin-reverse { to { transform:rotate(-360deg); } }
@keyframes tns-core-breathe { 0%,100% { opacity:.62; transform:scale(.92); } 50% { opacity:1; transform:scale(1.08); } }
@keyframes tns-comet { 0%,100% { transform:translate3d(-10px,8px,0); opacity:.35; } 50% { transform:translate3d(22px,-15px,0); opacity:1; } }
@keyframes tns-rise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes tns-scan-turn { to { transform:rotate(360deg); } }
@keyframes tns-draw-course { from { stroke-dashoffset:760; } to { stroke-dashoffset:0; } }
@media (max-height:760px) and (max-width:480px) {
  .tns-signal-list { gap:6px; }
  .tns-signal-list .tns-choice { min-height:43px; padding:6px 9px; }
}
/* Interactive controls never drift or translate. New beats appear through light only. */
.tns-beat { animation:tns-fade .28s ease both; }
@keyframes tns-fade { from { opacity:0; } to { opacity:1; } }
@media (max-height:760px) and (max-width:900px) {
  .tns-stage-help { display:none; }
}
@media (max-height:760px) and (max-width:480px) {
  .tns-trajectory-card .tns-beat-copy { display:none; }
  .tns-trajectory-card .tns-beat-top { margin-bottom:5px; }
  .tns-trajectory-name { margin-bottom:5px; }
  .tns-trajectory-note { margin-top:5px; }
  .tns-trajectory-note .tns-input { min-height:38px; padding:8px 11px; }
}
@media (max-height:760px) and (max-width:480px) {
  .tns-app[data-stage="7"] .tns-integrity-symbol { width:42px; height:42px; margin-bottom:6px; }
  .tns-app[data-stage="7"] .tns-integrity-question .tns-beat-top { margin-bottom:5px; }
  .tns-app[data-stage="7"] .tns-integrity-question p { margin-top:4px; }
  .tns-integrity-answers[style*="grid-template-columns:1fr"] { gap:6px; margin-top:8px; }
  .tns-integrity-answers[style*="grid-template-columns:1fr"] .tns-answer { min-height:39px; }
}
@media (min-height:761px) and (max-width:900px) {
  .tns-journey { grid-template-rows:minmax(220px,38vh) minmax(0,1fr); }
}
@media (max-width:900px) {
  .tns-trajectory-card .tns-beat-copy { display:none; }
}
@media (min-height:761px) and (max-width:900px) {
  .tns-journey { grid-template-rows:minmax(215px,35vh) minmax(0,1fr); }
}

/* Compact the final support check on mobile without hiding essential choices. */
@media (max-width:900px) {
  .tns-support-question .tns-integrity-symbol { width:42px; height:42px; margin-bottom:5px; }
  .tns-support-question .tns-beat-top { margin-bottom:4px; }
  .tns-support-question > p { display:none; }
  .tns-support-question .tns-integrity-answers { gap:5px !important; margin-top:7px !important; }
  .tns-support-question .tns-answer { min-height:38px !important; padding:7px 9px; font-size:.73rem; }
}
