/* Mind Soul & Body — study UI. Profile themes repaint the canvas, chrome, and accents. */
:root{--bg:#071614;--surface:#102422;--surface2:#163330;--line:#9ee8dc2e;--text:#f4fffc;--muted:#c5e4de;--gold:#5eead4;--teal:#5eead4;--on-accent:#04221f;--nav-idle:#d3ebe6;--ink-soft:#e7f7f4;--border:#7ee8d855;--serif:'Cormorant Garamond',Georgia,serif;--app-glow:#1a9e9066;--app-glow-2:#0c4f4a55;--app-sidebar:#071816e8;--app-nav:#0c201ee8;--app-active:#14564f;--app-active-border:#3dbaa8;--app-card:#12302d;--app-card-end:#0c221f;--app-hero:#14564e;--app-hero-end:#0e2826;--app-hero-glow:#7ef3e488;--app-reading:#164640;--app-reading-end:#0e2826;--app-lesson:#14524c;--app-bible:#0e2422;--app-input:#0a1c1a;--chart-warm:#e7c98a;--chart-cool:#8fd0c4;color-scheme:dark}
html{background:var(--bg)}body{color:var(--text);font-family:Outfit,system-ui,sans-serif;font-size:16px;background:radial-gradient(ellipse 56% 27% at 7% 4%,var(--app-glow),transparent 80%),radial-gradient(ellipse 42% 33% at 97% 86%,var(--app-glow-2),transparent 78%),var(--bg);min-height:100dvh}
.shell{max-width:1600px}.sidebar{background:#100e18d9;border-right:1px solid #c5ade72c;backdrop-filter:blur(24px)}.topbar{border-color:#c5ade72c}.brand,.mobile-brand{font-family:Outfit,sans-serif;letter-spacing:-.045em}.brand-mark{background:linear-gradient(140deg,#70efd5,#ad8aff);color:#181421;box-shadow:0 0 25px #a678ef5a}.nav-caption,.eyebrow,.lesson-meta,.number-label{color:#bca9ec}.side-nav button{border-radius:16px;color:#cbc4d3}.side-nav button .nav-icon{width:23px;height:23px;display:inline-flex;align-items:center;justify-content:center}.nav-icon svg{width:25px;height:25px}.side-nav button.active,.side-nav button:hover{background:#7763a52e;border:1px solid #d5baff48;color:#e0d0ff;box-shadow:inset 3px 0 #73eed6,0 0 24px #a784ff1b}.side-nav button.active .nav-icon{color:#75efd7;filter:drop-shadow(0 0 7px #71edce)}.side-quote{border-radius:26px;background:linear-gradient(150deg,#30283e,#1c1a27);border-color:#bba5de35}.side-quote p{font:500 21px/1.2 var(--serif)}.top-label{color:#b5abbf}.account-button{display:grid;place-items:center;border:1px solid #bda8df6c;background:#292337;color:#ded5ee}.account-button svg{width:23px;height:23px}.account-button img{display:block}
#screen{max-width:1210px;padding-top:38px;padding-bottom:135px}h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.025em}h1{font-size:clamp(45px,5vw,76px);line-height:1.03}h2{font-size:clamp(28px,3vw,41px);line-height:1.08}h3{font-size:clamp(25px,2.4vw,34px)}.lead{color:#d1c9d9}.card{background:linear-gradient(145deg,#ffffff0a,#ffffff03),linear-gradient(140deg,#231f2c,#1a1822);border:1px solid #bfa9dc36;border-radius:28px;box-shadow:inset 0 1px #fff1,0 20px 55px #08060e33}.primary{background:linear-gradient(110deg,#73efd6,#b7a1fa);border:1px solid #b8f5e8;color:#1c1728;border-radius:16px}.primary:hover{background:linear-gradient(110deg,#adf5e5,#dcc7ff)}.secondary{background:#302a3c;border:1px solid #bfa9dc55;border-radius:16px}.secondary:hover{border-color:#c4b0f3}.text-button,.dialog-links button{color:#8fead9}.filter{background:#302a3c;border-color:#ab9cbd5c}.filter.active{background:#d5bef5;color:#201a2c;border-color:#d5bef5}.tag{border-color:#a38eea75;color:#c3aaff}.progress-line i{background:linear-gradient(90deg,#ad8dff,#73ebd3)}.hero{background:radial-gradient(circle at 85% 30%,#c19bff50,transparent 36%),linear-gradient(130deg,#302442,#191925);border-color:#bda8de59;border-radius:32px}.hero h1{font-family:var(--serif);font-weight:500;line-height:.95}.hero-symbol{color:#c2a8ef}.stat-number,.profile-stats strong{font-family:var(--serif);color:#80ebd6}
.daily-stack{position:relative;overflow:hidden;min-height:315px;padding:clamp(28px,4.5vw,51px);border:1px solid #dec4f079;border-radius:32px;margin:28px 0 18px;background:radial-gradient(circle at 94% 10%,#72e9d6bf,transparent 31%),radial-gradient(circle at 69% 110%,#ec90bf8c,transparent 48%),linear-gradient(125deg,#a17fdb,#55396e 58%,#282139);box-shadow:0 25px 70px #7a4fb92d}.daily-stack::after{content:"";position:absolute;inset:25% -20% -110% 40%;border-radius:50%;background:#f5d3ff30;filter:blur(42px);pointer-events:none}.daily-stack .eyebrow{color:#f5e9ff;font-size:12px}.daily-stack h2{max-width:730px;color:#fff;font-size:clamp(33px,4.2vw,59px);line-height:1.03;margin:17px 0 23px;text-wrap:balance;text-shadow:0 2px 18px #2b164280}.daily-stack>span:last-of-type{color:#f6eafe;font-weight:600;letter-spacing:.025em}.verse-play{position:absolute;right:31px;bottom:26px;z-index:1;width:52px;height:52px;border:0;border-radius:50%;display:grid;place-items:center;background:#fff;color:#382944;box-shadow:0 8px 20px #35254266}.verse-play svg{width:24px;height:24px}.verse-play:hover{transform:scale(1.07)}
.neon-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.neon-stat{min-height:153px;display:flex;flex-direction:column;justify-content:space-between;padding:22px;border-radius:27px;border:1px solid #ffffff34;overflow:hidden;box-shadow:inset 0 1px #fff3}.neon-stat.violet{background:radial-gradient(circle at 90% 100%,#a77cff9c,transparent 49%),linear-gradient(130deg,#282137,#49356a)}.neon-stat.mint{background:radial-gradient(circle at 92% 98%,#5fe5c8ae,transparent 52%),linear-gradient(130deg,#1e2a31,#22554d)}.neon-stat .eyebrow{color:#eee6fa;font-size:12px}.neon-stat strong{font:500 53px/.82 var(--serif);color:#fff}.neon-stat>span:last-child{font-size:14px;color:#eee8f4}
.insights-grid{display:grid;grid-template-columns:1fr .88fr;gap:16px;margin:18px 0}.insights-grid .card{min-width:0;min-height:340px}.panel-top{display:flex;justify-content:space-between;align-items:baseline;gap:14px}.panel-top h2,.split-panel h2{margin:0}.panel-top>span{font-size:14px;color:#d7cede}.week-bars{height:225px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:clamp(7px,2vw,22px);position:relative;margin-top:27px;padding:12px 4px 0}.bar-lines{position:absolute;inset:10px 0 30px;background:repeating-linear-gradient(to bottom,transparent 0 calc(25% - 1px),#c7aed628 calc(25% - 1px) 25%);pointer-events:none}.bar-day{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;z-index:1}.bar-day i{min-height:0;width:clamp(13px,2.2vw,24px);min-height:5px;border-radius:20px 20px 6px 6px;background:linear-gradient(180deg,#77efd5,#63d8cf55 77%,transparent);box-shadow:0 0 16px #78e8d781}.bar-day:nth-child(even) i{background:linear-gradient(180deg,#ffbed5,#ba83da7a 80%,transparent);box-shadow:0 0 15px #db99ed55}.bar-day small{font-size:12px;color:#c5bbce}.split-panel .small{margin:9px 0 0}.donut{width:min(190px,70%);aspect-ratio:1;border-radius:50%;background:var(--donut);display:grid;place-items:center;margin:12px auto 17px;box-shadow:0 0 30px #ca9dea23}.donut:before{content:"";position:absolute}.donut>div{width:75%;height:75%;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#201d28;box-shadow:inset 0 0 24px #08060c8c}.donut strong{font:500 44px/1 var(--serif)}.donut span{color:#bab0c6;font-size:12px}.split-legend{display:grid;gap:8px}.split-legend span{display:flex;align-items:center;gap:8px;color:#d8d1df;font-size:14px}.split-legend i{width:9px;height:9px;border-radius:50%}.split-legend b{margin-left:auto;color:#fff}
.progress-orb{text-align:center;position:relative;overflow:hidden;min-height:315px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:18px 0 26px;isolation:isolate}.progress-orb h2{position:relative;z-index:1;font-size:clamp(33px,4.2vw,56px);line-height:.98;margin:0 0 70px}.orb{position:absolute;z-index:-1;width:260px;height:190px;bottom:23px;border-radius:50%;background:radial-gradient(circle at 34% 60%,#ffdd8d 5%,transparent 42%),radial-gradient(circle at 65% 45%,#ad8cff 12%,transparent 62%),radial-gradient(circle at 80% 65%,#6de9ce,transparent 56%);filter:blur(36px);opacity:.8}.progress-orb strong{font:500 27px var(--serif);z-index:1}.progress-orb>span{font-size:13px;color:#d3cadc;z-index:1}.next-study{display:flex;justify-content:space-between;align-items:center;gap:22px}.next-study h2{margin:8px 0}.next-study p{margin:0;color:#c8bdcf}.home-actions,.reflect-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:18px 0}.hub-card{text-align:left;display:flex;flex-direction:column;gap:8px;min-height:165px;border:1px solid #cbaee766;border-radius:26px;padding:22px;color:#fff;background:radial-gradient(circle at 93% 4%,#d89cb779,transparent 38%),linear-gradient(135deg,#51365b,#282032)}.hub-card:nth-child(2){background:radial-gradient(circle at 87% 16%,#70dfcc73,transparent 39%),linear-gradient(135deg,#284c50,#24243a)}.hub-card strong{font:500 32px/1 var(--serif)}.hub-card>span:last-child{color:#eee5f5;font-size:14px}.hub-card:hover,.lesson-card:hover,.challenge-card:hover{transform:translateY(-3px);border-color:#e2d0ff}
.lesson-grid,.challenge-grid{gap:14px}.lesson-card,.challenge-card,.challenge-card:nth-child(2n){border-radius:29px;min-height:235px;background:radial-gradient(circle at 80% 25%,#ffdab2a8,transparent 45%),linear-gradient(135deg,#ba7fa2,#583b70 64%,#2c2437);border-color:#e3bedf68}.lesson-card:before,.lesson-card:nth-child(6n+2):before,.lesson-card:nth-child(6n+3):before,.lesson-card:nth-child(6n+4):before,.lesson-card:nth-child(6n+5):before,.lesson-card:nth-child(6n+6):before{background:none}.lesson-card:after{inset:40% 0 0;background:linear-gradient(transparent,#1a1324bb)}.lesson-card:nth-child(4n+2),.challenge-card:nth-child(4n+2){background:radial-gradient(circle at 85% 15%,#8ff4d0aa,transparent 40%),linear-gradient(130deg,#2c7977,#24515f 62%,#26213b)}.lesson-card:nth-child(4n+3),.challenge-card:nth-child(4n+3){background:radial-gradient(circle at 80% 10%,#ffcda1b0,transparent 44%),linear-gradient(130deg,#a76979,#644063 68%,#262239)}.lesson-card:nth-child(4n+4),.challenge-card:nth-child(4n+4){background:radial-gradient(circle at 82% 18%,#d4a6ffc2,transparent 46%),linear-gradient(135deg,#7854b2,#463977 70%,#292239)}.lesson-card h3{font:500 clamp(27px,3vw,39px)/1 var(--serif)}.lesson-card .lesson-meta{color:#fff}.lesson-card p{font-size:14px}.lesson-card footer,.challenge-card footer{color:#f7e6ff}.lesson-card .tag,.challenge-card .tag{background:#1d152c7a;color:#fff;border-color:#ffffff67}.challenge-card h3{font:500 clamp(29px,3vw,39px)/1 var(--serif)}.challenge-card p{color:#fbf5ff}.challenge-glyph{color:#f9eeff8a;font-size:57px}.practice-grid .card{border-radius:28px}.note-preview,.reading-card{background:linear-gradient(155deg,#29243a,#1a1822)}.passage,.bible-verse{font-family:Georgia,serif}.bible-app .bible-page{background:#1b1923;border-color:#c7b7da4d}.bible-controls select{background:#292532;border-color:#c7b7da7a;border-radius:999px;padding:0 16px}.bible-controls{border-radius:25px}.bible-highlight-tools{border:1px solid #bda8df82;background:#302a3eeb;box-shadow:0 10px 35px #100d1c8c}.bible-verse:hover,.bible-verse.selected{background:#ab8dfd36}.bible-verse sup{color:#8cead7}.bible-inline-notes,.bible-inline-notes .bible-study-card{background:#252132;border-color:#aa90d470}.dialog{background:#272230;border:1px solid #c7b3de66;border-radius:30px}.note-field,.dialog input,.dialog textarea,.dialog select,.room-join input{background:#211d2b;border-color:#c7b3de66}.theme-card{background:linear-gradient(145deg,#2b2634,#1a1823)}.theme-swatch.selected{border-color:#8cebd8;box-shadow:0 0 0 2px #8cebd8}.profile-cover{border-radius:29px;background:linear-gradient(135deg,#9a77bf,#2d4151)}.profile-stats{border-color:#bfa9dc36}.mini-choice,.trivia-status,.jeopardy-column h3,.jeopardy-column button,.trivia-choices button{background:#262132;border-color:#baa6d15b}.mini-choice.correct{background:#174a41}.mini-choice.incorrect{background:#4f2a40}
@media(max-width:1024px){#screen{padding:25px 18px calc(125px + env(safe-area-inset-bottom))}.topbar{border-bottom:0}.mobile-brand{font-size:20px}.bottom-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;z-index:45;border:1px solid #d6c0f04d;border-bottom:0;border-radius:22px 22px 0 0;background:#1b1724eb;backdrop-filter:blur(22px);padding:8px 8px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -15px 45px #0905118c}.bottom-nav button{min-width:0;color:#bcb1c9;border-radius:17px;min-height:56px;gap:2px}.bottom-nav button .nav-icon{height:27px;display:grid;place-items:center}.bottom-nav button svg{width:23px;height:23px}.bottom-nav button small{font-size:12px}.bottom-nav button.active{background:#785ca744;color:#a3ffde;box-shadow:inset 0 0 0 1px #c9b2ec4e,0 0 19px #9172d45b;text-shadow:0 0 8px #85f5db}.bottom-nav button.active svg{filter:drop-shadow(0 0 7px #6ee6d3)}.daily-stack{min-height:310px;margin:17px 0 14px;padding:26px 25px 72px}.daily-stack h2{font-size:clamp(34px,10vw,47px)}.verse-play{right:20px;bottom:18px;width:44px;height:44px}.insights-grid{grid-template-columns:1fr}.insights-grid .card{min-height:320px}.progress-orb{min-height:310px}.next-study{display:block}.next-study .primary{margin-top:16px}.lesson-grid{grid-template-columns:1fr}.lesson-card{min-height:226px}.lesson-card h3{font-size:33px}.lesson-card p{font-size:14px}.home-actions,.reflect-links{grid-template-columns:1fr}.hub-card{min-height:140px}.challenge-card{min-height:210px}.toast{bottom:calc(94px + env(safe-area-inset-bottom))}}
@media(max-width:385px){.bottom-nav button small{font-size:11px}.neon-stat{padding:17px;min-height:146px}.neon-stat strong{font-size:46px}.neon-stat>span:last-child{font-size:12px}.daily-stack h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){.verse-play:hover,.hub-card:hover{transform:none}}
.go-deeper{margin:28px 0 12px}
.go-deeper .text-button{min-height:44px;opacity:.85}
:root[data-theme] .lesson-card::before{background:none}
.welcome-action{margin:24px 0}.welcome-action h2{margin:0 0 10px}.welcome-action p{color:#d2c6da}.game-stack{display:grid;gap:0;margin:25px 0 36px;max-width:780px}.game-layer{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;min-height:155px;text-align:left;padding:24px 26px 32px;color:#fff;border:1px solid #fff6;border-radius:30px;background:radial-gradient(circle at 85% 12%,#fbd995b2,transparent 39%),linear-gradient(125deg,#c585a7,#53376e)}.game-layer:nth-child(2){margin-top:-18px;background:radial-gradient(circle at 88% 10%,#cda6ff,transparent 43%),linear-gradient(135deg,#8d63bb,#493868)}.game-layer:nth-child(3){margin-top:-18px;background:radial-gradient(circle at 84% 10%,#90ffdab7,transparent 43%),linear-gradient(125deg,#36998d,#23516b)}.game-layer .eyebrow{color:#fff}.game-layer strong{font:500 clamp(34px,4vw,47px)/1 var(--serif)}.game-layer>span:last-child{color:#f7ecff;font-size:13px}.game-layer:hover,.game-layer:focus-visible{z-index:2;transform:translateY(-3px);outline:2px solid #fff8;outline-offset:2px}

.challenge-glyph svg{width:62px;height:62px;display:block}.mini-progress{color:#f4adca}

/* Phone nav: all 6 tabs on one row. Earlier sizing boosts were removed so the app keeps its native scale. */
@media(max-width:1024px){.bottom-nav{grid-template-columns:repeat(6,minmax(0,1fr))}}

/* Compact phone pass: pull the phone scale back so the header, greeting, verse card, and bottom nav have room. */
@media (max-width:1024px){
  body{font-size:15px}
  .topbar{height:58px;padding:0 14px;gap:8px}
  .mobile-brand{flex:1 1 auto;min-width:0;font-size:16px;gap:8px;overflow:hidden;white-space:nowrap}
  .mobile-brand .brand-mark{width:30px;height:30px;border-radius:9px}
  .account-button{width:38px;height:38px;flex:0 0 38px;font-size:20px}
  .account-button svg{width:20px;height:20px}
  #screen{padding:20px 16px calc(108px + env(safe-area-inset-bottom))}
  h1{font-size:clamp(34px,9vw,42px);line-height:1.04;margin:7px 0 13px}
  h2{font-size:clamp(24px,6.4vw,30px);line-height:1.1}
  h3{font-size:clamp(21px,5.6vw,26px)}
  .eyebrow,.nav-caption,.lesson-meta,.number-label{font-size:10px;letter-spacing:1.6px}
  .lead{font-size:16px;line-height:1.55}
  .small{font-size:12px}
  .card{padding:20px;border-radius:24px}
  .section-head{margin:28px 0 14px}
  .daily-stack{min-height:268px;margin:16px 0 14px;padding:22px 20px 62px;border-radius:26px}
  .daily-stack .eyebrow{font-size:10px}
  .daily-stack h2{font-size:clamp(30px,8.4vw,38px);line-height:1.06;margin:13px 0 17px}
  .verse-play{right:18px;bottom:16px;width:44px;height:44px}
  .verse-play svg{width:20px;height:20px}
  .neon-stats{gap:12px}
  .neon-stat{min-height:132px;padding:18px;border-radius:23px}
  .neon-stat strong{font-size:44px}
  .neon-stat>span:last-child{font-size:13px}
  .insights-grid{gap:12px;margin:14px 0}
  .insights-grid .card{min-height:0}
  .progress-orb{min-height:268px;margin:14px 0 20px}
  .progress-orb h2{font-size:clamp(29px,8vw,36px);margin-bottom:52px}
  .hub-card{min-height:126px;padding:19px;border-radius:23px}
  .hub-card strong{font-size:28px}
  .lesson-card,.challenge-card{min-height:200px}
  .primary,.secondary{min-height:42px;padding:10px 15px}
  .bottom-nav{padding:6px 6px calc(8px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}
  .bottom-nav button{min-height:50px;padding:4px 2px;border-radius:13px;gap:1px}
  .bottom-nav button .nav-icon{height:23px}
  .bottom-nav button svg{width:20px;height:20px}
  .bottom-nav button small{font-size:10.5px;line-height:1;white-space:nowrap;letter-spacing:-.02em}
}
/* Scripture Library results sit directly under the theme buttons and receive focus/scroll on tap. */
.library-results{scroll-margin-top:76px}
.library-results .section-head{margin-top:20px}

/* Share buttons on notes (journal list + study note panel) */
.note-open{display:block;width:100%;background:none;border:0;color:inherit;text-align:left;padding:0;cursor:pointer;font:inherit}
.note-preview .note-share{margin-top:12px}

/* Games sound toggle in the back bar */
.gx-snd{font-size:17px;line-height:1;padding:10px 8px}
.gx-snd-off{opacity:.35;filter:grayscale(1)}
.gx-levelcap{margin:18px 0 0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.gx-levelnote{margin-top:6px}
.gx-leveldone{color:#8ff5d2;font-weight:700}
.gx-lvlrow .gx-level:disabled{opacity:.45;cursor:not-allowed}

/* Tower of Babel */
.gx-babel-hud{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:12px;color:var(--muted);font-size:14px}
.gx-babel-hud strong{color:var(--text)}
.gx-babel-danger-text{color:#ff9db4;font-weight:700}
.gx-babel-stage{position:relative;height:300px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#0d1622,#131a20);overflow:hidden;margin-bottom:18px}
.gx-babel-tower{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);width:120px;display:flex;flex-direction:column-reverse;gap:2px}
.gx-babel-brick{display:block;width:110px;height:22px;border-radius:4px;background:linear-gradient(145deg,#b4632f,#8a4a22);border:1px solid #00000055;box-shadow:inset 0 1px 0 #ffffff2e}
.gx-babel-brick.gx-babel-alt{margin-left:10px}
.gx-babel-piece{position:absolute;left:50%;top:0;margin-left:-55px;width:110px;height:22px;border-radius:4px;background:linear-gradient(145deg,#e0a458,#b4632f);border:1px solid #00000066;box-shadow:0 6px 18px #0009}
.gx-babel-caught{animation:gxBabelCatch .8s ease forwards}
@keyframes gxBabelCatch{30%{transform:translateY(-14px) scale(1.04);opacity:1}100%{transform:translateY(-64px) scale(.85);opacity:0}}
.gx-babel-ground{position:absolute;left:0;right:0;bottom:0;height:10px;background:linear-gradient(180deg,#3a2c1c,#241a10);border-top:1px solid #ffffff22}
.gx-babel-shake{animation:gxBabelShake .45s ease}
@keyframes gxBabelShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(4px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
.gx-babel-danger .gx-babel-tower{animation:gxBabelWobble 1.1s ease-in-out infinite;transform-origin:50% 100%}
@keyframes gxBabelWobble{0%,100%{transform:translateX(-50%) rotate(-1.1deg)}50%{transform:translateX(-50%) rotate(1.1deg)}}
.gx-babel-topple .gx-babel-brick{animation:gxBabelFall .9s ease-in forwards}
@keyframes gxBabelFall{to{transform:translate(var(--x,20px),52px) rotate(var(--r,30deg));opacity:.2}}
.gx-babel-choices button.gx-babel-right{border-color:#3fae7c;background:#14382a}
.gx-babel-choices button.gx-babel-wrong{border-color:#c6506b;background:#3d1a26}
.gx-babel-fb{margin-top:14px}

/* Defend the Faith + Say It Right */
.gx-faith-card{padding:20px}
.gx-faith-hud{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:12px;color:var(--muted);font-size:14px}
.gx-faith-hud strong{color:var(--text)}
.gx-faith-prompt{font-family:Georgia,serif;font-size:clamp(1.25rem,3vw,1.7rem);line-height:1.35;margin:10px 0 14px;padding:16px 18px;border-left:4px solid #d9b45b;background:#ffffff08;border-radius:0 16px 16px 0}
.gx-faith-choices button.gx-faith-right{border-color:#3fae7c;background:#14382a}
.gx-faith-choices button.gx-faith-wrong{border-color:#c6506b;background:#3d1a26}
.gx-faith-feedback{margin-top:16px;border:1px solid var(--line);border-radius:16px;padding:16px;background:#ffffff07}
.gx-faith-feedback.right{border-color:#3fae7c77}
.gx-faith-feedback.wrong{border-color:#c6506b77}
.gx-faith-feedback h3{margin:0 0 8px}
.gx-say{margin:14px 0;padding:14px;border-radius:14px;background:#d9b45b14;border:1px solid #d9b45b44}
.gx-say span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:800;margin-bottom:6px}
.gx-say strong{font-family:Georgia,serif;font-size:1.08rem;line-height:1.4}
.side-quote .side-install{display:block;margin-top:12px;font-size:13px}
.friend-row{align-items:center}
.friend-open{display:block;flex:1;min-width:0;text-align:left;background:none;border:0;color:inherit;padding:0;cursor:pointer}
.friend-open strong{font-size:1.05rem}
.friend-profile-avatar{width:72px;height:72px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#2a2438;font-size:28px}
.friend-profile-avatar img,.profile-cover img,.profile-avatar img{max-width:100%;object-fit:cover}

/* Palettes for every picker id. Deep teal is the default. The glass rules above
   hardcode a purple look; the rules below repaint those surfaces from the
   selected palette. The app is dark-only, so each palette keeps light text. */
:root,:root[data-theme="teal"]{--bg:#071614;--surface:#102422;--surface2:#163330;--line:#9ee8dc2e;--text:#f4fffc;--muted:#c5e4de;--gold:#5eead4;--teal:#5eead4;--on-accent:#04221f;--nav-idle:#d3ebe6;--ink-soft:#e7f7f4;--border:#7ee8d855;--app-glow:#1a9e9066;--app-glow-2:#0c4f4a55;--app-sidebar:#071816e8;--app-nav:#0c201ee8;--app-active:#14564f;--app-active-border:#3dbaa8;--app-card:#12302d;--app-card-end:#0c221f;--app-hero:#14564e;--app-hero-end:#0e2826;--app-hero-glow:#7ef3e488;--app-reading:#164640;--app-reading-end:#0e2826;--app-lesson:#14524c;--app-bible:#0e2422;--app-input:#0a1c1a;--chart-warm:#e7c98a;--chart-cool:#8fd0c4}
:root[data-theme="grey"]{--bg:#141518;--surface:#222428;--surface2:#2c2f34;--line:#d5dbe22e;--text:#f7f8fa;--muted:#c9cdd4;--gold:#e7eaef;--teal:#e7eaef;--on-accent:#14161a;--nav-idle:#d5d8df;--ink-soft:#e6e8ec;--border:#d5dbe255;--app-glow:#8b93a055;--app-glow-2:#4a516055;--app-sidebar:#121316e8;--app-nav:#1c1e22ee;--app-active:#3a3f48;--app-active-border:#8b939f;--app-card:#26292e;--app-card-end:#1b1d21;--app-hero:#3a3e45;--app-hero-end:#1c1f24;--app-hero-glow:#c5ccd688;--app-reading:#32363d;--app-reading-end:#1c1f24;--app-lesson:#343840;--app-bible:#1a1c20;--app-input:#121316;--chart-warm:#f0d7a8;--chart-cool:#b7c0cc}
:root[data-theme="navy"]{--bg:#07101c;--surface:#102038;--surface2:#17304f;--line:#9ecbff2e;--text:#f4f8ff;--muted:#c5d6ee;--gold:#9ecbff;--teal:#9ecbff;--on-accent:#061018;--nav-idle:#d4e4f8;--ink-soft:#e7f0ff;--border:#9ecbff55;--app-glow:#2d6cb86b;--app-glow-2:#14325c55;--app-sidebar:#07101ce8;--app-nav:#0c1830ee;--app-active:#1b4c86;--app-active-border:#6aa6e6;--app-card:#142848;--app-card-end:#0c1a30;--app-hero:#1e4574;--app-hero-end:#0e2244;--app-hero-glow:#9ecbff88;--app-reading:#1a3d68;--app-reading-end:#0e2244;--app-lesson:#1a4478;--app-bible:#0c1c34;--app-input:#091628;--chart-warm:#f0d7a4;--chart-cool:#7eb6ff}
:root[data-theme="green"]{--bg:#07140e;--surface:#102418;--surface2:#173222;--line:#8ee8b42e;--text:#f3fff7;--muted:#c6e6d4;--gold:#8ee8b4;--teal:#8ee8b4;--on-accent:#04140c;--nav-idle:#d5f3e3;--ink-soft:#e7f8ee;--border:#8ee8b455;--app-glow:#2f9a5c66;--app-glow-2:#14523455;--app-sidebar:#07140ee8;--app-nav:#0c1c14ee;--app-active:#1d6a40;--app-active-border:#5dcc8e;--app-card:#14301e;--app-card-end:#0c1e14;--app-hero:#1d5a38;--app-hero-end:#0e2c1c;--app-hero-glow:#8ee8b488;--app-reading:#1a4e32;--app-reading-end:#0e2c1c;--app-lesson:#1b5836;--app-bible:#0e2216;--app-input:#09180f;--chart-warm:#e7d59a;--chart-cool:#b7e7c8}
:root[data-theme="black"]{--bg:#050505;--surface:#141414;--surface2:#1c1c1c;--line:#ffffff24;--text:#f7f7f7;--muted:#cfcfcf;--gold:#f3f3f3;--teal:#f3f3f3;--on-accent:#111111;--nav-idle:#d8d8d8;--ink-soft:#ececec;--border:#ffffff55;--app-glow:#6a6a6a44;--app-glow-2:#2a2a2a55;--app-sidebar:#050505ef;--app-nav:#101010f2;--app-active:#2e2e2e;--app-active-border:#8a8a8a;--app-card:#181818;--app-card-end:#101010;--app-hero:#2a2a2a;--app-hero-end:#101010;--app-hero-glow:#ffffff55;--app-reading:#242424;--app-reading-end:#121212;--app-lesson:#222222;--app-bible:#121212;--app-input:#0c0c0c;--chart-warm:#d9d9d9;--chart-cool:#9a9a9a}
:root[data-theme="brown"]{--bg:#140e0a;--surface:#261910;--surface2:#342216;--line:#f3c0972e;--text:#fff8f2;--muted:#ecd4c2;--gold:#f3c097;--teal:#f3c097;--on-accent:#1a0e08;--nav-idle:#f0dccb;--ink-soft:#fff1e6;--border:#f3c09755;--app-glow:#a86b3c66;--app-glow-2:#5a321855;--app-sidebar:#140e0ae8;--app-nav:#1c120cee;--app-active:#6a4328;--app-active-border:#d09a6a;--app-card:#2c1c12;--app-card-end:#1c120c;--app-hero:#5a3a24;--app-hero-end:#2a1a10;--app-hero-glow:#f3c09788;--app-reading:#4e3422;--app-reading-end:#2a1a10;--app-lesson:#553826;--app-bible:#24160e;--app-input:#160e0a;--chart-warm:#f6d7b0;--chart-cool:#c4a090}

:root[data-theme] .lesson-card:nth-child(n)::before{background:none}
.sidebar{background:var(--app-sidebar);border-right-color:var(--line)}
.topbar{border-color:var(--line)}
.brand-mark{background:transparent;color:var(--on-accent);box-shadow:none}
.nav-caption,.eyebrow,.lesson-meta,.number-label,.stat-number,.profile-stats strong,.hero-symbol,.text-button,.dialog-links button{color:var(--accent,var(--teal))}
.side-nav button{color:var(--nav-idle)}
.side-nav button.active,.side-nav button:hover{background:color-mix(in srgb,var(--teal) 18%,transparent);border-color:var(--border);color:var(--text);box-shadow:inset 3px 0 var(--teal),0 0 24px color-mix(in srgb,var(--teal) 18%,transparent)}
.side-nav button.active .nav-icon{color:var(--teal);filter:drop-shadow(0 0 7px var(--teal))}
.side-quote{background:linear-gradient(150deg,var(--surface2),var(--surface));border-color:var(--line)}
.top-label,.lead,.welcome-action p,.next-study p,.panel-top>span,.progress-orb>span,.bar-day small,.donut span,.split-legend span{color:var(--muted)}
.split-legend b,.daily-stack h2,.neon-stat strong{color:var(--text)}
.account-button{border-color:var(--border);background:var(--surface2);color:var(--teal)}
.card{background:linear-gradient(145deg,color-mix(in srgb,var(--text) 5%,transparent),color-mix(in srgb,var(--text) 2%,transparent)),linear-gradient(140deg,var(--app-card),var(--app-card-end));border-color:var(--line);box-shadow:inset 0 1px #ffffff14,0 20px 55px #00000055}
.primary,.primary:hover,.filter.active,.toast{background:var(--teal);border-color:var(--teal);color:var(--on-accent)}
.primary:hover{filter:brightness(1.06)}
.secondary{background:var(--surface2);border-color:var(--border);color:var(--text)}
.secondary:hover{border-color:var(--teal)}
.filter{background:var(--surface2);border-color:var(--line);color:var(--text)}
.tag{border-color:var(--border);color:var(--teal);background:color-mix(in srgb,var(--bg) 35%,transparent)}
.progress-line i,.mini-progress-line i,.bible-log-progressbar i,.ach-bar i{background:var(--teal);box-shadow:none}
.hero{background:radial-gradient(circle at 85% 30%,var(--app-hero-glow),transparent 36%),linear-gradient(130deg,var(--app-hero),var(--app-hero-end));border-color:var(--border)}
.daily-stack{border-color:var(--border);background:radial-gradient(circle at 94% 10%,var(--app-hero-glow),transparent 34%),linear-gradient(125deg,var(--app-hero),var(--app-card) 58%,var(--bg));box-shadow:0 25px 70px color-mix(in srgb,var(--bg) 45%,transparent)}
.daily-stack::after{background:color-mix(in srgb,var(--teal) 28%,transparent)}
.daily-stack .eyebrow,.daily-stack>span:last-of-type,.neon-stat .eyebrow,.neon-stat>span:last-child{color:var(--ink-soft)}
.verse-play{background:var(--teal);color:var(--on-accent);box-shadow:0 8px 20px #0006}
.neon-stat.violet{background:radial-gradient(circle at 90% 100%,var(--app-hero-glow),transparent 49%),linear-gradient(130deg,var(--surface2),var(--app-hero))}
.neon-stat.mint{background:radial-gradient(circle at 92% 98%,var(--app-hero-glow),transparent 52%),linear-gradient(130deg,var(--app-card),var(--app-active))}
.bar-lines{background:repeating-linear-gradient(to bottom,transparent 0 calc(25% - 1px),color-mix(in srgb,var(--teal) 28%,transparent) calc(25% - 1px) 25%)}
.bar-day i,.bar-day:nth-child(even) i{background:linear-gradient(180deg,var(--teal),color-mix(in srgb,var(--teal) 30%,transparent) 77%,transparent);box-shadow:0 0 16px color-mix(in srgb,var(--teal) 40%,transparent)}
.donut{box-shadow:0 0 30px color-mix(in srgb,var(--teal) 20%,transparent)}
.donut>div{background:var(--surface);box-shadow:inset 0 0 24px #0006}
.orb{background:radial-gradient(circle at 34% 60%,var(--chart-warm) 5%,transparent 42%),radial-gradient(circle at 65% 45%,var(--teal) 12%,transparent 62%),radial-gradient(circle at 80% 65%,var(--chart-cool),transparent 56%)}
.hub-card,.hub-card:nth-child(2){color:var(--text);border-color:var(--border);background:radial-gradient(circle at 90% 8%,var(--app-hero-glow),transparent 40%),linear-gradient(135deg,var(--app-hero),var(--app-card-end))}
.hub-card:nth-child(2){background:radial-gradient(circle at 88% 16%,var(--app-hero-glow),transparent 42%),linear-gradient(135deg,var(--app-active),var(--surface))}
.hub-card>span:last-child{color:var(--ink-soft)}
.hub-card:hover,.lesson-card:hover,.challenge-card:hover{border-color:var(--teal)}
.lesson-card,.challenge-card,.challenge-card:nth-child(2n),.lesson-card:nth-child(4n+2),.challenge-card:nth-child(4n+2),.lesson-card:nth-child(4n+3),.challenge-card:nth-child(4n+3),.lesson-card:nth-child(4n+4),.challenge-card:nth-child(4n+4){background:radial-gradient(circle at 82% 18%,var(--app-hero-glow),transparent 46%),linear-gradient(135deg,var(--app-hero),var(--app-card) 64%,var(--app-card-end));border-color:var(--border);color:var(--text)}
.lesson-card:nth-child(4n+2),.challenge-card:nth-child(4n+2){background:radial-gradient(circle at 85% 15%,var(--app-hero-glow),transparent 42%),linear-gradient(130deg,var(--app-active),var(--surface2) 62%,var(--bg))}
.lesson-card:nth-child(4n+3),.challenge-card:nth-child(4n+3){background:radial-gradient(circle at 80% 10%,color-mix(in srgb,var(--chart-warm) 70%,transparent),transparent 44%),linear-gradient(130deg,var(--app-reading),var(--surface) 68%,var(--bg))}
.lesson-card:nth-child(4n+4),.challenge-card:nth-child(4n+4){background:radial-gradient(circle at 82% 18%,var(--app-hero-glow),transparent 46%),linear-gradient(135deg,var(--surface2),var(--app-hero) 70%,var(--app-card-end))}
.lesson-card::after{background:linear-gradient(transparent,color-mix(in srgb,var(--bg) 82%,transparent))}
.lesson-card .lesson-meta,.lesson-card h3,.challenge-card h3,.game-layer,.game-layer .eyebrow{color:var(--text)}
.lesson-card p,.challenge-card p,.lesson-card footer,.challenge-card footer,.game-layer>span:last-child{color:var(--ink-soft)}
.lesson-card .tag,.challenge-card .tag{background:color-mix(in srgb,var(--bg) 55%,transparent);color:var(--text);border-color:color-mix(in srgb,var(--text) 45%,transparent)}
.challenge-glyph{color:color-mix(in srgb,var(--text) 70%,transparent)}
.note-preview,.reading-card{background:linear-gradient(155deg,var(--surface2),var(--app-card-end));border-color:var(--line)}
.passage,.bible-verse,.study-copy,.reflection-list{color:var(--ink-soft)}
.bible-app .bible-page,.bible-page{background:var(--app-bible);border-color:var(--line)}
.bible-controls select,.note-field,.dialog input,.dialog textarea,.dialog select,.room-join input,.bible-saved-list button,.bible-study-card,.match-label select,.challenge-choice,.drag-chip,.drag-bucket{background:var(--app-input);border-color:var(--border);color:var(--text)}
.bible-highlight-tools{border-color:var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 10px 35px #0008}
.bible-verse:hover,.bible-verse.selected{background:color-mix(in srgb,var(--teal) 28%,transparent)}
.bible-verse sup,.bible-annotation,.bible-edition,.bible-controls [data-bible=notes]{color:var(--teal)}
.bible-edition,.bible-study-links button{border-color:var(--border);background:var(--app-active);color:var(--text)}
.bible-inline-notes,.bible-inline-notes .bible-study-card{background:var(--surface);border-color:var(--border)}
.dialog{background:var(--surface);border-color:var(--border)}
.dialog p,.dialog label{color:var(--ink-soft)}
.denom-field{margin:0 0 16px}
.denom-choices{display:grid;gap:8px;margin-top:10px}
.denom-choice{width:100%;min-height:44px;text-align:left;padding:10px 14px}
.denom-actions{display:flex;gap:10px;margin-top:8px}
.denom-actions button{flex:1;min-height:44px}
.profile-denomination{margin:8px 0 0;font-weight:700;color:var(--teal)}
.theme-card{background:linear-gradient(145deg,var(--surface2),var(--surface))}
.theme-swatch.selected,.theme-swatch[aria-pressed="true"]{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal)}
.tap-vibration{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0;background:linear-gradient(145deg,var(--surface2),var(--surface))}
.tap-vibration-copy{min-width:0}
.tap-vibration h2{margin:6px 0 4px;font-size:22px}
.tap-vibration p{margin:0}
.tap-vibration-toggle{flex:none;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:6px 14px 6px 6px;border-radius:999px;border:1px solid var(--border,var(--line));background:var(--surface2);color:var(--text)}
.tap-vibration-knob{width:44px;height:26px;border-radius:999px;background:color-mix(in srgb,var(--muted) 45%,var(--surface));position:relative;display:block}
.tap-vibration-knob::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--text);transition:transform .16s ease}
.tap-vibration-toggle[aria-checked="true"],.tap-vibration-toggle[aria-pressed="true"]{border-color:var(--teal)}
.tap-vibration-toggle[aria-checked="true"] .tap-vibration-knob,.tap-vibration-toggle[aria-pressed="true"] .tap-vibration-knob{background:var(--teal)}
.tap-vibration-toggle[aria-checked="true"] .tap-vibration-knob::after,.tap-vibration-toggle[aria-pressed="true"] .tap-vibration-knob::after{transform:translateX(18px);background:var(--on-accent,#04221f)}
.tap-vibration-state{font-size:13px;font-weight:700;min-width:1.6em;text-align:left}
.tap-vibration-toggle:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.profile-cover{background:linear-gradient(135deg,var(--app-hero),var(--app-hero-end))}
.profile-avatar,.friend-profile-avatar{background:var(--app-active);color:var(--text)}
.profile-stats{border-color:var(--line)}
.mini-choice,.trivia-status,.jeopardy-column h3,.jeopardy-column button,.trivia-choices button,.gx-jcol h3,.gx-jcell,.gx-choices button{background:var(--surface);border-color:var(--border);color:var(--text)}
.jeopardy-column button,.gx-jcell,.trivia-status strong,.room-code{color:var(--teal)}
.mini-choice:hover:not(:disabled),.mini-choice:focus-visible,.jeopardy-column button:not(:disabled):hover,.trivia-choices button:not(:disabled):hover,.gx-jcell:not(:disabled):hover,.gx-choices button:not(:disabled):hover{border-color:var(--teal);background:var(--app-active);outline-color:var(--teal)}
.mini-choice.correct{background:#145244;border-color:#3dba8c;color:var(--text)}
.mini-choice.incorrect{background:#4a242c;border-color:#ef8e9b;color:var(--text)}
.mini-feedback{border-color:var(--border);background:var(--app-active)}
.mini-feedback.incorrect{background:#4a242c;border-color:#ef8e9b66}
.quiz-result,.challenge-results{border-color:var(--border);background:var(--surface)}
.game-layer,.game-layer:nth-child(2),.game-layer:nth-child(3){border-color:color-mix(in srgb,var(--text) 28%,transparent);background:radial-gradient(circle at 86% 10%,var(--app-hero-glow),transparent 42%),linear-gradient(125deg,var(--app-hero),var(--app-card-end))}
.game-layer:nth-child(2){background:radial-gradient(circle at 88% 10%,var(--app-hero-glow),transparent 43%),linear-gradient(135deg,var(--app-active),var(--surface))}
.game-layer:nth-child(3){background:radial-gradient(circle at 84% 10%,color-mix(in srgb,var(--chart-warm) 75%,transparent),transparent 43%),linear-gradient(125deg,var(--app-reading),var(--bg))}
.bottom-nav{background:var(--app-nav);border-color:var(--border);box-shadow:0 -15px 45px #0008}
.bottom-nav button{color:var(--nav-idle)}
.bottom-nav button.active{background:color-mix(in srgb,var(--teal) 24%,transparent);color:var(--teal);box-shadow:inset 0 0 0 1px var(--border),0 0 19px color-mix(in srgb,var(--teal) 32%,transparent);text-shadow:none}
.bottom-nav button.active svg{filter:drop-shadow(0 0 7px var(--teal))}
.gx-hub-jeopardy,.gx-hub-millionaire,.gx-hub-feud,.gx-hub-sound,.gx-hub-defend,.gx-hub-doctrine{border-color:var(--border)}
.gx-hub-jeopardy .tag,.gx-hub-millionaire .tag,.gx-hub-feud .tag,.gx-hub-sound .tag,.gx-hub-defend .tag,.gx-hub-doctrine .tag{border-color:var(--border);color:var(--teal)}
.gx-level.active,.gx-seat.active,.gx-rung.now{border-color:var(--teal);color:var(--text);box-shadow:0 0 0 1px color-mix(in srgb,var(--teal) 45%,transparent)}
.gx-seat.pc strong,.gx-mchoices button b,.gx-rung.haven strong,.gx-slot b{color:var(--teal)}
.gx-choices button,.gx-jcell{color:var(--text)}
.gx-clock-fill{background:linear-gradient(90deg,var(--chart-cool),var(--teal))}
.gx-buzz{background:var(--app-active);color:var(--text);box-shadow:none}
.friend-chip,.word-chip{border-color:var(--border);background:color-mix(in srgb,var(--teal) 14%,transparent);color:var(--text)}
.friend-note-new,.ach-card.ach-unlocked,.ach-pop{border-color:var(--teal);outline-color:var(--teal)}
.ach-pop{background:linear-gradient(135deg,var(--surface2),var(--surface));color:var(--text)}
.ach-pop-body small,.ach-points,.ach-pop-points,.gx-roombar-win{color:var(--teal)}
#gx-roombar{background:var(--surface);color:var(--text);border-color:var(--teal)}
#gx-roombar .gx-seat.active{outline-color:var(--teal)}
.msg-mine .msg-bubble{background:var(--app-active);color:var(--text)}
.bible-log-btn{background:var(--surface2);border-color:var(--border);color:var(--text)}
.bible-log-btn.bible-logged{background:var(--app-active);border-color:var(--border);color:var(--text)}
.bible-log-btn:hover,.bible-log-btn:focus-visible{border-color:var(--teal);outline-color:var(--teal)}
.drag-chip strong,.drag-placed{color:var(--teal)}
.drag-chip:hover,.drag-chip:focus-visible,.drag-bucket.over,.challenge-choice:hover,.challenge-choice:has(input:checked){border-color:var(--teal);outline-color:var(--teal);background:var(--app-active)}
.drag-placed{background:var(--app-active);border-color:var(--border)}
.gx-say,.gx-faith-prompt{border-color:var(--border);background:color-mix(in srgb,var(--teal) 10%,transparent)}
.gx-faith-prompt{border-left-color:var(--teal)}
label[for="friends-name"],label[for="friends-add-code"]{display:block;font-weight:700;margin:0 0 6px}
.subject-caption{margin:16px 0 0;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.subject-filters{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 10px}
.subject-filters .filter{display:inline-flex;align-items:center;gap:8px}
.subject-count{font-size:11px;font-weight:800;letter-spacing:0;line-height:1;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,currentColor 18%,transparent)}
.subject-block{margin-top:6px}
.subject-head{align-items:baseline;flex-wrap:wrap}
.subject-blurb{margin:0 0 14px}
.subject-kind{margin:2px 0 12px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.top-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.music-toggle{width:44px;height:44px;flex:0 0 44px;border-radius:50%;border:1px solid var(--border);background:var(--surface2);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;padding:0}
.music-toggle svg{width:22px;height:22px}
.music-toggle .music-icon-on{display:none}
.music-toggle[aria-pressed="true"]{color:var(--teal);border-color:var(--teal);background:color-mix(in srgb,var(--teal) 16%,var(--surface2))}
.music-toggle[aria-pressed="true"] .music-icon-on{display:block}
.music-toggle[aria-pressed="true"] .music-icon-off{display:none}
.music-toggle:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
@media(max-width:1024px){
  .top-actions{gap:6px}
  .music-toggle{width:44px;height:44px;flex:0 0 44px}
  .music-toggle svg{width:20px;height:20px}
}
@media(max-width:720px){
  .subject-filters{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:8px;margin-right:-16px;padding-right:16px;scrollbar-width:none;max-width:calc(100% + 16px)}
  .subject-filters::-webkit-scrollbar{display:none}
  .subject-head h2{font-size:clamp(26px,7vw,36px)}
}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#learn-one-idea{scroll-margin-top:16px}
#learn-one-idea .subject-blurb{margin-top:0}
.backup-card{margin:18px 0}
.backup-card h2{margin:8px 0}
.backup-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.backup-actions .primary,.backup-actions .secondary{min-height:44px}
.backup-file{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.bible-offline{margin:0 0 18px}
.bible-offline h3{margin:8px 0}
.bible-offline-bar{height:12px;border-radius:999px;background:color-mix(in srgb,var(--text) 18%,transparent);overflow:hidden;margin:12px 0}
.bible-offline-bar i{display:block;height:100%;width:0;background:var(--teal);border-radius:inherit}
.bible-offline .primary{min-height:44px}
.daily-stack.orthodox-day{min-height:0;padding-bottom:28px}
.daily-stack.orthodox-day h2{font-size:clamp(26px,3.4vw,42px);line-height:1.12;margin:12px 0 8px;max-width:18em}
.orthodox-note{color:var(--ink-soft,var(--muted));line-height:1.45}
.orthodox-readings{display:grid;gap:8px}
.orthodox-reading{min-height:44px;width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left}
.orthodox-reading .eyebrow{display:block;margin-bottom:2px}
.prayer-rope,.prayer-rule{margin:0 0 16px}
.rope-sizes{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.rope-size{min-height:44px;min-width:44px;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface2);color:var(--text);font-weight:700}
.rope-size.active,.rope-size[aria-pressed="true"]{background:var(--teal);color:var(--on-accent,#04221f);border-color:var(--teal)}
.rope-custom{display:grid;gap:6px;margin:8px 0 12px;font-size:13px;font-weight:700;color:var(--muted)}
.rope-custom input{min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--app-input,var(--surface));color:var(--text);padding:8px 12px}
.rope-tap{width:100%;min-height:180px;margin:8px 0 14px;padding:22px 18px;border-radius:28px;border:2px solid var(--teal);background:radial-gradient(circle at 50% 0%,var(--app-hero-glow,transparent),transparent 55%),var(--surface2);color:var(--text);display:grid;gap:8px;justify-items:center;text-align:center}
.rope-tap.rope-complete{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 18%,var(--surface2))}
.rope-prayer{font-family:var(--serif,Georgia,serif);font-size:clamp(22px,4vw,32px);line-height:1.25;max-width:16em}
.rope-count{font-size:clamp(42px,8vw,64px);line-height:1;letter-spacing:-.03em}
.rope-count small{font-size:.45em;color:var(--muted);font-weight:650}
.rope-hint{color:var(--muted);font-size:14px}
.rope-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rope-stats div{border:1px solid var(--line);border-radius:16px;padding:12px}
.rope-stats strong{display:block;font-size:28px}
.rope-stats small,.rope-wake{color:var(--muted)}
.rope-tap:focus-visible,.rope-size:focus-visible,.orthodox-reading:focus-visible,.backup-actions button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.rule-progress{font-weight:700}
.rule-list{display:grid;gap:14px}
.rule-row{border-top:1px solid var(--line);padding-top:14px}
.rule-row h3{margin:8px 0 4px}
.rule-top{display:flex;flex-wrap:wrap;gap:10px 18px}
.rule-include,.rule-done{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:700}
.rule-include input,.rule-done input{width:22px;height:22px;accent-color:var(--teal)}
.rule-row .secondary{min-height:44px}
.rule-group{margin:12px 0 0;font-size:1.05rem;color:var(--muted)}
.rule-off{opacity:.72}
.prayer-text{margin-top:12px;font-family:var(--serif,Georgia,serif);font-size:clamp(18px,2.4vw,22px);line-height:1.65;color:var(--text)}
.prayer-text p{margin:0 0 12px}
.prayer-rubric{font-family:var(--sans,Outfit,system-ui,sans-serif);font-size:14px;font-style:italic;color:var(--muted)}
.prayer-source{font-size:13px;color:var(--muted);line-height:1.5}
.prayer-source cite{font-style:italic}

/* Light and sepia sit beside the six dark palettes. Text, muted copy, and accents stay at least 4.5:1 on their backgrounds. */
:root[data-theme="light"]{color-scheme:light;--bg:#f7f4ee;--surface:#fffdf8;--surface2:#efeae2;--line:#1b191426;--text:#1b1914;--muted:#3e382f;--gold:#7a4e0c;--teal:#0b5e52;--on-accent:#f7fffc;--nav-idle:#3e382f;--ink-soft:#241f18;--border:#1b191455;--app-glow:#0b5e5222;--app-glow-2:#efeae2;--app-sidebar:#f7f4eee8;--app-nav:#fffdf8f2;--app-active:#d7efe9;--app-active-border:#0b5e52;--app-card:#fffdf8;--app-card-end:#efeae2;--app-hero:#e5f3ef;--app-hero-end:#f7f4ee;--app-hero-glow:#0b5e5233;--app-reading:#efeae2;--app-reading-end:#f7f4ee;--app-lesson:#e7f3f0;--app-bible:#fffdf8;--app-input:#ffffff;--chart-warm:#7a4e0c;--chart-cool:#0b5e52}
:root[data-theme="sepia"]{color-scheme:light;--bg:#f4e6cf;--surface:#fbf3e4;--surface2:#ead9b8;--line:#2a1c1026;--text:#2a1c10;--muted:#5c4632;--gold:#6a3410;--teal:#6a3410;--on-accent:#fff8ee;--nav-idle:#5c4632;--ink-soft:#2a1c10;--border:#2a1c1055;--app-glow:#6a341022;--app-glow-2:#ead9b8;--app-sidebar:#f4e6cfe8;--app-nav:#fbf3e4f2;--app-active:#e4cba3;--app-active-border:#6a3410;--app-card:#fbf3e4;--app-card-end:#ead9b8;--app-hero:#f0ddc0;--app-hero-end:#f4e6cf;--app-hero-glow:#6a341033;--app-reading:#ead9b8;--app-reading-end:#f4e6cf;--app-lesson:#f0ddc0;--app-bible:#fbf3e4;--app-input:#fffaf1;--chart-warm:#6a3410;--chart-cool:#8a5a32}
:root[data-theme="light"] .mini-choice.correct,:root[data-theme="sepia"] .mini-choice.correct,:root[data-theme="light"] .mini-choice.incorrect,:root[data-theme="sepia"] .mini-choice.incorrect,:root[data-theme="light"] .mini-feedback.incorrect,:root[data-theme="sepia"] .mini-feedback.incorrect{color:#fff8f2}
:root[data-theme="light"] .card,:root[data-theme="sepia"] .card{box-shadow:inset 0 1px #fff,0 12px 32px #1b191414}
.bible-verse.bible-speaking{outline:2px solid var(--teal);background:color-mix(in srgb,var(--teal) 22%,transparent)}
.bible-saved-list{max-height:280px;overflow:auto}
.bible-highlight-tools .secondary{min-height:44px}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0 18px}
.plan-card{display:grid;gap:8px;text-align:left;min-height:44px;padding:16px;border-radius:24px;border:1px solid var(--line);background:linear-gradient(145deg,var(--app-card),var(--app-card-end));color:var(--text)}
.plan-card strong{font-family:var(--serif,Georgia,serif);font-size:1.35rem;font-weight:600}
.plan-status,.plan-progress{color:var(--muted);font-weight:700}
.plan-readings,.stasis-list{display:grid;gap:8px;margin:12px 0}
.plan-reading{min-height:44px;width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;border-radius:16px;border:1px solid var(--line);background:var(--surface2);color:var(--text);padding:10px 14px}
.plan-actions,.home-tool-links,.marks-tools,.search-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}
.plan-actions .primary,.plan-actions .secondary,.home-tool-links .secondary,.search-form .primary,.marks-tools .secondary{min-height:44px}
.search-form input,.marks-tools input{flex:1;min-width:180px;min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--app-input);color:var(--text);padding:8px 12px}
.search-hit{display:grid;gap:4px;width:100%;text-align:left;min-height:44px;margin:0 0 8px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--text)}
.search-hit p,.search-hit span{color:var(--muted)}
.review-choices{display:grid;gap:10px}
.review-choice{min-height:44px;text-align:left;border-radius:16px;border:1px solid var(--border);background:var(--surface2);color:var(--text);padding:12px 14px}
.kathisma{margin:0 0 12px}
.kathisma-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.kathisma-today{outline:2px solid var(--teal)}
.home-tools{margin-top:8px}
.home-tools h2{margin:8px 0}
.bible-note-filters{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.bible-note-filters .filter{min-height:44px}
.games-front{display:grid;grid-template-columns:1fr;gap:14px;margin:8px 0 28px}
.games-front .challenge-card{min-height:168px;width:100%}
.games-front .challenge-card h3{font-size:clamp(26px,7vw,34px);line-height:1.1}
.games-front .challenge-card,.lang-toggle button,.moment-card button,.story-card,.story-actions button,.verse-mail,.study-entry .secondary,.study-verse-row input{min-height:44px}
@media(min-width:900px){.games-front{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lang-toggle{display:flex;flex-wrap:wrap;gap:8px}
.lang-toggle button.selected{background:var(--teal);color:var(--on-accent,#04221f);border-color:var(--teal)}
.moment-card{margin:0 0 16px}
.moment-verse{font-family:var(--serif,Georgia,serif);font-size:clamp(22px,4vw,30px);line-height:1.35;margin:8px 0}
.moment-prayer{font-size:1.05rem;line-height:1.5}
.story-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:720px){.story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.story-card{display:grid;gap:10px;text-align:left;color:var(--text);padding:10px;overflow:hidden}
.story-card h2{margin:0;color:var(--text);font-size:clamp(22px,5.2vw,28px);line-height:1.15}
.story-card>span{color:var(--muted);font-weight:700}
.story-cover,.story-hero{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center;border-radius:18px;display:block;background:var(--surface2)}
.story-hero{margin:8px 0 14px;border-radius:22px}
.story-title{font-size:clamp(32px,6vw,48px);line-height:1.1}
.story-body{font-size:clamp(22px,3.4vw,28px);line-height:1.45}
.story-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.verse-mail-list{display:grid;gap:10px}
.verse-mail{display:grid;gap:6px;width:100%;text-align:left;padding:14px;border-radius:18px;border:1px solid var(--line);background:var(--surface);color:var(--text)}
.verse-mail-new{outline:2px solid var(--teal)}
.verse-send-text{font-family:var(--serif,Georgia,serif);font-size:1.25rem;line-height:1.4}
.study-entry{margin:0 0 12px}
.study-verse-row{display:flex;flex-wrap:wrap;gap:8px}
.study-verse-row label{display:grid;gap:4px;font-size:13px;font-weight:700}
.study-verse-row input{width:88px;border-radius:12px;border:1px solid var(--line);background:var(--app-input,var(--surface));color:var(--text);padding:8px 10px}
.bible-translation-note{color:var(--muted);margin:6px 0}
.bible-subscription{margin:12px 2px 4px;color:var(--muted);font-style:italic;font-size:0.95rem;line-height:1.45}
.bible-verse-heading{margin:14px 2px 0;color:var(--muted);font-style:italic;font-size:0.92rem;line-height:1.35}
.bible-controls{display:grid;gap:10px}
.bible-controls select{min-height:44px;font-size:16px;min-width:0}

.memory-grid,.memory-actions,.verse-mail-wrap{display:grid;gap:10px}
.memory-card-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.memory-line{font-family:var(--serif);font-size:1.35rem;line-height:1.8}
.memory-blank,.memory-input{display:inline-block;min-width:4.2rem;margin:0 3px;padding:0 4px;border:0;border-bottom:2px solid var(--teal);background:transparent;color:var(--text);font:inherit;text-align:center}
.memory-input{width:6.5rem}
.memory-input.memory-wrong{border-bottom-color:var(--gold)}
.memory-peek{background:color-mix(in srgb, var(--gold) 28%, transparent);border-radius:6px}
.memory-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:color-mix(in srgb, var(--gold) 32%, transparent);color:var(--text);font-size:.85rem}
.memory-pick{text-align:left}
.study-notebook{display:grid;gap:14px}
.study-hero,.study-composer,.study-entry,.study-empty,.study-picker{background:linear-gradient(145deg,color-mix(in srgb,var(--text) 7%,transparent),color-mix(in srgb,var(--text) 2%,transparent)),linear-gradient(160deg,var(--app-card),var(--app-card-end));border:1px solid var(--line);box-shadow:inset 0 1px color-mix(in srgb,var(--text) 12%,transparent),0 18px 40px color-mix(in srgb,var(--bg) 35%,transparent)}
.study-hero{display:grid;gap:14px;padding:20px}
.study-hero-top{display:flex;gap:14px;align-items:flex-start}
.study-mark{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;flex:none;color:var(--teal);background:color-mix(in srgb,var(--teal) 16%,var(--surface))}
.study-hero h1{margin:0;font-family:var(--serif);font-size:clamp(34px,9vw,52px);line-height:1.02}
.study-hero .lead{margin:6px 0 0;color:var(--muted)}
.study-chips{display:flex;flex-wrap:wrap;gap:8px}
.study-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:4px 14px 4px 4px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 72%,transparent);color:var(--text)}
.study-chip[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:var(--on-accent)}
.study-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;overflow:hidden;flex:none;font-family:var(--serif);font-size:1.15rem;background:color-mix(in srgb,var(--gold) 28%,var(--surface));color:var(--text)}
.study-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.study-chip[aria-pressed="true"] .study-avatar{background:color-mix(in srgb,var(--on-accent) 18%,var(--teal));color:var(--on-accent)}
.study-composer{display:grid;gap:12px;padding:18px}
.study-composer-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.study-composer h2,.study-empty h2{margin:0;font-family:var(--serif);font-weight:500}
.study-composer h2{font-size:clamp(28px,6vw,36px)}
.study-field{display:grid;gap:8px;color:var(--muted);font-size:13px;font-weight:700}
.study-field textarea,.study-search{width:100%;border-radius:18px;border:1px solid var(--line);background:var(--app-input);color:var(--text);padding:14px 16px}
.study-field textarea{min-height:96px;resize:vertical;line-height:1.45}
.study-search{min-height:44px;border-radius:999px}
.study-field textarea:focus,.study-search:focus,.study-book:focus-visible,.study-chip:focus-visible,.study-pill:focus-visible,.study-more:focus-visible,.study-step button:focus-visible,.study-save:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.study-link-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.study-pill{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 6px 0 14px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--teal) 14%,var(--surface));color:var(--text)}
.study-pill button,.study-pill-x{min-height:44px;border:0;background:transparent;color:inherit;padding:0 8px}
.study-link-row>.study-pill{padding:0 16px}
.study-picker{display:grid;gap:12px;padding:14px;border-radius:22px}
.study-book-list{display:grid;gap:4px;max-height:220px;overflow:auto}
.study-book{min-height:44px;text-align:left;border-radius:14px;border:1px solid transparent;background:transparent;color:var(--text);padding:8px 12px}
.study-book[aria-pressed="true"]{background:color-mix(in srgb,var(--teal) 20%,var(--surface));border-color:var(--teal)}
.study-steps{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.study-step{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;justify-items:center;gap:4px}
.study-step span{grid-column:1 / -1;order:-1;font-size:12px;font-weight:700;color:var(--muted)}
.study-step button{min-width:44px;min-height:44px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--text)}
.study-step output{font-family:var(--serif);font-size:1.6rem;color:var(--text)}
.study-use,.study-save{width:100%;min-height:48px;border-radius:999px}
.study-save:disabled,.study-use:disabled,.study-step button:disabled{cursor:not-allowed;opacity:.45}
.study-entries,.study-entry{display:grid;gap:8px}
#study-entries{display:grid;gap:12px}
.study-entry{position:relative;padding:16px 16px 16px 18px;border-left:4px solid var(--teal)}
.study-entry-theirs{border-left-color:var(--gold)}
.study-entry-head{display:flex;align-items:center;gap:10px}
.study-entry-head div{display:grid;min-width:0}
.study-entry-head strong{font-size:14px}
.study-entry-head time{color:var(--muted);font-size:13px}
.study-more{margin-left:auto;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--text);font-size:22px;line-height:1}
.study-menu{position:absolute;z-index:6;top:60px;right:12px;display:grid;min-width:168px;padding:6px;border-radius:16px;border:1px solid var(--line);background:var(--surface);box-shadow:0 16px 36px color-mix(in srgb,var(--bg) 45%,transparent)}
.study-menu button{min-height:44px;text-align:left;border:0;border-radius:12px;background:transparent;color:var(--text);padding:0 12px}
.study-menu button:hover,.study-menu button:focus-visible{background:color-mix(in srgb,var(--teal) 16%,transparent)}
.study-question{margin:4px 0 0;font-family:var(--serif);font-weight:500;font-size:clamp(26px,6.4vw,34px);line-height:1.15}
.study-answer{margin:0;line-height:1.5}
.study-entry-verses{display:flex;flex-wrap:wrap;gap:8px}
.study-entry-verses .study-pill{padding:0 16px}
.study-empty{display:grid;justify-items:start;gap:12px;padding:22px}
.study-empty h2{font-size:clamp(28px,7vw,40px);line-height:1.15}
@keyframes study-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.study-entry-new{animation:study-rise .45s ease}
@media(prefers-reduced-motion:reduce){.study-entry-new,.love-heart,.star{animation:none}}
.speech-row,.speech-rates{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.speech-current,.bible-verse.bible-speaking{outline:2px solid var(--teal);background:color-mix(in srgb,var(--teal) 22%,transparent);border-radius:10px}
.bible-prologue{margin:8px 2px 14px;color:var(--muted);font-style:italic;font-size:0.95rem;line-height:1.5}
.love-card{position:relative}
.love-text{font-family:var(--serif);font-size:1.2rem;line-height:1.45}
.love-heart{position:absolute;left:50%;top:30%;font-size:3.2rem;color:var(--gold);pointer-events:none;animation:love-float 1.1s ease forwards}
@keyframes love-float{from{opacity:0;transform:translate(-50%,8px) scale(.7)}40%{opacity:1}to{opacity:0;transform:translate(-50%,-46px) scale(1.15)}}
.bedtime-entry{display:grid;gap:4px;text-align:left;margin:0 0 14px}
.bedtime-sky{position:relative;min-height:70vh;border-radius:22px;overflow:hidden;padding:28px 18px 32px;background:radial-gradient(circle at 50% 12%, color-mix(in srgb, var(--teal) 28%, rgb(26 35 68)), rgb(7 11 22) 68%);color:rgb(246 241 230)}
.bedtime-stars{position:absolute;inset:0}
.star{position:absolute;width:3px;height:3px;border-radius:50%;background:rgb(246 241 230);opacity:.85;animation:star-twinkle 2.8s ease-in-out infinite}
@keyframes star-twinkle{50%{opacity:.25}}
.bedtime-copy{position:relative;display:grid;gap:12px;max-width:34rem}
.bedtime-copy h1{color:rgb(246 241 230)}
.bedtime-timers{display:flex;flex-wrap:wrap;gap:8px}
.bedtime-timers .active{background:var(--teal);color:var(--on-accent)}
@media(max-width:1024px){.toast{bottom:calc(112px + env(safe-area-inset-bottom))}}
/* Coloring book */
.coloring-book{margin-top:28px}
.coloring-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(min-width:720px){.coloring-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.coloring-thumb{display:flex;flex-direction:column;gap:8px;padding:8px;text-align:left;min-height:48px}
.coloring-thumb img{width:100%;height:auto;aspect-ratio:16/9;border-radius:10px;background:white;object-fit:contain}
.coloring-thumb span{font-weight:700;font-size:.95rem}
.coloring-stage{position:relative;width:100%;aspect-ratio:1200/675;background:white;border-radius:14px;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:contain}
.coloring-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.coloring-lines,.coloring-fx{pointer-events:none}
.coloring-zoom{position:absolute;inset:0;transform-origin:0 0;will-change:transform}
.coloring-stage.moving{cursor:grab}
.coloring-zoombar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 0}
.coloring-zoombar .coloring-tool{padding:0 12px;min-width:48px}
.coloring-zoombar .coloring-zbtn{justify-content:center;padding:0;width:48px;font-size:1.6rem;line-height:1}
.coloring-zbtn:disabled{opacity:.4}
.coloring-zoomlevel{min-width:2.4em;text-align:center;font-weight:700}
.coloring-zoomhint{margin:6px 0 0}
.coloring-prefs .coloring-pref{flex:1 1 160px;justify-content:space-between}
.coloring-pref-state{font-weight:400;opacity:.85}
.coloring-tools{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.coloring-tool{display:inline-flex;align-items:center;gap:8px;min-height:52px;min-width:52px;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:inherit;font:inherit;font-weight:700}
.coloring-tool.active{background:var(--teal);color:rgb(6,36,32);border-color:transparent}
.coloring-size-title{margin:14px 0 0;font-weight:700}
.coloring-size-title span{font-weight:400}
.coloring-sizes{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:10px 0;justify-items:center}
.coloring-size{display:flex;align-items:center;justify-content:center;width:100%;max-width:52px;min-width:40px;aspect-ratio:1;min-height:44px;padding:0;border-radius:14px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:inherit}
.coloring-size.active{background:var(--teal);color:rgb(6,36,32);border-color:transparent}
.coloring-size i{display:block;flex:none;width:var(--size);height:var(--size);max-width:100%;max-height:100%;border-radius:50%;background:currentColor}
.coloring-save{min-height:52px}
.coloring-dots{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:12px 0;justify-items:center}
.coloring-dot{aspect-ratio:1;width:100%;max-width:48px;min-width:36px;min-height:36px;padding:0;border-radius:50%;background:var(--dot);border:2px solid rgba(255,255,255,.4);box-shadow:0 1px 3px rgba(0,0,0,.35),inset 0 0 0 1px rgba(0,0,0,.18)}
.coloring-dot.active{border-color:white;outline:3px solid var(--teal);outline-offset:2px;transform:scale(1.06)}
.coloring-sparkle-title{margin:14px 0 0;font-weight:700}
.coloring-glitters{grid-template-columns:repeat(6,minmax(0,1fr))}
.coloring-glitter{background:radial-gradient(circle at 30% 28%,white 0 2px,transparent 3px),radial-gradient(circle at 68% 40%,white 0 1.5px,transparent 2.5px),radial-gradient(circle at 44% 72%,rgba(255,255,255,.9) 0 1.5px,transparent 2.5px),radial-gradient(circle at 74% 74%,white 0 1px,transparent 2px),var(--dot)}
.coloring-status{min-height:1.4em}
.coloring-save-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.coloring-save-row .coloring-save{min-width:0;padding:8px 10px;white-space:normal;line-height:1.2}
.coloring-save-choice{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06)}
.coloring-save-choice[hidden]{display:none}
.coloring-save-choice p{flex:1 1 100%;margin:0}
.coloring-save-choice button{min-height:48px}
.coloring-save-status{min-height:1.4em}
.drawings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
@media(min-width:720px){.drawings-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.drawings-grid>p,.drawings-grid>button.secondary{grid-column:1/-1}
.drawing-thumb{display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:inherit;font:inherit;text-align:left;min-height:48px}
.drawing-thumb img{width:100%;height:auto;aspect-ratio:16/9;border-radius:10px;background:white;object-fit:contain}
.drawing-name{font-weight:700;overflow-wrap:anywhere}
.drawing-date{font-size:.85rem;opacity:.8}
.drawing-big{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:12px;background:white;margin:12px 0}
.drawing-actions,.drawing-confirm{display:flex;flex-wrap:wrap;gap:8px}
.drawing-actions button,.drawing-confirm button{min-height:48px;flex:1 1 140px}
.drawing-confirm{margin-top:12px;padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,.25)}
.drawing-confirm[hidden]{display:none}
.drawing-confirm p{flex:1 1 100%;margin:0}
/* Verse study notes inside the chapter must wrap on a phone. */
.bible-primary,.bible-page{min-width:0}
.bible-inline-notes,.bible-inline-notes .bible-study-card{min-width:0;max-width:100%;overflow-wrap:anywhere}
.bible-inline-notes .bible-study-links{flex-wrap:wrap}
.bible-highlight-tools{flex-wrap:wrap;max-width:100%}
/* Bible squishies */
.squishy-entry{display:flex;align-items:center;gap:14px;width:100%;margin:12px 0;text-align:left;padding:14px}
.squishy-entry>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.squishy-entry-art{display:flex;flex:none}
.squishy-entry-art .sq-svg{width:56px;height:56px;margin-right:-10px}
.squishy-screen{min-width:0}
.sq-svg{display:block;width:100%;height:auto;overflow:visible}
.sq-shut{display:none}
.squeezed .sq-shut{display:inline}
.squeezed .sq-open{display:none}
.sq-topbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}
.sq-count{font-weight:700;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.08)}
.sq-sound{margin-left:auto;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:inherit;font:inherit;font-weight:700}
.sq-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:10px 0 14px}
.sq-tab{min-height:48px;padding:4px 6px;border-radius:14px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:inherit;font:inherit;font-size:.82rem;font-weight:700;line-height:1.15}
.sq-tab.active{background:var(--teal);color:rgb(6,36,32);border-color:transparent}
.sq-hint{text-align:center;margin:8px 0}
html.sq-locked,html.sq-locked body{overflow:hidden;overscroll-behavior:none}
.sq-play{position:fixed;inset:0;z-index:55;display:flex;flex-direction:column;padding:calc(10px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 70%,rgb(75,59,102),rgb(29,24,40) 75%);color:rgb(255,255,255);overscroll-behavior:none}
.sq-play-top{display:flex;align-items:center;gap:10px;min-height:48px}
.sq-play-top strong{flex:1;min-width:0;text-align:center;font:500 22px/1.15 var(--serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sq-play-back{min-height:44px;padding:8px 14px;border:1px solid rgba(255,255,255,0.25);border-radius:999px;background:rgba(255,255,255,0.08);color:rgb(255,255,255);font-weight:600}
.sq-play .sq-sound{min-width:44px;min-height:44px;padding:0;border-radius:50%}
.sq-play-area{position:relative;flex:1;min-height:0;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.sq-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;border-radius:24px}
.sq-canvas:focus-visible{outline:3px solid var(--teal);outline-offset:-3px}
.sq-learn{position:absolute;right:8px;bottom:8px;min-height:48px;padding:10px 18px;border:0;border-radius:999px;background:rgb(255,224,138);color:rgb(59,42,16);font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,0.4);animation:sq-bubble 2.4s ease-in-out infinite}
.sq-learn[hidden]{display:none}
@keyframes sq-bubble{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.sq-vibe{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin:10px 0 0}
.sq-vibe-label{flex-basis:100%;text-align:center;font-size:14px;font-weight:700;color:rgb(228,219,239)}
.sq-vibe-btn{min-height:40px;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.06);color:inherit;font:inherit;font-size:14px;font-weight:700}
.sq-vibe-btn.on{background:rgb(255,214,110);color:rgb(60,40,10);border-color:rgb(255,214,110)}
.sq-vibe-note{flex-basis:100%;margin:2px 0 0;text-align:center;font-size:13px;opacity:.8}
.sq-play-hint{margin:8px 0 0;text-align:center;font-size:14px;color:rgb(228,219,239)}
.sq-sheet{position:absolute;left:0;right:0;bottom:0;max-height:78%;overflow:auto;padding:12px 12px calc(14px + env(safe-area-inset-bottom));background:rgba(29,24,40,0.95);border-radius:24px 24px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,0.6);touch-action:pan-y;overscroll-behavior:contain}
.sq-sheet[hidden]{display:none}
.sq-sheet .sq-card{margin:0}
@media (prefers-reduced-motion:reduce){.sq-learn{animation:none}}
.sq-card{margin:10px 0}
.sq-card h2{margin:4px 0 6px}
.sq-verse{margin:10px 0;padding:10px 12px;border-left:4px solid var(--teal);border-radius:8px;background:rgba(255,255,255,.06)}
.sq-verse p{margin:0;font-style:italic}
.sq-verse cite{display:block;margin-top:6px;font-style:normal;font-weight:700;font-size:.9rem}
.sq-card-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sq-card-actions button{min-height:48px}
.sq-got{font-weight:700}
.sq-msg{padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.08);font-weight:700}
.sq-h2{margin:18px 0 8px}
.sq-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.sq-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:8px 6px;border-radius:18px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:inherit;font:inherit}
.sq-tile.active{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal)}
.sq-tile .sq-art{width:78px;max-width:100%}
.sq-name{font-size:.82rem;font-weight:700;line-height:1.15;text-align:center;overflow-wrap:anywhere}
.sq-star{position:absolute;top:4px;right:6px}
.sq-tile.locked .sq-art{filter:brightness(0) opacity(.38)}
.sq-tile.locked .sq-name{opacity:.75}
.sq-lock{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);font-size:1.6rem}
.sq-tile.right{border-color:rgb(110,220,140);box-shadow:0 0 0 2px rgb(110,220,140)}
.sq-tile.wrong{opacity:.55}
.sq-unlock-note{margin-top:10px}
.sq-moves{font-weight:700}
.sq-memory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:8px 0 14px;perspective:600px}
.sq-mcard{position:relative;aspect-ratio:3/4;min-height:0;padding:0;border:0;border-radius:14px;background:none;color:inherit;font:inherit;transform-style:preserve-3d;transition:transform .35s ease}
.sq-mcard.up{transform:rotateY(180deg)}
.sq-mback,.sq-mfront{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:14px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.sq-mback{background:linear-gradient(135deg,rgb(255,173,181),rgb(169,203,255));color:white;font-size:1.8rem;box-shadow:inset 0 0 0 3px rgba(255,255,255,.5)}
.sq-mfront{transform:rotateY(180deg);background:rgb(255,250,242);color:rgb(61,44,62);padding:4px;box-shadow:inset 0 0 0 2px rgba(91,70,96,.35)}
.sq-mfront .sq-art{width:92%}
.sq-cardname{font-weight:800;font-size:.78rem;line-height:1.15;text-align:center;overflow-wrap:anywhere}
.sq-mcard.done .sq-mfront{box-shadow:inset 0 0 0 3px rgb(110,220,140)}
.sq-mcard:disabled{opacity:1}
.sq-question h2{margin:6px 0 12px;font-size:1.25rem}
.sq-choices{display:grid;gap:8px}
.sq-choice{min-height:52px;padding:8px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:inherit;font:inherit;font-weight:700;text-align:left}
.sq-choice.right{background:rgb(110,220,140);color:rgb(10,40,20);border-color:transparent}
.sq-choice.wrong{background:rgba(255,120,120,.25);border-color:rgb(255,140,140)}
.sq-choice:disabled{opacity:1}
.sq-feedback{font-weight:700;margin:12px 0 8px}
.sq-result{text-align:center}
.sq-celebrate{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.55)}
.sq-celebrate[hidden]{display:none}
.sq-celebrate-card{position:relative;z-index:1;width:min(340px,100%);text-align:center}
.sq-new{width:170px;margin:6px auto 12px;animation:sq-pop .7s cubic-bezier(.3,1.6,.5,1) both}
.sq-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.sq-confetti i{position:absolute;top:-20px;left:var(--x);width:9px;height:14px;border-radius:3px;background:rgb(255,173,181);transform:rotate(var(--r));animation:sq-fall 2.4s linear var(--d) infinite}
.sq-confetti i:nth-child(5n+1){background:rgb(255,227,122)}
.sq-confetti i:nth-child(5n+2){background:rgb(169,203,255)}
.sq-confetti i:nth-child(5n+3){background:rgb(189,236,207)}
.sq-confetti i:nth-child(5n+4){background:rgb(215,184,255)}
@keyframes sq-fall{to{transform:translateY(110vh) rotate(calc(var(--r) + 540deg))}}
@keyframes sq-pop{from{transform:scale(.3)}to{transform:scale(1)}}
/* The final, glowing squishy */
.sq-tile.glow{border-color:rgba(255,214,110,.7);background:radial-gradient(circle at 50% 40%,rgba(255,226,140,.28),rgba(255,255,255,.05) 70%);box-shadow:0 0 18px rgba(255,205,90,.35);overflow:hidden}
.sq-tile.glow .sq-art{filter:drop-shadow(0 0 8px rgba(255,214,110,.75));animation:sq-glow 2.6s ease-in-out infinite}
.sq-sparks{position:absolute;inset:0;pointer-events:none}
.sq-sparks i{position:absolute;bottom:22%;width:5px;height:5px;border-radius:50%;background:rgb(255,240,180);box-shadow:0 0 6px 2px rgba(255,220,120,.8);opacity:0;animation:sq-float 2.8s ease-in infinite}
.sq-sparks i:nth-child(1){left:22%}.sq-sparks i:nth-child(2){left:44%;animation-delay:.7s}.sq-sparks i:nth-child(3){left:64%;animation-delay:1.4s}.sq-sparks i:nth-child(4){left:80%;animation-delay:2.1s}
.sq-tile.locked.final{border-color:rgba(255,214,110,.45);background:linear-gradient(110deg,rgba(255,255,255,.04) 30%,rgba(255,226,140,.22) 50%,rgba(255,255,255,.04) 70%) 0 0/250% 100%;animation:sq-shimmer 3.2s linear infinite}
.sq-tile.locked.final .sq-art{filter:brightness(0) opacity(.42) drop-shadow(0 0 6px rgba(255,214,110,.6))}
.sq-tile.locked.final .sq-name{color:rgb(255,226,150);opacity:1}
@keyframes sq-glow{0%,100%{filter:drop-shadow(0 0 5px rgba(255,214,110,.55))}50%{filter:drop-shadow(0 0 13px rgba(255,226,140,.95))}}
@keyframes sq-float{0%{opacity:0;transform:translateY(0) scale(.6)}25%{opacity:1}100%{opacity:0;transform:translateY(-60px) scale(1)}}
@keyframes sq-shimmer{0%{background-position:100% 0}100%{background-position:-150% 0}}
.sq-celebrate.final{background:radial-gradient(circle at 50% 45%,rgba(120,90,20,.55),rgba(0,0,0,.7) 70%)}
.sq-celebrate.final .sq-celebrate-card{border-color:rgba(255,214,110,.8);box-shadow:0 0 40px rgba(255,205,90,.45)}
.sq-new-glow{filter:drop-shadow(0 0 16px rgba(255,220,120,.9))}
.sq-burst{position:absolute;left:50%;top:45%;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;background:radial-gradient(circle,rgba(255,244,190,.9),rgba(255,214,110,.35) 35%,rgba(255,214,110,0) 70%);pointer-events:none;animation:sq-burst 1.6s ease-out both}
@keyframes sq-burst{0%{transform:scale(.1);opacity:1}70%{opacity:.8}100%{transform:scale(1.6);opacity:0}}
.sq-confetti.gold i{background:rgb(255,214,110)}
.sq-confetti.gold i:nth-child(3n+1){background:rgb(255,240,180)}
.sq-confetti.gold i:nth-child(3n+2){background:rgb(240,180,60);border-radius:50%;width:8px;height:8px}
@media (prefers-reduced-motion:reduce){.sq-mcard{transition:none}.sq-new{animation:none}.sq-confetti{display:none}.sq-tile.glow .sq-art{animation:none;filter:drop-shadow(0 0 9px rgba(255,214,110,.8))}.sq-sparks{display:none}.sq-tile.locked.final{animation:none}.sq-burst{display:none}}
/* Bible match-3 ("Manna Match") */
.match-entry .squishy-entry-art svg{width:52px;height:52px;margin-right:-8px}
.match-screen{min-width:0;position:relative}
.m3-topbar,.m3-board-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}
.m3-chip{font-weight:700;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.08);min-height:36px;display:inline-flex;align-items:center;gap:4px}
.m3-sound{margin-left:auto;min-height:44px;border:1px solid rgba(255,255,255,.25);color:inherit;font:inherit;font-weight:700}
.m3-board-top .back{margin:0}
.m3-hint-text{margin:6px 0 4px;text-align:center}
.m3-msg{min-height:1.4em;margin:8px 0;text-align:center;font-weight:700}
.m3-map-wrap{position:relative;margin:6px 0 20px}
.m3-trail{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.m3-trail path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.m3-trail .all{stroke:rgba(255,255,255,.22);stroke-width:6;stroke-dasharray:2 12}
.m3-trail .done{stroke:rgba(255,214,110,.75);stroke-width:6;stroke-dasharray:2 12}
.m3-map{list-style:none;margin:0;padding:0}
.m3-chapter{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:8px;height:40px;font:600 1.05rem/1.1 var(--serif);text-align:center}
.m3-chapter>span:last-child{padding:6px 14px;border-radius:999px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.14)}
.m3-chapter.locked{opacity:.55}
.m3-ch-icon{font-size:1.4rem}
.m3-step{position:absolute;width:118px;margin-left:-59px;display:flex;flex-direction:column;align-items:center}
.m3-node{width:60px;height:60px;border-radius:50%;border:3px solid rgba(255,255,255,.85);background:radial-gradient(circle at 35% 30%,rgb(255,236,150),rgb(242,166,35));color:rgb(74,52,10);font:800 1.35rem/1 system-ui,sans-serif;box-shadow:0 5px 0 rgb(170,100,10),0 8px 16px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;padding:0}
.m3-node.done{background:radial-gradient(circle at 35% 30%,rgb(190,245,200),rgb(60,175,95));box-shadow:0 5px 0 rgb(30,110,60),0 8px 16px rgba(0,0,0,.35);color:rgb(10,50,25)}
.m3-node.locked{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);box-shadow:none;color:inherit;font-size:1.1rem}
.m3-node.current{animation:m3-bob 1.6s ease-in-out infinite;outline:4px solid rgba(255,214,110,.45);outline-offset:3px}
.m3-node-title{margin-top:1px;font-size:.72rem;line-height:1.1;text-align:center;opacity:.85;max-width:118px}
.m3-stars{display:inline-flex;gap:1px;line-height:1}
.m3-stars i{font-style:normal;color:rgba(255,255,255,.25);text-shadow:0 1px 2px rgba(0,0,0,.4)}
.m3-stars i.on{color:rgb(255,210,63)}
.m3-stars.small{margin-top:4px;font-size:.85rem}
.m3-stars.big{font-size:2.6rem;gap:6px;justify-content:center;width:100%}
.m3-stars.big i.on{animation:m3-star .5s cubic-bezier(.3,1.6,.5,1) both}
.m3-stars.big i:nth-child(2){animation-delay:.18s}
.m3-stars.big i:nth-child(3){animation-delay:.36s}
@keyframes m3-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes m3-star{0%{transform:scale(0) rotate(-40deg)}100%{transform:scale(1) rotate(0)}}
.m3-intro{text-align:center;margin-top:10px}
.m3-intro-icon{display:block;font-size:2.6rem;line-height:1.2}
.m3-intro-level{display:flex;flex-direction:column;gap:4px;margin:14px 0;padding:10px;border-radius:14px;background:rgba(255,255,255,.07)}
.m3-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}
.m3-actions button{min-height:46px}
.m3-level-title{margin:2px 0 6px;font:500 1.3rem/1.15 var(--serif);text-align:center}
.m3-hud{display:flex;align-items:stretch;gap:6px}
.m3-moves,.m3-score{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:62px;padding:4px 6px;border-radius:14px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.14)}
.m3-moves span,.m3-score span{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;opacity:.8}
.m3-moves b,.m3-score b{font-size:1.25rem;line-height:1.1}
.m3-goals{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;padding:4px;border-radius:14px;background:rgba(0,0,0,.2)}
.m3-goal{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:1rem}
.m3-goal img{width:30px;height:30px}
.m3-goal.done b{color:rgb(120,230,150)}
.m3-stone-icon{width:26px;height:26px;border-radius:7px;background:linear-gradient(145deg,rgb(196,186,170),rgb(130,120,108));box-shadow:inset 0 -3px rgba(0,0,0,.25)}
.m3-meter{position:relative;height:10px;margin:8px 4px 10px;border-radius:999px;background:rgba(255,255,255,.12)}
.m3-meter i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,rgb(255,200,60),rgb(255,236,150));transition:width .35s ease}
.m3-meter em{position:absolute;top:50%;transform:translate(-50%,-50%);font-style:normal;font-size:.9rem;color:rgb(255,214,110);text-shadow:0 1px 2px rgba(0,0,0,.6)}
.m3-board-wrap{display:flex;justify-content:center}
.m3-board{position:relative;width:min(100%,420px);aspect-ratio:1;border-radius:18px;padding:0;background:rgba(15,10,40,.45);box-shadow:inset 0 0 0 2px rgba(255,255,255,.12),0 10px 30px rgba(0,0,0,.35);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;contain:layout paint}
.m3-cells{position:absolute;inset:0;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr)}
.m3-cell{background:rgba(255,255,255,.05)}
.m3-cell.alt{background:rgba(255,255,255,.1)}
.m3-cell.stone{background:linear-gradient(145deg,rgb(196,186,170),rgb(128,118,106));box-shadow:inset 0 0 0 1px rgba(60,50,40,.5),inset 0 -4px rgba(0,0,0,.22);border-radius:6px}
.m3-piece{position:absolute;left:0;top:0;width:12.5%;height:12.5%;padding:0;margin:0;border:0;background:none;transition:transform .26s cubic-bezier(.34,1.3,.64,1);will-change:transform;touch-action:none;cursor:pointer;z-index:1}
.m3-piece img{display:block;width:86%;height:86%;margin:7%;pointer-events:none;transition:transform .2s ease,opacity .2s ease;filter:drop-shadow(0 2px 1px rgba(0,0,0,.28))}
.m3-piece:focus-visible{outline:3px solid rgb(255,255,255);outline-offset:-3px;border-radius:10px}
.m3-piece.sel img{transform:scale(1.14);filter:drop-shadow(0 0 6px rgb(255,255,255)) drop-shadow(0 2px 1px rgba(0,0,0,.28))}
.m3-piece.sel{z-index:2}
.m3-piece.hint img{animation:m3-hint 1s ease-in-out infinite}
.m3-piece.nope img{animation:m3-nope .28s ease}
.m3-piece.pop img{transform:scale(1.35);opacity:0}
.m3-piece.born img{animation:m3-born .35s cubic-bezier(.3,1.6,.5,1)}
.m3-piece.sp1 img,.m3-piece.sp2 img,.m3-piece.sp3 img{animation:m3-glow 1.4s ease-in-out infinite}
.m3-piece.bomb img{animation:m3-spin 6s linear infinite;filter:drop-shadow(0 0 6px rgb(255,230,140))}
@keyframes m3-hint{0%,100%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(255,255,255,0))}50%{transform:scale(1.12);filter:drop-shadow(0 0 8px rgb(255,250,200))}}
@keyframes m3-nope{25%{transform:translateX(-6%)}75%{transform:translateX(6%)}}
@keyframes m3-born{0%{transform:scale(.2)}100%{transform:scale(1)}}
@keyframes m3-glow{0%,100%{filter:drop-shadow(0 0 2px rgba(255,214,110,.6))}50%{filter:drop-shadow(0 0 8px rgb(255,224,130))}}
@keyframes m3-spin{to{transform:rotate(360deg)}}
.m3-fx{position:absolute;inset:0;pointer-events:none;z-index:3}
.m3-spark{position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:rgb(255,240,170);box-shadow:0 0 6px rgb(255,255,255);animation:m3-spark .6s ease-out forwards}
.m3-spark.c0{background:rgb(255,214,70)}.m3-spark.c1{background:rgb(120,200,255)}.m3-spark.c2{background:rgb(200,150,255)}.m3-spark.c3{background:rgb(255,180,90)}.m3-spark.c4{background:rgb(150,230,110)}.m3-spark.c5{background:rgb(255,140,180)}
@keyframes m3-spark{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
.m3-cell.stone.chip1{background:linear-gradient(135deg,transparent 46%,rgba(50,40,30,.6) 47%,rgba(50,40,30,.6) 50%,transparent 51%),linear-gradient(145deg,rgb(190,180,164),rgb(124,114,102))}
.m3-cell.stone.chip2{background:linear-gradient(135deg,transparent 46%,rgba(45,35,25,.75) 47%,rgba(45,35,25,.75) 51%,transparent 52%),linear-gradient(40deg,transparent 55%,rgba(45,35,25,.65) 56%,rgba(45,35,25,.65) 59%,transparent 60%),linear-gradient(145deg,rgb(180,170,154),rgb(116,106,94))}
.m3-crack{position:absolute;width:12.5%;height:12.5%;transform:translate(-50%,-50%);border-radius:6px;background:linear-gradient(135deg,transparent 45%,rgba(40,30,20,.85) 47%,rgba(40,30,20,.85) 51%,transparent 53%),linear-gradient(45deg,transparent 52%,rgba(40,30,20,.7) 54%,rgba(40,30,20,.7) 57%,transparent 59%),linear-gradient(145deg,rgb(200,190,175),rgb(128,118,106));animation:m3-crack .55s ease-out forwards}
@keyframes m3-crack{0%{transform:translate(-50%,-50%) scale(1);opacity:1}35%{transform:translate(-50%,-50%) scale(1.06) rotate(-3deg);opacity:1}100%{transform:translate(-50%,-50%) scale(1.35) rotate(14deg);opacity:0}}
.m3-debris{position:absolute;width:7px;height:6px;margin:-3px;border-radius:2px 1px 3px 1px;background:rgb(160,150,136);box-shadow:inset 0 -2px rgba(0,0,0,.25);animation:m3-debris .75s cubic-bezier(.2,.6,.4,1) forwards}
.m3-debris.big{width:10px;height:8px;margin:-4px;background:rgb(140,130,116)}
@keyframes m3-debris{0%{transform:translate(0,0) rotate(0);opacity:1}60%{opacity:1}100%{transform:translate(var(--dx),calc(var(--dy) + 34px)) rotate(var(--r));opacity:0}}
.m3-dust{position:absolute;width:13%;height:13%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(220,210,190,.55),rgba(220,210,190,0) 70%);animation:m3-dust .85s ease-out forwards}
@keyframes m3-dust{0%{transform:translate(-50%,-50%) scale(.6);opacity:.9}100%{transform:translate(-50%,-50%) scale(2.2);opacity:0}}
.m3-board.m3-shake{animation:m3-shake .4s ease-out}
@keyframes m3-shake{0%,100%{transform:translate(0,0)}15%{transform:translate(calc(var(--amp) * -1),calc(var(--amp) * .4))}30%{transform:translate(var(--amp),calc(var(--amp) * -.3))}45%{transform:translate(calc(var(--amp) * -.6),calc(var(--amp) * .2))}60%{transform:translate(calc(var(--amp) * .4),0)}80%{transform:translate(calc(var(--amp) * -.2),0)}}
@media (prefers-reduced-motion:reduce){.m3-board.m3-shake,.m3-debris,.m3-dust{animation:none}.m3-debris,.m3-dust{display:none}.m3-crack{animation-duration:.15s}}
.m3-beam{position:absolute;animation:m3-beam .6s ease-out forwards}
.m3-beam.row{left:0;right:0;height:12.5%;background:linear-gradient(180deg,transparent,rgba(255,240,170,.95),transparent)}
.m3-beam.col{top:0;bottom:0;width:12.5%;background:linear-gradient(90deg,transparent,rgba(255,240,170,.95),transparent)}
.m3-beam.burst{width:37.5%;height:37.5%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,230,.95),rgba(255,214,110,.5) 55%,transparent 72%)}
.m3-beam.nova{inset:0;background:radial-gradient(circle,rgba(255,255,230,.85),rgba(255,214,110,.35) 50%,transparent 75%)}
@keyframes m3-beam{0%{opacity:0;transform:scale(.6)}30%{opacity:1}100%{opacity:0;transform:scale(1.15)}}
.m3-combo{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);font:900 1.6rem/1 system-ui,sans-serif;color:rgb(255,236,150);text-shadow:0 2px 0 rgb(170,100,10),0 0 12px rgba(0,0,0,.5);white-space:nowrap;animation:m3-combo .9s ease-out forwards}
@keyframes m3-combo{0%{transform:translate(-50%,-30%) scale(.5);opacity:0}25%{transform:translate(-50%,-50%) scale(1.15);opacity:1}100%{transform:translate(-50%,-90%) scale(1);opacity:0}}
.m3-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.6);overflow-y:auto}
.m3-overlay[hidden]{display:none}
.m3-lesson{position:relative;z-index:1;width:min(360px,100%);max-height:calc(100% - 8px);overflow-y:auto;text-align:center}
.m3-lesson h3{margin:10px 0 4px;font:500 1.2rem/1.2 var(--serif)}
.m3-total{margin:4px 0;font-weight:700}
.m3-verse{margin:10px 0;padding:10px 12px;border-left:4px solid var(--teal);border-radius:8px;background:rgba(255,255,255,.06);text-align:left}
.m3-verse p{margin:0;font-style:italic}
.m3-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.m3-confetti i{position:absolute;top:-20px;left:var(--x);width:9px;height:14px;border-radius:3px;background:rgb(255,173,181);transform:rotate(var(--r));animation:sq-fall 2.4s linear var(--d) infinite}
.m3-confetti i:nth-child(5n+1){background:rgb(255,227,122)}
.m3-confetti i:nth-child(5n+2){background:rgb(169,203,255)}
.m3-confetti i:nth-child(5n+3){background:rgb(189,236,207)}
.m3-confetti i:nth-child(5n+4){background:rgb(215,184,255)}
@media (prefers-reduced-motion:reduce){.m3-piece,.m3-piece img,.m3-meter i{transition:none}.m3-node.current,.m3-piece.hint img,.m3-piece.born img,.m3-piece.sp1 img,.m3-piece.sp2 img,.m3-piece.sp3 img,.m3-piece.bomb img,.m3-stars.big i.on{animation:none}.m3-piece.hint img{filter:drop-shadow(0 0 7px rgb(255,250,200))}.m3-confetti,.m3-spark,.m3-beam,.m3-combo{display:none}}
/* Squishy unlock challenges, rare tiers and achievements */
.sq-tab{font-size:.72rem;padding:4px 2px;overflow-wrap:anywhere;min-width:0}
.sq-tabs{gap:4px}
.sq-req{display:block;font-size:.72rem;line-height:1.2;text-align:center;opacity:.92}
.sq-req b{white-space:nowrap}
.sq-req-best{display:block;font-size:.68rem;opacity:.75;text-align:center}
.sq-bar{display:block;width:100%;height:7px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden}
.sq-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--teal),rgb(190,245,235))}
.sq-tile.locked{justify-content:flex-start}
.sq-tile.locked .sq-req{opacity:1}
.sq-tier{position:absolute;top:5px;left:5px;z-index:2;padding:1px 6px;border-radius:999px;font-size:.58rem;font-weight:900;letter-spacing:.06em;background:rgb(150,105,235);color:rgb(255,255,255);box-shadow:0 0 8px rgba(190,150,255,.8)}
.sq-tier.inline{position:static;display:inline-block;align-self:flex-start;vertical-align:middle}
.sq-tile.rare,.sq-badge.rare{border:2px solid rgba(196,160,255,.9);background:linear-gradient(115deg,rgba(150,105,235,.14) 20%,rgba(230,210,255,.32) 45%,rgba(150,105,235,.14) 70%) 0 0/260% 100%;box-shadow:0 0 14px rgba(170,130,255,.45);animation:sq-shimmer 3.4s linear infinite}
.sq-tile.legendary,.sq-badge.legendary{border:2px solid rgba(255,214,110,.95);box-shadow:0 0 18px rgba(255,205,90,.55)}
.sq-tile.legendary .sq-tier,.sq-badge.legendary .sq-tier{background:linear-gradient(90deg,rgb(240,170,40),rgb(255,214,110));color:rgb(70,40,0);box-shadow:0 0 10px rgba(255,214,110,.9)}
.sq-tile.rare::after,.sq-tile.legendary::after{content:"✦";position:absolute;top:6px;right:8px;font-size:.9rem;color:rgb(255,245,200);text-shadow:0 0 6px rgb(255,255,255);animation:sq-twinkle 1.8s ease-in-out infinite}
@keyframes sq-twinkle{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}
.sq-badges{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}
.sq-badge{position:relative;display:flex;align-items:center;gap:10px;padding:10px;border-radius:16px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05)}
.sq-badge:not(.earned){opacity:.85}
.sq-badge.earned:not(.rare):not(.legendary){border-color:rgba(120,230,170,.6)}
.sq-medal{flex:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;background:radial-gradient(circle at 35% 30%,rgb(255,240,170),rgb(230,160,40));box-shadow:0 3px 0 rgb(160,100,20)}
.sq-badge:not(.earned) .sq-medal{background:rgba(255,255,255,.12);box-shadow:none;font-size:1rem}
.sq-badge-art{flex:none;width:44px}
.sq-badge-art.dim{filter:brightness(0) opacity(.38)}
.sq-badge-art.emoji{font-size:1.7rem;text-align:center}
.sq-badge-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.sq-badge-body .sq-req{text-align:left}
.sq-badge-date{font-size:.75rem;color:rgb(140,235,175);font-weight:700}
.sq-next-ch{margin:6px 0 12px}
.sq-ach-name{font-weight:800;margin:4px 0}
.sq-ach-badge{margin:4px 0 12px}
.sq-new-big{width:200px}
.sq-celebrate.rare{background:radial-gradient(circle at 50% 45%,rgba(110,70,170,.6),rgba(0,0,0,.72) 70%)}
.sq-celebrate-card.sq-ach{overflow:visible;border:2px solid rgba(196,160,255,.9);box-shadow:0 0 40px rgba(170,130,255,.5)}
.sq-celebrate-card.sq-ach.legendary{border-color:rgba(255,214,110,.95);box-shadow:0 0 50px rgba(255,205,90,.6)}
.sq-trophy{position:relative;width:96px;height:96px;margin:-58px auto 6px}
.sq-trophy-rays{position:absolute;inset:-34px;border-radius:50%;background:repeating-conic-gradient(rgba(255,240,190,.55) 0 10deg,rgba(255,240,190,0) 10deg 24deg);-webkit-mask:radial-gradient(circle,rgb(0,0,0) 30%,transparent 70%);mask:radial-gradient(circle,rgb(0,0,0) 30%,transparent 70%);animation:sq-rays 9s linear infinite}
.sq-trophy-medal{position:relative;display:flex;align-items:center;justify-content:center;width:96px;height:96px;border-radius:50%;font-size:3rem;background:radial-gradient(circle at 35% 30%,rgb(230,215,255),rgb(140,95,225));border:4px solid rgb(255,255,255);box-shadow:0 6px 0 rgb(90,55,160),0 0 30px rgba(190,150,255,.9)}
.sq-trophy.legendary .sq-trophy-medal{background:radial-gradient(circle at 35% 30%,rgb(255,245,190),rgb(240,170,40));box-shadow:0 6px 0 rgb(160,100,20),0 0 40px rgba(255,214,110,1)}
@keyframes sq-rays{to{transform:rotate(360deg)}}
.sq-shine{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%) 0 0/300% 100%;animation:sq-shine 2.2s ease-in-out .3s 2 both}
@keyframes sq-shine{from{background-position:120% 0}to{background-position:-120% 0}}
@media (prefers-reduced-motion:reduce){.sq-tile.rare,.sq-badge.rare,.sq-tile.rare::after,.sq-tile.legendary::after,.sq-trophy-rays{animation:none}.sq-shine{display:none}}
/* Squishy secret tricks */
.sq-trick{position:absolute;left:8px;top:8px;max-width:calc(100% - 16px);min-height:40px;padding:8px 14px;border:1px solid rgba(255,224,138,.55);border-radius:999px;background:rgba(30,24,50,.78);color:rgb(255,236,170);font-weight:700;font-size:.85rem;text-align:left;line-height:1.25;overflow-wrap:anywhere}
.sq-toast{position:absolute;left:12px;right:12px;bottom:66px;margin:0;padding:10px 14px;border-radius:14px;background:rgba(30,24,50,.9);color:rgb(255,255,255);font-weight:600;font-size:.9rem;text-align:center;box-shadow:0 6px 18px rgba(0,0,0,.35);pointer-events:none}
.sq-toast[hidden]{display:none}
.sq-trick-dot{position:absolute;left:6px;bottom:30px;font-size:.9rem}
.sq-tricklist .sq-trickrow{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;background:rgba(255,255,255,.04)}
.sq-tricklist .sq-trickrow.found{background:rgba(255,224,138,.12)}
/* Squishy trades: six tabs in two rows, gift ribbon, code card */
.sq-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.sq-tab{min-height:40px;font-size:.8rem}
.sq-gift{position:absolute;left:6px;bottom:30px;font-size:1.15rem;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45));pointer-events:none}
.sq-trade-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.sq-trade-grid .sq-tile{padding:6px 3px}
.sq-trade-grid .sq-art{width:52px}
.sq-trade-grid .sq-name{font-size:.66rem;line-height:1.1}
.sq-trade-grid .sq-gift{bottom:auto;top:4px;left:4px;font-size:.95rem}
.sq-trade-actions{text-align:center;margin:12px 0}
.sq-code-box{display:flex;flex-direction:column;align-items:center;gap:8px;margin:12px 0;padding:14px;border-radius:18px;border:1px dashed rgba(255,214,110,.6);background:rgba(255,214,110,.08);text-align:center}
.sq-code{font-size:2rem;letter-spacing:.12em;font-family:ui-monospace,Menlo,Consolas,monospace;color:rgb(255,226,150);user-select:all}
.sq-redeem{display:flex;flex-direction:column;gap:8px;align-items:stretch;max-width:320px;margin:0 auto}
.sq-code-input{font:inherit;font-size:1.4rem;letter-spacing:.12em;text-align:center;text-transform:uppercase;padding:10px;border-radius:14px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:inherit}
.sq-gift-box{border-style:solid;border-color:rgba(255,160,190,.6);background:rgba(255,160,190,.1)}
.sq-gift-art{position:relative;display:block;width:110px}
.sq-gift.big{position:absolute;left:auto;right:-6px;top:-6px;bottom:auto;font-size:2rem}
.sq-confirm{border-color:var(--gold)}
.sq-confirm-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.sq-sent{margin:12px 0}
.sq-sent ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.sq-sent li{display:flex;align-items:center;gap:10px}
.sq-sent li>span:nth-child(2){flex:1;display:flex;flex-direction:column}
.sq-sent-art{width:40px;height:40px}
.sq-code-small{font-family:monospace;letter-spacing:.08em}
/* the legendary story Trick button */
.sq-story{position:absolute;left:8px;bottom:8px;min-height:48px;padding:10px 18px;border:1px solid rgba(255,224,138,.7);border-radius:999px;background:linear-gradient(135deg,rgba(255,214,102,.95),rgba(255,170,60,.95));color:rgb(59,42,16);font-weight:800;box-shadow:0 0 0 3px rgba(255,214,102,.25),0 6px 18px rgba(0,0,0,.4)}

.tap-vibration-toggle[aria-busy="true"]{opacity:.75;cursor:progress}
@media(prefers-reduced-motion:reduce){.tap-vibration-knob::after{transition:none}}
/* Bedtime stories: a dim, warm reading room */
.bedtime-read{border-radius:22px;padding:16px 14px 18px;background:linear-gradient(180deg,rgb(20 26 48),rgb(10 14 28));color:rgb(238 230 214)}
.bedtime-read .story-title,.bedtime-read .eyebrow,.bedtime-read .back{color:rgb(246 236 214)}
.bedtime-read .story-body{font-size:1.12rem;line-height:1.75;color:rgb(232 224 208)}
.bedtime-read .story-hero{filter:brightness(.82) saturate(.85);border-radius:16px}
.bedtime-read .story-verse{border-left-color:rgb(214 186 120);color:rgb(226 214 188)}
.bedtime-read .secondary{background:rgb(255 255 255 / .08);color:rgb(246 236 214);border-color:rgb(255 255 255 / .2)}
.bedtime-steps{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:14px 0}
.bedtime-steps .secondary{min-height:44px}
.bedtime-pos{font-variant-numeric:tabular-nums;opacity:.85;white-space:nowrap}
.story-verse{margin:14px 0 0;padding:8px 12px;border-left:3px solid var(--teal);font-style:italic}
.story-verse p{margin:0 0 4px}
.story-verse cite{font-style:normal;font-size:.85rem;opacity:.8}
/* My notes */
.dev-notes textarea{width:100%;box-sizing:border-box;min-height:96px;resize:vertical}
.dev-notes-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px}
.dev-share-menu{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.my-notes-share{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 12px}
.my-notes-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.my-note{padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--teal) 7%,transparent);overflow-wrap:anywhere}
.my-note p{margin:6px 0 0;white-space:pre-wrap}
.my-note-verse{margin:6px 0 0;font-style:italic}
.my-note-verse cite{display:block;font-style:normal;font-size:.85rem;opacity:.8}
