@font-face{font-family:Fraunces;src:url('/assets/Fraunces-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Fraunces;src:url('/assets/Fraunces-Italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"DM Sans";src:url('/assets/DMSans-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"DM Sans";src:url('/assets/DMSans-Medium.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"DM Sans";src:url('/assets/DMSans-SemiBold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:"DM Sans";src:url('/assets/DMSans-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{
  color-scheme:dark;
  --bg:#1E171D;--surface:#2B2229;--surface-alt:#362B33;--deep:#150F14;
  --line:#3D323A;--line-strong:#6A5864;--text:#F7EAF0;--muted:#B9A7B2;
  --accent:#A84E71;--accent-text:#E07FA7;--accent-soft:#F0A8C6;
  --plum:#4A2F3E;--plum-title:#F4C3D6;--plum-body:#EBD3DD;
  --light:#FBEFF4;--hero-glow:#BB6186;--hero-ring:#D891B0;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font:400 16px/1.55 "DM Sans",sans-serif}
img{max-width:100%}
figure{margin:0}
a{color:inherit;text-decoration:none}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible{outline:2px solid var(--accent-soft);outline-offset:5px;border-radius:10px}
.skip{position:absolute;left:16px;top:-80px;padding:10px 16px;background:var(--light);color:var(--deep);z-index:30}
.skip:focus{top:10px}
.wrap{width:min(100% - 48px,1160px);margin-inline:auto}
.site-header{position:relative;z-index:20;border-bottom:1px solid var(--line);background:var(--bg)}
.site-header-inner{height:82px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.brand{display:inline-flex;align-items:center;gap:12px;font:400 26px/1 Fraunces,serif;letter-spacing:-.02em}
.brand img{width:38px;height:38px;border-radius:11px;display:block}
.site-header nav,.site-footer nav{display:flex;align-items:center;gap:32px}
.site-header nav a{font-size:14px;font-weight:600;color:var(--muted);transition:color .2s ease}
.site-header nav a:hover,.site-footer a:hover{color:var(--accent-soft)}
.eyebrow{font-size:12px;line-height:1.4;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-soft);margin:0 0 22px}
h1,h2,h3{font-family:Fraunces,serif;font-weight:400;letter-spacing:-.025em;line-height:1.1}
h1 em,h2 em{font-weight:400;color:var(--accent-soft)}
p{margin:0}
.hero{position:relative;overflow:hidden;background:radial-gradient(circle at 74% 42%,var(--plum) 0%,var(--bg) 52%)}
.hero-glow{position:absolute;right:-240px;top:-300px;width:740px;height:740px;border:1px solid var(--line);border-radius:50%;opacity:.7;pointer-events:none}
.hero-grid{min-height:720px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(440px,.95fr);gap:44px;align-items:center}
.hero-copy{position:relative;z-index:2;padding:68px 0 98px}
.hero h1{font-size:clamp(52px,5.4vw,80px);margin:0 0 30px;max-width:780px}
.hero-lede{font-size:19px;line-height:1.55;color:var(--plum-body);max-width:510px}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px;margin-top:40px}
.button{min-height:56px;display:inline-flex;align-items:center;justify-content:space-between;gap:34px;padding:15px 24px;border-radius:999px;font-size:15px;font-weight:700;transition:transform .2s ease,background .2s ease}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--accent);color:var(--text)}
.button-primary:hover{background:var(--hero-glow)}
.button span,.text-link span{font-size:20px;line-height:1}
.text-link{color:var(--accent-soft);font-weight:600;display:inline-flex;align-items:center;gap:10px;min-height:44px}
.text-link:hover{text-decoration:underline;text-underline-offset:5px}
.hero-note{font-size:12px;color:var(--muted);margin-top:52px}
.hero-art{height:690px;position:relative;align-self:end}
.hero-art::before{content:"";position:absolute;left:12%;top:14%;width:550px;height:550px;border-radius:50%;background:radial-gradient(circle,var(--hero-glow),var(--plum) 62%,transparent 72%);opacity:.7}
.hero-orbit{position:absolute;border:1px solid var(--hero-ring);border-radius:50%;pointer-events:none}
.hero-orbit-one{width:580px;height:580px;left:10%;top:8%;opacity:.38}
.hero-orbit-two{width:390px;height:390px;left:27%;top:21%;opacity:.42}
.phone{position:relative;border-radius:32px;border:1px solid var(--line-strong);background:var(--deep);box-shadow:0 34px 75px rgba(0,0,0,.36);overflow:hidden}
.phone img{display:block;width:100%;height:auto}
.phone-front{position:absolute;width:290px;left:10%;top:65px;transform:rotate(-7deg);z-index:3}
.phone-back{position:absolute;width:244px;right:1%;top:155px;transform:rotate(8deg);z-index:2}
.hero-art-label,.visual-caption{position:absolute;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.hero-art-label{left:28%;bottom:28px}
.section{position:relative}
.section-intro{padding:112px 0 100px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.intro-grid{display:grid;grid-template-columns:1fr 2.1fr;column-gap:70px;align-items:start}
.section-intro .eyebrow{padding-top:13px}
.section-intro h2{font-size:clamp(38px,4vw,60px);margin:0}
.section-intro .intro-grid>p:last-child{grid-column:2;color:var(--muted);font-size:17px;max-width:680px;margin-top:25px}
.feature{padding:90px 0;border-bottom:1px solid var(--line)}
.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,115px);align-items:center}
.feature-reverse .feature-copy{grid-column:1;grid-row:1}
.feature-reverse .feature-visual{grid-column:2;grid-row:1}
.feature-visual{height:590px;border-radius:28px;position:relative;overflow:hidden;display:flex;align-items:flex-start;justify-content:center}
.visual-plan{background:linear-gradient(145deg,var(--plum),var(--surface) 65%)}
.visual-log{background:linear-gradient(145deg,var(--surface-alt),var(--bg))}
.visual-progress{background:linear-gradient(140deg,var(--plum),var(--surface) 72%)}
.visual-halo{position:absolute;width:530px;height:530px;border:1px solid var(--hero-ring);border-radius:50%;top:-35px;left:50%;transform:translateX(-50%);opacity:.38}
.feature-phone{width:275px;min-width:275px;margin-top:45px;transform:rotate(-3deg)}
.visual-log .feature-phone{transform:rotate(3deg)}
.feature-visual .visual-caption{left:24px;bottom:20px;z-index:4;background:var(--surface);padding:8px 12px;border-radius:999px;color:var(--text)}
.feature-copy h2,.movement-copy h2{font-size:clamp(40px,4.5vw,63px);margin:0 0 24px}
.feature-copy>p:not(.eyebrow):not(.sample-note),.movement-copy>p:not(.eyebrow):not(.movement-caption){font-size:18px;line-height:1.6;color:var(--plum-body);max-width:510px}
.feature-list{padding:0;margin:38px 0 0;list-style:none;border-top:1px solid var(--line)}
.feature-list li{padding:15px 0 15px 25px;border-bottom:1px solid var(--line);position:relative;color:var(--muted)}
.feature-list li::before{content:"";position:absolute;left:0;top:25px;width:8px;height:8px;background:var(--accent-text);border-radius:50%}
.discover-section{background:var(--surface);border-bottom:1px solid var(--line);overflow:hidden}
.discover-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center;min-height:515px}
.discover-copy{padding:85px 0}
.discover-copy h2{font-size:clamp(40px,4.5vw,60px);margin:0 0 24px}
.discover-copy>p:not(.eyebrow){font-size:18px;line-height:1.6;color:var(--plum-body);max-width:500px}
.discover-visual{height:515px;position:relative;display:flex;align-items:flex-end;justify-content:center}
.discover-visual::before{content:"";position:absolute;width:460px;height:460px;top:28px;left:50%;transform:translateX(-50%);border-radius:50%;background:var(--plum);border:1px solid var(--hero-ring);opacity:.75}
.discover-crop{position:relative;width:275px;height:420px;overflow:hidden;border-radius:28px 28px 0 0;border:1px solid var(--line-strong);border-bottom:0;transform:rotate(-4deg);transform-origin:bottom center;box-shadow:0 30px 55px rgba(0,0,0,.3)}
.discover-crop img{display:block;width:100%;height:auto}
.discover-visual .visual-caption{bottom:20px;right:0;background:var(--plum);padding:8px 12px;border-radius:999px;color:var(--text)}
.detail-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px;margin-top:38px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:18px;max-width:470px;color:var(--muted);font-size:15px}
.detail-number{font-family:Fraunces,serif;font-size:35px;color:var(--text);line-height:1}
.detail-divider{height:23px;width:1px;background:var(--line-strong);margin:0 12px;align-self:center}
.detail-note{margin-left:auto;color:var(--accent-text);font-size:12px;font-weight:600}
.movement{background:var(--plum);overflow:hidden}
.movement-grid{display:grid;grid-template-columns:1fr 1fr;gap:68px;min-height:660px;align-items:center}
.movement-copy{padding:100px 0}
.movement-rule{height:1px;background:var(--line-strong);max-width:430px;margin:38px 0 20px}
.movement-caption{color:var(--plum-title);font-size:14px}
.movement-visual{height:660px;position:relative;display:flex;justify-content:center;overflow:hidden}
.movement-disc{position:absolute;width:550px;height:550px;border-radius:50%;border:1px solid var(--hero-ring);top:52px;left:50%;transform:translateX(-50%);background:radial-gradient(circle,var(--hero-glow),transparent 68%);opacity:.52}
.movement-phone{width:270px;min-width:270px;height:max-content;margin-top:80px;transform:rotate(5deg)}
.movement-visual .visual-caption{right:10px;bottom:25px;color:var(--text)}
.progress-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:38px}
.progress-mini span{background:var(--surface);padding:18px 16px;border:1px solid var(--line);border-radius:14px;font-size:12px;color:var(--muted);line-height:1.3}
.progress-mini strong{display:block;color:var(--text);font:400 30px/1 Fraunces,serif;margin-bottom:10px}
.sample-note{font-size:11px;color:var(--muted);margin-top:10px}
.local-section{padding:90px 0 110px}
.local-panel{display:grid;grid-template-columns:1.4fr .6fr;gap:50px;align-items:center;padding:55px 65px;border:1px solid var(--line-strong);background:linear-gradient(120deg,var(--surface),var(--plum));border-radius:28px;overflow:hidden}
.local-panel h2{font-size:clamp(36px,4vw,56px);margin:0 0 22px}
.local-panel p:not(.eyebrow){font-size:17px;color:var(--plum-body);max-width:650px}
.local-art{height:230px;position:relative;display:grid;place-items:center}
.local-art img{position:relative;width:112px;height:112px;border-radius:28px;box-shadow:0 22px 42px rgba(0,0,0,.34)}
.local-ring{position:absolute;width:225px;height:225px;border:1px solid var(--hero-ring);border-radius:50%;opacity:.65}
.local-ring::after{content:"";position:absolute;inset:28px;border:1px solid var(--hero-ring);border-radius:50%}
.closing{background:var(--accent);padding:90px 0}
.closing-inner{display:grid;grid-template-columns:1fr auto;gap:12px 60px;align-items:center}
.closing .eyebrow{color:var(--light);grid-column:1/-1;margin-bottom:4px}
.closing h2{font-size:clamp(42px,5vw,66px);margin:0}
.closing p:not(.eyebrow){color:var(--light);max-width:560px;grid-column:1}
.closing .button{grid-column:2;grid-row:2/4}
.button-light{background:var(--light);color:var(--deep)}
.button-light:hover{background:var(--text)}
.site-footer{border-top:1px solid var(--line);background:var(--deep)}
.site-footer-inner{padding:42px 0 50px;display:grid;grid-template-columns:1fr auto;gap:25px}
.footer-brand{font:400 25px/1 Fraunces,serif}
.site-footer p{font-size:13px;color:var(--muted);margin-top:10px}
.site-footer nav{font-size:13px;color:var(--muted)}
.site-footer small{grid-column:1/-1;color:var(--muted);font-size:11px}
.article{max-width:780px;padding:80px 0 110px}
.article h1{font-size:clamp(40px,5vw,62px);margin:0 0 35px}
.article h2{font-size:28px;margin:42px 0 18px;padding-top:22px;border-top:1px solid var(--line)}
.article h3{font-size:22px;margin:32px 0 15px}
.article p,.article li{color:var(--plum-body);font-size:16px;line-height:1.65}
.article p{margin:0 0 18px}
.article ul{padding-left:22px}
.article li{margin-bottom:8px}
.article a{color:var(--accent-soft);text-decoration:underline;text-underline-offset:3px}
.article strong{color:var(--text)}
@media(max-width:1080px){
  .hero-grid{grid-template-columns:minmax(0,1fr) 400px;gap:12px}
  .hero h1{font-size:58px}
  .hero-art{height:630px}
  .phone-front{width:255px;left:5%}
  .phone-back{width:210px;right:0}
}
@media(max-width:800px){
  .wrap{width:min(100% - 40px,680px)}
  .hero-grid{display:flex;flex-direction:column;gap:0;min-height:0;align-items:stretch}
  .hero-copy{padding:86px 0 30px}
  .hero h1{font-size:clamp(46px,7vw,66px)}
  .hero-art{width:100%;height:565px}
  .phone-front{width:250px;left:17%;top:22px}
  .phone-back{width:210px;right:12%;top:85px}
  .hero-art-label{left:25%;bottom:14px}
  .intro-grid{display:block}
  .section-intro{padding:80px 0}
  .section-intro .intro-grid>p:last-child{margin-top:25px}
  .feature{padding:70px 0}
  .feature-grid{display:flex;flex-direction:column;gap:36px}
  .feature-copy{order:-1;width:100%}
  .feature-visual{width:100%;height:520px}
  .feature-phone{width:252px;min-width:252px}
  .discover-grid{display:flex;flex-direction:column;gap:0;align-items:stretch}
  .discover-copy{padding:70px 0 25px}
  .discover-visual{height:430px}
  .discover-crop{width:245px;height:385px}
  .movement-grid{display:flex;flex-direction:column;gap:0}
  .movement-copy{padding:80px 0 20px}
  .movement-visual{height:480px;width:100%}
  .movement-phone{width:235px;min-width:235px;margin-top:20px}
  .local-panel{padding:45px;grid-template-columns:1fr auto;gap:20px}
  .local-art{height:180px;width:180px}
  .local-ring{width:175px;height:175px}
  .closing-inner{display:block}
  .closing p:not(.eyebrow){margin:18px 0 28px}
}
@media(max-width:560px){
  .wrap{width:min(100% - 32px,470px)}
  .site-header-inner{height:auto;min-height:70px;align-items:flex-start;flex-direction:column;justify-content:center;gap:10px;padding:13px 0}
  .brand{font-size:24px}.brand img{width:34px;height:34px}
  .site-header nav{gap:20px}
  .site-header nav a{font-size:12px}
  .hero-copy{padding:72px 0 0}
  .eyebrow{font-size:11px;margin-bottom:18px}
  .hero h1{font-size:clamp(41px,10.4vw,58px);margin-bottom:23px}
  .hero-lede{font-size:16px}
  .hero-actions{gap:14px;margin-top:30px}
  .button{min-height:52px;padding:13px 20px;font-size:14px}
  .hero-note{margin-top:34px;font-size:11px}
  .hero-art{height:490px;margin-top:20px}
  .hero-art::before{width:420px;height:420px;left:0;top:35px}
  .hero-orbit-one{width:400px;height:400px;left:0;top:20px}
  .hero-orbit-two{width:260px;height:260px;left:20%;top:90px}
  .phone-front{width:205px;left:2%;top:25px}
  .phone-back{width:170px;right:2%;top:92px}
  .hero-art-label{bottom:15px;left:13%}
  .section-intro{padding:65px 0}
  .section-intro h2,.feature-copy h2,.discover-copy h2,.movement-copy h2,.local-panel h2{font-size:clamp(36px,9vw,50px)}
  .section-intro .intro-grid>p:last-child,.feature-copy>p:not(.eyebrow):not(.sample-note),.discover-copy>p:not(.eyebrow),.movement-copy>p:not(.eyebrow):not(.movement-caption),.local-panel p:not(.eyebrow){font-size:15px}
  .feature{padding:60px 0}
  .feature-visual{height:450px}
  .feature-phone{width:215px;min-width:215px;margin-top:30px}
  .discover-copy{padding:60px 0 20px}
  .discover-visual{height:360px}
  .discover-crop{width:205px;height:330px}
  .movement-copy{padding:65px 0 15px}
  .movement-visual{height:445px}
  .movement-phone{width:210px;min-width:210px}
  .movement-disc{width:400px;height:400px;top:20px}
  .progress-mini{gap:6px}
  .progress-mini span{padding:12px 8px;font-size:10px}
  .progress-mini strong{font-size:23px}
  .local-section{padding:65px 0}
  .local-panel{display:block;padding:34px 28px}
  .local-art{height:150px;margin:20px auto -32px}
  .local-art img{width:90px;height:90px;border-radius:22px}
  .closing{padding:70px 0}
  .site-footer-inner{display:block;padding:40px 0}
  .site-footer nav{margin:24px 0;gap:20px;flex-wrap:wrap}
  .article{padding:55px 0 80px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .button,.site-header nav a{transition:none}
}
