:root{--nav-bg: #6e7176;--nav-tx: #ffffff;--nav-tx2: #ececec;--nav-soft: #5e6165;--nav-line: #86898d;--ac: #1d9e75;--ac-soft: #5dcaa5;--ease: cubic-bezier(.22, 1, .36, 1);--font-heading: "Russo One", sans-serif;--font-body: "Exo 2", system-ui, sans-serif}[data-theme=light]{--bg: #f7f7f4;--card: #ffffff;--line: #e4e2da;--tx: #1a1a18;--tx2: #6b6a64;--accent: #1d9e75;--accent-tx: #085041;--accent-bg: #e1f5ee}[data-theme=dark]{--bg: #13131a;--card: #1b1b24;--line: #2b2b36;--tx: #f0f0ea;--tx2: #8f8f98;--accent: #5dcaa5;--accent-tx: #9fe1cb;--accent-bg: #0c2e23}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background-color:var(--nav-bg);overscroll-behavior-y:none}body{background:var(--bg);color:var(--tx);font-family:var(--font-body),system-ui,sans-serif;transition:background-color .4s ease,color .4s ease;-webkit-font-smoothing:antialiased}h1,h2,h3,.heading{font-family:var(--font-heading),var(--font-body),sans-serif;font-weight:400;letter-spacing:.5px}a{color:inherit;text-decoration:none}.container{max-width:1080px;margin:0 auto;padding:0 24px}.nav{background:var(--nav-bg);position:sticky;top:0;z-index:50}.nav-inner{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;max-width:1080px;margin:0 auto}.nav-logo{color:var(--nav-tx);font-family:var(--font-heading);font-size:18px;letter-spacing:1px}.nav-logo em{color:var(--ac-soft);font-style:normal}.nav-links{display:flex;align-items:center;gap:22px}.nav-link{color:var(--nav-tx2);font-size:14px;position:relative;padding-bottom:3px;transition:color .25s ease}.nav-link:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--ac-soft);transition:width .3s var(--ease)}.nav-link:hover,.nav-link.active{color:var(--nav-tx)}.nav-link:hover:after,.nav-link.active:after{width:100%}.theme-toggle{cursor:pointer;width:38px;height:38px;border-radius:50%;background:var(--nav-soft);border:1px solid var(--nav-line);color:#eafff6;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s,transform .2s}.theme-toggle:hover{background:#565a5e;transform:scale(1.08)}.theme-toggle svg{width:20px;height:20px}[data-theme=light] .theme-toggle{color:#ffe9a8}.theme-toggle.spin svg{animation:bottleSpin .7s cubic-bezier(.34,1.2,.5,1)}@keyframes bottleSpin{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(400deg)}to{transform:translateY(0) rotate(720deg)}}.page-transition{animation:pageIn .5s var(--ease)}@keyframes pageIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.word{display:inline-block;opacity:0;transform:translateY(30px) rotate(2deg);animation:wordIn .6s var(--ease) forwards}@keyframes wordIn{to{opacity:1;transform:translateY(0) rotate(0)}}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.on{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion: reduce){.word,.reveal,.page-transition,.pixel,.hero-bottle svg,.bottle-shadow{animation:none!important;opacity:1;transform:none;transition:none}}.hero{padding:72px 0 56px;position:relative}.hero h1{font-size:clamp(30px,5.5vw,52px);line-height:1.22;margin-bottom:16px}.hero h1 .green{color:var(--accent)}.hero p.sub{color:var(--tx2);font-size:16px;margin-bottom:28px}.pixel{position:absolute;border-radius:3px;background:var(--accent);opacity:.16;animation:floatPx 7s ease-in-out infinite;pointer-events:none}@keyframes floatPx{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-22px) rotate(12deg)}}.hero-bottle{position:absolute;right:7%;top:18%;color:var(--accent);text-align:center;background:none;border:none;cursor:pointer;padding:8px;transition:transform .2s ease}.hero-bottle:hover{transform:scale(1.06)}.hero-bottle svg{width:96px;height:96px;display:block;opacity:0}.hero-bottle.go svg{animation:bottleFlip 1.5s cubic-bezier(.36,1.18,.5,1) .35s both}.bottle-shadow{display:block;width:56px;height:10px;margin:2px auto 0;border-radius:50%;background:var(--tx);opacity:0}.hero-bottle.go .bottle-shadow{animation:shadowIn 1.5s ease .35s both}@keyframes bottleFlip{0%{transform:translateY(160px) rotate(0);opacity:0}25%{opacity:1}55%{transform:translateY(-40px) rotate(560deg)}75%{transform:translateY(8px) rotate(700deg)}87%{transform:translateY(-6px) rotate(715deg)}to{transform:translateY(0) rotate(720deg);opacity:1}}@keyframes shadowIn{0%,60%{opacity:0;transform:scaleX(1.6)}to{opacity:.15;transform:scaleX(1)}}@media (max-width: 860px){.hero-bottle{display:none}}.cta{display:inline-block;background:var(--accent);color:#04241c;font-size:15px;font-weight:600;padding:13px 30px;border-radius:10px;transition:transform .2s ease,filter .2s ease,box-shadow .2s ease}.cta:hover{transform:translateY(-2px);filter:brightness(1.12);box-shadow:0 8px 24px -8px var(--accent)}.cta-ghost{color:var(--tx2);font-size:15px;padding:13px 16px;transition:color .2s}.cta-ghost:hover{color:var(--tx)}.xp-row{display:flex;align-items:center;gap:12px;margin-top:34px;max-width:560px}.xp-level{color:var(--accent);font-family:var(--font-heading);font-size:13px;white-space:nowrap}.xp-track{flex:1;height:7px;background:var(--line);border-radius:4px;overflow:hidden}.xp-fill{height:100%;width:0;background:var(--accent);border-radius:4px;transition:width 1.3s var(--ease)}.xp-num{color:var(--tx2);font-size:12px;white-space:nowrap}.xp-num strong{color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;padding:8px 0 40px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;transition:transform .25s ease,border-color .25s ease,background-color .4s ease,box-shadow .25s ease}.card:hover{transform:translateY(-5px) scale(1.01);border-color:var(--ac-soft);box-shadow:0 14px 34px -18px #00000059}.card .thumb{height:140px;border-radius:10px;margin-bottom:14px;overflow:hidden;position:relative}.card .thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s var(--ease)}.card:hover .thumb img{transform:scale(1.06)}.card .thumb:after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.22),transparent);transform:skew(-20deg);transition:left .6s var(--ease);pointer-events:none}.card:hover .thumb:after{left:130%}.card h3{font-size:16px;margin-bottom:4px}.card .meta{color:var(--tx2);font-size:13px}.card .xp-tag{color:var(--accent);font-size:13px;font-weight:600}.badge{display:inline-block;background:var(--accent-bg);color:var(--accent-tx);font-size:12px;font-weight:600;padding:4px 12px;border-radius:8px}.stats{display:flex;flex-wrap:wrap;gap:26px;align-items:center;padding:0 0 64px;color:var(--tx2);font-size:14px}.stats strong{color:var(--tx)}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block;animation:pulse 1.6s ease infinite}@keyframes pulse{50%{opacity:.3;transform:scale(.8)}}.section-title{font-size:24px;margin:40px 0 6px}.section-sub{color:var(--tx2);font-size:14px;margin-bottom:22px}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.section-head .more,.more{color:var(--accent);font-size:13px;font-weight:600;white-space:nowrap;transition:transform .2s ease;display:inline-block}.section-head .more:hover,.more:hover{transform:translate(4px)}.list-item{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:12px;transition:transform .2s ease,border-color .2s ease,background-color .4s ease}.list-item:hover{transform:translate(4px);border-color:var(--ac-soft)}.rank{font-family:var(--font-heading);color:var(--accent);font-size:15px;min-width:34px}.devlog-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}.devlog-tabs button{background:var(--card);border:1px solid var(--line);color:var(--tx2);font-family:var(--font-body);font-size:13px;font-weight:600;padding:8px 16px;border-radius:20px;cursor:pointer;transition:all .2s ease}.devlog-tabs button:hover{border-color:var(--ac-soft);color:var(--tx)}.devlog-tabs button.on{background:var(--accent);border-color:var(--accent);color:#04241c}.devlog-group{margin-bottom:34px}.devlog-game-title{font-size:18px;margin-bottom:18px;padding-bottom:10px;border-bottom:2px solid var(--accent);display:flex;align-items:center;gap:10px}.devlog-count{background:var(--accent-bg);color:var(--accent-tx);font-family:var(--font-body);font-size:11px;font-weight:600;padding:3px 10px;border-radius:10px}.devlog-item{position:relative;padding:0 0 30px 30px;border-left:2px solid var(--line);margin-left:8px}.devlog-item:last-child{border-left-color:transparent}.devlog-item:before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-bg)}.devlog-item .date{color:var(--tx2);font-size:12px;letter-spacing:.5px}.devlog-item h3{font-size:16px;margin:6px 0 8px}.devlog-item p{color:var(--tx2);font-size:14px;line-height:1.65;max-width:640px}.tag{display:inline-block;background:var(--accent-bg);color:var(--accent-tx);font-size:11px;font-weight:600;padding:3px 10px;border-radius:6px;margin-left:8px;vertical-align:2px}.footer{background:var(--nav-bg);color:var(--nav-tx2);margin-top:56px;padding:44px 0 0}.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;padding-bottom:36px}.footer h4{color:var(--nav-tx);font-family:var(--font-heading);font-size:14px;letter-spacing:1px;margin-bottom:14px;font-weight:400}.footer a{display:block;color:var(--nav-tx2);font-size:13px;padding:4px 0;transition:color .2s ease,transform .2s ease}.footer a:hover{color:#fff;transform:translate(3px)}.footer .tagline{font-size:13px;line-height:1.7;max-width:260px}.footer-bottom{border-top:1px solid var(--nav-line);padding:18px 0;font-size:12px}.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;padding:8px 0 40px}.post-card{display:block}.post-card .read-more{display:block;color:var(--accent);font-size:13px;font-weight:600;margin-top:12px;transition:transform .2s ease}.post-card:hover .read-more{transform:translate(5px)}.read-progress{position:fixed;top:0;left:0;height:3px;background:var(--accent);z-index:100;transition:width .1s linear}.article-head{max-width:720px;padding:24px 0 8px}.article-head h1{font-size:clamp(26px,4vw,40px);line-height:1.25;margin:14px 0 10px;animation:pageIn .6s var(--ease)}.article-meta{color:var(--tx2);font-size:13px}.article-cover{max-width:720px;border-radius:14px;overflow:hidden;margin:22px 0;animation:pageIn .7s var(--ease)}.article-cover img{width:100%;display:block}.article-body{max-width:680px;padding-bottom:24px}.article-body p{font-size:16.5px;line-height:1.85;color:var(--tx);margin:0 0 20px}.article-body h2{font-size:20px;margin:34px 0 12px;padding-left:14px;border-left:4px solid var(--accent)}.article-share{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding:20px 0 50px;color:var(--tx2);font-size:14px;max-width:680px}.article-share a{color:var(--accent);font-weight:600;transition:transform .2s ease}.article-share a:hover{transform:translateY(-2px)}.social-row{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 8px}.social-row a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--nav-soft);transition:transform .2s var(--ease),background .2s;padding:0}.social-row a:hover{transform:translateY(-4px) scale(1.08);background:#565a5e}.social-row img{width:17px;height:17px;display:block}.contact-form{max-width:640px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px}.contact-form .row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:14px}.contact-form label{display:block;font-size:12px;color:var(--tx2);margin-bottom:5px}.contact-form input,.contact-form textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--tx);padding:11px 13px;font-size:14px;font-family:var(--font-body);margin-bottom:14px;transition:border-color .2s}.contact-form textarea{resize:none;height:140px;max-height:140px;overflow-y:auto}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent)}.char-count{float:right;color:var(--tx2);font-size:11px;font-weight:600}.char-count.warn{color:#e24b4a}.contact-success{max-width:640px;background:var(--accent-bg);border:1px solid var(--accent);border-radius:14px;padding:28px}.contact-success h3{color:var(--accent-tx);margin-bottom:8px}.contact-success p{color:var(--accent-tx);font-size:14px;margin-bottom:16px}.error-msg{color:#e24b4a;font-size:13px;margin:6px 0 12px}.nav-user{color:var(--ac-soft);font-size:13px;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-logout{background:none;border:1px solid var(--nav-line);color:var(--nav-tx2);font-size:12px;padding:5px 12px;border-radius:14px;cursor:pointer;transition:all .2s}.nav-logout:hover{color:var(--nav-tx);border-color:var(--nav-tx)}.newsletter{display:flex;gap:8px}.newsletter input{flex:1;min-width:0;background:var(--nav-soft);border:1px solid var(--nav-line);border-radius:8px;color:var(--nav-tx);padding:9px 12px;font-size:13px;font-family:var(--font-body)}.newsletter input::placeholder{color:var(--nav-tx2)}.newsletter input:focus{outline:none;border-color:var(--ac-soft)}.newsletter button{background:var(--ac);border:none;color:#fff;font-size:13px;font-weight:600;padding:9px 14px;border-radius:8px;cursor:pointer;transition:filter .2s,transform .2s}.newsletter button:hover{filter:brightness(1.15);transform:translateY(-1px)}.search-box{background:var(--card);border:1px solid var(--line);border-radius:20px;color:var(--tx);padding:10px 18px;font-size:14px;font-family:var(--font-body);width:230px;transition:border-color .2s,width .3s var(--ease)}.search-box:focus{outline:none;border-color:var(--accent);width:280px}.comments{max-width:680px;padding-bottom:60px}.comment-form{margin:16px 0 26px}.comment-form label{display:block;font-size:12px;color:var(--tx2);margin-bottom:6px}.comment-form textarea{width:100%;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--tx);padding:12px 14px;font-size:14px;font-family:var(--font-body);resize:none;height:90px;margin-bottom:10px;transition:border-color .2s}.comment-form textarea:focus{outline:none;border-color:var(--accent)}.comment{border-bottom:1px solid var(--line);padding:16px 0;animation:pageIn .4s var(--ease)}.comment:last-child{border-bottom:none}.comment-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.comment-avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-bg);color:var(--accent-tx);font-family:var(--font-heading);font-size:13px;display:flex;align-items:center;justify-content:center}.comment p{color:var(--tx);font-size:14px;line-height:1.7;white-space:pre-wrap}@media (max-width: 700px){.search-box,.search-box:focus{width:100%}.section-head{flex-direction:column;align-items:stretch}}.admin-shell{display:flex;min-height:100vh}.admin-side{width:230px;background:var(--nav-bg);padding:22px 14px;flex-shrink:0;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh}.admin-side .nav-logo{display:block;margin:4px 8px 26px}.admin-side .side-label{color:var(--nav-tx2);font-size:10px;letter-spacing:2px;text-transform:uppercase;margin:12px 12px 8px;opacity:.7}.admin-side a{display:flex;align-items:center;gap:10px;color:var(--nav-tx2);font-size:14px;padding:10px 12px;border-radius:10px;margin-bottom:2px;transition:background .2s,color .2s,transform .15s}.admin-side a:hover{background:var(--nav-soft);color:var(--nav-tx);transform:translate(3px)}.admin-side a.active{background:var(--ac);color:#fff}.admin-side a .ico{width:20px;text-align:center;font-size:15px}.admin-side .side-footer{margin-top:auto;border-top:1px solid var(--nav-line);padding-top:14px}.side-user{display:flex;align-items:center;gap:10px;padding:8px 12px;margin-bottom:8px}.side-user .avatar{width:34px;height:34px;border-radius:50%;background:var(--ac);color:#fff;font-family:var(--font-heading);font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.side-user .who{min-width:0}.side-user .who strong{color:var(--nav-tx);font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user .who span{color:var(--nav-tx2);font-size:11px}.side-logout{width:100%;background:none;border:1px solid var(--nav-line);color:var(--nav-tx2);font-size:13px;padding:9px;border-radius:10px;cursor:pointer;transition:all .2s}.side-logout:hover{color:#fff;border-color:#fff;background:#ffffff0f}.admin-main{flex:1;padding:30px 36px;background:var(--bg);min-width:0}.admin-main>*:not(router-outlet){display:block;animation:adminIn .45s var(--ease)}@keyframes adminIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.admin-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:8px}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:18px 0 28px}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;display:block;position:relative;overflow:hidden;opacity:0;animation:adminIn .5s var(--ease) forwards;transition:transform .2s,border-color .2s,box-shadow .2s}.stat-card:nth-child(1){animation-delay:.05s}.stat-card:nth-child(2){animation-delay:.12s}.stat-card:nth-child(3){animation-delay:.19s}.stat-card:nth-child(4){animation-delay:.26s}.stat-card:nth-child(5){animation-delay:.33s}.stat-card:hover{transform:translateY(-4px);border-color:var(--ac-soft);box-shadow:0 12px 28px -16px #0006}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent);border-radius:4px 0 0 4px;opacity:0;transition:opacity .2s}.stat-card:hover:before{opacity:1}.stat-card .num{font-family:var(--font-heading);font-size:28px;color:var(--accent)}.stat-card .lbl{color:var(--tx2);font-size:13px;margin-top:4px}.stat-card .ico{position:absolute;right:14px;top:14px;font-size:18px;opacity:.55}.admin-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.admin-table th,.admin-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:14px}.admin-table th{color:var(--tx2);font-size:12px;letter-spacing:.5px;text-transform:uppercase;background:var(--bg)}.admin-table tr:last-child td{border-bottom:none}.admin-table tbody tr{transition:background .15s}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#04241c;font-size:13px;font-weight:600;border:none;padding:9px 18px;border-radius:8px;cursor:pointer;transition:transform .15s,filter .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px);filter:brightness(1.1);box-shadow:0 6px 16px -8px var(--accent)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.6;cursor:default}.btn-ghost{background:transparent;color:var(--tx2);border:1px solid var(--line)}.btn-danger{background:#e24b4a;color:#fff}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:22px}.form-grid label{display:block;font-size:12px;color:var(--tx2);margin-bottom:5px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--tx);padding:9px 12px;font-family:var(--font-body);font-size:14px;transition:border-color .2s,box-shadow .2s}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.form-grid .full{grid-column:1 / -1}.toast{display:inline-flex;align-items:center;gap:8px;background:var(--accent-bg);color:var(--accent-tx);font-size:13px;font-weight:600;padding:8px 14px;border-radius:8px;animation:toastIn .3s var(--ease)}@keyframes toastIn{0%{opacity:0;transform:translateY(6px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.admin-login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.admin-login{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:34px;animation:loginIn .6s var(--ease)}@keyframes loginIn{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.admin-login .login-bottle{width:54px;height:54px;border-radius:16px;background:var(--accent-bg);color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.admin-login .login-bottle svg{width:28px;height:28px;animation:bottleSpin .9s cubic-bezier(.34,1.2,.5,1) .3s}.admin-login h2{text-align:center;margin-bottom:4px}.admin-login .sub{color:var(--tx2);font-size:13px;text-align:center;margin-bottom:22px}.admin-login input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;color:var(--tx);padding:12px 14px;font-size:14px;margin-bottom:12px;font-family:var(--font-body);transition:border-color .2s,box-shadow .2s}.admin-login input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.admin-login.shake{animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}50%{transform:translate(8px)}75%{transform:translate(-5px)}}.spinner{width:14px;height:14px;border:2px solid rgba(0,0,0,.25);border-top-color:#04241c;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-box{max-width:380px;margin:8vh auto;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:30px;animation:loginIn .5s var(--ease)}.login-box h2{margin-bottom:18px}.login-box input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--tx);padding:11px 13px;font-size:14px;margin-bottom:12px;font-family:var(--font-body);transition:border-color .2s,box-shadow .2s}.login-box input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.msg-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:12px;transition:border-color .2s,transform .2s;animation:adminIn .4s var(--ease)}.msg-card:hover{border-color:var(--ac-soft);transform:translate(3px)}.msg-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.msg-body{color:var(--tx2);font-size:14px;line-height:1.65;white-space:pre-wrap}.empty-state{background:var(--card);border:1px dashed var(--line);border-radius:12px;padding:28px;color:var(--tx2);font-size:14px;max-width:560px}@media (max-width: 760px){.admin-shell{flex-direction:column}.admin-side{width:100%;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center}.admin-side .side-footer{margin:0 0 0 auto;border:none;padding:0}.admin-main{padding:20px}}.nav{transition:transform .35s var(--ease),box-shadow .35s ease}.nav.hide{transform:translateY(-100%)}.hero-bottle .bottle-frame{display:flex;align-items:center;justify-content:center;width:132px;height:132px;border-radius:50%;background:var(--accent-bg);border:2px solid var(--accent);transition:box-shadow .25s ease,background .25s ease}.hero-bottle:hover .bottle-frame{box-shadow:0 0 0 10px var(--accent-bg)}.hero-bottle svg{width:72px;height:72px;display:block;opacity:1}.bottle-frame{opacity:0}.hero-bottle.go .bottle-frame{animation:bottleFlip 1.5s cubic-bezier(.36,1.18,.5,1) .35s both}.hero-bottle.go .bottle-frame.spinA{animation:spinA .9s cubic-bezier(.34,1.25,.5,1) both}.hero-bottle.go .bottle-frame.spinB{animation:spinB .9s cubic-bezier(.34,1.25,.5,1) both}@keyframes spinA{0%{opacity:1;transform:translateY(0) rotate(0)}40%{transform:translateY(-36px) rotate(400deg) scale(1.05)}70%{transform:translateY(5px) rotate(690deg) scale(.96)}85%{transform:translateY(-7px) rotate(714deg)}to{opacity:1;transform:translateY(0) rotate(720deg) scale(1)}}@keyframes spinB{0%{opacity:1;transform:translateY(0) rotate(0)}40%{transform:translateY(-36px) rotate(400deg) scale(1.05)}70%{transform:translateY(5px) rotate(690deg) scale(.96)}85%{transform:translateY(-7px) rotate(714deg)}to{opacity:1;transform:translateY(0) rotate(720deg) scale(1)}}.badge,.tag,.devlog-count{transition:transform .2s var(--ease)}.badge:hover,.tag:hover,.devlog-count:hover{transform:scale(1.08)}img{animation:imgIn .5s ease}@keyframes imgIn{0%{opacity:0}to{opacity:1}}.nav-logo{transition:transform .2s var(--ease);display:inline-block}.nav-logo:hover{transform:scale(1.05)}.rank{transition:transform .2s var(--ease)}.list-item:hover .rank{transform:scale(1.2)}.xp-tag{transition:transform .2s var(--ease);display:inline-block}.card:hover .xp-tag,.list-item:hover .xp-tag{transform:translate(-3px) scale(1.08)}.form-grid textarea{resize:none;overflow-y:auto}.form-grid .cnt{float:right;color:var(--tx2);font-size:11px;font-weight:600}.form-grid .cnt.warn{color:#e24b4a}.scroll-top{position:fixed;right:22px;bottom:22px;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#04241c;border:none;font-size:18px;cursor:pointer;z-index:60;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .3s ease,transform .3s var(--ease),filter .2s}.scroll-top.show{opacity:1;transform:translateY(0);pointer-events:auto}.scroll-top:hover{filter:brightness(1.15);transform:translateY(-3px)}.flip-counter{position:absolute;top:-30px;left:50%;transform:translate(-50%);display:flex;align-items:baseline;gap:5px;background:var(--card);border:1px solid var(--accent);border-radius:999px;padding:4px 12px;box-shadow:0 8px 22px -12px var(--accent);white-space:nowrap;z-index:3;pointer-events:none}.flip-counter .flip-num{font-family:var(--font-heading);font-size:17px;color:var(--accent);line-height:1;min-width:12px;text-align:center;display:inline-block}.flip-counter .flip-lbl{font-size:11px;color:var(--tx2);font-weight:600;letter-spacing:.5px}.flip-counter.bump{animation:counterPop .55s var(--ease)}.flip-counter.bump .flip-num{animation:numKick .5s cubic-bezier(.34,1.35,.5,1)}@keyframes counterPop{0%{transform:translate(-50%) scale(1)}35%{transform:translate(-50%) scale(1.16) translateY(-4px);border-color:var(--ac-soft)}to{transform:translate(-50%) scale(1)}}@keyframes numKick{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-6px) scale(1.4);color:var(--ac-soft)}to{transform:translateY(0) scale(1)}}.bottle-spark{position:absolute;top:50%;left:50%;width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:0;pointer-events:none;transform:translate(-50%,-50%)}.bottle-spark.pop{animation:sparkFly .6s var(--ease)}@keyframes sparkFly{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}30%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--sx)),calc(-50% + var(--sy))) scale(1)}}@media (prefers-reduced-motion: reduce){.flip-counter.bump,.flip-counter.bump .flip-num,.bottle-spark.pop{animation:none!important}.bottle-spark{display:none}}.btn,.cta{position:relative;overflow:hidden}.btn:after,.cta:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--rx, 50%) var(--ry, 50%),rgba(255,255,255,.55),transparent 45%);opacity:0;transition:opacity .5s ease;pointer-events:none}.btn:active:after,.cta:active:after{opacity:1;transition:none}a.nav-link:focus-visible,.btn:focus-visible,.cta:focus-visible,.theme-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-bg),0 0 0 4px var(--accent)}.article-body a{color:var(--accent);background-image:linear-gradient(var(--accent),var(--accent));background-size:0% 2px;background-repeat:no-repeat;background-position:left bottom;transition:background-size .3s var(--ease)}.article-body a:hover{background-size:100% 2px}.stats span{transition:color .2s ease}.stats span:hover{color:var(--tx)}.card,.list-item,.form-grid,.admin-table,.msg-card,.stat-card{transition:background-color .4s ease,border-color .25s ease,transform .2s ease,box-shadow .25s ease}.admin-form{margin-bottom:26px}.form-section{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:4px 20px 20px;margin-bottom:16px;opacity:0;animation:adminIn .5s var(--ease) forwards;transition:border-color .25s ease,box-shadow .25s ease,background-color .4s ease}.form-section:hover{border-color:var(--ac-soft);box-shadow:0 12px 30px -22px #00000080}.form-section:nth-of-type(1){animation-delay:.04s}.form-section:nth-of-type(2){animation-delay:.1s}.form-section:nth-of-type(3){animation-delay:.16s}.form-section-head{display:flex;align-items:center;gap:12px;padding:16px 0 14px;margin-bottom:16px;border-bottom:1px solid var(--line)}.form-section-head .fs-ico{width:38px;height:38px;flex-shrink:0;border-radius:11px;background:var(--accent-bg);color:var(--accent-tx);display:flex;align-items:center;justify-content:center;font-size:18px;transition:transform .25s var(--ease)}.form-section:hover .form-section-head .fs-ico{transform:rotate(-8deg) scale(1.08)}.form-section-head h4{font-family:var(--font-heading);font-size:15px;letter-spacing:.4px;margin:0}.form-section-head p{color:var(--tx2);font-size:12.5px;margin:2px 0 0}.form-section .form-grid{background:none;border:none;border-radius:0;padding:0;margin:0}.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;position:sticky;bottom:0;background:var(--bg);padding:14px 0 2px;z-index:2}.form-grid>div{animation:fieldIn .4s var(--ease) both}@keyframes fieldIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.log-filters{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 18px}.log-filters button{background:var(--card);border:1px solid var(--line);color:var(--tx2);font-family:var(--font-body);font-size:13px;font-weight:600;padding:7px 15px;border-radius:20px;cursor:pointer;transition:all .2s var(--ease)}.log-filters button:hover{border-color:var(--ac-soft);color:var(--tx);transform:translateY(-1px)}.log-filters button.on{background:var(--accent);border-color:var(--accent);color:#04241c}.log-card{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px;animation:adminIn .4s var(--ease);transition:border-color .2s,transform .2s,box-shadow .2s}.log-card:hover{transform:translate(3px);box-shadow:0 10px 26px -20px #00000080}.log-card.lvl-error{border-left-color:#e24b4a}.log-card.lvl-warn{border-left-color:#e0a53b}.log-card.lvl-info{border-left-color:var(--accent)}.log-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.log-level{font-family:var(--font-heading);font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:3px 9px;border-radius:6px}.log-level.lvl-error{background:#e24b4a26;color:#e24b4a}.log-level.lvl-warn{background:#e0a53b29;color:#e0a53b}.log-level.lvl-info{background:var(--accent-bg);color:var(--accent-tx)}.log-source{font-size:11px;font-weight:600;color:var(--tx2);background:var(--bg);border:1px solid var(--line);padding:2px 8px;border-radius:6px}.log-time{color:var(--tx2);font-size:12px;margin-left:auto}.log-msg{color:var(--tx);font-size:14px;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-word}.log-stack{margin-top:8px;color:var(--tx2);font-size:12px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;max-height:180px;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.log-stack-toggle{background:none;border:none;color:var(--accent);font-family:var(--font-body);font-size:12px;font-weight:600;cursor:pointer;padding:6px 0 0}.log-url{color:var(--tx2);font-size:12px;margin-top:4px;word-break:break-all}.route-loader{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(3px);animation:rlFade .2s ease}@keyframes rlFade{0%{opacity:0}to{opacity:1}}.route-loader .rl-ring{width:84px;height:84px;border-radius:50%;background:var(--accent-bg);border:2px solid var(--accent);color:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 40px -12px var(--accent);animation:rlFlip 1.1s cubic-bezier(.5,.05,.3,1) infinite}.route-loader .rl-ring svg{width:40px;height:40px;display:block}@keyframes rlFlip{0%{transform:translateY(0) rotate(0)}55%{transform:translateY(-24px) rotate(400deg)}to{transform:translateY(0) rotate(720deg)}}@media (prefers-reduced-motion: reduce){.route-loader .rl-ring{animation:none}}.milestone{position:fixed;inset:0;z-index:9997;display:flex;align-items:center;justify-content:center;pointer-events:none}.milestone-card{background:var(--card);border:2px solid var(--accent);border-radius:20px;padding:26px 34px;text-align:center;box-shadow:0 24px 60px -20px #00000080;animation:msPop .6s cubic-bezier(.34,1.4,.5,1)}.milestone-card .ms-num{font-family:var(--font-heading);font-size:44px;line-height:1;color:var(--accent);text-shadow:0 4px 18px var(--accent-bg)}.milestone-card .ms-title{font-family:var(--font-heading);font-size:15px;letter-spacing:1px;margin-top:8px;color:var(--tx)}.milestone-card .ms-sub{color:var(--tx2);font-size:13px;margin-top:4px}@keyframes msPop{0%{opacity:0;transform:scale(.6) translateY(20px)}60%{opacity:1;transform:scale(1.06) translateY(0)}to{opacity:1;transform:scale(1)}}.milestone.out .milestone-card{animation:msOut .4s ease forwards}@keyframes msOut{to{opacity:0;transform:scale(.9) translateY(-10px)}}.confetti{position:fixed;top:46%;left:50%;width:11px;height:11px;z-index:9997;pointer-events:none;opacity:0;border-radius:2px;animation:confettiFly 1.1s ease-out forwards}@keyframes confettiFly{0%{opacity:1;transform:translate(-50%,-50%) rotate(0)}to{opacity:0;transform:translate(calc(-50% + var(--cx)),calc(-50% + var(--cy))) rotate(var(--cr))}}@media (prefers-reduced-motion: reduce){.milestone-card{animation:none}.confetti{display:none}}[data-accent=teal]{--ac: #14b8a6;--ac-soft: color-mix(in srgb, #14b8a6 55%, #fff);--accent: #14b8a6;--accent-tx: color-mix(in srgb, #14b8a6 75%, #000);--accent-bg: color-mix(in srgb, #14b8a6 16%, transparent)}[data-accent=cyan]{--ac: #06b6d4;--ac-soft: color-mix(in srgb, #06b6d4 55%, #fff);--accent: #06b6d4;--accent-tx: color-mix(in srgb, #06b6d4 75%, #000);--accent-bg: color-mix(in srgb, #06b6d4 16%, transparent)}[data-accent=blue]{--ac: #3b82f6;--ac-soft: color-mix(in srgb, #3b82f6 55%, #fff);--accent: #3b82f6;--accent-tx: color-mix(in srgb, #3b82f6 78%, #000);--accent-bg: color-mix(in srgb, #3b82f6 16%, transparent)}[data-accent=indigo]{--ac: #6366f1;--ac-soft: color-mix(in srgb, #6366f1 55%, #fff);--accent: #6366f1;--accent-tx: color-mix(in srgb, #6366f1 78%, #000);--accent-bg: color-mix(in srgb, #6366f1 16%, transparent)}[data-accent=purple]{--ac: #8b5cf6;--ac-soft: color-mix(in srgb, #8b5cf6 55%, #fff);--accent: #8b5cf6;--accent-tx: color-mix(in srgb, #8b5cf6 78%, #000);--accent-bg: color-mix(in srgb, #8b5cf6 16%, transparent)}[data-accent=pink]{--ac: #ec4899;--ac-soft: color-mix(in srgb, #ec4899 55%, #fff);--accent: #ec4899;--accent-tx: color-mix(in srgb, #ec4899 75%, #000);--accent-bg: color-mix(in srgb, #ec4899 16%, transparent)}[data-accent=red]{--ac: #ef4444;--ac-soft: color-mix(in srgb, #ef4444 55%, #fff);--accent: #ef4444;--accent-tx: color-mix(in srgb, #ef4444 75%, #000);--accent-bg: color-mix(in srgb, #ef4444 16%, transparent)}[data-accent=orange]{--ac: #f97316;--ac-soft: color-mix(in srgb, #f97316 55%, #fff);--accent: #f97316;--accent-tx: color-mix(in srgb, #f97316 72%, #000);--accent-bg: color-mix(in srgb, #f97316 18%, transparent)}[data-accent=amber]{--ac: #e0a53b;--ac-soft: color-mix(in srgb, #e0a53b 55%, #fff);--accent: #e0a53b;--accent-tx: color-mix(in srgb, #e0a53b 68%, #000);--accent-bg: color-mix(in srgb, #e0a53b 20%, transparent)}.accent-picker{position:relative;display:inline-flex}.accent-dot{width:16px;height:16px;border-radius:50%;display:block;box-shadow:inset 0 0 0 2px #ffffff80}.accent-pop{position:absolute;top:46px;right:0;z-index:60;display:flex;flex-wrap:wrap;gap:8px;padding:12px;width:188px;justify-content:center;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px -16px #00000080;animation:toastIn .2s var(--ease)}.accent-swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .15s var(--ease)}.accent-swatch:hover{transform:scale(1.15)}.accent-swatch.on{border-color:var(--tx);box-shadow:0 0 0 2px var(--card),0 0 0 3px var(--tx)}.profile-head{display:flex;align-items:center;gap:18px;padding:32px 0 8px}.profile-avatar{width:76px;height:76px;border-radius:50%;flex-shrink:0;background:var(--accent);color:#04241c;font-family:var(--font-heading);font-size:30px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px -12px var(--accent)}.profile-avatar-wrap{position:relative;width:76px;height:76px;flex-shrink:0}.profile-avatar-img{width:76px;height:76px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);box-shadow:0 10px 30px -12px var(--accent);animation:avatarIn .4s var(--ease)}@keyframes avatarIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.avatar-upload{position:absolute;right:-4px;bottom:-4px;width:30px;height:30px;border-radius:50%;background:var(--card);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;box-shadow:0 4px 12px -4px #0006;transition:transform .2s var(--ease),border-color .2s}.avatar-upload:hover{transform:scale(1.12);border-color:var(--accent)}.avatar-upload.busy{pointer-events:none}.profile-head{animation:adminIn .5s var(--ease)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding:6px 0 20px}.badge-item{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 14px;text-align:center;transition:transform .2s var(--ease),border-color .2s,box-shadow .2s}.badge-item:hover{transform:translateY(-4px);border-color:var(--ac-soft);box-shadow:0 14px 30px -18px #0006}.badge-item .badge-ico{font-size:34px;display:block;line-height:1}.badge-item strong{display:block;margin:10px 0 3px;font-size:14px}.badge-item .badge-req{color:var(--tx2);font-size:12px}.badge-item.locked{opacity:.5;filter:grayscale(.8)}.badge-item.locked .badge-ico{filter:grayscale(1)}.upload-row{display:flex;align-items:center;gap:10px;margin-top:8px}.upload-btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent-bg);color:var(--accent-tx);font-size:12px;font-weight:600;padding:8px 12px;border-radius:8px;cursor:pointer;transition:filter .15s,transform .15s;white-space:nowrap}.upload-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.upload-preview{width:46px;height:46px;border-radius:8px;object-fit:cover;border:1px solid var(--line);flex-shrink:0}.account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;padding-bottom:12px}.account-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}.account-card h4{font-family:var(--font-heading);font-size:15px;margin-bottom:14px}.account-card label{display:block;font-size:12px;color:var(--tx2);margin-bottom:5px}.account-card input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--tx);padding:10px 12px;font-size:14px;font-family:var(--font-body);margin-bottom:12px;transition:border-color .2s,box-shadow .2s}.account-card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.account-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.appearance-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:8px 20px;margin-bottom:12px}.appearance-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 0;border-bottom:1px solid var(--line)}.appearance-row:last-child{border-bottom:none}.appearance-row strong{display:block;font-size:14px}.appearance-row span{color:var(--tx2);font-size:12.5px}.theme-switch{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:4px;gap:4px}.theme-switch button{background:none;border:none;color:var(--tx2);font-family:var(--font-body);font-size:13px;font-weight:600;padding:8px 16px;border-radius:9px;cursor:pointer;transition:background .2s,color .2s}.theme-switch button:hover{color:var(--tx)}.theme-switch button.on{background:var(--accent);color:#fff}.accent-grid{display:flex;flex-wrap:wrap;gap:10px;max-width:340px;justify-content:flex-end}.accent-swatch.lg{width:30px;height:30px;border-radius:9px}.accent-swatch.lg.on{transform:scale(1.12)}.btn,.cta,.cta-ghost,.nav-logout,.theme-toggle,.accent-swatch,.log-filters button,.theme-switch button{position:relative;overflow:hidden}.ripple{position:absolute;border-radius:50%;background:currentColor;opacity:.35;transform:scale(0);pointer-events:none;animation:rippleOut .6s var(--ease)}@keyframes rippleOut{to{transform:scale(2.4);opacity:0}}.btn:active,.cta:active,.cta-ghost:active,.nav-logout:active,.card:active,.list-item:active,.stat-card:active,.badge:active{transform:scale(.97)}.form-grid input,.form-grid select,.form-grid textarea,.contact-form input,.contact-form textarea,.account-card input,.admin-login input,.login-box input{transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}.form-grid input:focus,.contact-form input:focus,.contact-form textarea:focus,.account-card input:focus,.admin-login input:focus,.login-box input:focus{transform:translateY(-1px)}.nav-links>*{animation:navItemIn .5s var(--ease) both}.nav-links>*:nth-child(1){animation-delay:.02s}.nav-links>*:nth-child(2){animation-delay:.06s}.nav-links>*:nth-child(3){animation-delay:.1s}.nav-links>*:nth-child(4){animation-delay:.14s}.nav-links>*:nth-child(5){animation-delay:.18s}.nav-links>*:nth-child(6){animation-delay:.22s}.nav-links>*:nth-child(7){animation-delay:.26s}@keyframes navItemIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.card{position:relative}.card:before,.stat-card:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(120px circle at var(--mx, 50%) var(--my, 50%),var(--accent-bg),transparent 60%);opacity:0;transition:opacity .3s ease;pointer-events:none}.card:hover:before{opacity:.6}.toast{animation:toastPop .4s var(--ease)}@keyframes toastPop{0%{opacity:0;transform:translateY(6px) scale(.9)}60%{transform:translateY(0) scale(1.05)}to{transform:scale(1);opacity:1}}.badge:hover,.tag:hover,.xp-tag:hover{transform:translateY(-1px) scale(1.06)}.profile-avatar-img:hover,.row-avatar:hover{animation:wobble .5s var(--ease)}@keyframes wobble{25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.footer a,.nav-link,.more,.contact-link{will-change:transform}.page-transition{animation:pageRise .5s var(--ease)}@keyframes pageRise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.ripple{display:none}.nav-links>*,.toast,.page-transition{animation:none!important}.btn:active,.cta:active,.card:active,.list-item:active,.stat-card:active{transform:none}}.btn{font-weight:600;letter-spacing:.2px}.btn-ghost{background:var(--card);color:var(--tx);border:1px solid var(--line)}.btn-ghost:hover{border-color:var(--ac-soft);color:var(--accent);background:var(--card);box-shadow:0 4px 12px -8px #0000004d}.btn-danger{background:transparent;color:#e24b4a;border:1px solid color-mix(in srgb,#e24b4a 45%,var(--line))}.btn-danger:hover{background:#e24b4a;color:#fff;box-shadow:0 6px 16px -8px #e24b4a}td.row-actions{text-align:right;white-space:nowrap}td.row-actions .btn,td.row-actions .btn-ghost{padding:7px 14px;font-size:12.5px;vertical-align:middle}td.row-actions .btn+.btn{margin-left:8px}.form-actions{justify-content:flex-start;gap:10px;border-top:1px solid var(--line);margin-top:8px;padding:16px 0 4px}.form-actions .btn{padding:11px 26px}.form-actions .toast,.form-actions .error-msg{margin-left:auto}.admin-topbar .btn{padding:9px 17px}.admin-topbar>div:last-child{display:flex;gap:10px;align-items:center}app-root{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}app-root>.footer{margin-top:auto}.nav-inner{min-height:64px;padding:0 24px}.nav{box-shadow:0 2px 18px -12px #00000073}.footer{margin-top:auto;padding-top:40px}.footer-grid{padding-bottom:32px}.footer-bottom{padding:16px 0}.lang-toggle{cursor:pointer;min-width:38px;height:38px;border-radius:12px;background:var(--nav-soft);border:1px solid var(--nav-line);color:var(--nav-tx);font-family:var(--font-heading);font-size:12px;letter-spacing:1px;padding:0 10px;transition:background .2s,transform .2s var(--ease),border-color .2s}.lang-toggle:hover{background:#565a5e;transform:scale(1.06);border-color:var(--ac-soft)}.auth-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 24px}.auth-card{display:grid;grid-template-columns:.9fr 1.1fr;width:100%;max-width:780px;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 30px 70px -40px #0000008c;animation:authIn .55s var(--ease)}@keyframes authIn{0%{opacity:0;transform:translateY(22px) scale(.98)}to{opacity:1;transform:none}}.auth-brand{background:radial-gradient(120% 120% at 20% 0%,color-mix(in srgb,var(--accent) 34%,transparent),transparent 60%),linear-gradient(160deg,#1b1e25,#23262f);color:#fff;padding:40px 30px;display:flex;flex-direction:column;justify-content:center;gap:14px;position:relative}.auth-bottle{width:62px;height:62px;border-radius:18px;background:color-mix(in srgb,var(--accent) 24%,transparent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);color:var(--ac-soft);display:flex;align-items:center;justify-content:center;animation:bottleSpin 1s cubic-bezier(.34,1.2,.5,1) .25s}.auth-bottle svg{width:32px;height:32px}.auth-brand-title{font-size:22px;line-height:1.35;white-space:pre-line;margin:0;animation:titleIn .55s var(--ease) .1s both}.auth-brand p{color:#ffffff9e;font-size:13.5px;animation:titleIn .55s var(--ease) .18s both}.auth-form{padding:38px 34px}.auth-form h2{font-size:22px;margin-bottom:4px;animation:titleIn .5s var(--ease) .08s both}.auth-form .auth-sub{color:var(--tx2);font-size:13.5px;margin-bottom:22px;animation:titleIn .5s var(--ease) .14s both}.auth-form label{display:block;font-size:12px;color:var(--tx2);margin-bottom:6px;font-weight:600}.auth-form input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;color:var(--tx);padding:12px 14px;font-size:14px;font-family:var(--font-body);margin-bottom:14px;transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}.auth-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);transform:translateY(-1px)}.auth-form form>*{animation:fieldIn .45s var(--ease) both}.auth-form form>*:nth-child(2){animation-delay:.05s}.auth-form form>*:nth-child(3){animation-delay:.1s}.auth-form form>*:nth-child(4){animation-delay:.15s}.auth-form form>*:nth-child(5){animation-delay:.2s}.auth-form form>*:nth-child(6){animation-delay:.25s}.auth-form form>*:nth-child(7){animation-delay:.3s}.auth-alt{color:var(--tx2);font-size:13px;margin-top:18px}.auth-alt a{color:var(--accent);font-weight:600}@media (max-width: 700px){.auth-card{grid-template-columns:1fr;max-width:420px}.auth-brand{padding:26px 26px 22px}.auth-brand-title{font-size:18px}}@media (prefers-reduced-motion: reduce){.auth-card,.auth-bottle,.auth-brand-title,.auth-brand p,.auth-form h2,.auth-form .auth-sub,.auth-form form>*{animation:none!important}}.user-menu{position:relative}.user-chip{display:inline-flex;align-items:center;gap:8px;background:var(--nav-soft);border:1px solid var(--nav-line);border-radius:22px;padding:4px 12px 4px 4px;cursor:pointer;color:var(--nav-tx);font-family:var(--font-body);transition:background .2s,border-color .2s,transform .2s var(--ease)}.user-chip:hover{background:#565a5e;border-color:var(--ac-soft);transform:translateY(-1px)}.chip-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;display:block;border:2px solid var(--ac)}.chip-initial{display:flex;align-items:center;justify-content:center;background:var(--ac);color:#fff;font-family:var(--font-heading);font-size:13px}.chip-name{font-size:13px;font-weight:600;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-caret{font-size:10px;opacity:.7;transition:transform .25s var(--ease)}.chip-caret.up{transform:rotate(180deg)}.user-pop{position:absolute;top:48px;right:0;z-index:70;width:264px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px -24px #0000008c;overflow:hidden;animation:popIn .25s var(--ease)}@keyframes popIn{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}.up-head{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,var(--accent-bg),transparent);border-bottom:1px solid var(--line)}.up-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);font-size:18px;flex-shrink:0}.up-who{min-width:0}.up-who strong{display:block;color:var(--tx);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-who a{color:var(--accent);font-size:12.5px;font-weight:600}.up-who a:hover{text-decoration:underline}.up-section{padding:12px 16px;border-bottom:1px solid var(--line)}.up-label{display:block;color:var(--tx2);font-size:10.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:10px}.up-row{display:flex;flex-direction:column;gap:10px}.theme-switch.sm button{padding:6px 14px;font-size:14px}.up-accents{display:flex;flex-wrap:wrap;gap:7px}.up-accents .accent-swatch{width:21px;height:21px;border-radius:7px}.up-logout{display:block;width:100%;background:none;border:none;color:#e24b4a;font-family:var(--font-body);font-size:13.5px;font-weight:600;text-align:left;padding:13px 16px;cursor:pointer;transition:background .15s}.up-logout:hover{background:color-mix(in srgb,#e24b4a 10%,transparent)}.nav-login-cta{background:var(--ac);color:#fff!important;padding:7px 16px!important;border-radius:18px;font-weight:600}.nav-login-cta:after{display:none}.nav-login-cta:hover{filter:brightness(1.12)}.nav{background:color-mix(in srgb,var(--nav-bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn:not(.btn-ghost):not(.btn-danger),.cta{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff),var(--accent));box-shadow:0 2px color-mix(in srgb,var(--accent) 70%,#000),0 8px 20px -10px var(--accent)}.btn:not(.btn-ghost):not(.btn-danger):hover,.cta:hover{box-shadow:0 2px color-mix(in srgb,var(--accent) 70%,#000),0 12px 26px -10px var(--accent)}.btn:not(.btn-ghost):not(.btn-danger):active,.cta:active{box-shadow:0 0 color-mix(in srgb,var(--accent) 70%,#000),0 4px 12px -8px var(--accent);transform:translateY(2px) scale(.98)}.card,.stat-card,.form-section,.chart-card,.account-card,.appearance-card{box-shadow:0 1px 2px #0000000d,0 10px 28px -22px #0006}.card:hover{box-shadow:0 2px 4px #0000000f,0 20px 44px -20px #00000073}.badge,.tag,.devlog-count{border-radius:8px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--ac-soft)}::selection{background:var(--accent);color:#fff}@media (max-width: 860px){.user-menu{align-self:flex-start;margin-top:6px}.user-pop{left:0;right:auto}}.scroll-top{width:48px;height:48px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff),var(--accent));color:#fff;border:none;box-shadow:0 2px color-mix(in srgb,var(--accent) 70%,#000),0 12px 28px -12px var(--accent),0 0 0 4px var(--accent-bg);display:flex;align-items:center;justify-content:center;font-size:0}.scroll-top svg{width:20px;height:20px;display:block;transition:transform .25s var(--ease)}.scroll-top:hover{transform:translateY(-4px);filter:brightness(1.06)}.scroll-top:hover svg{transform:translateY(-2px)}.scroll-top:active{transform:translateY(0) scale(.94);box-shadow:0 0 color-mix(in srgb,var(--accent) 70%,#000),0 6px 16px -10px var(--accent),0 0 0 4px var(--accent-bg)}.up-row .theme-switch.sm{display:flex;width:100%}.theme-switch.sm button{flex:1;display:flex;align-items:center;justify-content:center;padding:8px 0;font-size:16px;line-height:1}.up-admin{display:block;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--tx);font-size:13.5px;font-weight:600;transition:background .15s,color .15s,padding-left .2s var(--ease)}.up-admin:hover{background:var(--accent-bg);color:var(--accent);padding-left:20px}.admin-main{contain:layout style}.admin-side{contain:layout style paint}.admin-table tbody tr{will-change:auto}@media (max-width: 760px){.admin-side{contain:none}}.forum-composer{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:24px;box-shadow:0 1px 2px #0000000d,0 10px 28px -22px #0006;animation:adminIn .45s var(--ease)}.fc-head{display:flex;gap:12px;align-items:flex-start}.fc-avatar,.fp-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);flex-shrink:0}.fc-initial{display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-family:var(--font-heading);font-size:16px}.fc-head textarea{flex:1;background:var(--bg);border:1px solid var(--line);border-radius:12px;color:var(--tx);padding:12px 14px;font-size:14.5px;font-family:var(--font-body);resize:none;transition:border-color .2s,box-shadow .2s}.fc-head textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.fc-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding-left:52px}.emoji-bar{display:flex;flex-wrap:wrap;gap:2px}.emoji-btn{background:none;border:none;font-size:19px;line-height:1;padding:5px;border-radius:8px;cursor:pointer;transition:background .15s,transform .15s var(--ease)}.emoji-btn:hover{background:var(--accent-bg);transform:scale(1.25)}.emoji-btn:active{transform:scale(.95)}.fc-actions{display:flex;align-items:center;gap:12px}.fc-actions .char-count{float:none}.forum-list{max-width:720px}.forum-post{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:12px;animation:itemSlide .4s var(--ease) both;transition:border-color .2s,transform .2s var(--ease),box-shadow .2s}.forum-post:hover{border-color:var(--ac-soft);transform:translate(3px);box-shadow:0 10px 26px -20px #00000073}.fp-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.fp-avatar{width:34px;height:34px;font-size:14px}.fp-head strong{font-size:14px}.fp-time{color:var(--tx2);font-size:12px;margin-left:auto}.fp-del{background:none;border:none;color:var(--tx2);font-size:13px;cursor:pointer;padding:4px 8px;border-radius:7px;transition:background .15s,color .15s}.fp-del:hover{background:color-mix(in srgb,#e24b4a 12%,transparent);color:#e24b4a}.fp-content{color:var(--tx);font-size:14.5px;line-height:1.7;white-space:pre-wrap;word-break:break-word;margin:0 0 0 44px}@media (max-width: 560px){.fc-bar{padding-left:0}.fp-content{margin-left:0}}.support-hero{padding:8px 0 6px;max-width:720px}.support-search{width:100%;max-width:560px;background:var(--card);border:1px solid var(--line);border-radius:14px;color:var(--tx);padding:14px 18px;font-size:15px;font-family:var(--font-body);margin-top:6px;transition:border-color .2s,box-shadow .2s}.support-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.support-heading{font-family:var(--font-heading);font-size:19px;margin:34px 0 14px}.faq-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.faq-cats button{background:var(--card);border:1px solid var(--line);color:var(--tx2);font-family:var(--font-body);font-size:13px;font-weight:600;padding:8px 16px;border-radius:20px;cursor:pointer;transition:all .2s var(--ease)}.faq-cats button:hover{border-color:var(--ac-soft);color:var(--tx);transform:translateY(-1px)}.faq-cats button.on{background:var(--accent);border-color:var(--accent);color:#fff}.faq-list{max-width:760px}.faq-item{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden;animation:itemSlide .4s var(--ease) both;transition:border-color .25s,box-shadow .25s}.faq-item:hover{border-color:var(--ac-soft)}.faq-item.open{border-color:var(--accent);box-shadow:0 12px 30px -22px #0006,0 0 0 3px var(--accent-bg)}.faq-q{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;background:none;border:none;color:var(--tx);font-family:var(--font-body);font-size:14.5px;font-weight:600;text-align:left;padding:16px 18px;cursor:pointer;transition:color .2s}.faq-item.open .faq-q{color:var(--accent)}.faq-chevron{width:26px;height:26px;border-radius:8px;background:var(--accent-bg);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s var(--ease),background .2s}.faq-chevron svg{width:15px;height:15px}.faq-item.open .faq-chevron{transform:rotate(180deg)}.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease)}.faq-item.open .faq-a{grid-template-rows:1fr}.faq-a-inner{overflow:hidden}.faq-a-inner p{color:var(--tx2);font-size:14px;line-height:1.75;padding:0 18px 16px;margin:0}.support-cta{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;max-width:760px;background:linear-gradient(135deg,var(--accent-bg),transparent);border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin:26px 0 6px}.support-cta h3{font-family:var(--font-heading);font-size:16px;margin-bottom:4px}.support-cta p{color:var(--tx2);font-size:13.5px;margin:0}@media (prefers-reduced-motion: reduce){.faq-item{animation:none}.faq-a{transition:none}}.lang-seg{display:inline-flex;background:var(--nav-soft);border:1px solid var(--nav-line);border-radius:12px;padding:3px;gap:3px}.lang-seg button{background:none;border:none;color:var(--nav-tx2);font-family:var(--font-heading);font-size:11px;letter-spacing:1px;padding:6px 11px;border-radius:9px;cursor:pointer;transition:background .2s,color .2s,transform .15s var(--ease)}.lang-seg button:not(.on):hover{color:var(--nav-tx);transform:translateY(-1px)}.lang-seg button.on{background:var(--ac);color:#fff;box-shadow:0 4px 10px -4px var(--ac)}.up-logout{display:block;width:calc(100% - 28px);margin:12px 14px 14px;background:color-mix(in srgb,#e24b4a 8%,transparent);border:1px solid color-mix(in srgb,#e24b4a 45%,var(--line));border-radius:11px;color:#e24b4a;font-family:var(--font-body);font-size:13.5px;font-weight:600;text-align:center;padding:11px;cursor:pointer;transition:background .2s,color .2s,transform .15s var(--ease),box-shadow .2s}.up-logout:hover{background:#e24b4a;color:#fff;box-shadow:0 8px 20px -10px #e24b4a;transform:translateY(-1px)}.up-logout:active{transform:scale(.97)}.lang-seg button{display:inline-flex;align-items:center;gap:5px}.lang-seg .flag{font-size:14px;line-height:1}.up-settings{display:block;width:calc(100% - 28px);margin:12px 14px 0;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff),var(--accent));color:#fff;border-radius:11px;text-align:center;font-size:13.5px;font-weight:600;padding:11px;box-shadow:0 2px color-mix(in srgb,var(--accent) 70%,#000),0 8px 20px -10px var(--accent);transition:transform .15s var(--ease),box-shadow .2s,filter .2s}.up-settings:hover{filter:brightness(1.08);transform:translateY(-1px)}.up-settings:active{transform:translateY(1px) scale(.98)}.up-admin{border-bottom:none;margin-top:4px}.btn,.btn-ghost,.btn-danger{border-radius:10px;font-size:13.5px;font-weight:600;letter-spacing:.2px}.btn-ghost,.btn-danger{transition:transform .15s var(--ease),border-color .2s,color .2s,background .2s,box-shadow .2s}.btn-ghost:hover,.btn-danger:hover{transform:translateY(-1px)}.btn-ghost:active,.btn-danger:active{transform:scale(.97)}.cta-ghost{border:1px solid var(--line);border-radius:10px;transition:color .2s,border-color .2s,transform .15s var(--ease)}.cta-ghost:hover{border-color:var(--ac-soft);transform:translateY(-1px)}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}@media (max-width: 860px){.nav{background:var(--nav-bg);backdrop-filter:none;-webkit-backdrop-filter:none}.route-loader{backdrop-filter:none}.pixel{display:none}.card:before,.stat-card:after{display:none}.card:hover,.stat-card:hover,.list-item:hover,.forum-post:hover,.faq-item:hover,.badge-item:hover{transform:none}.card,.stat-card,.form-section,.chart-card,.forum-composer,.account-card,.appearance-card,.faq-item{box-shadow:0 6px 16px -14px #00000059}.word,.reveal{animation-duration:.4s;transition-duration:.4s}}.support-edit{width:100%;background:var(--bg);border:1px solid var(--accent);border-radius:10px;color:var(--tx);padding:10px 12px;font-size:14px;font-family:var(--font-body);resize:none;box-shadow:0 0 0 3px var(--accent-bg)}.support-edit:focus{outline:none}.game-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;align-items:start;padding:8px 0 20px}.game-cover{border-radius:16px;overflow:hidden;border:1px solid var(--line)}.game-cover img{width:100%;display:block;aspect-ratio:16 / 10;object-fit:cover}.game-info h1{font-size:clamp(24px,4vw,36px);margin-bottom:12px}.game-meta{display:flex;gap:10px;align-items:center;margin-bottom:16px}.game-desc{color:var(--tx2);font-size:15.5px;line-height:1.75;margin-bottom:22px}@media (max-width: 720px){.game-detail{grid-template-columns:1fr}}.search-hero{padding:30px 0 10px}.search-hero input{width:100%;max-width:560px;background:var(--card);border:1px solid var(--line);border-radius:12px;color:var(--tx);padding:14px 18px;font-size:16px;font-family:var(--font-body);transition:border-color .2s,box-shadow .2s}.search-hero input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.search-group{margin:8px 0 10px}.search-group h3{font-size:13px;color:var(--tx2);letter-spacing:1px;text-transform:uppercase;margin:22px 0 10px}.nav-search{background:var(--nav-soft);border:1px solid var(--nav-line);border-radius:18px;color:var(--nav-tx);padding:7px 14px;font-size:13px;font-family:var(--font-body);width:130px;transition:width .3s var(--ease),border-color .2s}.nav-search::placeholder{color:var(--nav-tx2)}.nav-search:focus{outline:none;border-color:var(--ac-soft);width:190px}.chart-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:18px}.chart-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.chart-head h3{font-size:15px;font-family:var(--font-heading)}.chart-legend{display:flex;gap:14px;font-size:12px;color:var(--tx2)}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.line-chart{width:100%;height:200px;display:block}.line-chart .grid-line{stroke:var(--line);stroke-width:1}.line-chart polyline{stroke-linejoin:round;stroke-linecap:round}.chart-x{display:flex;justify-content:space-between;color:var(--tx2);font-size:11px;margin-top:2px}.bar-list{display:flex;flex-direction:column;gap:10px}.bar-row{display:grid;grid-template-columns:60px 1fr 34px;align-items:center;gap:12px}.bar-label{font-size:13px;color:var(--tx2)}.bar-track{height:12px;background:var(--bg);border-radius:6px;overflow:hidden;border:1px solid var(--line)}.bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--ac-soft));border-radius:6px;transition:width .8s var(--ease)}.bar-val{font-size:13px;font-weight:600;text-align:right}.nav-burger{display:none;background:none;border:none;cursor:pointer;padding:8px;border-radius:8px;transition:background .2s}.nav-burger:hover{background:var(--nav-soft)}.nav-burger span{display:block;width:22px;height:2px;background:var(--nav-tx);border-radius:2px;transition:transform .3s var(--ease),opacity .2s ease}.nav-burger span+span{margin-top:5px}.nav-burger.on span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-burger.on span:nth-child(2){opacity:0}.nav-burger.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width: 860px){.nav-inner{flex-wrap:wrap}.nav-burger{display:block}.nav-links{order:3;width:100%;flex-direction:column;align-items:stretch;gap:4px;max-height:0;overflow:hidden;opacity:0;transition:max-height .38s var(--ease),opacity .3s ease,padding .3s ease}.nav-links.open{max-height:680px;opacity:1;padding:12px 0 8px}.nav-link{padding:11px 6px;border-bottom:1px solid var(--nav-line)}.nav-link:after{display:none}.nav-user{padding:11px 6px;max-width:none}.nav-search,.nav-search:focus{width:100%;margin-top:6px}.nav-logout,.accent-picker{align-self:flex-start;margin-top:6px}.accent-pop{top:46px;left:0;right:auto}}.contact-extra{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 60px;max-width:640px}.contact-link{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 18px;font-size:14px;font-weight:600;color:var(--tx);transition:transform .2s var(--ease),border-color .2s,box-shadow .2s}.contact-link:hover{transform:translateY(-2px);border-color:var(--ac-soft);box-shadow:0 12px 26px -18px #0006}.nav-user{background:var(--nav-soft);border:1px solid var(--nav-line);padding:5px 12px;border-radius:14px;transition:background .2s,color .2s}.nav-user:hover{background:#565a5e;color:var(--nav-tx)}.row-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;display:block;border:1px solid var(--line)}.row-avatar-ph{display:flex;align-items:center;justify-content:center;background:var(--accent-bg);color:var(--accent-tx);font-family:var(--font-heading);font-size:14px}.cell-input{width:100%;background:var(--bg);border:1px solid var(--accent);border-radius:7px;color:var(--tx);padding:7px 9px;font-size:13px;font-family:var(--font-body);box-shadow:0 0 0 3px var(--accent-bg)}.cell-input:focus{outline:none}.section-title{animation:titleIn .55s var(--ease) both}.section-sub{animation:titleIn .55s var(--ease) .08s both}@keyframes titleIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.section-title{position:relative}.section-title:after{content:"";position:absolute;left:0;bottom:-6px;height:3px;width:0;background:linear-gradient(90deg,var(--accent),transparent);border-radius:3px;animation:titleBar .7s var(--ease) .25s forwards}@keyframes titleBar{to{width:54px}}.card h3{transition:color .25s ease}.card:hover h3{color:var(--accent)}.badge,.tag,.xp-tag{animation:chipPop .45s ease both}@keyframes chipPop{0%{opacity:0}to{opacity:1}}.msg-card,.log-card,.comment{animation:itemSlide .5s var(--ease) both}@keyframes itemSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.stat-card .num,.profile-avatar,.profile-avatar-img{will-change:transform}.stat-card:hover .num{animation:numFloat .6s var(--ease)}@keyframes numFloat{30%{transform:translateY(-4px)}}.section-head .more:after,.more:after{content:""}.cta,.btn{position:relative}.social-row a{animation:chipPop .5s var(--ease) both}.social-row a:nth-child(2){animation-delay:.06s}.social-row a:nth-child(3){animation-delay:.12s}.social-row a:nth-child(4){animation-delay:.18s}.social-row a:nth-child(5){animation-delay:.24s}.admin-table tbody tr{transition:background .2s ease,transform .15s ease}.admin-table tbody tr:hover{transform:translate(2px)}@media (prefers-reduced-motion: reduce){.section-title,.section-sub,.badge,.tag,.xp-tag,.list-item,.msg-card,.log-card,.devlog-item,.comment,.grid>*,.post-grid>*,.social-row a{animation:none!important}.section-title:after{animation:none;width:54px}}.notfound{text-align:center;padding:70px 24px 90px;max-width:560px}.notfound .nf-bottle{width:88px;height:88px;margin:0 auto 10px;color:var(--accent);display:flex;align-items:center;justify-content:center;background:var(--accent-bg);border-radius:50%;border:2px solid var(--accent);animation:bottleSpin 1s cubic-bezier(.34,1.2,.5,1) .2s}.notfound .nf-bottle svg{width:44px;height:44px}.notfound .nf-code{font-family:var(--font-heading);font-size:clamp(56px,12vw,96px);line-height:1;color:var(--accent);margin:6px 0}.notfound h2{font-size:22px;margin-bottom:8px}.notfound p{color:var(--tx2);font-size:15px;margin-bottom:26px}.notfound .nf-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.admin-shell{background:var(--bg)}.admin-side{width:244px;background:linear-gradient(180deg,#1b1e25,#23262f);border-right:1px solid rgba(255,255,255,.06);box-shadow:4px 0 24px -18px #0009;padding:20px 14px}.admin-side .nav-logo{color:#fff;letter-spacing:1.2px;margin:6px 10px 22px;font-size:19px}.admin-side .side-label{color:#ffffff61;font-size:10px;letter-spacing:2px;margin:16px 12px 8px}.admin-side a{color:#ffffffb8;font-size:14px;font-weight:500;padding:9px 11px;border-radius:11px;gap:11px}.admin-side a .ico{width:28px;height:28px;border-radius:8px;background:#ffffff14;display:inline-flex;align-items:center;justify-content:center;font-size:14px;transition:background .2s,transform .2s var(--ease)}.admin-side a:hover{background:#ffffff12;color:#fff;transform:translate(2px)}.admin-side a:hover .ico{transform:scale(1.08)}.admin-side a.active{background:var(--ac);color:#04241c;font-weight:600;box-shadow:0 8px 20px -10px var(--ac)}.admin-side a.active .ico{background:#00000029}.admin-side .side-footer{border-top-color:#ffffff1a}.admin-side .side-user .avatar{box-shadow:0 6px 16px -8px var(--ac)}.admin-side .side-logout{border-color:#ffffff29}.admin-side .side-logout:hover{background:#ffffff14}.admin-main{padding:32px 40px}.admin-main .section-title{font-size:25px}.admin-topbar{padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--line)}.stat-card{padding:20px;border-radius:16px;border-color:var(--line)}.stat-card:before{width:4px}.stat-card .ico{position:absolute;right:14px;top:14px;width:34px;height:34px;border-radius:10px;background:var(--accent-bg);display:flex;align-items:center;justify-content:center;font-size:16px;opacity:1}.stat-card .num{font-size:30px;letter-spacing:.5px}.stat-card .lbl{font-size:12.5px;text-transform:uppercase;letter-spacing:.6px}.stat-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px -22px #00000073}.admin-table{border-radius:14px;box-shadow:0 12px 30px -24px #00000080}.admin-table th{background:var(--bg);font-size:11px;letter-spacing:1px;padding:13px 16px;color:var(--tx2)}.admin-table td{padding:14px 16px}.admin-table tbody tr:hover{background:var(--accent-bg)}.form-section,.chart-card,.msg-card,.log-card,.empty-state,.account-card{border-radius:16px}.form-section,.chart-card{box-shadow:0 12px 30px -26px #00000080}.admin-main .btn{border-radius:10px;padding:10px 20px}.admin-main>.section-title:first-child:before,.admin-topbar .section-title:before{content:none}@media (max-width: 760px){.admin-side{background:linear-gradient(90deg,#1b1e25,#23262f);flex-direction:row;flex-wrap:wrap;align-items:center}.admin-main{padding:20px}}
