:root{
  --ink:#241429;
  --plum:#6B3A72;
  --plum-deep:#40204A;
  --apricot:#E8974F;
  --apricot-soft:#F6D9B4;
  --mist:#DCD3E0;
  --bone:#F3EFE9;
  --paper:#FFFFFF;
  --rule:#CFC4D6;
  --text-dim:#6E5F75;

  --display:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;
  --body:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;

  --pad:clamp(20px,4vw,56px);
}

*,*::before,*::after{box-sizing:border-box}

.cs{
  margin:0;
  padding:var(--pad);
  background:var(--bone);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.cs :focus-visible{outline:3px solid var(--apricot);outline-offset:3px;border-radius:3px}

/* ---------------------------------------------------------------- intro */

.cs__intro{max-width:62ch;margin:0 0 clamp(28px,5vw,52px)}
.cs__meta{
  margin:0 0 14px;font-size:.9rem;color:var(--plum);font-weight:600;
}
.cs__meta span{color:var(--text-dim);font-weight:400}
.cs__title{
  margin:0 0 16px;
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(2rem,5.2vw,3.4rem);
  line-height:1.02;
  letter-spacing:-.025em;
}
.cs__lede{margin:0 0 22px;font-size:clamp(1.02rem,1.6vw,1.18rem);color:#3E2C46}
.cs__stack{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.cs__stack li{
  padding:5px 12px;border:1px solid var(--rule);border-radius:2px;
  background:var(--paper);font-size:.82rem;color:var(--plum-deep);font-weight:500;
}

/* --------------------------------------------------------------- slider */

.slider{position:relative}
.slider__viewport{overflow:hidden;border-radius:4px}
.slider__track{
  display:flex;
  transition:transform .55s cubic-bezier(.22,.68,.28,1);
}
.slide{
  flex:0 0 100%;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:4px;
}
.slide[aria-hidden="true"]{visibility:hidden}

.slide__art{
  padding:clamp(20px,3vw,38px);
  background:
    radial-gradient(120% 120% at 8% 0%, #7C4886 0%, var(--plum-deep) 46%, var(--ink) 100%);
  display:flex;align-items:center;justify-content:center;
}
.slide__notes{padding:clamp(22px,3vw,40px);display:flex;flex-direction:column}
.slide__no{
  font-family:var(--display);font-weight:700;font-size:.86rem;
  color:var(--apricot);margin:0 0 10px;
}
.slide__h{
  margin:0 0 12px;font-family:var(--display);font-weight:700;
  font-size:clamp(1.32rem,2.4vw,1.8rem);line-height:1.12;letter-spacing:-.015em;
}
.slide__body{margin:0 0 18px;color:#41304A;max-width:46ch}
.slide__body + .slide__body{margin-top:-6px}
.slide__how{
  margin:auto 0 0;padding:16px 18px;background:var(--bone);
  border-left:3px solid var(--apricot);border-radius:0 3px 3px 0;
}
.slide__how h4{
  margin:0 0 6px;font-family:var(--display);font-size:.95rem;font-weight:700;
}
.slide__how p{margin:0;font-size:.92rem;color:#4A3852}

/* ------------------------------------------------------------- controls */

.slider__bar{
  display:flex;align-items:center;gap:18px;margin-top:20px;flex-wrap:wrap;
}
.slider__btn{
  padding:11px 20px;border:1px solid var(--plum-deep);border-radius:2px;
  background:var(--plum-deep);color:#fff;font-family:var(--body);
  font-size:.92rem;font-weight:600;cursor:pointer;
}
.slider__btn:hover{background:var(--ink);border-color:var(--ink)}
.slider__btn[disabled]{opacity:.32;cursor:default}
.slider__btn[disabled]:hover{background:var(--plum-deep);border-color:var(--plum-deep)}
.slider__dots{display:flex;gap:9px;margin:0;padding:0;list-style:none}
.slider__dot{
  width:11px;height:11px;padding:0;border:1px solid var(--plum);border-radius:50%;
  background:transparent;cursor:pointer;
}
.slider__dot[aria-current="true"]{background:var(--apricot);border-color:var(--apricot)}
.slider__pos{margin-left:auto;font-size:.9rem;color:var(--text-dim)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ------------------------------------------------------------ UI mockups */

.ui{
  width:100%;max-width:430px;background:var(--paper);
  border-radius:5px;box-shadow:0 18px 44px rgba(24,10,30,.34);
  overflow:hidden;font-size:12px;
}
.ui__bar{
  display:flex;align-items:center;gap:6px;padding:9px 12px;
  background:#EDE7F0;border-bottom:1px solid var(--rule);
}
.ui__dot{width:8px;height:8px;border-radius:50%;background:#C3B4CB}
.ui__bar span{margin-left:8px;color:var(--text-dim);font-size:10.5px}
.ui__body{padding:15px}

.m-search{
  display:block;width:100%;padding:9px 11px;margin-bottom:13px;
  border:1px solid var(--rule);border-radius:3px;color:var(--text-dim);background:#FAF8FB;
}
.m-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.m-card{border:2px solid var(--plum-deep);border-radius:4px;padding:11px}
.m-card__top{display:flex;gap:8px;align-items:center}
.m-chip{
  width:28px;height:28px;flex:none;border-radius:4px;display:flex;
  align-items:center;justify-content:center;font-weight:700;font-size:11px;
  background:#EFE4F2;color:var(--plum);
}
.m-card__name{font-weight:600;font-size:12.5px;line-height:1.15}
.m-card__role{margin:9px 0 0;color:var(--text-dim);font-size:11px;line-height:1.35}

.m-hero{
  padding:17px;border-radius:4px;color:#fff;
  background:linear-gradient(135deg,var(--plum) 0%,var(--plum-deep) 62%,var(--ink) 100%);
  display:flex;gap:14px;
}
.m-hero__mono{
  width:64px;height:80px;flex:none;border-radius:3px;background:rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-weight:700;font-size:22px;color:var(--apricot-soft);
}
.m-hero h5{margin:2px 0 3px;font-family:var(--display);font-size:16px;font-weight:700}
.m-hero p{margin:0;font-size:11px;color:rgba(255,255,255,.78);line-height:1.45}
.m-hero__btns{display:flex;gap:7px;margin-top:11px}
.m-hero__btns i{
  font-style:normal;padding:5px 11px;border-radius:2px;font-size:10.5px;font-weight:600;
  background:#fff;color:var(--plum-deep);
}
.m-hero__btns i:last-child{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45)}

.m-sum{
  padding:9px 11px;margin-bottom:11px;border-radius:3px;
  background:#F0EAF2;border-left:3px solid var(--apricot);font-weight:600;font-size:11.5px;
}
.m-table{width:100%;border-collapse:collapse;font-size:11.5px}
.m-table th{
  text-align:left;padding:6px 4px;border-bottom:1px solid var(--rule);
  font-size:10px;color:var(--text-dim);font-weight:600;
}
.m-table td{padding:7px 4px;border-bottom:1px solid #EFE9F1}
.tag{padding:2px 8px;border-radius:2px;font-size:10px;font-weight:700}
.tag--add{background:#E4F0E6;color:#2C5F36}
.tag--upd{background:#EFE4F2;color:var(--plum)}
.tag--chk{background:#FBE9D6;color:#8A5115}

.m-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.m-field{display:flex;flex-direction:column;gap:4px}
.m-field--wide{grid-column:1/-1}
.m-field label{font-size:10px;font-weight:600;color:var(--text-dim)}
.m-field div{
  padding:8px 10px;border:1px solid var(--rule);border-radius:3px;
  background:#FAF8FB;color:#5C4B64;font-size:11px;min-height:30px;
}
.m-lock{
  display:flex;gap:8px;align-items:flex-start;margin:12px 0 0;padding:9px 11px;
  background:#F0EAF2;border-radius:3px;font-size:10.5px;color:#4A3852;line-height:1.4;
}
.m-lock b{color:var(--plum-deep)}
.m-save{
  margin-top:11px;padding:8px 16px;display:inline-block;border-radius:2px;
  background:var(--plum-deep);color:#fff;font-size:11px;font-weight:600;
}

.m-sort{list-style:none;margin:0;padding:0}
.m-sort li{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:9px 2px;border-bottom:1px solid #EFE9F1;font-size:12px;
}
.m-sort li:last-child{border-bottom:0}
.m-sort b{font-weight:600}
.m-sort em{
  font-style:normal;font-size:10.5px;color:var(--plum);
  background:#F3ECF5;padding:2px 7px;border-radius:2px;white-space:nowrap;
}
.m-note{margin:12px 0 0;font-size:10.5px;color:var(--text-dim);line-height:1.45}

@media (max-width:860px){
  .slide{grid-template-columns:1fr}
  .slide__art{padding:26px 20px}
  .slide__how{margin-top:20px}
  .slider__pos{margin-left:0;width:100%}
}
@media (prefers-reduced-motion:reduce){
  .slider__track{transition:none}
}
/* ------------------------------------------------------------- live demo */

.demo{
  margin:0 0 clamp(30px,5vw,54px);
  padding:clamp(20px,3vw,34px);
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:4px;
}
.demo__head{max-width:60ch;margin-bottom:20px}
.demo__title{
  margin:0 0 6px;font-family:var(--display);font-weight:700;
  font-size:clamp(1.4rem,2.6vw,1.9rem);letter-spacing:-.015em;
}
.demo__sub{margin:0;color:var(--text-dim)}

.demo__tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;border-bottom:1px solid var(--rule)}
.demo__tab{
  padding:10px 16px;border:0;border-bottom:3px solid transparent;background:none;
  font-family:var(--body);font-size:.95rem;font-weight:600;color:var(--text-dim);cursor:pointer;
}
.demo__tab[aria-selected="true"]{color:var(--plum-deep);border-bottom-color:var(--apricot)}
.demo__panel[hidden]{display:none}

.demo__label{display:block;margin-bottom:6px;font-size:.78rem;font-weight:600;color:var(--text-dim)}
.demo__input{
  display:block;box-sizing:border-box;width:100%;height:auto;margin:0;padding:11px 13px;
  border:1px solid var(--rule);border-radius:3px;background:#FCFAFC;color:var(--ink);
  font-family:var(--body);font-size:.95rem;line-height:1.4;-webkit-appearance:none;appearance:none;
}
.demo__textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}
.demo__count{margin:12px 0 14px;font-size:.88rem;color:var(--text-dim)}

.demo__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px}
.demo-card{padding:14px;border:2px solid var(--plum-deep);border-radius:4px}
.demo-card__top{display:flex;gap:10px;align-items:center}
.demo-card__chip{
  width:34px;height:34px;flex:none;border-radius:4px;display:flex;align-items:center;
  justify-content:center;background:#EFE4F2;color:var(--plum);font-weight:700;font-size:12px;
}
.demo-card__name{margin:0;font-size:1rem;font-weight:600;line-height:1.2}
.demo-card__role{margin:10px 0 0;font-size:.85rem;color:var(--text-dim);line-height:1.4}

.demo-hero{
  display:flex;gap:14px;align-items:center;padding:16px;margin-bottom:18px;border-radius:4px;
  background:linear-gradient(135deg,var(--plum) 0%,var(--plum-deep) 64%,var(--ink) 100%);color:#fff;
}
.demo-hero__mono{
  width:48px;height:48px;flex:none;border-radius:4px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.15);font-family:var(--display);font-weight:700;color:var(--apricot-soft);
}
.demo-hero__name{margin:0;font-family:var(--display);font-size:1.1rem;font-weight:700}
.demo-hero__title{margin:2px 0 0;font-size:.85rem;color:rgba(255,255,255,.8)}

.demo__form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.demo__field--wide{grid-column:1/-1}
.demo__row{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.demo__btn{
  padding:11px 20px;border:1px solid var(--plum-deep);border-radius:2px;background:var(--plum-deep);
  color:#fff;font-family:var(--body);font-size:.92rem;font-weight:600;cursor:pointer;
}
.demo__btn--quiet{background:transparent;color:var(--plum-deep)}
.demo__btn[hidden]{display:none}
.demo__msg,.demo__note{margin:12px 0 0;font-size:.88rem;color:var(--text-dim)}
.demo__note{margin-bottom:14px}
.demo__empty{
  padding:22px;border:1px dashed var(--rule);border-radius:3px;
  text-align:center;color:var(--text-dim);
}
.demo__summary{
  margin:16px 0 0;padding:11px 14px;border-left:3px solid var(--apricot);
  background:var(--bone);border-radius:0 3px 3px 0;font-weight:600;font-size:.92rem;
}
.demo__table{width:100%;margin:14px 0 0;border-collapse:collapse;font-size:.88rem}
.demo__table th{
  text-align:left;padding:8px 6px;border-bottom:1px solid var(--rule);
  font-size:.74rem;font-weight:600;color:var(--text-dim);
}
.demo__table td{padding:9px 6px;border-bottom:1px solid #EFE9F1;color:#41304A}
.demo__tag{padding:3px 10px;border-radius:2px;font-size:.72rem;font-weight:700}
.demo__tag--add{background:#E4F0E6;color:#2C5F36}
.demo__tag--update{background:#EFE4F2;color:var(--plum)}
.demo__tag--check{background:#FBE9D6;color:#8A5115}

@media (max-width:640px){
  .demo__form{grid-template-columns:1fr}
}
