:root{color-scheme:dark;--bg:#101a20;--panel:#18262e;--line:#30414a;--muted:#a8bac3;--ink:#f5f4e9;--mint:#a6dfb8;--gold:#f1cc85}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{min-height:46px;border:0;border-radius:10px;padding:11px 17px;background:var(--mint);color:#15281d;font-weight:650;cursor:pointer}button:disabled{opacity:.45;cursor:default}button.quiet{color:var(--ink);background:#263942}button.danger{background:#633e42;color:#ffe7e7}a{color:var(--mint)}input,textarea,select{display:block;width:100%;padding:12px;border:1px solid #52636b;border-radius:9px;background:#101c23;color:var(--ink);margin-top:6px;min-height:47px}textarea{min-height:100px;resize:vertical}input[type=checkbox]{width:22px;min-height:22px;display:inline-block;vertical-align:middle}label{display:block;margin:14px 0;color:#d2dce0;font-size:14px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,5vw,48px);letter-spacing:-1.5px;line-height:1.12;margin-bottom:16px}h2{font-size:24px;letter-spacing:-.5px}h3{font-size:18px;margin-bottom:8px}small,.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:2px;color:var(--mint);font-size:11px;font-weight:800}.shell{max-width:1180px;margin:auto;padding:28px 28px 110px}header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.brand{font-size:18px;font-weight:750}.brand span{display:inline-grid;place-items:center;width:34px;height:34px;background:var(--mint);color:#182b22;border-radius:11px;margin-right:10px}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.actions button{font-size:14px}.hero{padding:32px;border:1px solid #446253;border-radius:20px;background:linear-gradient(110deg,#233b34,#192931);margin-bottom:24px}.hero p{max-width:600px;color:#c7d8d3;margin-bottom:0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.two{display:grid;grid-template-columns:1.25fr 1fr;gap:24px}.card{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:22px;overflow-wrap:anywhere}.card p{color:var(--muted);font-size:14px;white-space:pre-wrap}.card .actions{margin-top:18px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.stat{padding:17px;background:#1c2b33;border-radius:12px}.stat strong{display:block;font-size:28px;color:var(--gold)}.stat span{color:var(--muted);font-size:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.pill{display:inline-block;font-size:11px;letter-spacing:.4px;padding:4px 9px;background:#2d433c;color:#c1eaca;border-radius:20px;margin:3px 3px 8px 0}.reward{font-size:24px;color:var(--gold);font-weight:750;white-space:nowrap}progress{width:100%;height:10px;accent-color:var(--mint);margin:14px 0}.feed{padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.feed small{display:block;font-size:11px;margin-top:4px}.empty{padding:32px;color:var(--muted);text-align:center;border:1px dashed var(--line);border-radius:14px}.tabs{position:sticky;top:0;z-index:5;display:flex;gap:7px;padding:12px 0;background:var(--bg);margin-bottom:24px;overflow:auto}.tabs button{background:transparent;color:var(--muted);white-space:nowrap}.tabs .on{background:var(--mint);color:#15281d}.filters{display:flex;gap:10px;align-items:center;margin:0 0 20px;flex-wrap:wrap}.filters select{width:auto;min-width:150px}.filters input{flex:1;min-width:180px}.section{margin:26px 0 16px}.login{max-width:490px;margin:8vh auto;padding:28px}.login .card{padding:30px}.login button[type=submit]{width:100%;margin-top:15px}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:18px;width:min(620px,94vw);max-height:92vh;padding:26px}dialog::backdrop{background:#000a}dialog h2{padding-right:16px}dialog img{max-width:100%;border-radius:10px}#close-modal{margin-top:18px;width:100%}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}#toast{position:fixed;top:14px;left:50%;transform:translateX(-50%);background:#edf6eb;color:#15281d;padding:12px 22px;border-radius:12px;box-shadow:0 5px 25px #0005;z-index:50;display:none;width:max-content;max-width:90vw}.notice{border-left:3px solid var(--gold);padding:12px 16px;background:#26312f;font-size:14px;margin:16px 0}.loading{text-align:center;margin:25vh auto}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.money{font-size:42px;letter-spacing:-1px;color:var(--mint)}.positive{color:var(--mint)}.negative{color:#efb9ab}@media(max-width:850px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two{grid-template-columns:1fr}.shell{padding:20px 18px 100px}}@media(max-width:540px){.grid{grid-template-columns:1fr}.hero{padding:24px}.stats{grid-template-columns:repeat(2,1fr)}.shell{padding:18px 14px 100px}.tabs{position:fixed;top:auto;bottom:0;left:0;right:0;margin:0;padding:9px 10px max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}.tabs button{flex:1;padding:10px;font-size:12px}.brand{font-size:15px}.brand span{display:none}.card{padding:19px}.split{grid-template-columns:1fr}.login{padding:18px;margin:3vh auto}header .quiet{padding:9px;font-size:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.quote-card{margin-bottom:24px;border-color:#446253}.quote-card blockquote{margin:10px 0 20px;font-size:clamp(20px,3vw,28px);line-height:1.4;max-width:850px}

/* Quote controls v0.2.1 */
.quote-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.quote-controls button{min-height:44px}.quote-speed{display:flex;align-items:center;gap:10px;margin:0}.quote-speed select{width:auto;min-height:44px;margin:0}.quote-reflection{max-width:850px}.quote-meta{margin-top:18px;gap:12px;flex-wrap:wrap}.quote-card [hidden]{display:none!important}.quote-card #quote-work{font-size:13px}.quote-card a{color:var(--mint)}
/* Family themes v0.3. Text and button labels use calculated contrast. */
body,dialog,input,select,textarea,.card,.notice,.pill,.stat,.hero{color:var(--ink);background:var(--panel)}
body{background:var(--bg)}label,small,.muted,.hero p,.feed small{color:var(--ink)}
a,.eyebrow,.reward,.positive,.negative{color:var(--link)}
button,.brand span,.tabs button.on{background:var(--mint);color:var(--button-ink)}
button.quiet,.tabs button:not(.on){background:var(--panel);color:var(--ink);border:1px solid var(--line)}
input,select,textarea{background:var(--bg);color:var(--ink)}
.hero,.quote-card{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--gold)}
.demo-banner{padding:12px 18px;margin-bottom:20px;background:#ffe398;color:#231800;border-radius:10px;font-weight:700}
.profile-dot{display:inline-block;width:14px;height:14px;border-radius:50%;margin-right:8px;border:1px solid var(--ink)}
input[type=color]{padding:4px;height:48px}form.card{max-width:900px}.tabs{flex-wrap:wrap}
.quote-card a{color:var(--link)}
.money{color:var(--link)}
/* Personal profiles */
.profile-heading{display:flex;align-items:center;gap:12px;min-width:0}
.profile-heading h3{margin:0;overflow-wrap:anywhere}.profile-flair{display:inline-block;font-size:12px;font-weight:650;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:3px 9px;margin-top:5px}.profile-flair:empty{display:none}
.profile-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:68px;height:68px;border:3px solid var(--mint);border-radius:50%;overflow:hidden;font-size:36px;background:var(--bg);line-height:1}
.profile-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.profile-self{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.profile-bio{max-width:520px;margin:12px 0 0}.profile-preview{display:flex;gap:12px;align-items:center;margin:12px 0}.profile-preview .profile-avatar{width:96px;height:96px;font-size:52px}
@media(max-width:540px){.profile-self{align-items:flex-start;flex-direction:column}.profile-self button{width:100%}}

/* Manage sections, activity folders, and categories */
.folder-tabs,.category-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;margin:8px 0 12px;scrollbar-width:thin}
.folder-tabs button,.category-tabs button{white-space:nowrap;background:var(--panel);color:var(--ink);border:1px solid var(--line)}
.folder-tabs button.on,.category-tabs button.on{background:var(--mint);color:var(--button-ink);border-color:var(--mint)}
.manage-tabs{position:sticky;top:0;z-index:4;background:var(--bg);padding:10px 0;margin-bottom:24px}
.category-tabs button{min-height:38px;padding:7px 13px;font-size:13px;border-radius:999px}
.activity-group{margin:22px 0 30px}.activity-group>h2{font-size:18px;margin-bottom:12px;color:var(--gold)}
@media(max-width:540px){.manage-tabs{top:0}.folder-tabs{margin-left:-4px;margin-right:-4px}.folder-tabs button{min-height:42px;padding:8px 13px}}

/* Earned-ticket Reward Wheel */
.wheel-layout{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:28px;align-items:center;margin:24px 0}
.wheel-wrap{position:relative;width:min(78vw,390px);aspect-ratio:1;margin:auto;padding:18px}
.wheel-disk{display:block;width:100%;height:100%;border-radius:50%;border:10px solid var(--panel);box-shadow:0 0 0 2px var(--line),0 16px 45px #0006;background:var(--panel);overflow:visible}
.wheel-disk path,.wheel-disk>circle:first-child{stroke:rgba(255,255,255,.7);stroke-width:2}
.wheel-label{fill:#fff;font-size:11px;font-weight:800;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#07121b;stroke-width:3.5px;stroke-linejoin:round;pointer-events:none}
.wheel-hub{fill:var(--panel);stroke:var(--ink);stroke-width:4}.wheel-spin-control[data-action]{cursor:pointer}.wheel-spin-control[data-action]:hover .wheel-hub,.wheel-spin-control[data-action]:focus .wheel-hub{fill:var(--mint);stroke:var(--gold)}.wheel-spin-control[data-action]:hover .wheel-brand,.wheel-spin-control[data-action]:focus .wheel-brand,.wheel-spin-control[data-action]:hover .wheel-hub-sub,.wheel-spin-control[data-action]:focus .wheel-hub-sub{fill:var(--button-ink)}.wheel-spin-control:focus{outline:none}.wheel-spin-control.is-disabled{opacity:.7}
.wheel-brand{fill:var(--ink);font-size:15px;font-weight:900;letter-spacing:1.4px;text-anchor:middle}.wheel-hub-sub{fill:var(--muted);font-size:8px;font-weight:800;letter-spacing:1px;text-anchor:middle}
.wheel-empty{fill:var(--panel);stroke:var(--line);stroke-width:3;stroke-dasharray:8 8}
.wheel-empty-label{fill:var(--muted);font-size:18px;font-weight:800;text-anchor:middle;letter-spacing:1px}.wheel-empty-sub{font-size:12px}
.wheel-pointer{position:absolute;z-index:2;top:-2px;left:50%;transform:translateX(-50%);font-size:46px;line-height:1;color:var(--gold);filter:drop-shadow(0 4px 2px #0008)}
.prize-swatch{display:inline-block;width:16px;height:16px;margin-right:8px;vertical-align:-2px}.prize-swatch circle{stroke:var(--line);stroke-width:1}
.wheel-spin-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:0 0 18px;border-bottom:1px solid var(--line)}.wheel-spin-actions button{font-size:17px}.wheel-spin-actions small{max-width:180px}
.feature-switch{display:flex;align-items:center;justify-content:space-between;gap:24px;border-color:var(--gold)}.feature-switch>div{max-width:650px}.feature-switch form{min-width:min(100%,300px)}.feature-switch label{font-weight:750}
.winner-burst{font-size:68px;text-align:center;animation:winner-pop .5s cubic-bezier(.2,.9,.2,1.2)}
@keyframes winner-pop{from{transform:scale(.4) rotate(-12deg);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:760px){.wheel-layout{grid-template-columns:1fr}.wheel-wrap{width:min(86vw,360px)}}
@media(max-width:650px){.feature-switch{align-items:stretch;flex-direction:column}.feature-switch form{min-width:0}}
:root{--bg:#151a12;--panel:#20271b;--line:#566044;--muted:#d7ddcd;--ink:#fffaf0;--mint:#d97721;--gold:#91a864}
.brand span{font-size:0;background-image:url('/static/emberroot-icon.png');background-size:cover;background-position:center;border:2px solid var(--gold);border-radius:50%}
.login::before{content:"";display:block;width:112px;aspect-ratio:1;margin:0 auto 22px;background:url('/static/emberroot-icon.png') center/cover no-repeat;border:3px solid var(--gold);border-radius:50%;box-shadow:0 12px 36px #0006}

