@font-face {
  font-family:IlmFun;
  src:url('/static/fonts/Manrope.ttf') format('truetype');
  font-display:swap;
  font-weight:100 900;
}
:root {
  --bg-darkest:#191e20;
  --bg-dark:#202628;
  --bg-medium:#292f31;
  --bg-light:#343b3d;
  --bg-lighter:#424a4b;
  --bg-input:#191e20;
  --cream:#f4f0e6;
  --paper:#eae5d9;
  --brand-primary:#a6edab;
  --on-brand:#202628;
  --primary:var(--brand-primary);
  --green:var(--brand-primary);
  --emerald:#59c68a;
  --text-primary:#f4f0e6;
  --text-secondary:#bcc5c0;
  --text-muted:#9eaaa3;
  --ink:#202628;
  --danger:#f4a69b;
  --radius-xs:4px;
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --radius-xl:20px;
  --radius-pill:999px;
  --s-2xs:2px;
  --s-xs:4px;
  --s-sm:8px;
  --s-md:12px;
  --s-lg:16px;
  --s-xl:20px;
  --s-2xl:24px;
  --s-3xl:32px;
  --fast:160ms;
  --normal:280ms;
  --curve:cubic-bezier(.2,.8,.2,1);
  --shadow:0 6px 18px #0005;
  --font-sans:IlmFun,'Trebuchet MS',Arial,sans-serif;
  --content:1200px;
  --badge-background:#f1bd8322;
  --focus-background:#59c68a55;
  --green-hover:#bbf3bf;
  --lilac:#d1c1eb;
  --apricot:#f1bd83;
  --ink-secondary:#52635a;
  --eyebrow-ink:#57665b;
  --body-ink:#536056;
  --lilac-deep:#c8b4e5;
  --audio-ink:#486550;
  --emerald-muted:#69b08b;
  --gold:#9f7a31;
  --emerald-ink:#2f7950;
  --balance-ink:#34583f;
  --balance-symbol:#277447;
  --danger-background:#392c2b;
  --shadow-header:#0001;
  --shadow-art:#0003;
  --shadow-modal:#0007;
  --backdrop:#111a;
  --gem-dark:#0e714e;
  --gem-top:#a9f2c1;
  --gem-left:#54c889;
  --gem-light:#c6f7d7;
  --gem-mid:#329d6c;
  --s-4xl:40px;
  --s-5xl:48px;
  --s-6xl:56px;
  --s-7xl:64px;
  --s-8xl:72px;
  --s-9xl:80px;
  --s-10xl:88px;
  --s-11xl:96px;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}
body {
  margin:0;
  background:var(--bg-darkest);
  color:var(--text-primary);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
button,input,textarea,select {
  font:inherit;
}
a {
  color:inherit;
  text-decoration:none;
}
button,a,input,select,summary,textarea {
  -webkit-tap-highlight-color:transparent;
}
button,a,summary,select {
  touch-action:manipulation;
}
button {
  cursor:pointer;
}
button,input,textarea,select {
  border:0;
}
button:disabled {
  cursor:not-allowed;
  opacity:.6;
}
img,svg {
  max-width:100%;
}
p {
  margin:0 0 var(--s-lg);
}
h1,h2,h3 {
  line-height:1.08;
  letter-spacing:-.045em;
  margin:0 0 var(--s-2xl);
  font-weight:780;
  text-wrap:balance;
}
h1 {
  font-size:clamp(48px,5.8vw,80px);
}
h2 {
  font-size:32px;
}
h3 {
  font-size:28px;
}
a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible {
  outline:0;
  box-shadow:0 0 0 4px var(--emerald);
}
input:focus,textarea:focus {
  outline:0;
  box-shadow:0 0 0 4px var(--focus-background);
}
::selection {
  background:var(--green);
  color:var(--ink);
}
[hidden] {
  display:none!important;
}
.container {
  width:min(var(--content),calc(100% - 64px));
  margin-inline:auto;
}
.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:var(--bg-dark);
  box-shadow:0 4px 12px var(--shadow-header);
}
.nav {
  display:flex;
  align-items:center;
  gap:var(--s-3xl);
  min-height:88px;
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:var(--s-sm);
  font-size:28px;
  font-weight:850;
  letter-spacing:-.06em;
  white-space:nowrap;
}
.brand img {
  width:32px;
  height:36px;
  object-fit:contain;
}
.brand-mark {
  color:var(--green);
  font-size:20px;
  align-self:flex-start;
  margin-top:var(--s-xs);
}
.nav-links {
  display:flex;
  gap:var(--s-2xl);
  margin-left:auto;
}
.nav-link {
  font-weight:620;
  font-size:14px;
  color:var(--text-secondary);
  transition:color var(--fast);
}
.nav-link:hover {
  color:var(--green);
}
.nav-actions {
  display:flex;
  align-items:center;
  gap:var(--s-lg);
}
.language-control select {
  color:var(--text-primary);
  background:var(--bg-medium);
  border-radius:var(--radius-sm);
  padding:var(--s-sm) var(--s-md);
  font-size:13px;
  max-width:132px;
  cursor:pointer;
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--s-sm);
  min-height:52px;
  padding:var(--s-md) var(--s-2xl);
  border-radius:var(--radius-sm);
  font-weight:750;
  font-size:15px;
  line-height:1.4;
  text-align:center;
  transition:transform var(--fast) var(--curve),background var(--fast),box-shadow var(--fast);
  border:0;
}
.btn:hover:not(:disabled) {
  transform:translateY(-3px);
}
.btn:active:not(:disabled) {
  transform:translateY(0) scale(.98);
}
.btn-small {
  min-height:40px;
  padding:var(--s-sm) var(--s-lg);
  font-size:13px;
}
.btn-green {
  background:var(--green);
  color:var(--ink);
}
.btn-green:hover {
  background:var(--green-hover);
}
.btn-cream {
  background:var(--cream);
  color:var(--ink);
}
.btn-tonal {
  background:var(--bg-light);
  color:var(--cream);
}
.btn-tonal:hover {
  background:var(--bg-lighter);
}
.btn-danger {
  background:var(--danger);
  color:var(--ink);
}
.btn-disabled {
  background:var(--bg-light);
  color:var(--text-secondary);
  min-height:44px;
}
.actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--s-md);
  margin-top:var(--s-2xl);
}
.eyebrow {
  font-size:11px;
  font-weight:800;
  letter-spacing:.13em;
  line-height:1.5;
  text-transform:uppercase;
  color:var(--text-secondary);
  margin-bottom:var(--s-2xl);
}
.lead {
  font-size:18px;
  line-height:1.7;
  max-width:560px;
  color:var(--text-secondary);
}
.fine-print {
  font-size:13px;
  line-height:1.65;
  color:var(--text-muted);
  max-width:530px;
}
.hero {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  align-items:center;
  gap:var(--s-3xl);
  padding-block:var(--s-9xl) var(--s-10xl);
  min-height:740px;
}
.hero-copy {
  position:relative;
  z-index:2;
}
.hero h1 {
  margin-bottom:var(--s-2xl);
}
.hero .eyebrow {
  color:var(--green);
}
.hero .fine-print {
  margin-top:var(--s-2xl);
  max-width:430px;
}
.green-text {
  color:var(--green);
}
.playground {
  position:relative;
  height:540px;
  isolation:isolate;
}
.orbit {
  position:absolute;
  width:420px;
  height:420px;
  top:44px;
  left:24px;
  background:var(--bg-dark);
  border-radius:var(--radius-pill);
  transform:rotate(-20deg);
}
.orbit-two {
  width:290px;
  height:290px;
  background:var(--bg-medium);
  top:108px;
  left:88px;
}
.tile {
  position:absolute;
  display:grid;
  place-items:center;
  width:108px;
  height:108px;
  border-radius:var(--radius-xl);
  font-size:44px;
  font-weight:800;
  box-shadow:var(--shadow);
}
.tile-code {
  background:var(--green);
  color:var(--ink);
  top:24px;
  left:48px;
  transform:rotate(-12deg);
}
.tile-math {
  background:var(--lilac);
  color:var(--ink);
  right:8px;
  top:104px;
  transform:rotate(12deg);
  width:96px;
  height:96px;
}
.tile-letter {
  background:var(--apricot);
  color:var(--ink);
  bottom:112px;
  right:44px;
  transform:rotate(-8deg);
  width:88px;
  height:88px;
  font-size:32px;
}
.gem {
  color:var(--emerald);
  overflow:visible;
}
.hero-gem {
  position:absolute;
  top:128px;
  left:112px;
  width:246px;
  transform:rotate(-12deg);
  filter:drop-shadow(0 20px 12px var(--shadow-art));
}
.spark {
  position:absolute;
  color:var(--cream);
  font-size:48px;
}
.spark-one {
  right:56px;
  top:16px;
}
.spark-two {
  left:8px;
  top:236px;
  color:var(--lilac);
  font-size:36px;
}
.voice-card {
  position:absolute;
  top:300px;
  left:8px;
  background:var(--cream);
  color:var(--ink);
  border-radius:var(--radius-md);
  padding:var(--s-lg);
  display:flex;
  align-items:center;
  gap:var(--s-md);
  width:304px;
  transform:rotate(-5deg);
  box-shadow:var(--shadow);
}
.room-symbol {
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:var(--radius-sm);
  background:var(--green);
  font-size:28px;
}
.voice-card strong {
  display:block;
  font-size:15px;
}
.voice-card small {
  display:block;
  font-size:11px;
  color:var(--ink-secondary);
}
.wave {
  display:flex;
  align-items:center;
  gap:var(--s-xs);
  height:32px;
  color:var(--ink);
  margin-left:auto;
}
.wave i {
  width:4px;
  height:12px;
  background:currentColor;
  border-radius:var(--radius-pill);
  animation:wave 1.4s ease-in-out infinite alternate;
}
.wave i:nth-child(2n) {
  height:26px;
  animation-delay:-.8s;
}
.wave i:nth-child(3n) {
  height:18px;
  animation-delay:-.4s;
}
.topic-card {
  position:absolute;
  left:64px;
  bottom:24px;
  transform:rotate(3deg);
  background:var(--bg-light);
  border-radius:var(--radius-md);
  padding:var(--s-lg) var(--s-xl);
  width:340px;
  box-shadow:var(--shadow);
}
.topic-card strong {
  font-size:14px;
}
.topic-card>div {
  display:flex;
  gap:var(--s-sm);
  margin-top:var(--s-md);
}
.topic-card>div>span {
  background:var(--bg-dark);
  border-radius:var(--radius-xs);
  padding:var(--s-xs) var(--s-sm);
  font-size:11px;
  color:var(--text-secondary);
}
.art-caption {
  position:absolute;
  bottom:-20px;
  left:112px;
  font-size:10px;
  letter-spacing:.14em;
  color:var(--text-muted);
}
.topic-strip {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:var(--s-5xl);
  background:var(--green);
  color:var(--ink);
  padding:var(--s-lg) var(--s-3xl);
  font-size:18px;
  font-weight:750;
  overflow:hidden;
}
.topic-strip>span {
  white-space:nowrap;
}
.topic-strip b {
  font-size:20px;
}
.section {
  padding-block:var(--s-11xl);
}
.section-title {
  font-size:clamp(36px,4.4vw,60px);
  max-width:820px;
}
.multiline {
  white-space:pre-line;
}
.cream-section {
  background:var(--cream);
  color:var(--ink);
}
.cream-section .eyebrow {
  color:var(--eyebrow-ink);
}
.cream-section p {
  color:var(--body-ink);
}
.feature-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--s-3xl);
  margin-top:var(--s-5xl);
}
.feature-card {
  background:var(--paper);
  border-radius:var(--radius-md);
  padding:var(--s-2xl);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.feature-card h3 {
  margin-bottom:var(--s-lg);
  font-size:26px;
}
.feature-card p {
  font-size:15px;
  line-height:1.75;
  margin:0;
}
.number {
  display:block;
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  margin-bottom:var(--s-lg);
  opacity:.65;
}
.feature-art {
  height:172px;
  width:100%;
  margin-bottom:var(--s-2xl);
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--s-sm);
}
.blocks span {
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  background:var(--ink);
  color:var(--cream);
  border-radius:var(--radius-md);
  font-size:30px;
  font-weight:700;
  transform:rotate(-12deg);
}
.blocks span:nth-child(2) {
  background:var(--lilac-deep);
  color:var(--ink);
  transform:translateY(-20px) rotate(8deg);
}
.blocks span:nth-child(3) {
  background:var(--emerald);
  color:var(--ink);
  transform:rotate(-8deg);
  font-size:26px;
}
.audio-art .wave {
  margin:0;
  gap:var(--s-sm);
  height:88px;
  transform:scale(1.8);
  color:var(--audio-ink);
}
.audio-art>span {
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  background:var(--green);
  border-radius:var(--radius-md);
  font-size:32px;
  position:absolute;
  bottom:16px;
  right:20px;
  transform:rotate(12deg);
}
.steps {
  align-items:end;
  padding:var(--s-3xl);
}
.steps i {
  width:56px;
  background:var(--emerald);
  border-radius:var(--radius-sm);
  height:40px;
}
.steps i:nth-child(2) {
  height:72px;
  background:var(--emerald-muted);
}
.steps i:nth-child(3) {
  height:104px;
  background:var(--ink);
}
.steps b {
  position:absolute;
  right:40px;
  top:4px;
  color:var(--gold);
  font-size:44px;
}
.emerald-layout {
  display:grid;
  grid-template-columns:.85fr 1fr;
  gap:var(--s-9xl);
  align-items:center;
}
.emerald-art {
  position:relative;
  display:grid;
  place-items:center;
  min-height:420px;
  background:var(--bg-dark);
  border-radius:var(--radius-xl);
}
.emerald-art>.gem {
  width:280px;
  transform:rotate(12deg);
  transition:transform var(--normal) var(--curve);
}
.emerald-art:hover>.gem {
  transform:rotate(-4deg) translateY(-8px);
}
.gem-ticket {
  display:flex;
  align-items:center;
  gap:var(--s-5xl);
  position:absolute;
  bottom:40px;
  left:var(--s-2xl);
  font-size:20px;
  font-weight:800;
  transform:rotate(-8deg);
  padding:var(--s-md) var(--s-2xl);
  background:var(--cream);
  color:var(--ink);
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow);
}
.gem-ticket b {
  color:var(--emerald-ink);
}
.payment-preview {
  display:flex;
  gap:var(--s-lg);
  margin:var(--s-2xl) 0;
}
.payment-preview>div {
  background:var(--bg-medium);
  border-radius:var(--radius-sm);
  padding:var(--s-md) var(--s-lg);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:var(--s-sm);
  flex:1;
}
.payment-preview strong {
  font-size:14px;
}
.badge {
  display:inline-flex;
  align-items:center;
  gap:var(--s-xs);
  padding:var(--s-xs) var(--s-sm);
  background:var(--badge-background);
  color:var(--apricot);
  border-radius:var(--radius-pill);
  font-size:11px;
  font-weight:750;
  letter-spacing:.02em;
}
.download-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--s-7xl);
  align-items:center;
}
.device-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--s-lg);
}
.device-card {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  background:var(--ink);
  color:var(--cream);
  border-radius:var(--radius-md);
  padding:var(--s-2xl);
  min-height:252px;
  transition:transform var(--normal) var(--curve);
}
.device-card:hover {
  transform:translateY(-8px);
}
.device-symbol {
  font-size:52px;
  line-height:1;
  margin-bottom:var(--s-3xl);
  color:var(--green);
}
.device-card strong {
  font-size:24px;
}
.device-card>span:last-of-type {
  font-size:12px;
  color:var(--text-secondary);
}
.device-card>b {
  position:absolute;
  right:20px;
  top:20px;
  font-size:22px;
  color:var(--green);
}
.device-grid .fine-print {
  grid-column:1/-1;
  margin:0;
}
.faq-section {
  display:grid;
  grid-template-columns:.75fr 1fr;
  gap:var(--s-7xl);
}
.faq-list details {
  background:var(--bg-medium);
  border-radius:var(--radius-sm);
  margin-bottom:var(--s-md);
  padding:var(--s-lg) var(--s-2xl);
}
summary {
  cursor:pointer;
  list-style:none;
  font-weight:650;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--s-lg);
  line-height:1.5;
}
summary::-webkit-details-marker {
  display:none;
}
summary>span:last-child:not([data-i18n]) {
  font-size:24px;
  color:var(--emerald);
  transition:transform var(--normal);
}
details[open]>summary>span:last-child:not([data-i18n]) {
  transform:rotate(45deg);
}
details p {
  margin:var(--s-lg) 0 0;
  color:var(--text-secondary);
  font-size:14px;
}
details[open]>p,details[open]>.legal-content {
  animation:enter var(--normal) var(--curve);
}
.site-footer {
  background:var(--bg-dark);
  padding-block:var(--s-5xl) var(--s-2xl);
}
.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:var(--s-3xl);
}
.footer-top p {
  font-size:14px;
  color:var(--text-secondary);
  margin-top:var(--s-sm);
}
.footer-links {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:var(--s-2xl);
  font-size:13px;
  padding-top:var(--s-md);
}
.footer-links a:hover {
  color:var(--green);
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:var(--s-lg);
  padding-top:var(--s-5xl);
  color:var(--text-muted);
  font-size:11px;
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
}
.skip {
  position:fixed;
  top:var(--s-lg);
  left:var(--s-lg);
  transform:translateY(-180%);
  z-index:100;
  background:var(--green);
  color:var(--ink);
  padding:var(--s-md);
  border-radius:var(--radius-sm);
}
.skip:focus {
  transform:translateY(0);
}
.text-link {
  color:var(--green);
  font-weight:650;
  font-size:14px;
}
.text-link:hover {
  text-decoration:underline;
  text-underline-offset:4px;
}
.toast {
  position:fixed;
  bottom:var(--s-2xl);
  left:50%;
  z-index:100;
  max-width:min(440px,calc(100% - 32px));
  background:var(--cream);
  color:var(--ink);
  padding:var(--s-lg) var(--s-2xl);
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow);
  font-size:14px;
  font-weight:600;
  pointer-events:none;
  opacity:0;
  transform:translate(-50%,16px);
  transition:opacity var(--normal),transform var(--normal) var(--curve);
}
.toast.show {
  opacity:1;
  transform:translate(-50%,0);
}
.panel {
  background:var(--bg-medium);
  border-radius:var(--radius-md);
  padding:var(--s-3xl);
}
.panel h2 {
  font-size:24px;
  margin-bottom:var(--s-lg);
}
.panel p {
  color:var(--text-secondary);
  font-size:14px;
}
.account-intro {
  padding-top:var(--s-6xl);
  padding-bottom:var(--s-4xl);
}
.account-intro .lead {
  max-width:720px;
  font-size:16px;
}
.account-heading {
  font-size:44px;
  overflow-wrap:anywhere;
}
.account-layout {
  display:grid;
  grid-template-columns:224px minmax(0,1fr);
  gap:var(--s-3xl);
  padding-bottom:var(--s-9xl);
  align-items:start;
}
.account-nav {
  position:sticky;
  top:112px;
  display:flex;
  flex-direction:column;
  gap:var(--s-sm);
  background:var(--bg-dark);
  padding:var(--s-md);
  border-radius:var(--radius-md);
}
.account-nav a {
  padding:var(--s-md);
  border-radius:var(--radius-sm);
  font-size:14px;
  font-weight:650;
  display:flex;
  justify-content:space-between;
  gap:var(--s-sm);
  transition:background var(--fast);
}
.account-nav a:hover {
  background:var(--bg-medium);
}
.account-nav .active {
  background:var(--green);
  color:var(--ink);
}
.account-nav .app-link {
  margin-top:var(--s-2xl);
  color:var(--green);
}
.tab-pane:not([hidden]) {
  display:flex;
  flex-direction:column;
  gap:var(--s-2xl);
  animation:enter var(--normal) var(--curve);
}
.balance-card {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--s-2xl);
  padding:var(--s-3xl);
  border-radius:var(--radius-md);
  background:var(--green);
  color:var(--ink);
  overflow:hidden;
}
.balance-card .eyebrow {
  color:var(--balance-ink);
  margin-bottom:var(--s-sm);
}
.balance-card .balance {
  font-size:56px;
  font-weight:820;
  line-height:1.3;
  letter-spacing:-.06em;
}
.balance>span {
  font-size:32px;
  color:var(--balance-symbol);
}
.balance-card p {
  font-size:13px;
  margin:var(--s-sm) 0 0;
}
.balance-card>.gem {
  width:104px;
  flex-shrink:0;
  transform:rotate(12deg);
}
.stats-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--s-2xl);
}
.stats-grid .eyebrow {
  font-size:10px;
  margin-bottom:var(--s-md);
}
.stats-grid article>strong,.stat-value {
  font-size:32px;
  font-weight:750;
}
.stats-grid p {
  margin-top:var(--s-md);
  margin-bottom:0;
}
.stats-grid .btn {
  margin-top:var(--s-2xl);
}
.quick-links {
  display:flex;
  flex-direction:column;
  gap:var(--s-sm);
}
.quick-links>a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--s-md);
  padding:var(--s-md) var(--s-lg);
  background:var(--bg-light);
  border-radius:var(--radius-sm);
  font-size:14px;
}
.quick-links>a:hover {
  background:var(--bg-lighter);
}
.quick-links>a>span:last-child {
  color:var(--green);
}
.notice {
  background:var(--bg-light);
  padding:var(--s-lg) var(--s-xl);
  border-radius:var(--radius-sm);
  color:var(--text-secondary);
  font-size:14px;
}
.error,.form-error {
  color:var(--danger);
}
.tab-pane>.notice,.tab-pane>.fine-print {
  margin:0;
}
.empty-state {
  text-align:center;
  padding:var(--s-3xl) var(--s-lg);
  color:var(--text-muted);
}
.empty-state>span {
  display:block;
  font-size:48px;
  color:var(--green);
}
.empty-state p {
  margin:var(--s-md) auto 0;
  max-width:300px;
}
table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:13px;
}
th {
  font-size:11px;
  color:var(--text-muted);
  font-weight:650;
}
th,td {
  padding:var(--s-md);
}
tbody tr:nth-child(odd) {
  background:var(--bg-dark);
}
.table-scroll {
  overflow:auto;
}
.transaction {
  display:flex;
  justify-content:space-between;
  gap:var(--s-lg);
  padding:var(--s-md);
  background:var(--bg-dark);
  border-radius:var(--radius-sm);
  margin-top:var(--s-sm);
  font-size:13px;
}
label {
  display:block;
  font-size:13px;
  font-weight:650;
  margin-bottom:var(--s-sm);
}
input,textarea {
  display:block;
  width:100%;
  padding:var(--s-md) var(--s-lg);
  color:var(--text-primary);
  background:var(--bg-input);
  border-radius:var(--radius-sm);
  margin-bottom:var(--s-2xl);
  resize:vertical;
}
input {
  min-height:48px;
}
textarea {
  line-height:1.6;
}
form {
  max-width:600px;
}
.linked-method {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:var(--s-lg);
  padding:var(--s-lg);
  border-radius:var(--radius-sm);
  background:var(--bg-dark);
  margin-top:var(--s-md);
}
.linked-method>span {
  color:var(--text-secondary);
  font-size:12px;
  overflow-wrap:anywhere;
  flex:1;
  min-width:100px;
}
.linked-method .btn {
  margin-left:auto;
  min-height:40px;
  font-size:12px;
  padding:var(--s-sm) var(--s-md);
}
.danger-panel {
  background:var(--danger-background);
}
.account-dialog {
  width:min(480px,calc(100% - 32px));
  padding:var(--s-3xl);
  background:var(--bg-medium);
  color:var(--text-primary);
  border:0;
  border-radius:var(--radius-lg);
  box-shadow:0 10px 28px var(--shadow-modal);
  opacity:0;
  transform:translateY(12px) scale(.96);
  transition:opacity var(--normal),transform var(--normal) var(--curve);
  max-height:calc(100dvh - 48px);
  overflow:auto;
}
.account-dialog.visible {
  opacity:1;
  transform:translateY(0) scale(1);
}
.account-dialog::backdrop {
  background:var(--backdrop);
  backdrop-filter:blur(4px);
  transition:background var(--normal),backdrop-filter var(--normal);
}
.account-dialog:not(.visible)::backdrop {
  background:transparent;
  backdrop-filter:blur(0);
}
.account-dialog header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--s-lg);
}
.account-dialog h2 {
  font-size:24px;
  margin:0 0 var(--s-2xl);
}
.account-dialog p {
  font-size:14px;
  color:var(--text-secondary);
}
.account-dialog .form-error {
  color:var(--danger);
}
.icon-btn {
  display:grid;
  place-items:center;
  background:var(--bg-light);
  color:var(--text-primary);
  border-radius:var(--radius-sm);
  width:32px;
  height:32px;
  font-size:24px;
  flex-shrink:0;
}
.single-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--s-9xl);
  align-items:center;
  min-height:680px;
  padding-block:var(--s-9xl);
}
.auth-panel {
  padding:var(--s-5xl);
}
.auth-panel h1 {
  font-size:40px;
}
.auth-actions {
  display:flex;
  flex-direction:column;
  gap:var(--s-md);
  margin-block:var(--s-3xl);
}
.auth-panel .fine-print {
  font-size:11px;
}
.single-art {
  height:380px;
  position:relative;
  display:grid;
  place-items:center;
}
.single-art>.gem {
  width:240px;
  transform:rotate(-12deg);
}
.single-art>.tile {
  background:var(--lilac);
  color:var(--ink);
  top:20px;
  right:24px;
  transform:rotate(12deg);
}
.large-spark {
  position:absolute;
  left:32px;
  bottom:20px;
  color:var(--green);
  font-size:140px;
}
.desktop-shape {
  position:relative;
  border-radius:var(--radius-lg);
  background:var(--bg-medium);
  height:280px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--s-md);
  font-size:32px;
  font-weight:850;
  box-shadow:var(--shadow);
  transform:rotate(-5deg);
}
.desktop-shape img {
  width:48px;
}
.desktop-shape b {
  position:absolute;
  top:var(--s-2xl);
  right:var(--s-2xl);
  color:var(--green);
  font-size:40px;
}
.desktop-stand {
  width:96px;
  height:56px;
  background:var(--bg-light);
  margin:0 auto;
  border-radius:0 0 var(--radius-sm) var(--radius-sm);
}
.platform-meta {
  font-size:13px;
  color:var(--text-muted);
  margin-block:var(--s-2xl);
}
.install-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--s-2xl);
  padding-bottom:var(--s-9xl);
}
.share-page {
  max-width:800px;
  padding-block:var(--s-9xl);
  text-align:center;
  min-height:70vh;
}
.share-card {
  padding:var(--s-5xl);
  margin-bottom:var(--s-2xl);
  text-align:center;
}
.share-card .actions {
  justify-content:center;
}
.share-card h1 {
  font-size:40px;
  overflow-wrap:anywhere;
}
.share-card h2 {
  font-size:32px;
}
.share-card p {
  white-space:pre-line;
  overflow-wrap:anywhere;
}
.academy-symbol {
  width:88px;
  height:88px;
  display:grid;
  place-items:center;
  margin:0 auto var(--s-2xl);
  border-radius:var(--radius-md);
  background:var(--green);
  color:var(--ink);
  font-size:52px;
  font-weight:800;
  transform:rotate(-8deg);
}
.empty-symbol {
  font-size:80px;
  color:var(--green);
}
.event-card>.badge {
  margin-bottom:var(--s-2xl);
}
.event-meta {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--s-lg);
  text-align:left;
  margin-block:var(--s-3xl);
}
.event-meta>div {
  background:var(--bg-dark);
  border-radius:var(--radius-sm);
  padding:var(--s-lg);
}
.event-meta .eyebrow {
  display:block;
  margin-bottom:var(--s-sm);
  font-size:10px;
}
.event-meta strong {
  font-size:14px;
}
.legal-page {
  padding-block:var(--s-9xl);
  max-width:1000px;
}
.legal-page>.lead {
  max-width:700px;
}
.legal-overview {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--s-lg);
  margin-block:var(--s-5xl) var(--s-2xl);
}
.legal-overview .panel {
  padding:var(--s-2xl);
}
.legal-overview h2 {
  font-size:22px;
}
.full-policy {
  margin-block:var(--s-3xl);
  background:var(--bg-dark);
  border-radius:var(--radius-md);
}
.full-policy>summary {
  padding:var(--s-2xl);
}
.legal-content {
  padding:var(--s-3xl);
  color:var(--text-secondary);
  font-size:15px;
  line-height:1.85;
  overflow-wrap:anywhere;
}
.legal-content h2 {
  color:var(--text-primary);
  font-size:28px;
  line-height:1.3;
  letter-spacing:-.025em;
}
.legal-content h3 {
  color:var(--text-primary);
  font-size:20px;
  margin:var(--s-2xl) 0 var(--s-lg);
  line-height:1.4;
  letter-spacing:-.02em;
}
.legal-content a {
  color:var(--green);
  text-decoration:underline;
}
.legal-content p {
  font-size:15px;
  margin-block:0 var(--s-lg);
}
.legal-content .legal-section {
  margin-bottom:var(--s-5xl);
  scroll-margin-top:120px;
}
.legal-content ul {
  padding-left:var(--s-2xl);
}
.legal-content li {
  margin-bottom:var(--s-sm);
}
.legal-callout {
  padding:var(--s-lg);
  border-radius:var(--radius-sm);
  background:var(--bg-medium);
}
.legal-table {
  display:block;
  overflow:auto;
}
.legal-table th,.legal-table td {
  min-width:120px;
  vertical-align:top;
}
.legal-content strong {
  color:var(--text-primary);
}
@keyframes enter {
  from {
    opacity:0;
    transform:translateY(8px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}
@keyframes wave {
  from {
    transform:scaleY(.5);
  }
  to {
    transform:scaleY(1);
  }
}
@media(min-width:1101px) {
  .hero-gem {
    animation:gem-drift 6s ease-in-out infinite;
  }
  .playground:hover .hero-gem {
    animation-play-state:paused;
  }
}
@keyframes gem-drift {
  0%,100% {
    transform:translateY(0) rotate(-12deg);
  }
  50% {
    transform:translateY(-12px) rotate(-8deg);
  }
}
@media(max-width:1100px) {
  .nav {
    gap:var(--s-xl);
  }
  .nav-links {
    gap:var(--s-lg);
  }
  .hero {
    gap:var(--s-lg);
    padding-block:var(--s-7xl);
    min-height:640px;
  }
  .playground {
    transform:scale(.85);
    transform-origin:center;
    width:440px;
    margin-left:-28px;
  }
  .hero h1 {
    font-size:56px;
  }
  .hero .lead {
    font-size:16px;
  }
  .feature-grid {
    gap:var(--s-lg);
  }
  .feature-card {
    padding:var(--s-xl);
  }
  .feature-card h3 {
    font-size:23px;
  }
  .feature-art {
    height:140px;
  }
  .blocks span {
    width:56px;
    height:64px;
    font-size:28px;
  }
  .blocks span:nth-child(3) {
    font-size:20px;
  }
  .emerald-layout {
    gap:var(--s-5xl);
  }
  .download-layout {
    gap:var(--s-3xl);
  }
  .device-card {
    padding:var(--s-xl);
  }
  .single-layout {
    gap:var(--s-5xl);
  }
  .auth-panel {
    padding:var(--s-3xl);
  }
  .account-layout {
    grid-template-columns:184px minmax(0,1fr);
    gap:var(--s-xl);
  }
  .panel {
    padding:var(--s-2xl);
  }
  .topic-strip {
    gap:var(--s-2xl);
    font-size:16px;
  }
}
@media(max-width:800px) {
  .nav-links {
    display:none;
  }
  .nav-actions {
    margin-left:auto;
  }
  .hero {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .hero h1 {
    font-size:48px;
  }
  .playground {
    transform:scale(.68);
    margin-left:-72px;
    transform-origin:center left;
    width:440px;
  }
  .hero .actions {
    flex-direction:column;
    align-items:flex-start;
  }
  .feature-grid {
    grid-template-columns:1fr;
  }
  .feature-card {
    display:grid;
    grid-template-columns:200px 1fr;
    column-gap:var(--s-2xl);
    padding:var(--s-2xl);
  }
  .feature-art {
    grid-row:1/4;
    height:180px;
    margin:0;
  }
  .feature-card .number {
    margin-bottom:var(--s-md);
  }
  .feature-card h3 {
    margin-bottom:var(--s-md);
  }
  .emerald-layout {
    gap:var(--s-3xl);
    grid-template-columns:.8fr 1fr;
  }
  .emerald-art {
    min-height:340px;
  }
  .emerald-art>.gem {
    width:200px;
  }
  .gem-ticket {
    font-size:15px;
    left:var(--s-md);
    gap:var(--s-2xl);
  }
  .download-layout,.faq-section {
    grid-template-columns:1fr;
    gap:var(--s-3xl);
  }
  .device-card {
    min-height:220px;
  }
  .footer-top {
    flex-direction:column;
  }
  .footer-links {
    justify-content:flex-start;
  }
  .legal-overview {
    grid-template-columns:1fr;
  }
  .legal-overview .number {
    margin-bottom:var(--s-md);
  }
  .single-layout {
    gap:var(--s-3xl);
  }
  .single-art>.gem {
    width:180px;
  }
  .single-art .tile {
    width:76px;
    height:76px;
    font-size:28px;
  }
  .large-spark {
    font-size:100px;
    left:0;
  }
  .auth-panel h1 {
    font-size:32px;
  }
  .install-grid {
    grid-template-columns:1fr;
  }
  .account-nav a {
    font-size:12px;
  }
  .balance-card .balance {
    font-size:44px;
  }
  .stats-grid {
    gap:var(--s-lg);
  }
  .stats-grid .panel {
    padding:var(--s-xl);
  }
}
@media(max-width:649px) {
  .container {
    width:calc(100% - 32px);
  }
  .nav {
    min-height:72px;
    gap:var(--s-md);
  }
  .brand {
    font-size:24px;
  }
  .brand img {
    width:24px;
    height:28px;
  }
  .brand-mark {
    font-size:16px;
  }
  .nav-actions {
    gap:var(--s-sm);
  }
  .language-control {
    margin:0;
  }
  .language-control select {
    font-size:11px;
    max-width:100px;
    padding:var(--s-sm);
  }
  .nav .btn-small {
    font-size:11px;
    padding:var(--s-sm) var(--s-md);
    min-height:36px;
  }
  .hero {
    grid-template-columns:minmax(0,1fr);
    overflow:clip;
    padding-top:var(--s-5xl);
    padding-bottom:var(--s-5xl);
    gap:0;
    min-height:unset;
  }
  .hero h1 {
    font-size:clamp(42px,10.8vw,68px);
    line-height:1.04;
  }
  .hero-copy {
    max-width:540px;
  }
  .hero .eyebrow {
    font-size:10px;
  }
  .hero .lead {
    font-size:16px;
  }
  .hero .actions {
    flex-direction:row;
    align-items:center;
  }
  .hero .actions .btn {
    font-size:13px;
    min-height:48px;
    padding-inline:var(--s-xl);
  }
  .hero .fine-print {
    font-size:12px;
    margin-bottom:0;
  }
  .playground {
    width:440px;
    height:500px;
    transform:scale(.78);
    transform-origin:top center;
    left:50%;
    margin-left:-220px;
    margin-top:var(--s-3xl);
    margin-bottom:-100px;
  }
  .art-caption {
    left:88px;
    bottom:-8px;
  }
  .topic-strip {
    justify-content:flex-start;
    gap:var(--s-2xl);
    padding:var(--s-lg);
    font-size:14px;
  }
  .section {
    padding-block:var(--s-6xl);
  }
  .section-title {
    font-size:38px;
  }
  .eyebrow {
    font-size:10px;
    margin-bottom:var(--s-xl);
  }
  .lead {
    font-size:16px;
  }
  .feature-grid {
    margin-top:var(--s-3xl);
    gap:var(--s-lg);
  }
  .feature-card {
    display:flex;
    padding:var(--s-2xl);
  }
  .feature-art {
    height:152px;
    margin-bottom:var(--s-xl);
  }
  .blocks span {
    width:80px;
    height:80px;
    font-size:32px;
  }
  .blocks span:nth-child(3) {
    font-size:26px;
  }
  .feature-card h3 {
    font-size:26px;
  }
  .feature-card p {
    font-size:14px;
  }
  .audio-art>span {
    right:40px;
  }
  .steps b {
    right:56px;
  }
  .emerald-layout {
    grid-template-columns:1fr;
    gap:var(--s-4xl);
  }
  .emerald-art {
    min-height:300px;
  }
  .emerald-art>.gem {
    width:224px;
  }
  .gem-ticket {
    bottom:var(--s-2xl);
    left:var(--s-2xl);
    font-size:18px;
  }
  .payment-preview {
    gap:var(--s-sm);
  }
  .payment-preview>div {
    padding:var(--s-md);
  }
  .payment-preview strong {
    font-size:12px;
  }
  .payment-preview .badge {
    font-size:10px;
  }
  .device-grid {
    gap:var(--s-md);
  }
  .device-card {
    padding:var(--s-xl);
    min-height:220px;
  }
  .device-card strong {
    font-size:22px;
  }
  .device-symbol {
    font-size:44px;
  }
  .faq-list details {
    padding:var(--s-lg);
  }
  .faq-list summary {
    font-size:14px;
  }
  .footer-links {
    gap:var(--s-lg);
    font-size:12px;
  }
  .footer-bottom {
    flex-direction:column;
    padding-top:var(--s-3xl);
    gap:var(--s-sm);
  }
  .account-intro {
    padding-top:var(--s-4xl);
    padding-bottom:var(--s-2xl);
  }
  .account-heading {
    font-size:36px;
  }
  .account-layout {
    display:block;
    padding-bottom:var(--s-6xl);
  }
  .account-nav {
    position:static;
    display:flex;
    flex-direction:row;
    overflow-x:auto;
    padding:var(--s-sm);
    gap:var(--s-xs);
    margin-bottom:var(--s-2xl);
    scrollbar-width:none;
  }
  .account-nav>a {
    flex-shrink:0;
    font-size:12px;
    padding:var(--s-sm) var(--s-md);
  }
  .account-nav>a>span:last-child:not([data-i18n]) {
    display:none;
  }
  .account-nav .app-link {
    margin:0;
  }
  .account-content {
    min-width:0;
  }
  .balance-card {
    padding:var(--s-2xl);
    gap:var(--s-lg);
  }
  .balance-card .balance {
    font-size:44px;
  }
  .balance-card>.gem {
    width:76px;
  }
  .balance-card p {
    font-size:11px;
  }
  .balance-card .eyebrow {
    font-size:10px;
  }
  .stats-grid {
    grid-template-columns:1fr 1fr;
    gap:var(--s-md);
  }
  .stats-grid .panel {
    padding:var(--s-lg);
  }
  .stats-grid .panel>strong {
    font-size:28px;
  }
  .stats-grid .panel h2 {
    font-size:20px;
  }
  .stats-grid .panel p {
    font-size:12px;
  }
  .stats-grid .panel .btn {
    font-size:11px;
    width:100%;
    padding:var(--s-sm);
  }
  .stats-grid .badge {
    font-size:10px;
  }
  .panel {
    padding:var(--s-2xl);
  }
  .panel h2 {
    font-size:23px;
  }
  .tab-pane:not([hidden]) {
    gap:var(--s-lg);
  }
  .account-dialog {
    width:100%;
    max-width:100%;
    margin:auto 0 0;
    padding:var(--s-2xl);
    padding-bottom:max(24px,env(safe-area-inset-bottom));
    border-radius:var(--radius-lg) var(--radius-lg) 0 0;
    max-height:calc(100dvh - 24px);
    transform:translateY(100%);
  }
  .account-dialog.visible {
    transform:translateY(0);
  }
  .account-dialog::before {
    content:'';
    display:block;
    width:36px;
    height:4px;
    background:var(--text-muted);
    border-radius:var(--radius-pill);
    margin:0 auto var(--s-2xl);
    opacity:.4;
  }
  .account-dialog .actions {
    justify-content:flex-end;
  }
  .single-layout {
    grid-template-columns:1fr;
    gap:var(--s-3xl);
    padding-block:var(--s-5xl);
    min-height:unset;
  }
  .single-art {
    height:200px;
    max-width:320px;
    width:100%;
    margin:auto;
  }
  .single-art>.gem {
    width:156px;
  }
  .single-art .tile {
    top:0;
    right:0;
  }
  .large-spark {
    font-size:80px;
    bottom:0;
  }
  .auth-panel {
    padding:var(--s-2xl);
  }
  .auth-panel h1 {
    font-size:36px;
  }
  .auth-actions .btn {
    font-size:14px;
  }
  .desktop-shape {
    height:200px;
    max-width:360px;
    margin:auto;
  }
  .desktop-stand {
    height:40px;
  }
  .download-art {
    margin:var(--s-md) var(--s-lg) var(--s-xl);
  }
  .install-grid {
    padding-bottom:var(--s-6xl);
    gap:var(--s-lg);
  }
  .share-page {
    padding-block:var(--s-5xl);
  }
  .share-card {
    padding:var(--s-2xl);
  }
  .share-card h1 {
    font-size:32px;
  }
  .share-card h2 {
    font-size:28px;
  }
  .share-card .actions {
    flex-direction:column;
    align-items:stretch;
  }
  .event-meta {
    gap:var(--s-md);
  }
  .event-meta>div {
    padding:var(--s-md);
  }
  .legal-page {
    padding-block:var(--s-5xl);
  }
  .legal-overview {
    margin-top:var(--s-3xl);
  }
  .full-policy>summary {
    padding:var(--s-lg);
    font-size:14px;
  }
  .legal-content {
    padding:var(--s-lg);
    font-size:14px;
  }
  .legal-content h2 {
    font-size:24px;
  }
  .legal-content p {
    font-size:14px;
  }
  .toast {
    bottom:max(16px,env(safe-area-inset-bottom));
    font-size:13px;
  }
}
@media(max-width:360px) {
  .nav .brand img {
    display:none;
  }
  .nav .brand {
    font-size:22px;
  }
  .nav .brand-mark {
    display:none;
  }
  .nav .btn-small {
    padding-inline:var(--s-sm);
  }
  .hero h1 {
    font-size:40px;
  }
  .playground {
    transform:scale(.65);
    margin-bottom:-164px;
  }
  .stats-grid {
    grid-template-columns:1fr;
  }
  .device-card {
    padding:var(--s-lg);
  }
  .device-card strong {
    font-size:20px;
  }
}
@media(max-height:519px) and (max-width:649px) {
  .account-dialog {
    margin:auto;
    width:min(480px,calc(100% - 32px));
    border-radius:var(--radius-lg);
    max-height:calc(100dvh - 24px);
  }
  .account-dialog::before {
    display:none;
  }
  .single-art {
    display:none;
  }
  .single-layout {
    padding-block:var(--s-3xl);
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
  .hero-gem {
    transform:rotate(-12deg);
  }
}
