:root{--bg:#071315;--panel:#0c2224;--panel2:#122b2d;--teal:#49e7d7;--tealsoft:#a9e9dc;--gold:#d3ad6b;--ink:#edf3ed;--muted:#9db6b3;--line:rgba(160,225,213,.18)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Arial,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}.skip{position:absolute;top:-80px;left:1rem;background:#fff;color:#000;padding:.5rem;z-index:100}.skip:focus{top:1rem}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:2rem;min-height:78px;padding:0 clamp(1rem,3vw,4rem);background:rgba(4,17,19,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:.7rem;min-width:195px;font-family:Cinzel,Georgia,serif;font-weight:900;letter-spacing:.12em;white-space:nowrap;color:var(--gold)}.brand img{width:48px;height:48px;object-fit:contain}.brand small{display:block;font-size:.66rem;letter-spacing:.45em;text-align:center;color:var(--tealsoft)}nav{display:flex;align-items:center;gap:clamp(.7rem,1.7vw,1.8rem);margin:auto}nav a{font-size:.83rem;font-weight:700;color:#c1d4cf;white-space:nowrap}nav a:hover,nav a[aria-current]{color:var(--teal)}.account-link,.button{display:inline-flex;justify-content:center;align-items:center;gap:.6rem;border:1px solid var(--gold);background:linear-gradient(135deg,#cfa966,#8a6235);color:#12100c;padding:.78rem 1.25rem;font-weight:800;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;box-shadow:0 7px 30px rgba(0,0,0,.22)}.account-link:hover,.button:hover{filter:brightness(1.12)}.menu-toggle{display:none}
.hero{position:relative;min-height:min(750px,88vh);display:grid;align-content:end;overflow:hidden;background:#051012 url('/assets/beans-reborn-hero.jpg') center 38%/cover no-repeat}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,15,16,.78),rgba(3,15,16,.12) 60%),linear-gradient(0deg,#071315,transparent 45%)}.hero-content{position:relative;z-index:1;max-width:1200px;width:100%;margin:0 auto;padding:9rem 2rem 7rem}.eyebrow{font-size:.74rem;font-weight:800;letter-spacing:.28em;text-transform:uppercase;color:var(--teal)}h1,h2,h3{font-family:Cinzel,Georgia,serif;line-height:1.15}h1{font-size:clamp(3.2rem,7vw,7rem);margin:.5rem 0 1rem;max-width:850px;text-shadow:0 6px 32px #000}h1 span{color:var(--gold)}.hero p{font-size:1.14rem;max-width:590px;color:#d4e5df}.actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}.button.secondary{background:rgba(5,30,32,.65);border-color:var(--teal);color:var(--tealsoft)}.button.ghost{background:transparent;color:var(--tealsoft);border-color:var(--line)}.hero-mark{position:absolute;right:4%;bottom:0;z-index:1;max-width:27vw;opacity:.18;filter:drop-shadow(0 0 20px var(--teal))}
.section{padding:5rem clamp(1rem,4vw,4rem);max-width:1300px;margin:auto}.section-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem}.section h2{font-size:clamp(2rem,4vw,3.5rem);margin:.4rem 0}.lead{color:var(--muted);max-width:720px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.card{position:relative;padding:2rem;background:linear-gradient(145deg,rgba(20,50,51,.95),rgba(8,25,28,.95));border:1px solid var(--line);min-height:220px;overflow:hidden}.card:after{content:"";position:absolute;right:-40px;bottom:-70px;width:180px;height:180px;border:1px solid rgba(73,231,215,.13);transform:rotate(45deg)}.card .num{font-family:Cinzel,serif;color:var(--gold);font-size:1.8rem}.card h3{font-size:1.25rem;margin:1.4rem 0 .4rem}.card p{color:var(--muted);margin:0}.card a{display:inline-block;color:var(--teal);margin-top:1.3rem;font-weight:700}.band{padding:4rem 1rem;text-align:center;background:linear-gradient(90deg,#102b2d,#081b1d,#102b2d);border-block:1px solid var(--line)}.band h2{margin:.5rem auto;max-width:760px}.page-hero{position:relative;background:linear-gradient(0deg,var(--bg),rgba(2,17,20,.57)),url('/assets/beans-reborn-hero.jpg') center 24%/cover;min-height:310px;display:flex;align-items:end}.page-hero>div{position:relative;max-width:1300px;width:100%;margin:auto;padding:3rem clamp(1rem,4vw,4rem)}.page-hero h1{font-size:clamp(2.6rem,5vw,4.5rem);margin:.4rem 0}.page-hero p{max-width:650px;color:#c8ded8}.notice{padding:1rem 1.2rem;border-left:3px solid var(--gold);background:rgba(211,173,107,.1);color:#e8dac2;margin:1.5rem 0}.muted{color:var(--muted)}.rank-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.rank{border:1px solid var(--line);background:var(--panel);padding:1.5rem}.rank small{color:var(--gold);letter-spacing:.15em;text-transform:uppercase}.rank h3{margin:.7rem 0;color:var(--tealsoft)}.rank strong{font:700 1.3rem Cinzel,Georgia,serif}.table-wrap{overflow:auto;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;min-width:680px}th,td{text-align:left;padding:.9rem 1rem;border-bottom:1px solid var(--line)}th{background:#123336;color:var(--gold);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}td{color:#d0e2dc}tbody tr:nth-child(even){background:rgba(255,255,255,.025)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem}.form-card{padding:2rem;background:var(--panel);border:1px solid var(--line)}.form-card h2{font-size:1.5rem;margin-top:0}.field{display:block;margin:1rem 0}.field span{display:block;color:var(--muted);font-size:.8rem;margin-bottom:.4rem}.field input{width:100%;padding:.8rem;background:#071719;color:var(--ink);border:1px solid #335254;outline:none}.field input:focus{border-color:var(--teal)}.message{min-height:1.5rem;color:var(--tealsoft)}.portal{display:none}.portal.active{display:block}.auth.hidden{display:none}.pill{display:inline-block;border:1px solid var(--line);padding:.3rem .7rem;color:var(--tealsoft);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}.footer{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;padding:3.5rem clamp(1rem,4vw,4rem);border-top:1px solid var(--line);background:#041012}.footer>div:first-child{display:flex;align-items:center;gap:1rem}.footer p{color:var(--muted)}.footer strong,.footer a{display:block;margin-bottom:.5rem}.footer strong{color:var(--gold);font-family:Cinzel,serif}.footer a{color:var(--muted);font-size:.9rem}.footer a:hover{color:var(--teal)}.copyright{grid-column:1/-1;border-top:1px solid var(--line);padding-top:1.3rem;font-size:.8rem}
@media(max-width:1100px){.topbar{flex-wrap:wrap;gap:1rem;padding-block:.6rem}nav{order:3;width:100%;justify-content:center;flex-wrap:wrap;padding-bottom:.5rem}.account-link{margin-left:auto}}@media(max-width:700px){.topbar{min-height:68px}.brand{min-width:auto}.menu-toggle{display:block;margin-left:auto;background:none;border:1px solid var(--line);color:var(--tealsoft);padding:.45rem .7rem}.account-link{padding:.55rem .75rem;font-size:.7rem;margin:0}nav{display:none;order:4;flex-direction:column;align-items:stretch;padding:1rem;background:#091b1d}nav.open{display:flex}nav a{padding:.5rem}.hero{min-height:690px;background-position:53% center}.hero-content{padding:7rem 1.2rem 4rem}.hero-mark{display:none}.grid,.form-grid{grid-template-columns:1fr}.section{padding:3.5rem 1rem}.section-head{display:block}.footer{grid-template-columns:1fr 1fr}.footer>div:first-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:700px){.account-link{display:none}.hero{min-width:0;max-width:100vw;grid-template-columns:minmax(0,1fr)}.hero-content{min-width:0;width:100%;max-width:100vw}.hero h1{font-size:2.2rem;max-width:calc(100vw - 2.4rem);overflow-wrap:break-word}.hero p{width:calc(100vw - 2.4rem);min-width:0;max-width:calc(100vw - 2.4rem);white-space:normal;overflow-wrap:break-word}}
.raids-section{padding-top:6rem;padding-bottom:5.5rem}.raid-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.raid-card{min-height:390px;position:relative;display:flex;align-items:flex-end;overflow:hidden;border:1px solid rgba(211,173,107,.32);background-color:#10282b;box-shadow:0 20px 45px rgba(0,0,0,.23)}.raid-card:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,11,13,.98),rgba(4,20,23,.18) 70%),radial-gradient(circle at 50% 25%,rgba(80,227,217,.27),transparent 55%),url('/assets/beans-reborn-hero.jpg') center/cover;transition:transform .4s ease}.raid-card:hover:before{transform:scale(1.05)}.raid-tob:before{background:linear-gradient(0deg,rgba(19,5,10,.98),rgba(20,4,9,.25) 70%),radial-gradient(circle at 50% 25%,rgba(149,30,44,.55),transparent 55%),url('/assets/beans-reborn-hero.jpg') 25% center/cover;filter:saturate(.6) sepia(.45) hue-rotate(295deg)}.raid-toa:before{background:linear-gradient(0deg,rgba(17,11,4,.98),rgba(28,18,4,.25) 70%),radial-gradient(circle at 50% 25%,rgba(213,158,72,.5),transparent 55%),url('/assets/beans-reborn-hero.jpg') 75% center/cover;filter:sepia(.55) saturate(.8)}.raid-content{position:relative;padding:2rem;width:100%}.raid-index{font-size:.72rem;font-weight:800;letter-spacing:.28em;color:var(--teal)}.raid-tob .raid-index{color:#ff9b9b}.raid-toa .raid-index{color:#f4c781}.raid-card h3{font-size:clamp(1.45rem,2.15vw,2.25rem);margin:.6rem 0}.raid-card p{color:#d0dcd8;margin:0;max-width:330px}.raid-card:after{content:"";position:absolute;top:1rem;right:1rem;width:42px;height:42px;border-top:1px solid rgba(233,197,128,.65);border-right:1px solid rgba(233,197,128,.65)}@media(max-width:900px){.raid-grid{grid-template-columns:1fr}.raid-card{min-height:260px}.raid-card h3{font-size:1.75rem}}
.raid-cox:before,.raid-tob:before,.raid-toa:before{background-image:linear-gradient(0deg,rgba(2,10,12,.97),rgba(3,14,16,.04) 75%),url('/assets/raids-triptych.png');background-size:cover,300% auto;filter:none}.raid-cox:before{background-position:center,0% 44%}.raid-tob:before{background-position:center,50% 44%}.raid-toa:before{background-position:center,100% 44%}
@media(max-width:700px){.topbar{position:sticky}.menu-toggle{position:absolute;right:1rem;top:1rem}.hero p{width:calc(100vw - 2.4rem);max-width:300px;font-size:1rem}}

/* Homepage welcome: let the landscape move gently behind readable, friendly copy. */
.hero{isolation:isolate;min-height:min(760px,88vh);background:#051012}
.hero:before{inset:-3%;z-index:-2;background:linear-gradient(90deg,rgba(2,14,17,.86) 0%,rgba(2,14,17,.56) 42%,rgba(2,14,17,.12) 75%),linear-gradient(0deg,rgba(4,17,19,.82),transparent 45%),url('/assets/beans-reborn-hero.jpg') center 38%/cover no-repeat;animation:hero-drift 24s ease-in-out infinite alternate}
.hero:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 67% 30%,rgba(23,202,194,.13),transparent 50%);animation:hero-glow 12s ease-in-out infinite alternate}
.hero-content{padding:8rem 2rem 6rem}
.hero-content .eyebrow{display:inline-block;color:#a9eee2;letter-spacing:.16em}
.hero h1{max-width:680px;margin:.75rem 0 1.1rem;font-family:"Trebuchet MS","Segoe UI",Arial,sans-serif;font-size:clamp(3.15rem,5.5vw,5.75rem);font-weight:700;letter-spacing:-.055em;line-height:1.06;text-shadow:0 4px 24px rgba(0,0,0,.7)}
.hero h1 span{color:#f2ce8c}
.hero p{max-width:510px;font-size:1.18rem;line-height:1.7;color:#e8f4ef;text-shadow:0 2px 12px rgba(0,0,0,.8)}
.hero-mark{display:none}
@keyframes hero-drift{from{transform:translate3d(-.45%,0,0) scale(1.015)}to{transform:translate3d(.45%,-.4%,0) scale(1.07)}}
@keyframes hero-glow{from{opacity:.4}to{opacity:1}}
@media(max-width:700px){.hero{min-height:650px}.hero:before{background-position:center,center,54% center}.hero-content{padding:6rem 1.2rem 4rem}.hero h1{font-size:clamp(2.6rem,10vw,4rem);max-width:100%;letter-spacing:-.05em}.hero p{max-width:340px;width:auto;font-size:1rem}}
@media(prefers-reduced-motion:reduce){.hero:before,.hero:after{animation:none}}
.hero .hero-title{position:relative;display:block;width:min(780px,100%);max-width:none;margin:0 0 .6rem;line-height:0;text-shadow:none}
.hero-title:before{content:"";position:absolute;inset:14% 4% 8%;z-index:-1;background:radial-gradient(ellipse,rgba(37,225,209,.25),rgba(226,174,91,.12) 45%,transparent 75%);filter:blur(28px);animation:title-light 6s ease-in-out infinite alternate}
.hero-title img{display:block;width:100%;height:auto;filter:drop-shadow(0 6px 18px rgba(0,0,0,.85)) drop-shadow(0 0 8px rgba(73,231,215,.32));animation:title-float 7s ease-in-out infinite alternate}
@keyframes title-float{from{transform:translateY(0);filter:drop-shadow(0 6px 18px rgba(0,0,0,.85)) drop-shadow(0 0 7px rgba(73,231,215,.24))}to{transform:translateY(-8px);filter:drop-shadow(0 9px 22px rgba(0,0,0,.82)) drop-shadow(0 0 19px rgba(236,188,99,.45))}}
@keyframes title-light{from{opacity:.45;transform:scale(.95)}to{opacity:1;transform:scale(1.08)}}
@media(max-width:700px){.hero .hero-title{width:min(310px,calc(100vw - 2.4rem));max-width:100%;margin-bottom:1rem}.hero-title img{width:100%;max-width:100%}.hero-title:before{filter:blur(18px)}}
@media(prefers-reduced-motion:reduce){.hero-title:before,.hero-title img{animation:none}}
.link-form{margin:1.5rem 0;padding:1.25rem;border:1px solid var(--line);background:rgba(5,30,32,.65)}
.link-form h3{margin:0 0 .75rem;font-size:1.15rem}
.link-code{margin-top:1rem;padding:1rem;overflow-wrap:anywhere;border:1px solid var(--gold);background:#071719}
.link-code p{margin:0 0 .5rem;color:var(--muted)}
.link-code code{color:var(--gold);font-size:1.05rem}
#characters{padding-left:1.2rem}#characters li{padding:.35rem 0}#characters li span{margin-right:1rem}
.link-revoke{border:1px solid var(--line);background:transparent;color:var(--tealsoft);padding:.25rem .6rem;font-size:.75rem}
.store-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin:2rem 0}.store-filter{padding:.65rem 1rem;color:var(--tealsoft);background:#0b2224;border:1px solid var(--line)}.store-filter[aria-pressed="true"]{color:#111;background:var(--gold);border-color:var(--gold)}
.store-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}.store-product{padding:1.4rem;background:linear-gradient(145deg,#122b2d,#09191b);border:1px solid var(--line)}.store-product img{display:block;width:100%;height:190px;object-fit:contain;margin-bottom:1rem}.store-product h3{margin:.3rem 0;color:var(--gold)}.store-product p{color:var(--muted);min-height:3rem}.store-price{display:flex;align-items:center;gap:.8rem;margin-top:1.4rem}.store-price del{color:var(--muted)}.store-price strong{color:var(--teal);font-size:1.3rem}
.admin-modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:2rem}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.admin-grid .form-card{min-width:0}.admin-grid select{width:100%;padding:.8rem;background:#071719;color:var(--ink);border:1px solid #335254}.admin-list{padding-left:1.2rem;margin:1.4rem 0}.admin-list li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
@media(max-width:850px){.store-grid,.admin-grid,.admin-modules{grid-template-columns:1fr}}
.character-summary{padding:1rem 1.25rem;margin:1rem 0;border:1px solid var(--line);background:rgba(10,37,39,.75)}.character-summary h3,.character-summary h4{margin:0 0 .5rem;color:var(--gold)}.character-summary p{margin:.35rem 0;color:var(--muted)}.donor-account{padding-bottom:0}.donor-account h2{margin:0 0 1rem}.donor-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media(max-width:700px){.donor-status-grid{grid-template-columns:1fr}}
.news-post{max-width:900px;padding:2rem;margin:0 0 1.2rem;background:linear-gradient(145deg,#102729,#081719);border:1px solid var(--line)}.news-post h2{margin:0 0 .5rem;color:var(--gold)}.news-post time{display:block;color:var(--tealsoft);font-size:.8rem;margin-bottom:1rem}.news-summary{font-weight:700}.news-body{white-space:pre-line;color:var(--muted)}.admin-news{margin-top:2rem;max-width:900px}.admin-news textarea{width:100%;min-height:170px;padding:.8rem;background:#071719;color:var(--ink);border:1px solid #335254;resize:vertical}.admin-news select{width:100%;padding:.8rem;background:#071719;color:var(--ink);border:1px solid #335254}
@media(max-width:500px){.section{width:100%;max-width:390px;margin-left:0;margin-right:0}.notice{max-width:100%;overflow-wrap:anywhere}}
.donor-showcase{padding-top:4rem}.donor-intro{max-width:760px;margin-bottom:2.2rem}.donor-intro h2{margin:.45rem 0}.donor-intro p{color:var(--muted);font-size:1.05rem}.donor-ranks{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem}.donor-rank{appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:180px;padding:1rem .5rem;color:var(--ink);background:linear-gradient(145deg,#122a2d,#091719);border:1px solid var(--line);text-align:center;transition:transform .18s ease,border-color .18s ease,background .18s ease}.donor-rank:hover{transform:translateY(-4px);border-color:rgba(211,173,107,.8)}.donor-rank[aria-pressed="true"]{border-color:var(--gold);background:linear-gradient(155deg,#263632,#102326);box-shadow:inset 0 0 0 1px rgba(211,173,107,.38),0 0 26px rgba(46,174,163,.13)}.rank-emblem{position:relative;display:grid;place-items:center;width:74px;height:74px;clip-path:polygon(50% 0,88% 21%,100% 65%,50% 100%,0 65%,12% 21%);background:linear-gradient(145deg,#e7c67f,#594728 56%,#2a5e5b);box-shadow:0 0 18px rgba(216,174,91,.24)}.rank-emblem>span{font-size:2.15rem;color:#e8dbad;line-height:1}.rank-emblem small{position:absolute;bottom:9px;font:700 .61rem Georgia,serif;color:#08191a}.donor-rank:nth-child(2) .rank-emblem{background:linear-gradient(145deg,#d5c299,#406967,#244040)}.donor-rank:nth-child(3) .rank-emblem{background:linear-gradient(145deg,#d4aa6d,#6d483b,#2f615d)}.donor-rank:nth-child(4) .rank-emblem{background:linear-gradient(145deg,#e9bd77,#8a5e39,#31605b)}.donor-rank:nth-child(5) .rank-emblem{background:linear-gradient(145deg,#f4d18a,#735130,#185d5b)}.donor-rank:nth-child(6) .rank-emblem{background:linear-gradient(145deg,#bce6dc,#536e78,#175a60)}.donor-rank:nth-child(7) .rank-emblem{background:linear-gradient(145deg,#f8df9e,#3c9c9a,#12393b)}.rank-name{font:700 .87rem/1.25 Cinzel,Georgia,serif}.donor-detail{margin-top:4.5rem}.donor-detail-head{padding:2rem 2.2rem;background:linear-gradient(110deg,rgba(29,68,65,.9),rgba(13,35,38,.96)),url('/assets/beans-reborn-hero.jpg') center/cover;border:1px solid rgba(211,173,107,.4);border-bottom:0}.donor-detail-head h2{margin:.3rem 0;font-size:clamp(2.1rem,4vw,3.5rem);color:#f1d49a}.donor-detail-head p{margin:0;color:#c9ded7}.benefit-group{margin-top:2.5rem}.benefit-group h3{font-size:1.45rem;color:var(--gold);padding-bottom:.7rem;border-bottom:1px solid var(--line)}.benefit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.benefit-tile{min-height:165px;padding:1.3rem 1.45rem;background:linear-gradient(145deg,rgba(18,47,49,.92),rgba(8,25,27,.98));border:1px solid var(--line)}.benefit-value{display:block;color:var(--teal);font:700 1.25rem Cinzel,Georgia,serif}.benefit-tile h4{font:700 1rem Cinzel,Georgia,serif;margin:.45rem 0 .55rem}.benefit-tile p{font-size:.81rem;line-height:1.5;color:var(--muted);margin:0}.benefit-tile.is-inactive{opacity:.67}.benefit-tile.is-inactive .benefit-value{color:#b8c5be}@media(max-width:1100px){.donor-ranks{grid-template-columns:repeat(4,minmax(0,1fr))}.benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.donor-ranks{grid-template-columns:repeat(2,minmax(0,1fr))}.donor-rank{min-height:150px}.rank-emblem{width:62px;height:62px}.benefit-grid{grid-template-columns:1fr}.benefit-tile{min-height:auto}.donor-detail{margin-top:3rem}.donor-detail-head{padding:1.5rem}}
