/* Amie tokens. Fonts: подключить в <head>:
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Manrope:wght@300;400;500;600;700&display=swap" rel="stylesheet"> */
:root{
  --c-lavender:#B4B7D9; --c-lavender-2:#CBCDE8; --c-blush:#E6C9C6; --c-peach:#F6AE8F;
  --c-ink:#23201F; --c-ink-2:#3A3431; --c-stone:#6E6762; --c-taupe:#8C8279;
  --c-cream:#F7F3F0; --c-white:#FFFFFF; --c-line:rgba(35,32,31,.14);
  --c-ok:#4E7A5E; --c-warn:#B7791F; --c-err:#B3443F;
  --grad-hero:radial-gradient(circle at 85% 85%,rgba(246,174,143,.9) 0,rgba(246,174,143,0) 45%),linear-gradient(135deg,#A9ADD6 0%,#CFC4D6 55%,#E9CFCB 100%);
  --f-sans:'Manrope',system-ui,sans-serif; --f-serif:'Cormorant Garamond',Georgia,serif;
  --fs-xs:.75rem; --fs-s:.875rem; --fs-m:1rem; --fs-l:1.25rem; --fs-xl:clamp(1.75rem,5vw,2.75rem); --fs-xxl:clamp(2.5rem,9vw,5.5rem);
  --r-s:8px; --r-m:16px; --r-l:28px; --r-pill:999px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:80px;
  --container:1120px; --shadow:0 12px 40px rgba(35,32,31,.10);
}
*{box-sizing:border-box}
body{margin:0;font:400 var(--fs-m)/1.55 var(--f-sans);color:var(--c-ink);background:var(--c-cream);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:600;letter-spacing:-.02em;line-height:1.1;margin:0 0 var(--sp-4)}
.display{font-family:var(--f-serif);font-weight:400;text-transform:uppercase;font-size:var(--fs-xxl);letter-spacing:.01em;line-height:.95}
.eyebrow{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.22em;font-weight:500;color:var(--c-stone)}
.container{width:min(100% - 32px,var(--container));margin-inline:auto}
.section{padding-block:var(--sp-7)} @media(min-width:900px){.section{padding-block:var(--sp-8)}}
.hero{background:var(--grad-hero);color:var(--c-white)}
.star::before{content:"✦";color:var(--c-peach);margin-right:.6em}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 var(--sp-5);border-radius:var(--r-pill);border:1px solid transparent;font:600 var(--fs-s)/1 var(--f-sans);letter-spacing:.04em;cursor:pointer;text-decoration:none;transition:.2s}
.btn-primary{background:var(--c-ink);color:var(--c-white)} .btn-primary:hover{background:var(--c-ink-2)}
.btn-accent{background:var(--c-peach);color:var(--c-ink)}
.btn-ghost{background:transparent;border-color:currentColor;color:inherit}
.btn-danger{background:transparent;border-color:var(--c-err);color:var(--c-err)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn:focus-visible,.input:focus-visible{outline:3px solid var(--c-lavender);outline-offset:2px}

.card{background:var(--c-white);border-radius:var(--r-l);box-shadow:var(--shadow);overflow:hidden}
.card-body{padding:var(--sp-5)}
.card-cover{aspect-ratio:4/5;object-fit:cover;width:100%;display:block;background:var(--grad-hero)}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border:1px solid currentColor;border-radius:var(--r-pill);font-size:var(--fs-s);letter-spacing:.08em;text-transform:uppercase}

.field{display:grid;gap:6px;margin-bottom:var(--sp-4)}
.label{font-size:var(--fs-s);font-weight:500;color:var(--c-ink-2)}
.input{width:100%;min-height:48px;padding:0 var(--sp-4);border:1px solid var(--c-line);border-radius:var(--r-m);background:var(--c-white);font:inherit;color:inherit}
textarea.input{padding-top:12px;min-height:120px}
.input[aria-invalid=true]{border-color:var(--c-err)} .hint{font-size:var(--fs-xs);color:var(--c-stone)} .error{font-size:var(--fs-xs);color:var(--c-err)}

.badge{display:inline-block;padding:4px 12px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--c-lavender-2);color:var(--c-ink)}
.badge-ok{background:#DCEBE1;color:var(--c-ok)} .badge-warn{background:#F6E7C9;color:var(--c-warn)}
.badge-err{background:#F3D9D7;color:var(--c-err)} .badge-draft{background:#E8E4E0;color:var(--c-stone)}

/* admin */
.admin{--c-cream:#FBFAF9}
.table{width:100%;border-collapse:collapse;font-size:var(--fs-s)}
.table th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--c-stone);padding:var(--sp-3)}
.table td{padding:var(--sp-3);border-top:1px solid var(--c-line)}
.stat{background:var(--c-white);border-radius:var(--r-m);padding:var(--sp-5)} .stat b{display:block;font:400 2.5rem/1 var(--f-serif)}

/* ===== site ===== */
a{color:inherit}
img{max-width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
h1{font-size:var(--fs-xl)} h2{font-size:clamp(1.5rem,4vw,2.25rem)} h3{font-size:var(--fs-l)}
.lead{font-size:1.125rem;max-width:36rem}
.muted{color:var(--c-stone)}
.center{text-align:center}

.site-header{position:sticky;top:0;z-index:50;background:rgba(247,243,240,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--c-line)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;min-height:64px}
.logo{font:600 1.5rem/1 var(--f-sans);letter-spacing:-.04em;text-decoration:none}
.logo i{font-style:normal;color:var(--c-peach);font-size:.7em;margin-left:2px;vertical-align:super}
.nav-toggle{position:absolute;opacity:0;pointer-events:none}
.burger{width:44px;height:44px;display:grid;place-content:center;gap:5px;cursor:pointer;margin-right:-8px}
.burger span{display:block;width:22px;height:2px;background:var(--c-ink)}
.nav-toggle:focus-visible+.burger{outline:3px solid var(--c-lavender);border-radius:8px}
.nav{display:none;position:absolute;left:0;right:0;top:64px;background:var(--c-cream);padding:var(--sp-4) 16px var(--sp-5);border-bottom:1px solid var(--c-line);flex-direction:column;gap:4px}
.nav-toggle:checked~.nav{display:flex}
.nav a,.nav button.link{padding:12px 0;text-decoration:none;font-size:var(--fs-s);text-transform:uppercase;letter-spacing:.16em;font-weight:500;background:none;border:0;font-family:inherit;color:inherit;cursor:pointer;text-align:left}
.nav a:hover,.nav a[aria-current]{color:var(--c-stone)}
.nav .btn{margin-top:8px;color:var(--c-white)}
.nav form{margin:0}
@media(min-width:900px){
 .burger{display:none}
 .nav{display:flex;position:static;flex-direction:row;align-items:center;gap:28px;padding:0;border:0;background:none}
 .nav .btn{margin:0;min-height:42px}
}

.flashes{margin-top:var(--sp-4)}
.flash{padding:12px 18px;border-radius:var(--r-m);font-size:var(--fs-s);margin-bottom:8px;background:var(--c-lavender-2)}
.flash.ok{background:#DCEBE1;color:#2F5640} .flash.error{background:#F3D9D7;color:var(--c-err)}

/* hero */
.hero{position:relative;overflow:hidden;padding-block:64px 72px;min-height:calc(100svh - 64px);display:flex;align-items:center}
.hero .container{position:relative;z-index:1}
.hero::before{content:"";position:absolute;width:150vmin;height:190vmin;border:1px solid rgba(255,255,255,.55);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}
.hero h1{font-size:clamp(2.4rem,9vw,5rem);line-height:1.02;letter-spacing:-.035em;margin:20px 0}
.hero .lead{color:rgba(255,255,255,.95)}
.hero .eyebrow{color:rgba(255,255,255,.85)}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--sp-6)}
.hero .btn-primary{background:var(--c-white);color:var(--c-ink)}
.hero .sub-eyebrow{margin-top:var(--sp-7)}
@media(min-width:900px){.hero{min-height:620px;padding-block:96px}.hero .text{max-width:640px}}

.stars{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.stars li::before{content:"✦";color:var(--c-peach);margin-right:.7em}
.stars li{font-size:1.125rem}
.two{display:grid;gap:var(--sp-6)} @media(min-width:900px){.two{grid-template-columns:1fr 1fr;gap:var(--sp-8);align-items:start}}
.values{display:grid;gap:var(--sp-4)} @media(min-width:900px){.values{grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}}
.value{background:var(--c-white);border-radius:var(--r-l);padding:var(--sp-6) var(--sp-5);border:1px solid var(--c-line)}
.value .num{font:400 2.5rem/1 var(--f-serif);color:var(--c-peach)}
.value h3{margin-top:var(--sp-4)}
.rule{border:0;border-top:1px solid var(--c-line);margin:0}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:var(--sp-5)}
.section-head h2{margin:0}
.link-arrow{font-size:var(--fs-s);letter-spacing:.1em;text-transform:uppercase;font-weight:600;text-decoration:none;border-bottom:1px solid var(--c-peach);padding-bottom:2px;white-space:nowrap}
.cta-band{background:var(--grad-hero);color:var(--c-white);border-radius:var(--r-l);padding:var(--sp-7) var(--sp-5);text-align:center;position:relative;overflow:hidden}
.cta-band h2{font-size:clamp(1.8rem,5vw,3rem)}
.cta-band .btn-primary{background:var(--c-white);color:var(--c-ink)}

/* event cards */
.grid{display:grid;gap:var(--sp-5)} @media(min-width:640px){.grid{grid-template-columns:repeat(2,1fr)}} @media(min-width:1000px){.grid{grid-template-columns:repeat(3,1fr)}}
.ecard{position:relative;display:block;text-decoration:none;color:var(--c-white);border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/5;background:var(--c-ink);box-shadow:var(--shadow)}
.ecard .cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ecard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,32,31,.05) 30%,rgba(35,32,31,.78) 100%)}
.ecard .over{position:absolute;inset:0;z-index:1;padding:var(--sp-5);display:flex;flex-direction:column;justify-content:space-between}
.ecard .top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.ecard .pill{font-size:var(--fs-xs);padding:6px 14px;background:rgba(35,32,31,.25);backdrop-filter:blur(6px)}
.ecard h3{font:400 clamp(1.9rem,5vw,2.4rem)/.98 var(--f-serif);text-transform:uppercase;letter-spacing:.02em;margin:0 0 12px}
.ecard .meta{font-size:var(--fs-s);display:flex;flex-wrap:wrap;gap:4px 16px;opacity:.95}
.ecard:hover .cover{transform:scale(1.03)} .ecard .cover{transition:transform .5s}
.ph{background:var(--grad-hero)} .ph.v1{background:radial-gradient(circle at 15% 85%,rgba(246,174,143,.9) 0,rgba(246,174,143,0) 45%),linear-gradient(160deg,#B4B7D9,#E6C9C6)}
.ph.v2{background:radial-gradient(circle at 80% 20%,rgba(246,174,143,.8) 0,rgba(246,174,143,0) 40%),linear-gradient(200deg,#8E92BE,#CBCDE8 60%,#E9CFCB)}
.badge-glass{background:rgba(255,255,255,.88);color:var(--c-ink)}
.tabs{display:flex;gap:8px;margin-bottom:var(--sp-6)}
.tabs a{padding:10px 20px;border-radius:var(--r-pill);border:1px solid var(--c-line);text-decoration:none;font-size:var(--fs-s);font-weight:600;letter-spacing:.04em}
.tabs a[aria-current]{background:var(--c-ink);color:var(--c-white);border-color:var(--c-ink)}
.empty{text-align:center;padding:var(--sp-7) var(--sp-4);border:1px dashed var(--c-line);border-radius:var(--r-l);color:var(--c-stone)}
.empty .star::before{display:block;font-size:1.6rem;margin:0 0 8px}

/* event page */
.ev-hero{position:relative;color:var(--c-white);min-height:70svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--c-ink)}
.ev-hero .cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ev-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,32,31,.15),rgba(35,32,31,.75))}
.ev-hero::before{content:"";position:absolute;z-index:1;width:120vmin;height:150vmin;border:1px solid rgba(255,255,255,.4);border-radius:50%;left:50%;top:55%;transform:translate(-50%,-50%)}
.ev-hero .container{position:relative;z-index:2;padding-block:48px}
.ev-hero h1{font:400 var(--fs-xxl)/.95 var(--f-serif);text-transform:uppercase;letter-spacing:.01em;margin:16px 0 24px}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.ev-body{display:grid;gap:var(--sp-6);padding-block:var(--sp-6) 120px}
.ev-desc{white-space:pre-line;font-size:1.0625rem}
.facts{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.facts li{display:flex;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--c-line);font-size:var(--fs-s)}
.facts b{font-weight:600;text-align:right}
.signup{background:var(--c-white);border-radius:var(--r-l);padding:var(--sp-5);box-shadow:var(--shadow)}
.signup .price{font:400 2.4rem/1 var(--f-serif);margin:0 0 4px}
.signup form{margin:var(--sp-4) 0 0}
.signup .btn,.signup .ticket{width:100%;margin-top:12px}
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(247,243,240,.96);backdrop-filter:blur(10px);border-top:1px solid var(--c-line);padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
.sticky-cta .in{display:flex;gap:12px;align-items:center;justify-content:space-between;max-width:var(--container);margin:auto}
.sticky-cta .btn{flex:1}
.ticket{border:1px solid var(--c-ok);color:var(--c-ok);border-radius:var(--r-m);padding:12px 16px;font-weight:600;font-size:var(--fs-s);text-align:center}
@media(min-width:900px){
 .ev-hero{min-height:560px}
 .ev-body{grid-template-columns:1fr 360px;gap:var(--sp-8);padding-bottom:var(--sp-8);align-items:start}
 .signup{position:sticky;top:88px}
 .sticky-cta{display:none}
}
@media(max-width:899px){.signup{display:none}.signup.always{display:block}}

/* forms / auth */
.auth{max-width:460px;margin:0 auto;padding-block:var(--sp-6) var(--sp-8)}
.auth h1{margin-bottom:8px}
.formcard{background:var(--c-white);border-radius:var(--r-l);padding:var(--sp-5);box-shadow:var(--shadow);margin-top:var(--sp-5)}
.check{display:flex;gap:12px;align-items:flex-start;font-size:var(--fs-s);margin-bottom:var(--sp-4)}
.check input{width:22px;height:22px;margin:0;accent-color:var(--c-ink);flex:none}
select.input{appearance:auto}
.error-inline{color:var(--c-err);font-size:var(--fs-xs)}
.formcard .btn{width:100%}
@media(min-width:900px){.formcard{padding:var(--sp-6)}}

.profile{display:grid;gap:var(--sp-4);margin-bottom:var(--sp-6)}
.reglist{display:grid;gap:12px}
.regrow{display:flex;gap:16px;align-items:center;justify-content:space-between;background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-m);padding:var(--sp-4);flex-wrap:wrap}
.regrow h3{font:500 1.5rem/1 var(--f-serif);margin:0 0 4px;text-transform:uppercase}

.site-footer{background:var(--c-ink);color:#d8d1cc;padding-block:var(--sp-7) var(--sp-6);margin-top:var(--sp-7)}
.site-footer a{text-decoration:none}.site-footer a:hover{color:var(--c-peach)}
.site-footer .cols{display:grid;gap:var(--sp-5)}
.site-footer .logo{color:var(--c-white)}
.site-footer small{display:block;margin-top:var(--sp-6);color:var(--c-taupe)}
@media(min-width:700px){.site-footer .cols{grid-template-columns:2fr 1fr 1fr}}
.prose p{max-width:42rem}
.prose h2{margin-top:var(--sp-6);font-size:1.4rem}

/* ===== admin ===== */
body.admin{background:var(--c-cream)}
.a-top{background:var(--c-white);border-bottom:1px solid var(--c-line);position:sticky;top:0;z-index:30}
.a-top .container{display:flex;align-items:center;justify-content:space-between;min-height:56px;gap:12px}
.a-top form{margin:0}
.a-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;background:var(--c-white);border-top:1px solid var(--c-line);padding-bottom:env(safe-area-inset-bottom)}
.a-nav a{flex:1;text-align:center;padding:14px 4px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;text-decoration:none;color:var(--c-stone);border-top:2px solid transparent}
.a-nav a[aria-current]{color:var(--c-ink);border-top-color:var(--c-peach)}
.a-main{padding-block:var(--sp-5) 96px}
.a-main h1{font-size:1.6rem;font-family:var(--f-sans)}
.a-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}
.a-row h1{margin:0}
.btn-s{min-height:40px;padding:0 var(--sp-4);font-size:var(--fs-xs)}
.stats{display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:var(--sp-5)}
.stat{border:1px solid var(--c-line)}
.stat span{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--c-stone)}
.stat b{margin-top:8px;font-size:2rem}
.stat small{display:block;margin-top:6px;color:var(--c-stone);font-size:var(--fs-xs)}
.panel{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-m);padding:var(--sp-4);margin-bottom:var(--sp-5)}
.panel h2{font-size:1.1rem}
.note{background:#F6E7C9;color:#6b4a10;border-radius:var(--r-s);padding:10px 14px;font-size:var(--fs-xs);margin-bottom:var(--sp-4)}
.table-wrap{overflow-x:auto}
@media(max-width:699px){
 .rtable thead{display:none}
 .rtable,.rtable tbody,.rtable tr,.rtable td{display:block;width:100%}
 .rtable tr{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-m);margin-bottom:10px;padding:8px 4px}
 .rtable td{border:0;display:flex;justify-content:space-between;gap:12px;padding:6px 12px;text-align:right}
 .rtable td::before{content:attr(data-label);color:var(--c-stone);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;text-align:left;flex:none}
 .rtable td.actions{justify-content:flex-end;flex-wrap:wrap}
 .rtable td.actions::before{display:none}
}
.rtable .num{font-variant-numeric:tabular-nums}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.actions form{margin:0}
.a-tabs{display:flex;gap:4px;border-bottom:1px solid var(--c-line);margin-bottom:var(--sp-5)}
.a-tabs a{padding:12px 16px;text-decoration:none;font-weight:600;font-size:var(--fs-s);color:var(--c-stone);border-bottom:2px solid transparent;margin-bottom:-1px}
.a-tabs a[aria-current]{color:var(--c-ink);border-bottom-color:var(--c-peach)}
.counter{display:inline-flex;gap:8px;align-items:baseline;background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-pill);padding:8px 18px;font-size:var(--fs-s)}
.counter b{font:500 1.5rem/1 var(--f-serif)}
.search{display:flex;gap:8px;margin:var(--sp-4) 0}.search .input{flex:1}
.formgrid{display:grid;gap:0 var(--sp-4)} @media(min-width:700px){.formgrid{grid-template-columns:1fr 1fr}.formgrid .full{grid-column:1/-1}}
.attend{width:28px;height:28px;border-radius:8px;border:1.5px solid var(--c-taupe);background:var(--c-white);cursor:pointer;display:inline-grid;place-content:center;font-size:16px;color:var(--c-white);padding:0}
.attend.on{background:var(--c-ok);border-color:var(--c-ok)}
.thumb{width:120px;border-radius:var(--r-s);display:block;margin-bottom:8px}
@media(min-width:900px){
 .stats{grid-template-columns:repeat(4,1fr)}
 .a-nav{position:static;border:0;background:none;display:flex;flex:none;width:auto}
 .a-nav a{padding:18px 16px;border-top:0;border-bottom:2px solid transparent;font-size:var(--fs-xs)}
 .a-nav a[aria-current]{border-bottom-color:var(--c-peach)}
 .a-main{padding-bottom:var(--sp-7)}
 .a-top .container{gap:32px}.a-top .grow{flex:1}
 .a-top .container{min-height:64px}
}
.login-wrap{min-height:100svh;display:grid;place-items:center;padding:16px}

/* ===== v3 ===== */
/* кнопка «Стать членом»: персик, тёмный текст (контраст ≈ 8.7:1) */
.btn-cta{background:var(--c-peach);color:var(--c-ink);border-color:var(--c-peach);box-shadow:0 4px 14px rgba(246,174,143,.55)}
.btn-cta:hover{background:#F39772;border-color:#F39772;color:var(--c-ink);transform:translateY(-1px)}
.btn-cta:focus-visible{outline:3px solid var(--c-ink);outline-offset:3px}
.nav .btn-cta{color:var(--c-ink)}
.btn-soft{background:transparent;border:1.5px solid var(--c-lavender);color:var(--c-ink-2)}
.btn-soft:hover{background:var(--c-lavender-2);border-color:var(--c-ink-2)}
.btn-soft:focus-visible{outline:3px solid var(--c-ink);outline-offset:2px}
.nav a:focus-visible,.link-arrow:focus-visible,.a-nav a:focus-visible{outline:3px solid var(--c-ink);outline-offset:3px;border-radius:4px}

/* dialog */
dialog.confirm{border:0;border-radius:var(--r-l);padding:var(--sp-6) var(--sp-5);max-width:min(92vw,440px);box-shadow:var(--shadow);background:var(--c-white);color:var(--c-ink)}
dialog.confirm::backdrop{background:rgba(35,32,31,.45);backdrop-filter:blur(3px)}
dialog.confirm h2{font-size:1.3rem}
dialog.confirm .actions{justify-content:flex-end;margin-top:var(--sp-5)}

/* reveal */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}.ecard .cover,.btn{transition:none}html{scroll-behavior:auto}}

/* about block / stats */
.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);margin:var(--sp-5) 0}
.nums div{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-m);padding:var(--sp-4);text-align:center}
.nums b{display:block;font:400 clamp(1.8rem,6vw,2.8rem)/1 var(--f-serif);color:var(--c-ink)}
.nums span{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--c-stone)}
.sec-soft{background:linear-gradient(180deg,rgba(203,205,232,.35),rgba(230,201,198,.25))}

/* gallery */
.gal-wrap{position:relative}
.gallery{display:flex;gap:var(--sp-4);overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 16px 16px;margin-inline:-16px;scrollbar-width:thin}
.gallery figure{flex:0 0 min(72vw,300px);margin:0;scroll-snap-align:start}
.gallery img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r-l);display:block;background:var(--grad-hero)}
.gallery figcaption{font-size:var(--fs-s);color:var(--c-stone);padding:8px 4px 0}
.gal-ctl{display:none;gap:8px}
.js .gal-ctl{display:flex}
@media(max-width:700px){.js .gal-ctl{display:none}}
.round{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--c-lavender);background:var(--c-white);cursor:pointer;font-size:1.1rem}
.round:hover{background:var(--c-lavender-2)}.round:focus-visible{outline:3px solid var(--c-ink);outline-offset:2px}

/* blog */
.posts{display:grid;gap:var(--sp-5)}@media(min-width:760px){.posts{grid-template-columns:repeat(3,1fr)}}
.pcard{display:flex;flex-direction:column;text-decoration:none;background:var(--c-white);border-radius:var(--r-l);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s}
.pcard:hover{transform:translateY(-3px)}.pcard:focus-visible{outline:3px solid var(--c-ink);outline-offset:3px}
.pcard .cv{aspect-ratio:16/9;width:100%;object-fit:cover}
.pcard .b{padding:var(--sp-5)}.pcard h3{font:500 1.5rem/1.1 var(--f-serif);text-transform:uppercase;margin:6px 0 10px}
.pcard p{margin:0;color:var(--c-stone);font-size:var(--fs-s)}
.article{max-width:42rem;margin-inline:auto}.article p{font-size:1.0625rem}
.article .cv{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-l);margin:var(--sp-5) 0}

/* team / about */
.team{display:grid;gap:var(--sp-4);grid-template-columns:1fr 1fr}@media(min-width:900px){.team{grid-template-columns:repeat(4,1fr)}}
.tcard{background:var(--c-white);border-radius:var(--r-l);overflow:hidden;border:1px solid var(--c-line)}
.tcard .ph{aspect-ratio:1/1;width:100%;display:block;object-fit:cover}
.tcard div.t{padding:var(--sp-4)}.tcard b{display:block}.tcard small{color:var(--c-stone);display:block}
.tcard .rep{font-size:var(--fs-xs);color:var(--c-taupe);margin-top:6px}
.trio{display:grid;gap:var(--sp-4)}@media(min-width:700px){.trio{grid-template-columns:repeat(3,1fr)}}
.trio img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-l)}
.clist{list-style:none;padding:0;margin:0;display:grid;gap:10px}

/* account */
.panel-p{margin-top:var(--sp-7);padding-top:var(--sp-5);border-top:1px solid var(--c-line)}
.del-form{margin-top:var(--sp-5);max-width:460px}

/* calendar */
.cal-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}
.cal-bar h2{margin:0;font-size:1.3rem}
.seg{display:inline-flex;gap:6px;flex-wrap:wrap}
.seg a{padding:8px 16px;border-radius:var(--r-pill);border:1px solid var(--c-line);text-decoration:none;font-size:var(--fs-s);font-weight:600;background:var(--c-white)}
.seg a[aria-current]{background:var(--c-ink);color:var(--c-white);border-color:var(--c-ink)}
.seg a:focus-visible{outline:3px solid var(--c-ink);outline-offset:2px}
.cal-grid{display:none}
.cal-head,.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-head span{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--c-stone);text-align:center;padding:6px}
.cal-week{margin-bottom:6px}
.cal-day{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-m);min-height:104px;padding:8px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cal-day.out{background:transparent;opacity:.55}
.cal-day.today{border-color:var(--c-peach);box-shadow:0 0 0 2px rgba(246,174,143,.5)}
.cal-day>b{font-size:var(--fs-s)}
.cal-week.wk .cal-day{min-height:220px}
.chip{display:block;text-decoration:none;font-size:var(--fs-xs);line-height:1.3;padding:6px 8px;border-radius:var(--r-s);background:var(--c-lavender-2);color:var(--c-ink);overflow-wrap:anywhere}
.chip:hover{background:var(--c-lavender)}.chip:focus-visible{outline:3px solid var(--c-ink);outline-offset:1px}
.chip small{display:block;color:var(--c-ink-2)}
.chip.mine{background:var(--c-peach)}.chip.mine::before{content:"✦ "}
.chip.draft{background:#E8E4E0}
.cal-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.cal-list li{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-m);padding:12px}
.cal-list li.today{border-color:var(--c-peach)}
.cal-list .d{font-weight:700;font-size:var(--fs-s);margin-bottom:6px}
.cal-list .none{color:var(--c-stone);font-size:var(--fs-xs)}
@media(min-width:760px){.cal-grid{display:block}.cal-list{display:none}}

/* analytics */
.bars{display:flex;align-items:flex-end;gap:2px;height:140px;padding-top:8px}
.bars span{flex:1;min-width:2px;background:var(--c-lavender);border-radius:3px 3px 0 0;position:relative}
.bars span.u{background:var(--c-peach)}
.bars-wrap{display:grid;gap:4px}.bars-lbl{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--c-stone)}
.legend{display:flex;gap:16px;font-size:var(--fs-xs);color:var(--c-stone);margin-top:6px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.heat td.h{text-align:center;font-variant-numeric:tabular-nums;min-width:48px}
.empty-s{color:var(--c-stone);font-size:var(--fs-s);padding:var(--sp-4);border:1px dashed var(--c-line);border-radius:var(--r-m)}
.inline-form{display:inline-flex;gap:8px;align-items:center;margin:0}
.inline-form select{min-height:40px;width:auto;padding:0 10px}
.a-nav{overflow-x:auto}.a-nav a{flex:0 0 auto;padding-inline:12px}
@media(min-width:900px){.a-nav a{padding-inline:12px}}
@media(max-width:899px){.a-nav a{min-width:76px}}
.kv{display:grid;gap:8px;font-size:var(--fs-s)}.kv code{background:var(--c-cream);padding:2px 8px;border-radius:6px}
