:root{--ink:#2b2a33;--mut:#55535f;--bg:#fffaf1;--card:#fff;--line:rgba(43,42,51,.15);--gray:#808285;--hh:100px;--serif:'Cinzel','Trajan Pro',Georgia,serif;--sans:'Nunito',system-ui,-apple-system,'Segoe UI',sans-serif}
:root[data-theme=dark]{--ink:#f6f1e7;--mut:#cbc7d8;--bg:#15131d;--card:#211e2e;--line:rgba(246,241,231,.2)}
*{box-sizing:border-box;margin:0}
body{font:400 1.0625rem/1.7 var(--sans);color:var(--ink);background:var(--bg)}
a{color:inherit}img{max-width:100%}
:focus-visible{outline:3px solid #1a8fd0;outline-offset:3px}
.leaf{border-radius:0 56px 0 56px;overflow:hidden}
/* header */
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.9rem;padding:.5rem clamp(1rem,3vw,2rem);background:var(--bg);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit;margin-right:auto}
.logo svg{width:clamp(60px,9.2vw,87px);height:auto}
.wm{font-family:var(--serif);font-weight:500;color:var(--gray);line-height:1;letter-spacing:.04em;font-size:clamp(1.2rem,3vw,1.84rem)}
.wm i{font-style:normal;font-weight:700;font-size:1.45em;vertical-align:-.06em}.wm small{display:block;font-size:.86em;margin-top:.22em}
.mini{display:flex;gap:1.3rem}
.mini a{text-decoration:none;font-weight:700;font-size:.95rem;padding:.3rem .1rem;border-bottom:2px solid transparent}
.mini a:hover,.mini a[aria-current]{border-color:#b82a80}
.tg{width:48px;height:48px;flex:none;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer}
.tg svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tg .mo{display:none}:root[data-theme=dark] .tg .mo{display:block}:root[data-theme=dark] .tg .su{display:none}
.burger{display:none;position:relative;width:48px;height:48px;flex:none;border:1.5px solid var(--line);border-radius:50%;background:var(--card);cursor:pointer}
.burger i{position:absolute;left:13px;right:13px;height:2.5px;border-radius:2px;background:var(--ink);transition:top .3s,transform .3s,opacity .2s}
.burger i:nth-child(1){top:16px}.burger i:nth-child(2){top:22.5px}.burger i:nth-child(3){top:29px}
.burger[aria-expanded=true] i:nth-child(1){top:22.5px;transform:rotate(45deg)}
.burger[aria-expanded=true] i:nth-child(2){opacity:0}
.burger[aria-expanded=true] i:nth-child(3){top:22.5px;transform:rotate(-45deg)}
/* layout + accordion */
.shell{display:grid;grid-template-columns:300px minmax(0,1fr);max-width:1400px;margin:0 auto}
.side{position:sticky;top:var(--hh);align-self:start;max-height:calc(100vh - var(--hh));overflow:auto;padding:1.2rem 0 1.2rem clamp(1rem,3vw,2rem)}
.mhr,.mini2{display:none}
.acc{list-style:none;padding:0;display:grid;gap:.5rem}
.acc>li:nth-child(1){--c:#b82a80}.acc>li:nth-child(2){--c:#2f8a3b}.acc>li:nth-child(3){--c:#d9531e}.acc>li:nth-child(4){--c:#1479b4}.acc>li:nth-child(5){--c:#7a4f8c}
.acc>li>button,.acc .solo{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.6rem;font:700 1rem var(--sans);text-align:left;text-decoration:none;color:var(--ink);padding:.8rem 1rem;border:1.5px solid var(--line);border-left:7px solid var(--c);background:var(--card);border-radius:0 22px 0 22px;cursor:pointer}
.acc .solo[aria-current],.acc>li.open>button{background:var(--c);color:#fff;border-color:var(--c)}
.car{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s;flex:none}
.acc>li.open>button .car{transform:rotate(180deg)}
.sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
.acc>li.open>.sub{grid-template-rows:1fr}
.sub>ul{overflow:hidden;min-height:0;list-style:none;padding:0 0 0 .6rem;margin-left:1rem;border-left:2px solid var(--c)}
.sub li:first-child{margin-top:.5rem}
.sub a{display:block;padding:.45rem .9rem;margin:.15rem 0;text-decoration:none;border-radius:0 16px 0 16px}
.sub a:hover{background:color-mix(in srgb,var(--c) 16%,transparent)}
.sub a[aria-current]{background:var(--c);color:#fff;font-weight:700}
main{min-width:0;padding:clamp(1.2rem,3vw,2.5rem) clamp(1rem,3vw,2.5rem) 3rem}
/* content */
h1{font:700 clamp(1.7rem,4vw,2.6rem)/1.2 var(--serif)}
.page{max-width:780px}
.pimg{width:100%;aspect-ratio:16/7;object-fit:cover;margin-bottom:1.5rem;display:block}
.body{margin-top:1rem}.body h2{font:700 1.35rem var(--serif);margin:1.8rem 0 .4rem}
.body p+p{margin-top:1rem}.body ul,.body ol{margin:.5rem 0 0 1.4rem}
blockquote{margin:1.5rem 0;padding:1rem 1.4rem;border-left:7px solid #2f8a3b;background:var(--card);border-radius:0 28px 0 28px;font-style:italic}
cite{display:block;font-style:normal;font-weight:700;margin-top:.3rem}
.hero{position:relative;padding:clamp(1.5rem,5vw,3.5rem);background:linear-gradient(135deg,#fbe3f0,#e6f4d9);color:#2b2a33}
:root[data-theme=dark] .hero{background:linear-gradient(135deg,#3a1d34,#1f3a2a);color:#f6f1e7}
.hero p{position:relative;max-width:60ch;margin-top:1rem}.hero .by{font:700 1.1rem var(--serif)}
.hero .mark{position:absolute;right:-30px;bottom:-40px;width:260px;opacity:.2}
.grid3,.grid2,.ideals{display:grid;gap:1rem;margin-top:1.2rem}
.grid3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.tile{padding:1.3rem;color:#fff;border-radius:0 40px 0 40px}.tile h2{font:700 1.05rem/1.3 var(--serif);margin-bottom:.4rem}
.t1{background:#b82a80}.t2{background:#2f8a3b}.t3{background:#1479b4}
.sec{font:700 1.5rem var(--serif);margin:2.5rem 0 .2rem}
.card-img{display:block;text-decoration:none;background:var(--card);border:1.5px solid var(--line)}
.card-img img{width:100%;height:190px;object-fit:cover;display:block}.card-img span{display:block;padding:1rem 1.3rem}.card-img b{display:block}
.ideals{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));background:var(--card);border:1.5px solid var(--line);padding:1.5rem}
.ideals h3{font:700 1.1rem var(--serif);color:#b82a80}
/* forms */
.cform{display:grid;gap:1rem;max-width:560px;margin-top:2rem}
label{display:grid;gap:.3rem;font-weight:700}
input,textarea{font:inherit;color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:.7rem 1rem}
button[type=submit],.lbtn,.mods button{font:700 1rem var(--sans);border:0;border-radius:27px;padding:.8rem 1.6rem;background:#2f8a3b;color:#fff;cursor:pointer}
.hp{position:absolute;left:-9999px}
.flash{padding:.8rem 1rem;border-radius:12px;background:#e3f5e1;color:#14532d;font-weight:700;margin-bottom:1rem}
.flash.err{background:#fde4e6;color:#8a1020}
/* footer */
.foot{border-top:1px solid var(--line);padding:2rem clamp(1rem,3vw,2rem);display:flex;flex-direction:column;align-items:center;gap:1.3rem;text-align:center}
.sub-form{display:flex;gap:.6rem;width:min(100%,520px)}.sub-form input{flex:1;min-width:0;border-radius:27px;padding:.8rem 1.3rem}
.soc{display:flex;gap:clamp(.6rem,2vw,1.2rem);list-style:none;padding:0;justify-content:center;flex-wrap:wrap}
.soc a{width:clamp(56px,14vw,72px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;color:#fff;transition:transform .2s}
.soc a:hover{transform:translateY(-4px)}.soc svg{width:46%;height:46%;fill:currentColor}
.copy{font-size:.85rem;color:var(--mut)}
/* admin */
.adm .top{flex-wrap:wrap}.lo{margin:0}.lbtn{padding:.55rem 1.1rem;font-size:.9rem}
.admnav{display:flex!important}
.admmain{max-width:1200px;margin:0 auto;padding:1.5rem clamp(1rem,3vw,2rem) 3rem}.lead{margin:.5rem 0 1rem}
.bare{display:grid;place-items:center;min-height:100vh;padding:1rem}.tgfloat{position:fixed;top:1rem;right:1rem}
.login{width:min(100%,420px);background:var(--card);border:1.5px solid var(--line);padding:2rem;display:grid;gap:1rem}.login .logo{margin:0}
.notice{background:#fff3cd;border:2px solid #f0b429;border-left-width:10px;color:#4a3500;padding:1rem 1.2rem;border-radius:12px;margin:1rem 0 1.5rem}
:root[data-theme=dark] .notice{background:#3b3000;color:#ffe9a6}
.notice.ok{background:#e3f5e1;border-color:#3fa04a;color:#14532d}:root[data-theme=dark] .notice.ok{background:#173a1d;color:#c9f2cf}
.notice h2{font-size:1.1rem}.notice ul{margin:.5rem 0 0 1.2rem}
.tag{font-size:.75rem;background:rgba(0,0,0,.14);padding:.1rem .55rem;border-radius:99px;text-transform:capitalize}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;align-items:start}
.stat{color:#fff;border-radius:0 36px 0 36px;box-shadow:0 8px 20px rgba(0,0,0,.14)}
.stat:nth-child(8n+1){background:#b82a80}.stat:nth-child(8n+2){background:#d9531e}.stat:nth-child(8n+3){background:#2f8a3b}.stat:nth-child(8n+4){background:#1479b4}
.stat:nth-child(8n+5){background:#7a4f8c}.stat:nth-child(8n+6){background:#1f8a7a}.stat:nth-child(8n+7){background:#c8202a}.stat:nth-child(8n+8){background:#7a6200}
.stat summary,.stat .sum{display:flex;align-items:center;gap:.6rem;padding:1.1rem 1.3rem;list-style:none}.stat summary{cursor:pointer}
.stat summary::-webkit-details-marker{display:none}
.stat span{font-weight:700;flex:1}.stat strong{font:700 2rem/1 var(--serif)}
.stat[open] .car{transform:rotate(180deg)}
.stat ul{list-style:none;padding:0 1.3rem 1rem}.stat li{display:flex;justify-content:space-between;padding:.35rem 0;border-top:1px solid rgba(255,255,255,.35)}
.mods{border-collapse:collapse;width:100%;background:var(--card)}.mods th,.mods td{text-align:left;padding:.7rem 1rem;border-bottom:1px solid var(--line)}
/* mobile */
@media(max-width:899px){
 .mini{display:none}.admnav{display:flex!important}.burger{display:block}
 .shell{display:block}
 .side{position:static;max-height:none;overflow:hidden;padding:0;display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease;border-bottom:1px solid transparent}
 .side.open{grid-template-rows:1fr;border-color:var(--line)}
 .side-in{min-height:0;overflow:hidden;padding:0 1rem}
 .acc{margin-top:1rem}
 .mhr{display:block;border:0;border-top:2px solid var(--line);margin:1.1rem 0}
 .mini2{display:flex;flex-wrap:wrap;gap:.6rem;padding-bottom:1.2rem}
 .mini2 a{text-decoration:none;font-weight:700;padding:.5rem 1.1rem;border:1.5px solid var(--line);border-radius:0 18px 0 18px;background:var(--card)}
 .mini2 a[aria-current]{background:#b82a80;color:#fff;border-color:#b82a80}
}
@media(max-width:480px){.sub-form{flex-direction:column}.sub-form button{width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
