:root{--ink:#2f2941;--muted:#6f687a;--purple:#6d52a7;--purple2:#8e77c2;--mint:#e8f5e9;--paper:#fffaf0;--gold:#f2c94c;--blue:#167d9b;--line:#e7e0ec;--white:#fff;--shadow:0 18px 50px rgba(66,50,91,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-rounded,"SF Pro Rounded","Segoe UI",system-ui,-apple-system,sans-serif;background:linear-gradient(180deg,#fffdf8 0%,#f8f4ff 55%,#eef8f2 100%);color:var(--ink);line-height:1.55}a{color:var(--purple);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:1120px;margin:auto;padding:0 24px}.nav{display:flex;align-items:center;justify-content:space-between;padding:18px 0;gap:20px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px}.brand img{width:42px;height:42px;object-fit:contain}.links{display:flex;gap:18px;flex-wrap:wrap;font-weight:650}.hero{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:42px;padding:54px 0 66px}.hero h1{font-size:clamp(44px,7vw,78px);line-height:.98;margin:0 0 22px;letter-spacing:-.045em}.hero p{font-size:20px;color:var(--muted);max-width:650px}.kicker{display:inline-flex;align-items:center;gap:8px;background:#eee7ff;color:#553d8f;border-radius:999px;padding:8px 13px;font-weight:800;font-size:14px;margin-bottom:18px}.buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 20px;border-radius:16px;font-weight:800;text-decoration:none!important}.btn.primary{background:var(--purple);color:white;box-shadow:0 10px 24px rgba(109,82,167,.25)}.btn.secondary{background:white;color:var(--ink);border:1px solid var(--line)}.hero-art{position:relative;min-height:470px}.hero-art .pip{position:absolute;z-index:2;width:58%;right:0;top:-6%;filter:drop-shadow(0 18px 24px rgba(68,48,90,.18))}.phone{position:absolute;width:56%;left:3%;bottom:0;border-radius:30px;box-shadow:var(--shadow);border:6px solid #fff;background:#fff}.bubble{position:absolute;left:0;top:12%;width:82%;height:72%;background:radial-gradient(circle at 30% 25%,#fff6b8 0,transparent 28%),linear-gradient(145deg,#eadfff,#dff5e7);border-radius:44% 56% 52% 48%/52% 42% 58% 48%}.section{padding:72px 0}.section h2{font-size:clamp(32px,4vw,48px);line-height:1.08;margin:0 0 16px;letter-spacing:-.025em}.lead{font-size:19px;color:var(--muted);max-width:760px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.card{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:0 8px 24px rgba(68,48,90,.05)}.card h3{margin:0 0 9px;font-size:20px}.card p{margin:0;color:var(--muted)}.icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#f0ebff;font-size:23px;margin-bottom:16px}.screens{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:32px}.screens img{width:100%;border-radius:28px;border:5px solid white;box-shadow:var(--shadow);background:white}.band{background:#352b49;color:#fff;border-radius:32px;padding:36px;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}.band p{color:#d9d0e7;margin:8px 0 0}.page{max-width:840px;margin:30px auto 90px;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:28px;padding:clamp(24px,5vw,52px);box-shadow:var(--shadow)}.page h1{font-size:44px;line-height:1.06;margin-top:0}.page h2{margin-top:36px}.page h3{margin-top:28px}.note{background:#f4efff;border-left:5px solid var(--purple);padding:16px 18px;border-radius:14px}.safe{background:#eef8f0;border-left-color:#59a36b}.warning{background:#fff8dc;border-left-color:#d6a92d}.checklist{padding-left:0;list-style:none}.checklist li{margin:12px 0;padding-left:32px;position:relative}.checklist li:before{content:"✓";position:absolute;left:0;top:0;color:#3f8f56;font-weight:900}.day{display:grid;grid-template-columns:58px 1fr;gap:14px;margin:14px 0;padding:14px 0;border-bottom:1px solid var(--line)}.day b{display:grid;place-items:center;background:#eee7ff;border-radius:12px;height:42px}.footer{padding:30px 0 50px;color:var(--muted);font-size:14px}.footer .row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.tag{display:inline-block;background:#edf7f0;color:#376447;border-radius:999px;padding:6px 10px;font-weight:700;margin:4px 4px 0 0}@media(max-width:820px){.nav{flex-wrap:wrap;align-items:flex-start;gap:12px;padding:14px 0}.brand{width:100%;justify-content:flex-start}.links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:8px;font-size:13px}.links a{display:flex;align-items:center;justify-content:center;min-height:40px;padding:7px 6px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.9);color:var(--ink);text-align:center;line-height:1.15}.hero{grid-template-columns:1fr;padding-top:22px}.hero-art{min-height:430px}.grid,.screens{grid-template-columns:1fr}.screens img{max-width:390px;margin:auto}.band{grid-template-columns:1fr}}@media(max-width:520px){.wrap{padding:0 16px}.links{grid-template-columns:repeat(2,minmax(0,1fr));font-size:14px}.hero h1{font-size:49px}.hero-art{min-height:370px}.page{margin:18px 12px 60px;padding:24px}.page h1{font-size:36px}}
.menu-toggle{display:none;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:14px;min-height:42px;padding:8px 16px;font:inherit;font-weight:800}
@media(max-width:820px){
  .nav{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:14px 0}
  .brand{width:auto;min-width:0}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center}
  .links{display:none!important;grid-column:1/-1;width:100%;grid-template-columns:1fr 1fr;gap:8px;margin-top:2px}
  .links.open{display:grid!important}
  .links a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-align:center;line-height:1.15}
}
@media(max-width:420px){
  .links.open{grid-template-columns:1fr}
}

/* Hero overlap fix: keep the phone/Pip composition below the site navigation. */
header.wrap{position:relative;z-index:20}
.hero{position:relative;isolation:isolate}
.hero-art{
  position:relative;
  min-height:520px;
  overflow:visible;
  align-self:stretch;
}
.hero-art .phone{
  width:min(54%,310px);
  left:6%;
  bottom:12px;
  top:auto;
  max-height:490px;
  object-fit:contain;
  object-position:bottom center;
}
.hero-art .pip{
  width:min(55%,320px);
  right:2%;
  top:72px;
  bottom:auto;
  z-index:2;
}
.hero-art .bubble{
  left:2%;
  top:18%;
  width:88%;
  height:70%;
}
@media (min-width:821px) and (max-width:1100px){
  .hero{gap:28px}
  .hero-art{min-height:500px}
  .hero-art .phone{width:min(52%,285px);max-height:460px}
  .hero-art .pip{width:min(52%,295px);top:86px}
}
@media(max-width:820px){
  .hero-art{min-height:430px}
  .hero-art .phone{width:56%;max-height:none;left:3%;bottom:0}
  .hero-art .pip{width:58%;right:0;top:14px}
  .hero-art .bubble{left:0;top:12%;width:82%;height:72%}
}
@media(max-width:520px){
  .hero-art{min-height:370px}
  .hero-art .pip{top:10px}
}

/* Responsive hero: the phone must reserve its full height in document flow. */
.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);padding:54px 24px 66px}
.hero>div{min-width:0}
.hero-art{height:auto;min-height:0;width:100%;max-width:520px;margin-inline:auto;padding:24px 0;align-self:center}
.hero-art .phone{position:relative;display:block;width:58%;max-width:280px;height:auto;max-height:none;left:auto;top:auto;bottom:auto;margin-left:4%;z-index:1}
.hero-art .pip{width:50%;max-width:270px;right:0;top:24%;bottom:auto;pointer-events:none}
.hero-art .bubble{left:2%;top:16%;width:96%;height:70%;pointer-events:none}
.footer.wrap{padding:30px 24px 50px}
.page{overflow-wrap:anywhere}
a:focus-visible,button:focus-visible{outline:3px solid var(--purple);outline-offset:4px}
@media(max-width:820px){
 .hero{grid-template-columns:minmax(0,1fr);padding:28px 24px 48px;gap:28px}
}
@media(max-width:520px){
 .hero{padding:24px 16px 40px;gap:24px}
 .footer.wrap{padding:30px 16px 40px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Versioned download and bounded, in-flow preview. */
.hero p.download-note{font-size:14px;line-height:1.65;margin-top:14px}
.preview-section{padding-top:36px}
.preview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.75fr);gap:48px;align-items:center}
.preview-copy{min-width:0}
.preview-copy p{color:var(--muted)}
.preview-disclosure{font-size:14px}
.preview-figure{margin:0;min-width:0;text-align:center}
#pip-demo{display:block;width:100%;max-width:285px;aspect-ratio:411/891;object-fit:contain;margin:0 auto;border:5px solid #fff;border-radius:26px;background:#faf8f4;box-shadow:var(--shadow)}
.preview-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:16px}
.preview-controls[hidden]{display:none}
.preview-controls .btn{font:inherit;font-weight:750;cursor:pointer;min-height:46px}
.preview-figure figcaption{font-size:12px;line-height:1.65;color:var(--muted);max-width:400px;margin:12px auto 0}
#latest-build h2{margin-top:0}
@media(max-width:820px){.preview-grid{grid-template-columns:minmax(0,1fr);gap:28px}.preview-figure{max-width:420px;width:100%;margin:auto}}

/* Cozy 0.13 gallery: every media element participates in normal flow. */
.cozy-page{padding-bottom:40px}.cozy-intro{padding:44px 0 48px;max-width:850px}
.cozy-intro h1{font-size:clamp(36px,5vw,62px);line-height:1.06;letter-spacing:-.03em;margin:0 0 22px}
.cozy-demo-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:36px;align-items:center}
.cozy-demo-grid>*,.cozy-gallery>*,.cozy-market-grid>*{min-width:0}
.cozy-demo-grid h2,.cozy-page h2{font-size:clamp(28px,3vw,42px);line-height:1.12}
.cozy-page figure{margin:0}.cozy-page img,.cozy-page video{display:block;width:100%;height:auto;border:4px solid white;border-radius:22px;background:var(--paper);box-shadow:var(--shadow)}
#cozy-demo{aspect-ratio:4/3;object-fit:contain}.cozy-page figcaption{font-size:13px;color:var(--muted);margin-top:12px;line-height:1.6;text-align:center}
.cozy-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:26px}
.cozy-market-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:28px 0}
.cozy-portrait{max-width:330px;margin:auto}.cozy-page p{overflow-wrap:anywhere}
.cozy-teaser{padding:36px 0}
@media(max-width:820px){.cozy-demo-grid{grid-template-columns:minmax(0,1fr);gap:24px}.cozy-gallery{grid-template-columns:minmax(0,1fr)}.cozy-gallery figure{max-width:390px;margin:auto}.cozy-market-grid{grid-template-columns:minmax(0,1fr)}.cozy-market-grid figure{max-width:450px;margin:auto}}

/* 0.15 actual interface gallery; all media stays in normal document flow. */
.update-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}
.update-gallery figure{margin:0;min-width:0}
.update-gallery img{display:block;width:100%;height:auto;border:3px solid white;border-radius:18px;background:#faf8f4}
.update-gallery figcaption{font-size:13px;line-height:1.5;margin:8px 2px;color:var(--muted)}
.room-video{display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:22px;background:#faf8f4}
.path{white-space:pre-wrap;overflow-wrap:anywhere;background:#f4efff;padding:16px;border-radius:14px;font-size:14px}
.page li{margin:14px 0}.page code{overflow-wrap:anywhere}
@media(max-width:520px){.update-gallery{grid-template-columns:minmax(0,1fr)}.page h1{font-size:34px}}
