*{box-sizing:border-box} :root{--bg:#080a09;--panel:#101310;--panel2:#141814;--line:#242b25;--text:#f4f6f4;--muted:#8c958e;--green:#39e75c;--green2:#17bd3d;--font:'Manrope',sans-serif;--display:'Russo One',sans-serif}
html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;min-height:100vh;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 78% 12%,rgba(31,117,45,.13),transparent 38%),linear-gradient(120deg,transparent 0 70%,rgba(255,255,255,.012) 70% 71%,transparent 71%);z-index:-1}
.ambient{position:absolute;top:0;left:0;width:100%;height:500px;pointer-events:none;background:radial-gradient(ellipse at 55% 0%,rgba(46,220,76,.07),transparent 60%)}
a{color:inherit;text-decoration:none}.wrap{max-width:1220px;margin:0 auto;padding:0 28px}
.topbar{height:82px;border-bottom:1px solid rgba(255,255,255,.07);display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1220px)/2));gap:30px;position:relative;background:rgba(8,10,9,.82);backdrop-filter:blur(16px);z-index:5}
.brand{display:flex;align-items:center;gap:10px;min-width:210px}.brand img{width:42px;height:42px;object-fit:cover;object-position:center;border-radius:9px;filter:contrast(1.1)}.brand-name,.footer-brand{font-family:var(--display);font-size:20px;font-weight:900;letter-spacing:.1px;text-shadow:1px 1px 0 #000,2px 2px 0 rgba(0,0,0,.55)}.brand-name span,.footer-brand span{color:var(--green)}
.nav{display:flex;gap:30px;color:#9da59e;font-size:13px;font-weight:700}.nav a{transition:.2s}.nav a:hover,.nav a.active{color:#f5fff6}.nav a.active:after{content:"";display:block;height:2px;background:var(--green);margin-top:28px}
.actions{display:flex;gap:10px;align-items:center}.btn{border:2px solid rgba(0,0,0,.72);border-radius:2px;box-shadow:inset 0 2px 0 rgba(255,255,255,.16),inset 0 -3px 0 rgba(0,0,0,.22),2px 3px 0 rgba(0,0,0,.55);padding:11px 16px;font:700 12px var(--font);cursor:pointer;transition:transform .15s,background .15s,border .15s;color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:14px;white-space:nowrap}.btn:hover{transform:translateY(-1px);filter:brightness(1.08)}.btn:active{transform:translateY(1px);box-shadow:inset 0 2px 0 rgba(0,0,0,.2),1px 1px 0 rgba(0,0,0,.55)}.btn span{font-size:16px;line-height:10px}.btn-ghost{background:transparent;border-color:transparent;color:#c3cbc4}.btn-green{background:linear-gradient(#54f16d,#28c846);color:#071009;box-shadow:0 0 25px rgba(57,231,92,.08)}.btn-green:hover{background:#62f77b}.btn-outline{background:#111512;border-color:#303a31;color:#d9e0da}.btn-outline:hover{border-color:#4c8b58}.btn-lg{padding:15px 20px;font-size:13px}.menu-toggle{display:none;background:none;color:#fff;border:0;font-size:23px}
.hero{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;min-height:490px;padding:56px 0 44px;border-bottom:1px solid rgba(255,255,255,.06);gap:35px}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:#a5b1a7;display:flex;align-items:center;gap:9px}.pulse{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}
h1{font-size:clamp(38px,5vw,64px);line-height:1.13;letter-spacing:-2.2px;margin:22px 0 17px;font-weight:800}h1 span{color:var(--green)}.hero-copy>p{color:#9ca69e;line-height:1.8;max-width:470px;font-size:14px}.hero-actions{display:flex;gap:12px;margin-top:27px}.hero-stats{display:flex;gap:34px;margin-top:45px}.hero-stats div{display:flex;flex-direction:column;gap:5px}.hero-stats strong{font:18px var(--display);color:var(--green)}.hero-stats span{font-size:10px;color:#7f8981;letter-spacing:.4px}
.hero-art{height:330px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(255,255,255,.055);border-radius:14px;background:linear-gradient(135deg,#0e120f,#080a09 65%);box-shadow:inset 0 0 70px rgba(31,214,65,.035)}
.art-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(57,231,92,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(57,231,92,.055) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,black,transparent)}
.orb{position:absolute;border:1px solid rgba(57,231,92,.3);border-radius:50%;transform:rotate(-25deg)}.orb-one{width:250px;height:90px}.orb-two{width:300px;height:120px;border-color:rgba(57,231,92,.13);transform:rotate(40deg)}
.cube{width:126px;height:126px;position:relative;transform:rotate(-30deg) skew(8deg,8deg);filter:drop-shadow(0 0 24px rgba(57,231,92,.12));z-index:2}.cube-top{position:absolute;top:0;left:0;width:126px;height:70px;background:linear-gradient(135deg,#2a3b2d,#151c16);border:2px solid #4aef69;transform:skewY(-30deg) scaleY(.7);transform-origin:top left}.cube-left{position:absolute;top:44px;left:0;width:63px;height:100px;background:linear-gradient(160deg,#18221a,#080a09);border:2px solid #2a9d40;transform:skewY(30deg)}.cube-right{position:absolute;top:44px;left:63px;width:63px;height:100px;background:linear-gradient(180deg,#111812,#060806);border:2px solid #39e75c;transform:skewY(-30deg)}.cube-eye{position:absolute;width:15px;height:15px;background:var(--green);box-shadow:0 0 15px var(--green);z-index:4;top:83px}.eye-left{left:28px}.eye-right{left:82px}.art-label{position:absolute;bottom:22px;left:24px;right:24px;display:flex;align-items:center;gap:9px;font:10px var(--display);letter-spacing:1.5px;color:#a6b0a8}.live-dot{width:6px;height:6px;background:var(--green);border-radius:50%;box-shadow:0 0 8px var(--green)}.label-line{height:1px;background:linear-gradient(90deg,#2cda50,transparent);flex:1}.art-corner{position:absolute;right:20px;top:18px;text-align:right;font:9px var(--display);line-height:1.7;letter-spacing:1px;color:#455448}
.section-head{display:flex;justify-content:space-between;align-items:end;padding:48px 0 22px;gap:20px}.section-head h2{font-size:27px;margin:9px 0 0;letter-spacing:-.8px}.section-head h2 span{color:var(--green)}.head-tools{display:flex;gap:10px;align-items:center}.search{display:flex;align-items:center;gap:8px;background:#111512;border:1px solid #252c26;border-radius:7px;padding:0 12px;height:40px;width:230px;color:#89948b}.search span{font-size:22px}.search input{background:none;border:0;outline:0;color:#fff;font:12px var(--font);width:100%}
.forum-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:22px}.main-column{min-width:0}.category-list{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}.category{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:7px;border:1px solid #222a23;background:#0d100e;color:#a0aaa2;font:700 11px var(--font);cursor:pointer}.category small{font-size:10px;color:#606b62;margin-left:3px}.category.active{border-color:#2b6b39;background:rgba(45,165,65,.1);color:#eaffed}.cat-icon{width:20px;height:20px;border-radius:5px;background:#18221a;color:#5ee979;display:grid;place-items:center;font-size:13px}.all-icon{background:rgba(57,231,92,.14)}
.topic-toolbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #252b26;padding:14px 3px;color:#7c887e;font-size:9px;font-weight:800;letter-spacing:1.5px}.topic-toolbar button{border:0;background:none;color:#aab3ac;font:600 11px var(--font);cursor:pointer}.topic-toolbar button span{color:var(--green);margin-left:7px}
.topic-list{display:flex;flex-direction:column}.topic{display:grid;grid-template-columns:42px minmax(0,1fr) 80px;gap:13px;align-items:center;padding:18px 8px;border-bottom:1px solid #1e241f;transition:background .15s}.topic:hover{background:rgba(255,255,255,.015)}.topic-avatar{width:40px;height:40px;border-radius:10px;background:#172019;border:1px solid #26392a;color:#66ec7c;display:grid;place-items:center;font:15px var(--display)}.topic-main{min-width:0}.topic-title{font-size:13px;font-weight:800;margin:0 0 7px;line-height:1.45;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.topic-title .pin{font-size:9px;color:#0a120b;background:var(--green);padding:3px 5px;border-radius:3px}.topic-meta{font-size:10px;color:#778279;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.topic-meta .tag{color:#91d99d;background:#17251a;border-radius:4px;padding:3px 6px}.topic-stats{display:flex;flex-direction:column;align-items:flex-end;gap:6px;color:#a2aca4;font-size:11px}.topic-stats span{display:flex;align-items:center;gap:5px}.topic-stats small{font-size:9px;color:#707b72}.load-more{text-align:center;padding:22px 0 35px}.load-more .btn{font-size:11px}
.sidebar{display:flex;flex-direction:column;gap:14px}.side-card{background:linear-gradient(145deg,#111512,#0d100e);border:1px solid #242b25;border-radius:9px;padding:19px}.side-title{font-size:12px;font-weight:800;display:flex;align-items:center;gap:9px;margin-bottom:13px}.green-bar{width:3px;height:15px;background:var(--green);border-radius:2px}.side-card p{color:#8d988f;font-size:11px;line-height:1.75;margin:0 0 15px}.btn.full{width:100%}.side-note{text-align:center;font-size:9px;color:#677269;margin-top:10px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags button{border:1px solid #27332a;background:#151d17;color:#9ab8a0;border-radius:5px;padding:7px 9px;font:10px var(--font);cursor:pointer}.tags button:hover{border-color:#3f8d4e;color:#d8ffdf}.muted{color:#818c83!important}.telegram-link{display:flex;justify-content:space-between;color:#7fe890;font-size:11px;font-weight:800;padding-top:12px;border-top:1px solid #222a23}.admin-card{border-color:#2a3b2c}
footer{border-top:1px solid #202620;display:flex;align-items:center;gap:20px;padding:22px 0 30px;color:#657067;font-size:10px}.footer-brand{font-size:15px;color:#dce4dd}.copyright{margin-left:auto}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(7px);z-index:20;display:grid;place-items:center;padding:20px}.modal{width:min(100%,390px);background:#101411;border:1px solid #2c352e;border-radius:13px;padding:30px;position:relative;box-shadow:0 20px 100px #000}.modal-close{position:absolute;right:14px;top:12px;border:0;background:none;color:#9ba59c;font-size:24px;cursor:pointer}.modal-mark{font:22px var(--display);color:#fff;margin-bottom:20px}.modal-mark span{color:var(--green)}.modal h3{font-size:25px;margin:10px 0}.modal>p{font-size:12px;color:#929d94;line-height:1.6}.modal form{display:flex;flex-direction:column;gap:12px;margin-top:20px}.modal label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#b7c0b9;font-weight:700}.modal input{background:#090c09;border:1px solid #2b332c;border-radius:6px;padding:12px;color:#fff;outline:0;font:12px var(--font)}.modal input:focus{border-color:#40b856}.modal-foot{font-size:10px;color:#657067;text-align:center;margin-top:16px;line-height:1.5}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#1b2a1e;border:1px solid #386d42;color:#d9ffe0;padding:12px 18px;border-radius:8px;font-size:12px;z-index:30;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}
@media(max-width:900px){.topbar{padding:0 20px}.nav{gap:17px}.brand{min-width:auto}.hero{grid-template-columns:1fr;padding-top:48px}.hero-art{height:260px}.forum-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{align-items:start;flex-direction:column}.head-tools{width:100%}.search{flex:1}}
@media(max-width:620px){.wrap{padding:0 16px}.topbar{height:68px;padding:0 16px}.brand img{width:34px;height:34px}.brand-name{font-size:16px}.nav{display:none;position:absolute;top:68px;left:0;right:0;background:#0c100d;padding:20px;flex-direction:column;border-bottom:1px solid #263027}.nav.open{display:flex}.nav a.active:after{margin-top:5px}.actions .btn{padding:9px 10px;font-size:10px}.actions #loginBtn{display:none}.menu-toggle{display:block}.hero{min-height:auto;padding:42px 0 30px;gap:30px}h1{font-size:42px;letter-spacing:-1.5px}.hero-copy>p{font-size:12px}.hero-stats{gap:20px;margin-top:30px}.hero-art{height:230px}.section-head{padding:32px 0 18px}.section-head h2{font-size:24px}.head-tools{flex-wrap:wrap}.search{width:100%;flex:auto}.head-tools .btn{width:100%}.category-list{gap:6px}.category{padding:9px}.topic{grid-template-columns:34px minmax(0,1fr) 48px;gap:9px;padding:15px 2px}.topic-avatar{width:33px;height:33px;font-size:12px}.topic-title{font-size:11px}.topic-meta{font-size:9px;gap:5px}.topic-stats{font-size:10px}.sidebar{grid-template-columns:1fr}.art-corner{font-size:8px}footer{flex-wrap:wrap;gap:9px}.copyright{margin-left:0;width:100%}}

.page-wrap{min-height:calc(100vh - 82px);display:flex;flex-direction:column}.breadcrumb{display:flex;gap:10px;color:#737e75;font-size:11px;padding:28px 0}.breadcrumb a{color:#a5b0a7}.page-heading{padding:25px 0 30px;border-bottom:1px solid #202620}.page-heading h1{font-size:clamp(34px,5vw,56px);margin:14px 0 10px}.page-heading p{color:#929d94;max-width:650px;line-height:1.8}.page-empty{margin:26px 0 60px;border:1px solid #222a23;background:#0d100e;border-radius:10px;padding:60px 20px;text-align:center}.page-empty h3,.empty-state h3{font-size:18px;margin:15px 0 8px}.page-empty p,.empty-state p{color:#818c83;font-size:12px;line-height:1.7}.empty-icon{width:42px;height:42px;border:1px solid #2d5c37;border-radius:10px;background:#132016;color:#5fee79;display:grid;place-items:center;font-size:24px;margin:0 auto}.empty-state{padding:60px 20px;text-align:center;border:1px dashed #2a332b;border-radius:9px;margin-top:15px}.toolbar-note{font-size:10px;letter-spacing:0;color:#5f6b61}

.ru-green{color:var(--green)}

/* Minecraft-inspired pixel buttons */
.btn{border-radius:5px!important;box-shadow:0 4px 0 #18351f,0 5px 0 rgba(0,0,0,.45);border:1px solid #4b9b5a!important;image-rendering:pixelated;transition:transform .08s ease,box-shadow .08s ease,filter .12s ease}
.btn:hover{filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 5px 0 #18351f,0 6px 0 rgba(0,0,0,.45)}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 #18351f,0 2px 0 rgba(0,0,0,.45)}
.btn-primary{background:linear-gradient(#49d568,#279843)!important;color:#061008!important}

/* Motion and confirmation dialog polish */
.modal-backdrop:not([hidden]){animation:fadeIn .22s ease both}
.modal{animation:modalIn .28s cubic-bezier(.2,.8,.2,1) both}
.btn,.category,.nav a,.topic,.side-card{transition:transform .18s ease,filter .18s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.btn{border-radius:5px;image-rendering:pixelated}
.btn:hover{transform:translateY(-2px);box-shadow:inset 0 2px 0 rgba(255,255,255,.2),inset 0 -3px 0 rgba(0,0,0,.2),3px 5px 0 rgba(0,0,0,.55)}
.btn:active{transform:translateY(1px) scale(.99)}
.modal-foot{margin-top:16px;color:var(--muted);font-size:12px;line-height:1.6;text-align:center}
.modal-foot .btn{margin-bottom:8px}
#modalSubmit:disabled{opacity:.6;cursor:default}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* NukkitRu interaction polish */
.btn,.modal-close,.modal-switch{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,filter .18s ease}
.btn:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 5px 0 rgba(0,0,0,.35),0 0 18px rgba(64,184,86,.13)}
.btn:active{transform:translateY(1px);box-shadow:0 1px 0 rgba(0,0,0,.4)}
.modal-switch{display:block;width:100%;margin-top:12px;padding:10px;border:1px solid #303b32;border-radius:7px;background:#151b16;color:#a8d9ae;font:12px var(--font);cursor:pointer}
.modal-switch:hover{background:#202b21;border-color:#4b9257;color:#e2ffe5}
.modal-foot p{line-height:1.6}

/* Unified NukkitRU branding and polished motion */
.brand-name,.footer-brand{font-family:var(--display);font-weight:900;letter-spacing:.02em;text-transform:none}
.brand-name{font-size:21px}
.btn,.modal-switch,.modal-close{transition:transform .32s cubic-bezier(.2,.8,.2,1),box-shadow .32s ease,background-color .32s ease,border-color .32s ease,filter .32s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 7px 0 rgba(0,0,0,.34),0 0 18px rgba(64,184,86,.16)}
.btn:active{transform:translateY(1px) scale(.985);box-shadow:0 2px 0 rgba(0,0,0,.35)}
.modal-backdrop:not([hidden]){animation:backdropEnter .38s ease both}
.modal{animation:modalEnter .48s cubic-bezier(.16,1,.3,1) both}
.modal-close:hover{transform:rotate(90deg) scale(1.08);color:#fff}
.modal-switch:hover{transform:translateY(-1px)}
@keyframes backdropEnter{from{opacity:0}to{opacity:1}}
@keyframes modalEnter{from{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* NukkitRU polished motion */
@keyframes modalIn { from {opacity:0; transform:translateY(22px) scale(.965); filter:blur(3px)} to {opacity:1;transform:translateY(0) scale(1);filter:blur(0)} }
@keyframes modalOut { from {opacity:1;transform:translateY(0) scale(1)} to {opacity:0;transform:translateY(14px) scale(.98)} }
@keyframes navIn { from {opacity:0;transform:translateY(-12px)} to {opacity:1;transform:translateY(0)} }
.modal { animation:modalIn .48s cubic-bezier(.16,1,.3,1) both; }
.modal-backdrop, #modalBackdrop { transition:opacity .38s ease, backdrop-filter .38s ease; }
.nav.open, .nav.mobile-open { animation:navIn .48s cubic-bezier(.16,1,.3,1) both; }
.btn, .nav a, .brand { transition:all .28s cubic-bezier(.2,.8,.2,1); }
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}}

/* NukkitRU v10: shared navigation and modal motion */
.nav{transform-origin:top center}
.nav.open{animation:navIn .48s cubic-bezier(.16,1,.3,1) both}
.nav:not(.open){animation:navOut .32s cubic-bezier(.4,0,.2,1) both}
@keyframes navIn{0%{opacity:0;transform:translateY(-16px) scaleY(.92);filter:blur(3px)}100%{opacity:1;transform:translateY(0) scaleY(1);filter:blur(0)}}
@keyframes navOut{0%{opacity:1;transform:translateY(0);filter:blur(0)}100%{opacity:0;transform:translateY(-8px);filter:blur(2px)}}
.modal-backdrop:not([hidden]){animation:modalBackdropIn .42s ease both}
.modal-backdrop[hidden]{display:none!important}
.modal{animation:modalCardIn .5s cubic-bezier(.16,1,.3,1) both}
@keyframes modalBackdropIn{from{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(7px)}}
@keyframes modalCardIn{from{opacity:0;transform:translateY(22px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
/* Avoid flashing unauthenticated actions before Supabase session is resolved. */
body:not(.auth-ready) #registerBtn,
body:not(.auth-ready) #joinBtn,
body:not(.auth-ready) #sideRegisterBtn,
body:not(.auth-ready) [data-auth="register"]{visibility:hidden!important}
@media(max-width:620px){.nav{display:flex;visibility:hidden;opacity:0;transform:translateY(-12px);pointer-events:none;transition:opacity .38s ease,transform .42s cubic-bezier(.16,1,.3,1),visibility .38s}.nav.open{visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto;animation:none}}

/* NukkitRU brand lockup and topic composer */
.brand-lockup{display:flex;flex-direction:column;gap:3px;min-width:0}
.brand-name{text-transform:uppercase!important;font-family:var(--display)!important;font-weight:900!important;letter-spacing:.035em!important}
.brand-tagline{font-size:9px;line-height:1.2;color:#8c988e;letter-spacing:.02em;white-space:nowrap}
.topic-modal{width:min(560px,calc(100vw - 28px));max-height:calc(100vh - 32px);overflow:auto}
.topic-modal form{display:grid;gap:13px;margin-top:20px}
.topic-modal label{display:grid;gap:7px;color:#c9d2ca;font-size:12px;font-weight:700}
.topic-modal input,.topic-modal select,.topic-modal textarea{width:100%;box-sizing:border-box;background:#0b100c;color:#edf4ee;border:1px solid #29372c;border-radius:8px;padding:12px;font:inherit;outline:none;transition:border-color .25s,box-shadow .25s}
.topic-modal input:focus,.topic-modal select:focus,.topic-modal textarea:focus{border-color:#53d66d;box-shadow:0 0 0 3px #53d66d22}
.topic-modal textarea{resize:vertical;min-height:130px}
.form-hint{font-size:11px;color:#839087;margin:0}
@media(max-width:620px){.brand-tagline{font-size:7px;max-width:190px;white-space:normal}.brand-name{font-size:17px!important}}
