:root{
  --wish-wine:var(--wine,#4b1733);
  --wish-wine-deep:var(--wine-deep,#321023);
  --wish-blue:var(--cobalt,var(--blue,#1e4fd8));
  --wish-rose:var(--rose,#d9a8c0);
  --wish-ground:var(--ground,#ede9f0);
  --wish-surface:var(--surface,#fff);
  --wish-ink:var(--ink,#22202a);
  --wish-dim:var(--dim,#6e687c);
  --wish-rule:var(--rule,rgba(75,23,51,.16));
  --wish-soft:var(--rule-soft,var(--soft,rgba(75,23,51,.08)));
  --wish-shadow:0 14px 38px rgba(50,16,35,.085);
  --wish-shadow-hover:0 24px 54px rgba(50,16,35,.15);
  --wish-spring:cubic-bezier(.18,.89,.32,1.35);
}

@keyframes wish-spring-down{
  0%{opacity:0;transform:translateY(-24px) scale(.975)}
  62%{opacity:1;transform:translateY(5px) scale(1.01)}
  82%{transform:translateY(-2px) scale(1)}
  100%{opacity:1;transform:none}
}
@keyframes wish-spring-up{
  0%{opacity:0;transform:translateY(34px) scale(.965)}
  60%{opacity:1;transform:translateY(-6px) scale(1.01)}
  80%{transform:translateY(2px) scale(.998)}
  100%{opacity:1;transform:none}
}
@keyframes wish-card-rise{
  0%{opacity:0;transform:translateY(26px) scale(.975)}
  72%{opacity:1;transform:translateY(-2px) scale(1.004)}
  100%{opacity:1;transform:none}
}

html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(circle at 7% 18%,rgba(217,168,192,.18),transparent 25rem),
    radial-gradient(circle at 94% 48%,rgba(30,79,216,.065),transparent 30rem),
    var(--wish-ground)!important;
}

body > header{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:linear-gradient(125deg,var(--wish-wine-deep),var(--wish-wine) 58%,#68244a)!important;
}
body > header::before,
body > header::after{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  border-radius:50%;
}
body > header::before{
  width:clamp(300px,42vw,620px);
  aspect-ratio:1;
  right:-12%;
  top:-58%;
  border:clamp(30px,5vw,72px) solid rgba(217,168,192,.085);
  box-shadow:0 0 0 1px rgba(255,255,255,.07);
  background:transparent;
}
body > header::after{
  width:280px;
  height:280px;
  left:-150px;
  bottom:-190px;
  background:rgba(30,79,216,.12);
}
body > header > .wrap{position:relative;z-index:1}
body > header .brand{transition:transform .3s var(--wish-spring),opacity .2s ease}
body > header .brand:hover{transform:translateY(-2px) scale(1.025)}
body > header .brand span{color:var(--wish-rose)}
body > header h1{letter-spacing:-.035em;text-wrap:balance}
body > header .lede{line-height:1.65}

.admin-nav a,
.view-switch a,
body > header .home{
  border-radius:999px;
  transition:transform .28s var(--wish-spring),background .2s ease,color .2s ease,border-color .2s ease;
}
.admin-nav a{
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.2);
  text-decoration:none;
}
.admin-nav a:hover,
body > header .home:hover{transform:translateY(-2px);color:#fff}
.view-switch a:hover{transform:translateY(-2px)}

main{position:relative}

:is(.slip,.event-card,.map-card,.magic-card,.card,.metric,.stat,.item,.candidate,.suggestion,.zone-result,.empty,.notice,.intro,.contribute-bar,.finder-shell,.source-note){
  border-radius:18px;
  box-shadow:var(--wish-shadow);
}
:is(.slip,.event-card,.map-card,.magic-card,.card,.metric,.stat,.item,.candidate,.suggestion,.zone-result){
  transition:transform .42s var(--wish-spring),box-shadow .28s ease,border-color .22s ease;
}

@media(hover:hover){
  :is(.slip,.event-card,.metric,.stat,.item,.candidate,.zone-result):hover{
    transform:translateY(-6px) scale(1.004);
    box-shadow:var(--wish-shadow-hover);
  }
  :is(.map-card,.magic-card,.card):hover{box-shadow:var(--wish-shadow-hover)}
  .suggestion:hover{box-shadow:0 15px 38px rgba(50,16,35,.12)}
}

.slip{overflow:hidden}
.event-card{overflow:hidden}
.map-card,.magic-card{overflow:hidden}
.stat{overflow:hidden}
.metric{overflow:hidden}
.item,.candidate{overflow:hidden}

.contained-panel,
.spaces-panel,
.contained-record,
.space-card,
.flyer-box,
.change-box,
.change-item,
.mode-choice,
.mode-option,
.current,
.context,
.diff,
.edit-panel,
.agent pre,
.source-note,
.map-shell,
.map-stage,
.map-wrap{
  border-radius:14px;
}
.contained-record,.space-card,.change-item,.mode-option{
  transition:transform .3s var(--wish-spring),box-shadow .24s ease,border-color .2s ease;
}
@media(hover:hover){
  .contained-record:hover,.space-card:hover,.change-item:hover,.mode-option:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(50,16,35,.08);
  }
}

main > form,
form.card{
  border-radius:22px;
  box-shadow:var(--wish-shadow);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea{
  border-radius:10px;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
select:focus,
textarea:focus{
  outline:none;
  border-color:var(--wish-blue)!important;
  box-shadow:0 0 0 3px rgba(30,79,216,.12)!important;
}

button,
.button,
.go,
.more,
.magic-link,
.flyer-upload,
.add-change,
.cta{
  border-radius:10px!important;
  transition:transform .32s var(--wish-spring),box-shadow .22s ease,background .18s ease,color .18s ease,border-color .18s ease;
}
@media(hover:hover){
  button:hover:not(:disabled),
  .button:hover,
  .go:hover,
  .more:hover,
  .magic-link:hover,
  .flyer-upload:hover,
  .add-change:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 22px rgba(50,16,35,.14);
  }
}

.finder-shell{
  border-radius:22px!important;
  backdrop-filter:blur(14px);
}
.contribute-bar,
.notice,
.intro,
.source-note{
  overflow:hidden;
}

.tags .tag,
.tags span,
.badge,
.status,
.field-result{
  border-radius:999px;
}

.zone-button{
  border-radius:12px;
  transition:transform .28s var(--wish-spring),box-shadow .2s ease,border-color .2s ease,background .2s ease;
}
@media(hover:hover){.zone-button:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(50,16,35,.08)}}

.map-wrap,.map-shell{box-shadow:inset 0 0 0 1px rgba(75,23,51,.035)}

footer{background:rgba(255,255,255,.22)}

@media(prefers-reduced-motion:no-preference){
  body > header .bar,
  body > header > .wrap > .brand{animation:wish-spring-down .68s var(--wish-spring) both}
  body > header h1{animation:wish-spring-up .76s .08s var(--wish-spring) both}
  body > header .lede{animation:wish-spring-up .76s .15s var(--wish-spring) both}

  :is(.slip,.event-card,.stat,.metric,.item,.candidate,.suggestion,.zone-result){animation:wish-card-rise .68s var(--wish-spring) both}
  :is(.grid,.event-list,.stats,.summary,.queue,.results-grid) > :nth-child(2){animation-delay:45ms}
  :is(.grid,.event-list,.stats,.summary,.queue,.results-grid) > :nth-child(3){animation-delay:90ms}
  :is(.grid,.event-list,.stats,.summary,.queue,.results-grid) > :nth-child(4){animation-delay:135ms}
  :is(.grid,.event-list,.stats,.summary,.queue,.results-grid) > :nth-child(5){animation-delay:180ms}
  :is(.grid,.event-list,.stats,.summary,.queue,.results-grid) > :nth-child(6){animation-delay:225ms}

  .finder-shell,.contribute-bar,main > .intro,main > .notice,main > form,form.card,.map-card{
    animation:wish-card-rise .68s .18s var(--wish-spring) both;
  }
}

@media(max-width:700px){
  body > header::before{right:-34%;top:-42%}
  :is(.slip,.event-card,.map-card,.magic-card,.card,.metric,.stat,.item,.candidate,.suggestion,.zone-result,.empty,.notice,.intro,.contribute-bar,.finder-shell,.source-note){border-radius:15px}
  .admin-nav a{padding:6px 8px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}
  :is(.slip,.event-card,.metric,.stat,.item,.candidate,.zone-result,.contained-record,.space-card,.change-item,.mode-option,.zone-button):hover,
  button:hover:not(:disabled),.button:hover,.go:hover,.more:hover,.magic-link:hover,.flyer-upload:hover,.add-change:hover,
  body > header .brand:hover,.admin-nav a:hover,body > header .home:hover,.view-switch a:hover{
    transform:none!important;
  }
}
