@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700&family=Barlow:wght@300;400;500;600;700&display=swap');

:root{
  --ink:#171f26;
  --ink2:#1e2830;
  --ink3:#26323b;
  --blue:#c8e0f4;
  --pink:#f5e0e8;
  --txt:#dbe6ee;
  --dim:#93a7b4;
  --sh-d:-6px -6px 16px rgba(255,255,255,.045);
  --sh-l:8px 8px 20px rgba(0,0,0,.55);
  --cond:"Barlow Condensed","Barlow",system-ui,sans-serif;
}

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

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  margin:0;
  overflow-x:hidden;
  background:var(--ink);
  color:var(--txt);
  font-family:Barlow,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;
  line-height:1.72;
  font-weight:400;
}

img{max-width:100%}
a{color:var(--pink)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:8px}

h2>span,h3>span{
  display:inline-block;
  padding-bottom:4px;
  background:linear-gradient(90deg,var(--blue),var(--pink)) no-repeat 0 100%/100% 3px;
}

.topbar{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px clamp(16px,4vw,28px);
  background:rgba(23,31,38,.93);
  backdrop-filter:blur(12px);
  transition:box-shadow .2s ease;
}
.topbar.stuck{box-shadow:0 12px 26px rgba(0,0,0,.55)}

.brandline{display:flex;align-items:center;gap:10px;min-width:0}

.mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:38px;
  height:38px;
  border-radius:12px;
  overflow:hidden;
  text-decoration:none;
  background:linear-gradient(145deg,#d9ecfa,#b6d2e9);
  box-shadow:-3px -3px 8px rgba(255,255,255,.13),4px 4px 11px rgba(0,0,0,.5);
}
.mark img{width:100%;height:100%;object-fit:cover;display:block}
.mark span{font-family:var(--cond);font-weight:700;font-size:20px;color:#1c2831}

.brand{
  font-family:var(--cond);
  font-size:clamp(1.2rem,3.4vw,1.55rem);
  font-weight:700;
  letter-spacing:.07em;
  color:#eef6fc;
  white-space:nowrap;
}

.cta{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  min-height:44px;
  padding:0 18px;
  border-radius:14px;
  background:linear-gradient(145deg,#d9ecfa,#b9d6ed);
  color:#17222b;
  font-family:var(--cond);
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:.09em;
  text-decoration:none;
  box-shadow:-3px -3px 9px rgba(255,255,255,.14),5px 5px 14px rgba(0,0,0,.5);
  transition:transform .15s ease,box-shadow .15s ease;
}
.cta:hover{transform:translateY(-2px)}
.cta:active{
  transform:scale(.97);
  box-shadow:inset 3px 3px 8px rgba(86,118,143,.55),inset -2px -2px 6px rgba(255,255,255,.7);
}

.hero{
  position:relative;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  min-height:70vh;
  padding:clamp(90px,16vw,150px) clamp(18px,5vw,52px) clamp(44px,8vw,76px);
  background:linear-gradient(160deg,#1c262e,#171f26);
  clip-path:polygon(0 0,100% 0,100% 93%,0 100%);
}

.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover;display:block;opacity:.72}
.hero-media:empty{
  background:
    radial-gradient(120% 90% at 14% 8%,rgba(200,224,244,.3),transparent 60%),
    radial-gradient(110% 80% at 92% 24%,rgba(245,224,232,.24),transparent 66%);
}

.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(96deg,rgba(23,31,38,.95) 8%,rgba(23,31,38,.72) 48%,rgba(23,31,38,.2) 90%);
}

.band{
  position:absolute;
  z-index:2;
  left:-8%;
  bottom:13%;
  width:116%;
  height:12px;
  border-radius:6px;
  background:linear-gradient(90deg,var(--blue),var(--pink));
  transform:skewY(-3.2deg);
  opacity:.9;
}

.hero-copy{position:relative;z-index:3;max-width:660px}
.hero h1{
  margin:0 0 14px;
  font-family:var(--cond);
  font-size:clamp(2.2rem,7.4vw,4.4rem);
  line-height:1.03;
  letter-spacing:-.01em;
  color:#f2f8fd;
  text-shadow:0 14px 34px rgba(0,0,0,.55);
}
.lede{margin:0 0 22px;max-width:52ch;color:#c3d3df;font-weight:300;font-size:1.03rem}

.btn{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:0 22px;
  border-radius:14px;
  background:linear-gradient(145deg,#f8e8ef,#e5cedb);
  color:#222d36;
  font-family:var(--cond);
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:.09em;
  text-decoration:none;
  box-shadow:-3px -3px 10px rgba(255,255,255,.14),6px 6px 18px rgba(0,0,0,.5);
  transition:transform .15s ease,box-shadow .15s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:scale(.97);box-shadow:inset 3px 3px 9px rgba(150,116,134,.5),inset -2px -2px 6px rgba(255,255,255,.8)}

.wrap{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:26px;
  padding:clamp(24px,5vw,40px) clamp(16px,4vw,28px) 0;
}
@media (min-width:900px){
  .wrap{grid-template-columns:252px minmax(0,1fr);gap:44px;padding-top:56px}
}

.side{
  align-self:start;
  border-radius:16px;
  padding:16px;
  background:linear-gradient(150deg,#f8e9f0,#eed7e1);
  color:#23303a;
  box-shadow:-6px -6px 16px rgba(255,255,255,.06),8px 8px 22px rgba(0,0,0,.55);
}
@media (min-width:900px){.side{position:sticky;top:80px}}

.side-h{
  margin:0 0 6px;
  font-family:var(--cond);
  font-size:1.2rem;
  letter-spacing:.14em;
  color:#7a5566;
}

.side-nav h3{
  margin:14px 0 8px;
  font-family:var(--cond);
  font-size:1rem;
  font-weight:600;
  letter-spacing:.18em;
  color:#8a6374;
}

.side-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}

.side-nav a{
  display:flex;
  align-items:center;
  min-height:44px;
  padding:10px 14px;
  border-radius:12px;
  background:linear-gradient(145deg,#fdf4f8,#ecdee5);
  color:#22303a;
  font-size:1rem;
  font-weight:600;
  text-decoration:none;
  box-shadow:-3px -3px 8px rgba(255,255,255,.95),3px 3px 9px rgba(150,120,135,.4);
  transition:transform .15s ease,box-shadow .15s ease,color .15s ease;
}
.side-nav a:hover{transform:translateY(-2px);color:#101c24}
.side-nav a:active,
.side-nav a.on{
  box-shadow:inset 3px 3px 8px rgba(150,120,135,.5),inset -3px -3px 7px rgba(255,255,255,.95);
  transform:translateY(0);
}
.side-nav a.on{background:linear-gradient(145deg,#dceffb,#c6dcee);color:#17303f}

@media (max-width:899px){
  .side-nav ul{grid-template-columns:1fr 1fr;gap:8px}
}

.totop{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  margin-top:14px;
  border-radius:12px;
  font-family:var(--cond);
  font-weight:700;
  letter-spacing:.1em;
  text-decoration:none;
  color:#7a5566;
  background:linear-gradient(145deg,#f2e0e9,#e7d2dd);
  box-shadow:-2px -2px 7px rgba(255,255,255,.9),3px 3px 8px rgba(150,120,135,.35);
}
.totop:active{box-shadow:inset 3px 3px 8px rgba(150,120,135,.45),inset -2px -2px 6px rgba(255,255,255,.9)}

.body{min-width:0}
div{max-width:74ch;overflow-wrap:break-word}

div>section{
  scroll-margin-top:96px;
  padding-bottom:34px;
}
div>section+section{padding-top:30px}
div>section+section::before{
  content:"";
  display:block;
  width:74px;
  height:6px;
  margin-bottom:26px;
  border-radius:4px;
  background:linear-gradient(90deg,var(--blue),var(--pink));
  transform:skewX(-26deg);
  opacity:.85;
}

div h2{
  margin:0 0 14px;
  font-family:var(--cond);
  font-size:clamp(1.55rem,4vw,2.1rem);
  line-height:1.22;
  letter-spacing:.01em;
  color:#eaf4fc;
}
div h3{
  margin:26px 0 10px;
  font-family:var(--cond);
  font-size:1.28rem;
  line-height:1.3;
  color:#e2eef8;
}
div h4{margin:20px 0 8px;font-size:1.08rem;color:#dbe9f4}
div p{margin:0 0 16px;color:#cddae3}
div ul,div ol{margin:0 0 18px;padding-left:1.25em;color:#cddae3}
div li{margin:0 0 8px}
div a{color:#f5e0e8;text-underline-offset:3px}
div strong{color:#f4f9fd}
div blockquote{
  margin:0 0 18px;
  padding:14px 18px;
  border-radius:14px;
  background:var(--ink2);
  color:#c2d2dd;
  box-shadow:inset 4px 4px 10px rgba(0,0,0,.5),inset -3px -3px 8px rgba(255,255,255,.04);
}
div img{height:auto;border-radius:14px;box-shadow:var(--sh-l)}
div table{
  display:block;
  overflow-x:auto;
  width:100%;
  margin:0 0 18px;
  border-collapse:collapse;
  font-size:.99rem;
}
div th,div td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(200,224,244,.14)}
div th{color:#eaf4fc}
div code{font-family:ui-monospace,SFMono-Regular,monospace;background:var(--ink3);padding:1px 6px;border-radius:6px;font-size:.95em}
div hr{border:0;height:1px;background:rgba(200,224,244,.16);margin:26px 0}

footer{
  max-width:1180px;
  margin:44px auto 0;
  padding:40px clamp(16px,4vw,28px) 34px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px 26px;
  color:#a5b7c3;
  font-size:1rem;
  box-shadow:inset 0 1px 0 rgba(200,224,244,.12);
}
footer p{margin:0}
footer p:first-child{
  font-family:var(--cond);
  font-size:1.45rem;
  letter-spacing:.08em;
  color:#d5e6f3;
}
footer p:nth-child(2){display:flex;flex-wrap:wrap;gap:4px 16px;align-content:start}
footer p:nth-child(2) a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  color:#c9dbe8;
  text-decoration:none;
  border-bottom:1px solid rgba(200,224,244,.25);
}
footer p:nth-child(2) a:hover{color:#f5e0e8}
footer small{grid-column:1/-1;color:#7f929f;font-size:.95rem;letter-spacing:.04em}
@media (max-width:640px){footer{grid-template-columns:1fr}}

@media (prefers-reduced-motion:no-preference){
  .hero-copy{animation:up .6s cubic-bezier(.2,.7,.3,1) both}
  div>section{animation:up .5s cubic-bezier(.2,.7,.3,1) both}
  div>section:nth-child(2){animation-delay:.05s}
  div>section:nth-child(3){animation-delay:.1s}
  div>section:nth-child(4){animation-delay:.15s}
  div>section:nth-child(5){animation-delay:.2s}
  div>section:nth-child(6){animation-delay:.25s}
  div>section:nth-child(7){animation-delay:.3s}
}

@keyframes up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .cta,.btn,.side-nav a{transition:none}
}

@media (max-width:420px){
  body{font-size:16px}
  .hero{padding-top:80px}
}

button[aria-expanded]{min-width:44px;min-height:44px}
