/* Starbound Academy · friendly easter eggs (fun.js). Academy-only, theme-aware, motion-safe. */
:root{--fun-bg:#FFFFFF;--fun-ink:#14120F;--fun-muted:#5A544C;--fun-rule:rgba(20,18,15,.12);--fun-accent:#1F5F4A;--fun-gold:#B8862B;--fun-shadow:0 18px 50px -18px rgba(20,18,15,.35)}
:root[data-theme="dark"]{--fun-bg:#1B1B1D;--fun-ink:#F2EFE8;--fun-muted:#B5AFA5;--fun-rule:rgba(255,255,255,.12);--fun-accent:#5FD3B3;--fun-gold:#E8C26A;--fun-shadow:0 18px 50px -18px rgba(0,0,0,.8)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--fun-bg:#1B1B1D;--fun-ink:#F2EFE8;--fun-muted:#B5AFA5;--fun-rule:rgba(255,255,255,.12);--fun-accent:#5FD3B3;--fun-gold:#E8C26A;--fun-shadow:0 18px 50px -18px rgba(0,0,0,.8)}}
html[lang=en] .fun [lang=ru],html[lang=ru] .fun [lang=en],html[lang=en] .fun-ru,html[lang=ru] .fun-en{display:none!important}
.fun{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--fun-ink);box-sizing:border-box}
.fun *{box-sizing:border-box}
.fun a{color:var(--fun-accent);font-weight:700;text-underline-offset:3px}
.fun-btn{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.55rem 1rem;border-radius:999px;border:0;background:var(--fun-ink);color:var(--fun-bg)!important;font:600 .85rem/1.2 inherit;text-decoration:none;cursor:pointer}
.fun-x{position:absolute;top:.45rem;right:.45rem;width:36px;height:36px;border-radius:50%;border:1px solid var(--fun-rule);background:transparent;color:var(--fun-muted);font-size:1.1rem;line-height:1;cursor:pointer}
.fun-x:focus-visible,.fun-btn:focus-visible,.fun input:focus-visible{outline:3px solid var(--fun-gold);outline-offset:2px}
/* toast stack: never blocks content (wrapper ignores pointer) */
.fun-dock{position:fixed;left:0;right:0;bottom:max(1rem,env(safe-area-inset-bottom));z-index:60;display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:0 .75rem;pointer-events:none}
.fun-toast{position:relative;pointer-events:auto;width:min(28rem,100%);background:var(--fun-bg);border:1px solid var(--fun-rule);border-radius:18px;box-shadow:var(--fun-shadow);padding:.95rem 3rem .95rem 1.1rem;font-size:.9rem;line-height:1.5}
.fun-toast p{margin:0}.fun-toast p+p{margin-top:.35rem;color:var(--fun-muted);font-size:.84rem}
.fun-toast.gold{border-color:var(--fun-gold);box-shadow:0 0 0 1px var(--fun-gold),var(--fun-shadow)}
/* B · Vega */
.fun-vega{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:1rem;background:rgba(8,10,20,.35);cursor:pointer}
.fun-vega-card{position:relative;cursor:auto;width:min(22rem,100%);text-align:center;background:var(--fun-bg);border:1px solid var(--fun-rule);border-radius:22px;box-shadow:var(--fun-shadow);padding:1.4rem 1.3rem 1.2rem}
.fun-vega-star{width:84px;height:84px;margin:0 auto .5rem;display:block;filter:drop-shadow(0 0 14px rgba(170,200,255,.9))}
.fun-vega-card h2{margin:.1rem 0 .4rem;font-size:1.15rem;letter-spacing:.02em}
.fun-vega-card p{margin:0 0 1rem;font-size:.92rem;line-height:1.5;color:var(--fun-muted)}
@media (prefers-reduced-motion:no-preference){
 .fun-vega-star{animation:funTw 2.4s ease-in-out infinite}.fun-vega-card{animation:funIn .45s cubic-bezier(.2,.8,.2,1)}
 .fun-toast{animation:funUp .35s cubic-bezier(.2,.8,.2,1)}
 @keyframes funTw{0%,100%{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(.86) rotate(12deg);opacity:.8}}
 @keyframes funIn{from{opacity:0;transform:scale(.9) translateY(8px)}}
 @keyframes funUp{from{opacity:0;transform:translateY(12px)}}
 .fun-kids{transition:opacity .8s ease,filter .8s ease}
}
/* C · Cyber Cossack */
.fun-cossack-badge{position:absolute;left:-4px;top:-5px;width:34px;height:34px;z-index:1;pointer-events:none}
html.fun-cossack .brand img{filter:drop-shadow(0 0 6px rgba(232,194,106,.75))}
html.fun-cossack .btn:not(.ghost){box-shadow:0 0 0 2px var(--fun-gold)}
html.fun-cossack h1 em,html.fun-cossack .eyebrow{color:var(--fun-gold)!important}
html.fun-cossack body{border-top:3px solid var(--fun-gold)}
/* Kids rest card */
.fun-kids.fun-resting{opacity:.12;filter:blur(2px);pointer-events:none;user-select:none;max-height:7rem;overflow:hidden}
.fun-rest{position:relative;margin:0 0 1rem;padding:1.2rem 1.2rem 1rem;border-radius:20px;border:1px solid var(--fun-rule);background:linear-gradient(160deg,rgba(95,120,211,.10),rgba(95,211,179,.06)),var(--fun-bg);box-shadow:var(--fun-shadow);font-size:.92rem;line-height:1.55}
.fun-rest h3{margin:0 0 .35rem;font-size:1.05rem}
.fun-rest ul{margin:.4rem 0 .6rem;padding-left:1.1rem;color:var(--fun-muted)}
.fun-rest form{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.5rem}
.fun-rest input{width:8.5rem;min-height:36px;padding:.3rem .6rem;border-radius:10px;border:1px solid var(--fun-rule);background:transparent;color:var(--fun-ink);font:inherit;font-size:.85rem}
.fun-rest .fun-btn{min-height:36px;padding:.35rem .8rem;font-size:.8rem}
.fun-hint{font-size:.72rem;opacity:.45;margin:.5rem 0 0;font-family:ui-monospace,Menlo,Consolas,monospace}
.fun-ok{margin:.5rem 0 0;font-weight:700;color:var(--fun-accent)}
.fun-motto{margin:.8rem 0 0;font-style:italic;font-size:.8rem;letter-spacing:.01em;color:var(--fun-muted);opacity:.85}
.sr-only-fun{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* Young Defenders teaser · retro DOS box (VGA palette) */
.fun-dos{margin:1rem 0 0;border-radius:14px;overflow:hidden;background:#0000AA;color:#FFFFFF;border:1px solid rgba(85,255,255,.35);box-shadow:0 14px 34px -18px rgba(0,0,170,.7),inset 0 0 0 3px #0000AA,inset 0 0 0 4px #55FFFF;font:500 .78rem/1.55 ui-monospace,"SF Mono",Menlo,Consolas,monospace;padding:.75rem .9rem .85rem}
.fun-dos p{margin:0}.fun-dos-bar{color:#FFFF55;font-weight:700;margin-bottom:.3rem!important;letter-spacing:.04em}
.fun-cur{color:#55FFFF;font-weight:700;margin-left:.15rem}
@media (prefers-reduced-motion:no-preference){.fun-cur{animation:funBlink 1.06s steps(1) infinite}@keyframes funBlink{50%{opacity:0}}}

.fun-dos a.fun-dos-link{color:#55FFFF;font-weight:700;text-decoration:none}.fun-dos a.fun-dos-link:hover,.fun-dos a.fun-dos-link:focus-visible{background:#55FFFF;color:#0000AA}
