@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=Nunito+Sans:opsz,wght@6..12,400;6..12,600;6..12,700&display=swap";:root{--night: #150f2b;--night-deep: #0b0719;--den: #1f1740;--den-raised: #2a1f52;--mist: #3b2d66;--moonlight: #efe9fa;--fur: #a597c9;--moon: #e3b24b;--moon-deep: #b98c33;--moon-pale: #f3d98e;--danger: #d97e6a;--clan-ember: #e2734d;--clan-bramble: #8aa46a;--clan-fen: #5fa3b8;--clan-gale: #c3cbe0;--clan-ashen: #b9a8e0;--clan-moss: #7a9b76;--font-display: "Cinzel", serif;--font-body: "Nunito Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(900px 500px at 50% -8%,rgba(124,92,196,.35) 0%,transparent 60%),radial-gradient(1400px 900px at 80% 10%,rgba(64,40,120,.3) 0%,transparent 55%),var(--night-deep);color:var(--moonlight);font-family:var(--font-body);font-size:16px;line-height:1.5}.app{max-width:460px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;position:relative;background:linear-gradient(180deg,#150f2bd1,#0b0719f5 45%),url(/art/backdrop.jpg) top center / cover no-repeat,var(--night);border-left:1px solid var(--mist);border-right:1px solid var(--mist);box-shadow:0 0 80px #0009}.screen{flex:1;padding:24px 20px 96px}.display{font-family:var(--font-display);font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 0 rgba(0,0,0,.6),0 0 24px rgba(124,92,196,.25)}h1.display{font-size:23px;margin:0}.display.gold{background:linear-gradient(180deg,var(--moon-pale) 0%,var(--moon) 55%,var(--moon-deep) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.eyebrow{font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--fur)}.motto{color:var(--fur);font-style:italic;margin:4px 0 0;font-size:14px}.ornament{display:flex;align-items:center;justify-content:center;gap:10px;margin:10px auto;color:var(--moon)}.ornament:before,.ornament:after{content:"";height:1px;width:42px;background:linear-gradient(90deg,transparent,var(--moon-deep))}.ornament:after{background:linear-gradient(90deg,var(--moon-deep),transparent)}.ornament svg{display:block}.card{background:linear-gradient(180deg,rgba(124,92,196,.08),transparent 40%),var(--den);border:1px solid var(--mist);border-radius:14px;padding:16px;box-shadow:inset 0 0 30px #00000059,0 2px 12px #00000059}button{font-family:var(--font-body);font-size:15px;font-weight:700;border-radius:10px;border:1px solid var(--mist);background:var(--den-raised);color:var(--moonlight);padding:10px 16px;cursor:pointer}button:hover{border-color:var(--fur)}button:focus-visible{outline:2px solid var(--moon);outline-offset:2px}button:disabled{opacity:.45;cursor:default}button.primary{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:14px;background:linear-gradient(180deg,var(--moon-pale) 0%,var(--moon) 45%,var(--moon-deep) 100%);border:1px solid #8a6826;box-shadow:inset 0 1px #ffffff59,0 2px 10px #00000073;color:#241803;text-shadow:0 1px 0 rgba(255,255,255,.25)}button.primary:hover{filter:brightness(1.06)}input[type=text]{width:100%;font-family:var(--font-body);font-size:16px;color:var(--moonlight);background:var(--night-deep);border:1px solid var(--mist);border-radius:10px;padding:10px 12px}input[type=text]:focus-visible{outline:2px solid var(--moon);outline-offset:1px}label .eyebrow{display:block;margin-bottom:6px}.field{margin-bottom:18px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:13px;font-weight:600;padding:7px 12px;border-radius:999px}.chip[aria-pressed=true]{background:linear-gradient(180deg,var(--moon-pale),var(--moon));border-color:var(--moon-deep);color:#241803}.clan-list{display:grid;gap:10px}.clan-card{display:flex;align-items:center;gap:14px;text-align:left;padding:14px;border-radius:14px}.clan-card .emblem{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:10px;color:var(--clan-color, var(--clan-moss));background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.07),transparent 70%),var(--night-deep);border:1px solid var(--clan-color, var(--mist))}.clan-card .name{font-family:var(--font-display);font-weight:600;letter-spacing:.08em;font-size:15px}.clan-card .motto{font-size:13px;margin:2px 0 0}.clan-card[aria-pressed=true]{border-color:var(--clan-color, var(--fur));background:var(--den-raised)}.camp-header{text-align:center;margin-bottom:14px}.camp-header h1{color:var(--clan-color, var(--moonlight))}.camp-header .emblem{display:inline-grid;place-items:center;color:var(--clan-color, var(--moonlight));margin-bottom:6px}.moon-badge{display:grid;place-items:center;margin:8px auto 4px;position:relative}.moon-badge svg{display:block;filter:drop-shadow(0 0 18px rgba(227,178,75,.18))}.cat-name{text-align:center;font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:.06em;margin:10px 0 2px}.cat-rank{text-align:center;color:var(--fur);font-size:14px;margin:0}.moon-hint{text-align:center;color:var(--fur);font-size:13px;margin:10px 0 0}.moon-hint strong{color:var(--moon);font-weight:700}.duties{margin-top:26px}.duties>.eyebrow{display:block;text-align:center;padding:8px 0;margin-bottom:12px;color:var(--moon);border-top:1px solid var(--mist);border-bottom:1px solid var(--mist);background:linear-gradient(180deg,rgba(227,178,75,.06),transparent)}.duty{display:flex;align-items:center;gap:12px;margin-bottom:10px}.duty .info{flex:1;min-width:0}.duty .title{font-weight:700;font-size:15px}.duty .desc{color:var(--fur);font-size:13px;margin-top:2px}.duty .xp{color:var(--moon);font-size:13px;font-weight:700;white-space:nowrap}.duty.done{opacity:.55}.duty.done .title{text-decoration:line-through}.duty button{flex:none}.ceremony{text-align:center;padding-top:24px;background:linear-gradient(180deg,#0b07198c,#0b0719eb 70%),url(/art/ceremony.jpg) top center / cover no-repeat;border-radius:0 0 18px 18px}.ceremony .invocation{color:var(--fur);max-width:34ch;margin:14px auto 26px}.ceremony .new-rank{color:var(--moon);font-family:var(--font-display);font-weight:700;font-size:28px;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 0 30px rgba(227,178,75,.45)}.ceremony-banner{margin-top:18px;border-color:var(--moon-deep);background:linear-gradient(180deg,rgba(227,178,75,.1),transparent);text-align:center}.story-entry{display:flex;gap:14px;margin-bottom:4px}.story-entry .moon-dot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--moon);margin-top:5px;box-shadow:0 0 12px #e3b24b8c}.story-entry .line{flex:none;width:12px;display:flex;justify-content:center}.story-entry .line:after{content:"";width:2px;background:var(--mist);flex:1;margin-top:4px}.story-entry .body{padding-bottom:22px}.story-entry .when{color:var(--fur);font-size:13px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:460px;display:flex;background:linear-gradient(180deg,var(--night),var(--night-deep));border-top:1px solid var(--mist)}.bottom-nav button{flex:1;border:none;border-radius:0;background:none;color:var(--fur);font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;font-size:12px;padding:14px 0}.bottom-nav button[aria-current=true]{color:var(--moon);text-shadow:0 0 16px rgba(227,178,75,.45)}.error-banner{border:1px solid var(--danger);background:#d97e6a1a;color:var(--moonlight);border-radius:10px;padding:10px 14px;font-size:14px;margin-bottom:16px}.loading{color:var(--fur);text-align:center;padding:48px 0}.pouch{color:var(--fur);font-size:14px;margin:0 0 14px;text-align:center}.pouch strong{color:var(--moon-pale)}.pips{display:inline-flex;gap:3px;margin-left:8px;vertical-align:middle}.pip{width:7px;height:7px;border-radius:50%;background:var(--mist)}.pip.lit{background:var(--moon);box-shadow:0 0 7px #e3b24b8c}.territory{margin-bottom:12px}.territory-head{display:flex;align-items:flex-start;gap:12px}.territory-head .swatch{width:10px;align-self:stretch;min-height:56px;border-radius:5px;background:linear-gradient(180deg,var(--clan-color, var(--clan-moss)),color-mix(in srgb,var(--clan-color, var(--clan-moss)) 45%,black));flex:none}.territory-head .info{flex:1;min-width:0}.territory-head .title{font-weight:700;font-size:15px}.territory-head .desc{color:var(--fur);font-size:13px;margin-top:2px}.territory-head button{flex:none}.battle{border-top:1px solid var(--mist);margin-top:12px;padding-top:12px}.battle .sides{font-size:15px;margin:4px 0}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.ceremony .reveal{animation:rise .7s ease-out both}.ceremony .reveal-late{animation:rise .7s ease-out .5s both}@media (prefers-reduced-motion: reduce){.ceremony .reveal,.ceremony .reveal-late{animation:none}}.moonlands{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--mist);box-shadow:0 4px 24px #00000080}.moonlands img{display:block;width:100%;height:auto}.moonlands-fallback{aspect-ratio:3 / 2;display:grid;place-items:center;background:var(--night-deep);font-family:var(--font-display);letter-spacing:.2em;color:var(--fur);text-transform:uppercase}.moonlands-marker{position:absolute;transform:translate(-50%,-50%);width:26px;height:26px;padding:0;border-radius:50%;border:2px solid var(--clan-color, var(--moon));background:radial-gradient(circle at 50% 40%,var(--clan-color, var(--moon)) 0%,transparent 65%),#0b07198c;box-shadow:0 0 10px var(--clan-color, var(--moon)),inset 0 0 6px #0009;cursor:pointer}.moonlands-marker:hover{box-shadow:0 0 16px var(--clan-color, var(--moon));border-color:var(--clan-color, var(--moon))}.moonlands-marker.selected{outline:2px solid var(--moon);outline-offset:3px}.moonlands-marker.battle{animation:marker-pulse 2.2s ease-in-out infinite}.moonlands-marker .clash{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:13px;filter:drop-shadow(0 0 6px rgba(227,178,75,.8))}@keyframes marker-pulse{0%,to{box-shadow:0 0 10px var(--clan-color, var(--moon))}50%{box-shadow:0 0 22px var(--moon),0 0 10px var(--clan-color, var(--moon))}}@media (prefers-reduced-motion: reduce){.moonlands-marker.battle{animation:none}}.moon-words{text-align:center;font-style:italic;color:var(--fur);font-size:14px;max-width:36ch;margin:14px auto 0}.moon-words span{color:var(--moon);font-style:normal}.chapter-toggle{display:flex;flex-direction:column;gap:2px;width:100%;background:none;border:none;padding:4px 2px;cursor:pointer;text-align:left}.chapter-title{font-family:var(--font-display);font-size:18px;color:var(--gold);letter-spacing:.04em}.chapter-moon{font-size:12px;color:var(--fur);font-style:italic}.chapter-body{margin-top:10px;border-top:1px solid var(--mist);padding-top:10px}.chapter-body p{font-size:14.5px;line-height:1.65;color:var(--parchment, #e8e2d4);margin:0 0 12px}.my-name{background:linear-gradient(transparent 55%,#e3b24b59 55%);color:var(--gold);font-weight:700;padding:0 1px}.echo-line{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin-bottom:8px}.echo-glyph{color:var(--gold);flex-shrink:0}.echo-step{margin-bottom:12px}.echo-step-label{display:block;font-size:12px;color:var(--fur);margin-bottom:6px;letter-spacing:.04em}.echo-step select{width:100%;background:var(--night-deep);color:var(--ink, #efeaf6);border:1px solid var(--mist);border-radius:10px;padding:10px;font-size:14px}.chapter-plate{width:100%;border-radius:12px;margin:10px 0 4px;border:1px solid var(--mist)}.screen textarea{background:var(--night-deep);color:var(--ink, #efeaf6);border:1px solid var(--mist);border-radius:10px;padding:8px}.profile-card{display:flex;gap:10px;align-items:center;width:100%;margin-bottom:10px;font-size:17px;font-weight:700;padding:18px;cursor:pointer;text-align:left}.den-button{position:fixed;top:10px;right:10px;z-index:50;background:var(--den);border:1px solid var(--mist);border-radius:999px;padding:6px 12px;color:var(--fur);font-size:12px;cursor:pointer}.moon-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:12px}.moon-card{background:var(--den);border:1px solid var(--mist);border-radius:14px;padding:12px;text-align:center;position:relative}.moon-card.rare{box-shadow:0 0 12px #d4af372e}.moon-card.moonlit{box-shadow:0 0 16px #cfe3ff40;border-color:#cfe3ff55}.moon-card.locked{opacity:.45}.moon-card-art{position:relative;display:inline-block;border:2px solid;border-radius:50%;padding:6px;margin-bottom:8px}.moon-card-glyph{font-size:28px;display:inline-block;width:64px;line-height:64px}.moon-card-rarity{position:absolute;top:-6px;right:-8px;font-size:13px;color:var(--gold)}.moon-card-name{font-weight:700;font-size:13px;margin-bottom:4px}.moon-card-flavor{font-size:11px;opacity:.75;line-height:1.35}.card-count{color:var(--gold);font-weight:700}.season-banner{border:1px solid var(--gold);background:linear-gradient(160deg,rgba(212,175,55,.1),transparent 60%)}.rank-trail{display:flex;align-items:center;gap:4px;justify-content:center;margin:10px 0 4px;flex-wrap:wrap}.rank-step{font-size:11px;opacity:.45}.rank-step.done{opacity:.8;color:var(--moss)}.rank-step.current{opacity:1;color:var(--gold);font-weight:700;text-shadow:0 0 8px rgba(212,175,55,.5)}.rank-arrow{opacity:.3;font-size:10px}.tonight-line{display:flex;gap:8px;align-items:baseline;padding:6px 0;border-bottom:1px dashed rgba(255,255,255,.06);font-size:13px}.tonight-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;align-self:center}.landing{width:100%;max-width:none;color:#e8e2f2;background:#07050f}.landing-eyebrow{font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:#cabfdd;opacity:.95;margin:0 0 10px;text-shadow:0 1px 6px rgba(7,5,15,.85)}.landing-title{font-family:var(--font-display);font-size:clamp(44px,9vw,88px);letter-spacing:.18em;color:#f3ecd6;margin:6px 0 4px;text-shadow:0 2px 10px rgba(7,5,15,.85),0 2px 30px rgba(212,175,55,.3)}.landing-h2{font-family:var(--font-display);font-size:clamp(22px,4.5vw,34px);letter-spacing:.22em;color:#e9dfc8;margin:4px 0}.landing-rule{color:var(--gold);opacity:.8;font-size:11px;display:flex;align-items:center;gap:12px;justify-content:center;margin:10px auto 18px}.landing-rule:before,.landing-rule:after{content:"";height:1px;width:min(120px,26vw);background:linear-gradient(90deg,transparent,var(--gold));opacity:.6}.landing-rule:after{background:linear-gradient(270deg,transparent,var(--gold))}.landing-hero{position:relative;min-height:92vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}.landing-hero-art{position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;background:url(/art/landing/map.png) center 38% / cover no-repeat;transform:scale(1.18);filter:saturate(1.05) brightness(1.12) contrast(1.02)}.landing-hero-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center 45%,#07050f00,#07050f1f 42%,#07050f6b 78%,#07050fb8),linear-gradient(180deg,#07050f52,#07050f00 28%,#07050f00,#07050fd1 96%)}.landing-hero-inner{position:relative;padding:48px 22px;max-width:760px}.landing-creed{font-family:var(--font-display);font-size:clamp(15px,2.6vw,20px);letter-spacing:.06em;line-height:1.8;color:#ece6f3;text-shadow:0 1px 8px rgba(7,5,15,.9)}.landing-creed.small{font-size:13px;opacity:.8}.landing-hint{font-size:12px;opacity:.65;margin-top:14px;letter-spacing:.04em}.landing-cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:26px}.landing-cta{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;font-size:14px;padding:14px 26px;border-radius:10px;cursor:pointer;transition:transform .15s,box-shadow .15s}.landing-cta.primary{background:linear-gradient(170deg,#e3c468,#b8923a);color:#1c1406;border:1px solid #f0d990;box-shadow:0 4px 26px #d4af3759}.landing-cta.ghost{background:transparent;color:#e9dfc8;border:1px solid rgba(233,223,200,.5)}.landing-cta:hover{transform:translateY(-2px);box-shadow:0 8px 30px #d4af3766}.landing-section{padding:64px 22px;text-align:center;max-width:1060px;margin:0 auto}.landing-dark{max-width:none;background:linear-gradient(180deg,#0a0716,#07050f);border-top:1px solid rgba(212,175,55,.12);border-bottom:1px solid rgba(212,175,55,.12)}.landing-dark>*{max-width:1060px;margin-left:auto;margin-right:auto}.landing-clan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;margin-top:10px}.landing-watchers{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,320px));gap:22px;justify-content:center;margin-top:10px}.landing-plate{margin:0}.landing-plate img{width:100%;border-radius:12px;border:1px solid rgba(212,175,55,.28);box-shadow:0 10px 40px #0009;display:block;transition:transform .2s}.landing-plate img:hover{transform:translateY(-4px)}.landing-plate figcaption{font-size:12.5px;font-style:italic;opacity:.75;margin-top:10px;line-height:1.5}.landing-ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-top:12px;text-align:left}.landing-way{background:#150f2ba6;border:1px solid rgba(212,175,55,.16);border-radius:14px;padding:20px}.landing-way-glyph{font-size:22px;color:var(--gold)}.landing-way h3{font-family:var(--font-display);letter-spacing:.1em;font-size:15px;margin:10px 0 6px;color:#e9dfc8}.landing-way p{font-size:13.5px;line-height:1.6;opacity:.85;margin:0}.landing-promises{list-style:none;padding:0;margin:8px auto 0;max-width:620px;text-align:left}.landing-promises li{padding:10px 0;border-bottom:1px dashed rgba(212,175,55,.15);font-size:14px;line-height:1.6}.landing-promises li span{color:var(--gold);margin-right:8px}.landing-footer{text-align:center;padding:46px 22px 60px}.app-full{max-width:none!important;padding:0!important}.sound-toggle{position:fixed;bottom:16px;right:16px;z-index:60;background:#0b0719d9;border:1px solid rgba(212,175,55,.4);color:#e9dfc8;border-radius:999px;padding:10px 16px;font-size:13px;cursor:pointer;letter-spacing:.06em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sound-toggle.on{border-color:var(--gold);box-shadow:0 0 14px #d4af3759}.admin-wide{max-width:880px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:16px}.admin-stat{background:var(--den);border:1px solid var(--mist);border-radius:12px;padding:14px;text-align:center}.admin-stat-value{font-family:var(--font-display);font-size:30px;color:var(--gold)}.admin-stat-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.7;margin-top:4px}.admin-den{text-align:left}.admin-tag{font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px;margin-left:6px}.admin-tag.paused{background:#b43c3c40;color:#ffb4b4;border:1px solid rgba(180,60,60,.5)}.admin-tag.reset{background:#d4af3733;color:var(--gold);border:1px solid rgba(212,175,55,.5)}.admin-players{margin-top:10px;display:flex;flex-wrap:wrap;gap:10px}.admin-player{font-size:13px}.tree{display:flex;flex-direction:column;align-items:center;margin-top:16px}.tree-row{display:flex;gap:12px;justify-content:center;align-items:stretch}.tree-row.wrap{flex-wrap:wrap}.tree-link{width:2px;height:22px;background:linear-gradient(var(--gold),transparent);opacity:.5;margin:4px 0}.tree-node{min-width:130px;background:var(--den);border:1px solid;border-radius:12px;padding:12px 14px;margin:6px 0;cursor:pointer;text-align:center;display:flex;flex-direction:column;gap:3px;transition:transform .15s}.tree-node:hover{transform:translateY(-2px)}.tree-node.root{box-shadow:0 0 14px #d4af374d}.tree-node.ancestor{opacity:.7;background:transparent;border-style:dashed}.tree-rel{font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.6}.tree-name{font-weight:700;font-size:14px}.tree-meta{font-size:11px;opacity:.7}
