/* Banjjak — effets "jeu", secrets et options */
.pop{position:fixed;z-index:62;pointer-events:none;font-weight:800;font-size:1.05rem;color:var(--ink);text-shadow:0 2px 0 var(--bg);white-space:nowrap;animation:pp .95s ease-out forwards}
.pop.combo{font-size:1.45rem;color:var(--pink);-webkit-text-stroke:1px var(--line)}
@keyframes pp{0%{opacity:0;transform:translate(-50%,-20%) scale(.6)}20%{opacity:1;transform:translate(-50%,-90%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-240%) scale(1)}}
#star{-webkit-touch-callout:none;touch-action:manipulation;transition:color .4s,transform .15s}
#star.charge{animation:chg .7s ease-in forwards}
@keyframes chg{to{transform:scale(1.7) rotate(120deg);filter:drop-shadow(0 0 22px #ffd34d)}}
#star.gulp{animation:gl .4s}
@keyframes gl{50%{transform:scale(1.6) rotate(-20deg)}}
.hint .lv{background:var(--ink);color:var(--bg);border-radius:999px;padding:2px 9px;font-size:.75rem}
.lvup{position:fixed;left:50%;top:38%;z-index:80;pointer-events:none;font-weight:800;font-size:clamp(2.4rem,11vw,4.6rem);letter-spacing:-.03em;color:#ffd34d;-webkit-text-stroke:2.5px #14121f;white-space:nowrap;animation:lvu 1.6s cubic-bezier(.2,1.4,.4,1) forwards}
@keyframes lvu{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(-10deg)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(3deg)}75%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-90%) scale(.9)}}
.flash{position:fixed;inset:0;z-index:79;pointer-events:none;background:radial-gradient(circle at var(--x) var(--y2),#fff 0,rgba(255,211,77,.85) 25%,transparent 70%);animation:fl .7s ease-out forwards}
@keyframes fl{from{opacity:1}to{opacity:0}}
.shake{animation:shk .5s}
@keyframes shk{20%{translate:-7px 3px}40%{translate:6px -4px}60%{translate:-4px 2px}80%{translate:3px -1px}}
.logo i.spin{animation:spn 1s cubic-bezier(.3,1.4,.5,1)}
@keyframes spn{to{transform:rotate(714deg)}}
.bub{position:absolute;z-index:63;pointer-events:none;background:var(--card);color:var(--ink);border:2px solid var(--line);border-radius:16px;padding:7px 13px;font-family:"Gowun Dodum",sans-serif;font-weight:700;font-size:1rem;white-space:nowrap;box-shadow:3px 3px 0 var(--line);transform:translate(-50%,-100%);animation:bb 1.6s ease forwards}
.bub::after{content:"";position:absolute;left:50%;bottom:-8px;width:12px;height:12px;background:var(--card);border-right:2px solid var(--line);border-bottom:2px solid var(--line);transform:translateX(-50%) rotate(45deg)}
@keyframes bb{0%{opacity:0;margin-top:10px}12%{opacity:1;margin-top:0}85%{opacity:1}100%{opacity:0}}
.stk.fuse{transition:transform .45s cubic-bezier(.5,0,.8,.3),opacity .45s ease-in!important;opacity:0}
.polaroid .pback{display:none;position:absolute;left:16px;right:16px;top:16px;aspect-ratio:4/3;border-radius:6px;background:repeating-linear-gradient(0deg,transparent 0 27px,rgba(79,107,237,.22) 27px 28px),#fffdf5;color:#14121f;align-items:center;justify-content:center;text-align:center;padding:18px;font-family:"Gowun Dodum",sans-serif;font-size:1.2rem;line-height:1.5}
.polaroid .pback b{display:inline-block;margin-top:8px;transform:rotate(-3deg);color:#ff4f9a}
.polaroid.flipped .pback{display:flex}
.polaroid.flipping{animation:flp .5s ease-in-out}
@keyframes flp{50%{transform:rotateY(90deg) rotate(3deg)}}
.treat{cursor:pointer;user-select:none}
.treat.eat{animation:eat .6s}
@keyframes eat{20%{transform:scale(1.25,.8)}40%{transform:scale(.85,1.15) rotate(-8deg)}60%{transform:scale(1.1,.9)}}
.marquee.js{cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.marquee.js:active{cursor:grabbing}
.marquee.js .tr{animation:none!important;will-change:transform}
.secret.peek .blur{filter:blur(3.5px);transition:filter .15s}
.moon{position:absolute;left:50%;top:-4px;font-size:2.2rem;cursor:pointer;user-select:none;z-index:2;filter:drop-shadow(0 0 14px rgba(255,211,77,.75));animation:flt 6s ease-in-out infinite}
/* bouton options */
.fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;width:56px;height:56px;border-radius:18px;border:2.5px solid var(--line);background:#ffd34d;color:#14121f;font-size:1.5rem;display:grid;place-items:center;cursor:pointer;box-shadow:4px 4px 0 var(--line);transition:transform .15s,box-shadow .15s}
.fab:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--line)}
.fab b{position:absolute;top:-12px;left:-18px;background:var(--ink);color:var(--bg);font-size:.7rem;font-weight:800;border-radius:999px;padding:3px 7px;line-height:1.2;white-space:nowrap}
.fab.ding{animation:dg .6s}
@keyframes dg{30%{transform:rotate(-14deg) scale(1.15)}60%{transform:rotate(10deg)}}
.shbg{position:fixed;inset:0;z-index:90;background:rgba(10,8,20,.45);animation:lpin .2s}
.sheet{position:fixed;left:50%;bottom:0;z-index:91;width:min(560px,100%);max-height:86vh;overflow:auto;overscroll-behavior:contain;transform:translateX(-50%);background:var(--bg);color:var(--ink);border:2.5px solid var(--line);border-bottom:0;border-radius:28px 28px 0 0;padding:20px 20px calc(26px + env(safe-area-inset-bottom));animation:shin .3s cubic-bezier(.2,1,.3,1)}
@keyframes shin{from{transform:translate(-50%,100%)}}
.sheet .hd{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sheet .hd b{font-size:1.35rem;letter-spacing:-.02em}
.sheet .x{width:42px;height:42px;flex:none;border-radius:50%;border:2px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;font-size:1rem}
.sheet h4{margin:22px 0 10px;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--mut)}
.sw{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:54px;padding:6px 14px 6px 16px;border:2px solid var(--line);border-radius:16px;background:var(--card);margin-bottom:10px;cursor:pointer;font-weight:700}
.sw input{position:absolute;opacity:0;pointer-events:none}
.sw i{flex:none;width:52px;height:30px;border-radius:999px;border:2px solid var(--line);background:var(--bg);position:relative;transition:background .2s}
.sw i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--ink);transition:transform .25s cubic-bezier(.3,1.5,.5,1)}
.sw input:checked+i{background:var(--green)}
.sw input:checked+i::after{transform:translateX(22px);background:#fff}
.sw input:focus-visible+i{outline:3px solid var(--blue);outline-offset:2px}
.sheet .sh{margin:0 0 12px;color:var(--mut);font-size:.9rem}
.prog{height:14px;border:2px solid var(--line);border-radius:999px;overflow:hidden;margin-bottom:10px;background:var(--card)}
.prog i{display:block;height:100%;background:linear-gradient(90deg,#ffd34d,#ff7ab6);transition:width .4s}
.eggs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (min-width:480px){.eggs{grid-template-columns:repeat(4,minmax(0,1fr))}}
.eggs div{border:2px solid var(--line);border-radius:16px;padding:10px 6px;text-align:center;background:var(--card);font-size:.76rem;font-weight:700;line-height:1.25;min-height:86px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;overflow-wrap:anywhere}
.eggs div span{font-size:1.5rem;line-height:1.1}
.eggs div.no{border-style:dashed;background:transparent;color:var(--mut)}
.eggs div.no span{font-size:1.15rem;opacity:.6}
/* modes rigolos */
.petal{position:fixed;top:-30px;z-index:30;pointer-events:none;animation:fall linear forwards}
@keyframes fall{to{transform:translate(var(--sx),110vh) rotate(var(--r))}}
html.kd body{background-image:radial-gradient(120% 50% at 50% 0%,rgba(255,122,182,.2),transparent 70%)}
html.disco .wrap,html.disco .marquee{animation:hue 3s linear infinite}
@keyframes hue{to{filter:hue-rotate(360deg)}}
.dball{position:fixed;top:-6px;left:50%;z-index:31;font-size:2.6rem;pointer-events:none;transform-origin:50% -30px;animation:swing 1.6s ease-in-out infinite alternate}
@keyframes swing{from{transform:translateX(-50%) rotate(-14deg)}to{transform:translateX(-50%) rotate(14deg)}}
html.bit body{font-family:"Press Start 2P",ui-monospace,monospace;font-size:12px;line-height:1.9}
html.bit .hero h1{font-size:clamp(1.9rem,9.5vw,4.2rem);letter-spacing:0;line-height:1.2}
html.bit h2{font-size:clamp(1.15rem,4.4vw,1.8rem);letter-spacing:0;line-height:1.4}
html.bit .proj h3{font-size:1.05rem;line-height:1.5}
html.bit .lvup{font-family:"Press Start 2P",monospace;font-size:clamp(1.4rem,6vw,2.6rem)}
html.bit *,html.bit *::before,html.bit *::after{border-radius:0!important}
html.bit body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:70;background:repeating-linear-gradient(0deg,rgba(0,0,0,.07) 0 2px,transparent 2px 4px)}
/* modes utiles */
html.big{font-size:115%}
html.big body{font-size:19.5px}
html.bit.big body{font-size:14px}
html.calm *,html.calm *::before,html.calm *::after{animation:none!important;transition:none!important}
/* secrets cachés */
.bigt{position:fixed;left:50%;top:40%;z-index:80;pointer-events:none;font-weight:800;font-size:clamp(2.2rem,10vw,4.4rem);letter-spacing:-.03em;color:#ffd34d;-webkit-text-stroke:2.5px #14121f;white-space:nowrap;animation:lvu 1.9s cubic-bezier(.2,1.4,.4,1) forwards}
.bigt.sixseven{animation:sx .5s ease-in-out 3 alternate,lvu 1.9s forwards}
@keyframes sx{from{rotate:-8deg}to{rotate:8deg}}
body.aegyo .wrap{animation:wig .3s 4}
html.drunk .wrap{animation:drk 2.4s ease-in-out infinite}
@keyframes drk{25%{transform:rotate(1.2deg) translateX(8px)}75%{transform:rotate(-1.2deg) translateX(-8px)}}
html.rainbow #star{animation:rb 1.6s linear infinite!important}
@keyframes rb{to{filter:hue-rotate(360deg) drop-shadow(0 0 10px #ff7ab6)}}
html.matcha body{background:#e9f5e1}
html.matcha .marquee{background:#8fc46a}
html.sepia .wrap,html.sepia .marquee{filter:sepia(.85) contrast(1.05) brightness(.97)}
html.rot .wrap{animation:wig .25s infinite}
body.auraglow .wrap{animation:aur 1.5s ease}
@keyframes aur{30%{filter:drop-shadow(0 0 22px #a55eea) brightness(1.08)}}
#star{position:relative}
#star.sleep{animation:none;opacity:.55;transform:rotate(-20deg)}
.zzz{position:absolute;left:70%;top:-10px;font-size:.18em;color:var(--mut);-webkit-text-stroke:0;font-weight:800;white-space:nowrap;animation:zz 2s ease-in-out infinite}
@keyframes zz{50%{transform:translate(8px,-10px);opacity:.5}}
.term{position:fixed;inset:0;z-index:95;background:rgba(5,5,10,.55);display:grid;place-items:center;padding:16px;animation:lpin .2s}
.tw{width:min(560px,100%);background:#0d0f14;color:#7CFFB2;border:2px solid #2a2f3a;border-radius:14px;overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.tb{display:flex;align-items:center;gap:7px;padding:9px 12px;background:#1a1e27;color:#9aa3b5}
.tb i{width:11px;height:11px;border-radius:50%;background:#ff5f57}.tb i:nth-child(2){background:#febc2e}.tb i:nth-child(3){background:#28c840}
.tb span{margin-left:8px;flex:1}.tb button{border:0;background:none;color:#9aa3b5;cursor:pointer;font-size:14px}
.tw pre{margin:0;padding:14px;height:220px;overflow:auto;white-space:pre-wrap;line-height:1.6}
.tin{display:flex;align-items:center;gap:6px;padding:10px 14px;border-top:1px solid #2a2f3a}
.tin input{flex:1;border:0;outline:none;background:none;color:#fff;font:inherit;font-size:16px}
.fakead{position:fixed;inset:0;z-index:95;background:rgba(10,8,20,.5);display:grid;place-items:center;padding:20px;animation:lpin .2s}
.fa{position:relative;width:min(360px,100%);text-align:center;background:var(--card);color:var(--ink);border:3px solid var(--line);border-radius:22px;padding:30px 22px 22px;box-shadow:8px 8px 0 var(--line);animation:shin2 .4s cubic-bezier(.2,1.5,.4,1)}
@keyframes shin2{from{transform:scale(.6) rotate(-6deg);opacity:0}}
.adl{position:absolute;top:12px;left:12px;font-size:.7rem;font-weight:800;background:#ffd34d;color:#14121f;border:2px solid #14121f;border-radius:6px;padding:1px 6px;animation:pulse 1s infinite}
.fae{font-size:3rem;margin-bottom:6px}
.fa p{font-weight:700;margin:0 0 18px}
.sky{position:fixed;inset:0;z-index:85;background:linear-gradient(180deg,#05061a,#1b1450 70%,#3a1f5e);animation:lpin .6s;cursor:pointer;transition:opacity .6s}
.sky.out{opacity:0}
.sky i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;animation:tw 1.6s ease-in-out infinite alternate}
@keyframes tw{from{opacity:.2}to{opacity:1;box-shadow:0 0 6px #fff}}
.sky b{position:absolute;right:14%;top:12%;font-size:4rem;filter:drop-shadow(0 0 30px rgba(255,240,180,.8))}
.badge.beat{animation:beat .6s ease-in-out 5}
@keyframes beat{30%{transform:rotate(4deg) scale(1.2)}60%{transform:rotate(4deg) scale(1)}}
.stk.fire{font-size:2rem}
.camflash{position:fixed;inset:0;z-index:96;background:#fff;pointer-events:none;animation:fl .26s ease-out forwards}
.strip{position:fixed;right:20px;top:50%;z-index:94;width:120px;background:#14121f;padding:10px 10px 14px;border-radius:6px;display:flex;flex-direction:column;gap:8px;transform:translateY(-50%) rotate(4deg);box-shadow:0 18px 40px rgba(0,0,0,.35);animation:stin .5s cubic-bezier(.2,1.4,.4,1);cursor:pointer;transition:opacity .5s}
.strip.out{opacity:0}
@keyframes stin{from{transform:translateY(-30%) rotate(-10deg);opacity:0}}
.strip i{display:grid;place-items:center;aspect-ratio:4/3;background:linear-gradient(135deg,#ffd9e8,#fff4cf);border-radius:3px;font-style:normal;font-size:1.6rem}
.strip b{color:#fff;font-size:.65rem;text-align:center;letter-spacing:.05em}
.runner{position:fixed;left:-60px;z-index:84;font-size:2rem;pointer-events:none;transform:scaleX(-1);animation:run linear forwards}
@keyframes run{to{left:calc(100vw + 60px)}}
/* interrupteur OFF / ON (rectangulaire) */
.modesw{position:relative;flex:none;display:inline-flex;align-items:center;height:42px;width:86px;padding:0;border:2px solid var(--line);border-radius:10px;background:var(--card);box-shadow:3px 3px 0 var(--line);cursor:pointer;font:inherit;font-weight:800;font-size:.78rem;letter-spacing:.08em;color:var(--mut);transition:background .25s,color .25s}
.modesw i{position:absolute;top:4px;left:4px;width:30px;height:30px;border-radius:6px;background:var(--ink);display:grid;place-items:center;transition:transform .32s cubic-bezier(.3,1.5,.5,1),background .25s}
.modesw i::after{content:"✦";font-style:normal;font-size:.85rem;color:var(--card);transition:color .25s}
.modesw .ms-t{position:absolute;right:11px}
.modesw[aria-checked="true"]{background:#ffd34d;color:#14121f}
.modesw[aria-checked="true"] i{transform:translateX(44px);background:#14121f}
.modesw[aria-checked="true"] i::after{color:#ffd34d}
.modesw[aria-checked="true"] .ms-t{right:auto;left:12px}
.modesw:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--line)}
/* même interrupteur rectangulaire dans le menu */
.sw i{border-radius:8px;width:56px}
.sw i::after{border-radius:5px;width:20px;height:20px}
.sw input:checked+i{background:#ffd34d}
.sw input:checked+i::after{transform:translateX(26px);background:#14121f}
/* mode OFF = pro : pas d'animations ni de trucs à toucher partout */
html.pro .stk,html.pro .moon,html.pro .fab,html.pro #hint,html.pro .dball,html.pro .petal,html.pro .runner,html.pro .pop,html.pro .boom,html.pro .spk{display:none!important}
html.pro #star{animation:none!important;pointer-events:none;cursor:default;color:#ffd34d!important}
html.pro .marquee,html.pro .polaroid,html.pro .treat,html.pro .nums div,html.pro #bigk,html.pro .secret,html.pro #y,html.pro .hero h1 .ko{cursor:default!important}

html.pro .proj{transform:none!important}
html.pro .polaroid:hover{transform:rotate(3deg)}
html.pro .logo:hover i{transform:rotate(-6deg)}
html.pro .badge i{animation:none}
/* classement */
.ljoin{display:flex;gap:10px}
.ljoin input{flex:1;min-width:0;height:46px;border:2px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font:inherit;font-weight:700;font-size:16px;padding:0 12px;outline:none}
.ljoin .pill{height:46px}
.lerr{color:#e5484d;font-weight:700;font-size:.85rem;margin:8px 0 0;min-height:1em}
.lme{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;border:2px solid var(--line);border-radius:14px;background:#ffd34d;color:#14121f;padding:10px 14px;margin-bottom:12px;font-weight:700}
.lme b{font-size:1.05rem;flex-basis:100%}
.ltabs{display:flex;gap:8px;margin:4px 0 10px}
.ltabs button{flex:1;height:40px;border:2px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font:inherit;font-weight:800;font-size:.85rem;cursor:pointer}
.ltabs button.on{background:var(--ink);color:var(--bg)}
.lrows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.lrows li{display:flex;align-items:center;gap:10px;border:2px solid var(--line);border-radius:12px;background:var(--card);padding:8px 12px;font-weight:700}
.lrows li i{font-style:normal;width:28px;text-align:center}
.lrows li b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lrows li.me{background:#ffd34d;color:#14121f}
.lpl{text-align:center;margin-top:10px!important}
/* mini-jeux */
.mg{position:fixed;inset:0;z-index:97;background:rgba(10,8,20,.55);display:grid;place-items:center;padding:16px;animation:lpin .2s}
.mgc{position:relative;width:min(420px,100%);background:var(--bg);color:var(--ink);border:3px solid var(--line);border-radius:24px;padding:22px 20px 20px;box-shadow:8px 8px 0 var(--line);text-align:center;animation:shin2 .35s cubic-bezier(.2,1.5,.4,1)}
.mgc h3{margin:0 0 6px;font-size:1.5rem;letter-spacing:-.02em}
.mgi{margin:0 0 14px;color:var(--mut);font-size:.92rem}
.mgx{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:10px;border:2px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.mga{border:2px solid var(--line);border-radius:16px;background:var(--card);min-height:170px;position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.mgr{min-height:1.4em;font-weight:800;margin:12px 0 2px}
.mgb{min-height:1.2em;color:var(--mut);font-size:.85rem;font-weight:700;margin:0 0 12px}
.mgs{min-width:150px}
.mgs:disabled{opacity:.5}
.ram{display:flex;align-items:baseline;justify-content:center;gap:6px;padding:40px 0;font-variant-numeric:tabular-nums}
.ram .re{font-size:2.6rem;align-self:center;margin-right:8px;transition:transform .3s}
.ram .rt{font-size:3.4rem;letter-spacing:-.03em}
.ram.blind .rt{color:var(--mut)}
.ram.blind .re{transform:rotate(-10deg) scale(1.1)}
.trk{height:170px;position:relative}
.plat{position:absolute;left:0;right:0;bottom:44px;height:4px;background:var(--line);opacity:.25}
.trk .tr{position:absolute;bottom:48px;left:calc(100% + 10px);font-size:2.6rem;border:0;background:none;padding:0;cursor:pointer;transition:left linear;touch-action:manipulation}
.trk .tr.go{left:-70px}
.trk .tr.hit{transform:scale(1.4);opacity:0;transition:transform .2s,opacity .2s}
.kar{padding:22px 0;display:flex;flex-direction:column;align-items:center;gap:16px}
.kb{display:flex;gap:12px}
.kb i{width:16px;height:16px;border-radius:50%;background:var(--mut);opacity:.3}
.kb i.on{animation:kbo .35s ease-out}
@keyframes kbo{0%{opacity:1;background:#ff4fd8;transform:scale(1.5)}100%{opacity:.3}}
.kt{width:92px;height:92px;border-radius:50%;border:3px solid var(--line);background:#ff4fd8;color:#fff;font-size:2rem;cursor:pointer;box-shadow:4px 4px 0 var(--line);touch-action:manipulation}
.kt.hit{animation:kth .18s}
@keyframes kth{50%{transform:scale(.9)}}
.ks{font-size:2.6rem;letter-spacing:-.03em;opacity:0;transform:scale(.5);transition:all .4s cubic-bezier(.2,1.5,.4,1);color:#ff4fd8;-webkit-text-stroke:1px var(--line)}
.ks.show{opacity:1;transform:none}
.sale{height:240px;position:relative}
.sale .st,.sale .sp{position:absolute;top:10px;font-size:1.2rem;font-variant-numeric:tabular-nums}
.sale .st{left:14px}.sale .sp{right:14px}
.sale .sp::before{content:"🛍️ "}
.tag{position:absolute;border:2px solid var(--line);border-radius:10px;background:#2bb38a;color:#fff;font:inherit;font-weight:800;font-size:.9rem;padding:6px 9px;cursor:pointer;animation:tgin .18s ease-out;touch-action:manipulation}
.tag.trap{background:#e5484d}
.tag.hit{transform:scale(1.3);opacity:0;transition:all .16s}
@keyframes tgin{from{transform:scale(.4)}}
/* modes : néon, Y2K, argentique */
html:root.neon{--bg:#0b0820;--ink:#f7f4ff;--mut:#b9b2e6;--card:#151033;--line:#ff4fd8;color-scheme:dark}
html.neon h1,html.neon h2{text-shadow:0 0 10px rgba(255,79,216,.85),0 0 28px rgba(0,229,255,.55)}
html.neon .proj,html.neon .pill,html.neon .modesw{box-shadow:0 0 0 1px #ff4fd8,0 0 18px rgba(255,79,216,.55)!important}
html.neon .marquee{background:#00e5ff;box-shadow:0 0 24px rgba(0,229,255,.7)}
html:root.y2k{--bg:#f4efff;--card:#ffffffd9;--line:#5a4bff;--mut:#6d64a8}
html.y2k body{background:linear-gradient(135deg,#f6e7ff,#e3f1ff 40%,#fff3e6 70%,#f0e6ff)}
html.y2k .hero h1{background:linear-gradient(90deg,#7f7fd5,#86a8e7,#ff9be8,#91eae4,#7f7fd5);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:chrome 4s linear infinite}
html.y2k .hero h1 .ko{-webkit-text-fill-color:var(--mut)}
@keyframes chrome{to{background-position:200% center}}
html.y2k .proj{border-radius:34px}
html.film .wrap,html.film .marquee{filter:sepia(.28) saturate(1.15) contrast(1.06)}
html.film body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:69;background:radial-gradient(ellipse at center,transparent 55%,rgba(30,15,0,.38) 100%)}
html.film body::after{content:"";position:fixed;inset:-50%;pointer-events:none;z-index:70;opacity:.13;background-image:radial-gradient(#000 1px,transparent 1px),radial-gradient(#fff 1px,transparent 1px);background-size:3px 3px,5px 5px;background-position:0 0,1px 2px;animation:grain .4s steps(3) infinite}
@keyframes grain{33%{transform:translate(-1%,1%)}66%{transform:translate(1%,-1%)}}
