
:root{
  --ink:#2f2922;
  --paper:#f7f0e3;
  --cream:#fcf8f0;
  --wash:#f0e2c7;
  --ochre:#c38a2e;
  --ochre-soft:#d8ab59;
  --olive:#6d6c45;
  --olive-soft:#8b8a5e;
  --terracotta:#a96849;
  --sun:#e2b44d;
  --dusk:#7f5c43;
  --line:rgba(47,41,34,.12);
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--cream);
  font-family:"DM Sans",Arial,sans-serif;
  line-height:1.6;
}
a{color:inherit}
.wrap{max-width:var(--max);margin:auto;padding:0 42px}
.nav{
  position:sticky;top:0;z-index:10;
  background:rgba(252,248,240,.92);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-inner{height:78px;display:flex;align-items:center;justify-content:space-between}
.brand{font:30px/1 "Libre Caslon Display",Georgia,serif;letter-spacing:.02em;text-decoration:none}
.links{display:flex;gap:30px;align-items:center;font-size:14px}
.links a{text-decoration:none}
.links a:hover{opacity:.65}
.pill{border:1px solid var(--ink);padding:10px 17px;border-radius:999px}

.hero{
  min-height:760px;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  align-items:stretch;
  border-bottom:1px solid var(--line);
}
.hero-copy{
  padding:118px 8vw 90px max(42px,calc((100vw - var(--max))/2 + 42px));
  display:flex;flex-direction:column;justify-content:center;
}
.kicker{
  text-transform:uppercase;letter-spacing:.18em;
  font-size:12px;font-weight:600;color:var(--ochre);margin-bottom:28px
}
h1,h2,h3{font-family:"Libre Caslon Display",Georgia,serif;font-weight:400;margin:0}
h1{font-size:clamp(58px,7vw,108px);line-height:.93;letter-spacing:-.035em;max-width:780px}
.hero-copy p{
  font-family:"Libre Caslon Display",Georgia,serif;
  font-size:28px;line-height:1.32;max-width:610px;margin:36px 0;color:#5c4b3d
}
.cta-row{display:flex;gap:15px;flex-wrap:wrap;margin-top:10px}
.btn{
  display:inline-block;text-decoration:none;border:1px solid var(--ink);
  padding:14px 22px;border-radius:999px;font-size:14px
}
.btn.dark{background:var(--ink);color:var(--cream)}
.btn.soft{background:rgba(195,138,46,.10);border-color:rgba(47,41,34,.18)}

.hero-art{
  position:relative;overflow:hidden;min-height:640px;
  background:
    linear-gradient(180deg, #f6e8cc 0%, #efcf90 32%, #d99f51 60%, #9e6f48 82%, #5d5b3c 100%);
}
.hero-art:before{
  content:"";
  position:absolute;
  width:330px;height:330px;border-radius:50%;
  right:16%;top:18%;
  background:radial-gradient(circle at 50% 50%, rgba(247,216,123,.95) 0%, rgba(234,181,74,.92) 42%, rgba(234,181,74,.20) 68%, rgba(234,181,74,0) 74%);
  filter:blur(.4px);
}
.hero-art:after{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 30%),
    radial-gradient(circle at 72% 28%, rgba(255,255,255,.18) 0 7%, rgba(255,255,255,0) 32%);
  pointer-events:none;
}
.haze{
  position:absolute;left:-10%;right:-10%;height:110px;border-radius:50%;
  background:rgba(255,239,197,.18);filter:blur(18px)
}
.haze.one{top:27%}
.haze.two{top:39%;opacity:.6}
.haze.three{top:53%;opacity:.45}

.land{
  position:absolute;left:-10%;right:-10%;bottom:0;border-radius:50% 50% 0 0 / 100% 100% 0 0
}
.land.back{height:28%;background:#7a774e;bottom:18%;transform:rotate(2deg)}
.land.mid{height:22%;background:#636241;bottom:10%;transform:rotate(-1deg)}
.land.front{height:18%;background:#4f5236;bottom:-1%;transform:rotate(1deg)}

.sun-glow{
  position:absolute;width:520px;height:160px;border-radius:50%;
  right:4%;top:44%;
  background:radial-gradient(ellipse at center, rgba(244,199,102,.35) 0%, rgba(244,199,102,.12) 50%, rgba(244,199,102,0) 72%);
}

.chateau{
  position:absolute;right:28%;bottom:18%;width:250px;height:175px;
  filter:drop-shadow(0 8px 30px rgba(0,0,0,.10));
}
.chateau .body{
  position:absolute;left:32px;right:32px;bottom:0;height:95px;
  background:#42352d;
}
.chateau .wing-left,.chateau .wing-right{
  position:absolute;bottom:0;width:66px;height:72px;background:#42352d;
}
.chateau .wing-left{left:0}
.chateau .wing-right{right:0}
.chateau .tower-left,.chateau .tower-right{
  position:absolute;bottom:58px;width:44px;height:58px;background:#42352d;
}
.chateau .tower-left{left:12px}
.chateau .tower-right{right:12px}
.chateau .roof-main{
  position:absolute;left:24px;right:24px;bottom:92px;height:0;
  border-left:77px solid transparent;border-right:77px solid transparent;border-bottom:40px solid #352920;
}
.chateau .roof-left,.chateau .roof-right{
  position:absolute;bottom:114px;width:0;height:0;
  border-left:22px solid transparent;border-right:22px solid transparent;border-bottom:28px solid #352920;
}
.chateau .roof-left{left:12px}
.chateau .roof-right{right:12px}
.chateau .windows{
  position:absolute;left:22px;right:22px;bottom:16px;height:60px;
  background:
    radial-gradient(circle at 13% 38%, rgba(232,183,95,.9) 0 6px, transparent 7px),
    radial-gradient(circle at 28% 38%, rgba(232,183,95,.9) 0 6px, transparent 7px),
    radial-gradient(circle at 72% 38%, rgba(232,183,95,.9) 0 6px, transparent 7px),
    radial-gradient(circle at 87% 38%, rgba(232,183,95,.9) 0 6px, transparent 7px),
    radial-gradient(circle at 50% 70%, rgba(232,183,95,.9) 0 7px, transparent 8px);
}
.chateau .door{
  position:absolute;left:50%;transform:translateX(-50%);
  bottom:0;width:30px;height:48px;background:#2d221d;border-radius:18px 18px 0 0;
}

.pine{
  position:absolute;right:8%;bottom:18%;width:210px;height:290px;
}
.pine .trunk{
  position:absolute;left:97px;bottom:0;width:12px;height:155px;background:#43352c;border-radius:8px;
  transform:skew(-4deg);
}
.pine .branch1,.pine .branch2{
  position:absolute;height:10px;background:#43352c;border-radius:8px;
}
.pine .branch1{width:72px;left:70px;bottom:110px;transform:rotate(-21deg)}
.pine .branch2{width:58px;left:101px;bottom:96px;transform:rotate(21deg)}
.pine .canopy1,.pine .canopy2,.pine .canopy3{
  position:absolute;background:#424833;border-radius:50%;
}
.pine .canopy1{width:145px;height:74px;left:40px;bottom:143px}
.pine .canopy2{width:120px;height:66px;left:5px;bottom:171px}
.pine .canopy3{width:116px;height:62px;left:88px;bottom:173px}

.scent-line{
  position:absolute;border-top:1px solid rgba(90,69,53,.28);border-radius:50%;
}
.s1{width:220px;height:70px;left:12%;top:28%;transform:rotate(8deg)}
.s2{width:280px;height:90px;left:8%;top:40%;transform:rotate(-5deg)}
.s3{width:190px;height:60px;left:19%;top:53%;transform:rotate(9deg)}
.art-label{
 position:absolute;left:38px;bottom:32px;color:#5f543f;
 font-size:12px;text-transform:uppercase;letter-spacing:.16em
}

.section{padding:110px 0;border-bottom:1px solid var(--line)}
.section-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;margin-bottom:62px}
.section-head h2{font-size:58px;line-height:1}
.section-head p{
  font-family:"Libre Caslon Display",Georgia,serif;
  font-size:26px;line-height:1.4;margin:0;max-width:720px;color:#63513f
}

.feature{
  display:grid;grid-template-columns:.87fr 1.13fr;gap:72px;align-items:center;
  background:var(--paper);padding:60px;margin-bottom:30px
}
.feature.reverse{grid-template-columns:1.13fr .87fr}
.cover{
  min-height:500px;display:flex;align-items:center;justify-content:center;padding:42px;
  background:linear-gradient(135deg,#f0dfbf,#ead4af 58%,#e6d7ba);
}
.book{
  width:min(290px,80%);aspect-ratio:.66;
  box-shadow:0 32px 65px rgba(65,34,26,.15);
  display:flex;flex-direction:column;justify-content:space-between;padding:34px 28px;
  text-align:center;border:1px solid rgba(0,0,0,.08)
}
.book.angelus{background:linear-gradient(180deg,#ebd8b8,#e5cda3)}
.book.chateau{background:linear-gradient(180deg,#e8dcc6,#d8c8ad)}
.book.paris{background:linear-gradient(180deg,#ddd1bc,#ccb99f)}
.book small{text-transform:uppercase;letter-spacing:.2em;font-size:9px}
.book strong{font:36px/1.02 "Libre Caslon Display",Georgia,serif;font-weight:400}
.book em{font:italic 18px/1.2 "Libre Caslon Display",Georgia,serif}

.real-cover{
  width:min(305px,82%);
  height:auto;
  display:block;
  box-shadow:0 34px 70px rgba(65,34,26,.22);
  border:1px solid rgba(47,41,34,.08);
  background:#fffdf7;
}
.cover.real.paris{
  background:
    radial-gradient(circle at 25% 18%,rgba(255,250,231,.72),transparent 28%),
    linear-gradient(135deg,#ead8b5,#dcbf88 57%,#c9b079);
}
.real-cover.paris-img{
  width:min(250px,68%);
}
.cover.real{
  background:
    radial-gradient(circle at 25% 18%,rgba(255,250,231,.72),transparent 28%),
    linear-gradient(135deg,#ead8b5,#dcbf88 57%,#c9b079);
}
.feature h3{font-size:50px;line-height:1.04;margin-bottom:20px}
.meta{text-transform:uppercase;letter-spacing:.16em;font-size:11px;color:var(--ochre);font-weight:600;margin-bottom:20px}
.feature p{font-size:17px;max-width:610px}
.quote{
  font:25px/1.35 "Libre Caslon Display",Georgia,serif;
  border-left:1px solid var(--terracotta);padding-left:24px;margin:28px 0;color:#4f4135
}
.text-link{
  display:inline-block;margin-top:10px;font-size:13px;text-transform:uppercase;
  letter-spacing:.14em;text-decoration:none;border-bottom:1px solid
}

.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.about-large{font:46px/1.18 "Libre Caslon Display",Georgia,serif;margin:0;color:#4d3f31}
.about-copy p{font-size:17px;margin-top:0;margin-bottom:22px}
.places{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:70px}
.place{padding:26px 20px 0 0}
.place b{font:23px/1 "Libre Caslon Display",Georgia,serif;font-weight:400}
.place span{display:block;color:#766759;font-size:12px;margin-top:7px}

.journalism{
  background:linear-gradient(180deg,#6e6848,#5b593f);
  color:var(--cream)
}
.journalism .section-head p{color:#ece1cf}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.2)}
.stat{padding:35px 35px 10px 0}
.stat strong{font:44px/1 "Libre Caslon Display",Georgia,serif;font-weight:400}
.stat span{display:block;margin-top:10px;color:#e6dccb;font-size:14px;max-width:260px}

.contact{text-align:center;background:linear-gradient(180deg,#f0e3ca,#f8f2e7)}
.contact h2{font-size:72px;line-height:1}
.contact p{max-width:620px;margin:26px auto 32px;font-size:18px}
footer{padding:34px 0;font-size:12px;color:#7a6d60}
.footer-inner{display:flex;justify-content:space-between;gap:20px}

@media(max-width:900px){
 .wrap{padding:0 23px}.links a:not(.pill){display:none}
 .hero{grid-template-columns:1fr;min-height:auto}
 .hero-copy{padding:80px 23px 65px}.hero-art{min-height:560px}
 .section{padding:76px 0}.section-head{grid-template-columns:1fr;gap:25px}
 .section-head h2{font-size:48px}
 .feature,.feature.reverse{grid-template-columns:1fr;padding:24px;gap:35px}
 .feature.reverse .cover{order:-1}
 .cover{min-height:420px}
 .about-grid{grid-template-columns:1fr;gap:35px}.about-large{font-size:37px}
 .places,.stat-grid{grid-template-columns:1fr 1fr}
 .contact h2{font-size:54px}
 .chateau{right:26%;bottom:17%;transform:scale(.88);transform-origin:bottom right}
 .pine{right:3%;bottom:17%;transform:scale(.88);transform-origin:bottom right}
}
@media(max-width:540px){
 h1{font-size:58px}.hero-copy p{font-size:23px}
 .section-head h2{font-size:42px}.section-head p{font-size:22px}
 .feature h3{font-size:40px}.book{width:78%}
 .places,.stat-grid{grid-template-columns:1fr}
 .footer-inner{flex-direction:column}
 .hero-art{min-height:460px}
 .chateau{right:25%;bottom:17%;transform:scale(.64)}
 .pine{right:-3%;bottom:17%;transform:scale(.62)}
 .hero-art:before{width:250px;height:250px;right:10%;top:21%}
 .art-label{left:22px;bottom:22px;font-size:11px}
}


.page-break{padding-top:28px;background:#efe4cf;border-top:8px solid #d5b372}
.page-hero{padding:92px 0 82px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fcf8f0,#f6ecd9)}
.page-hero-grid{display:grid;grid-template-columns:1fr .72fr;gap:80px;align-items:center}
.page-hero h1{font-size:clamp(60px,7vw,98px);line-height:.95;letter-spacing:-.035em;margin:18px 0 28px}
.page-hero .dek{font:27px/1.38 "Libre Caslon Display",Georgia,serif;color:#5f4d3d;max-width:680px}
.book-cover-large{width:min(360px,86%);margin:auto;box-shadow:0 38px 80px rgba(61,39,22,.22);border:1px solid rgba(0,0,0,.08)}
.prose-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:78px}
.aside-label{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--ochre);font-weight:600}
.prose{max-width:760px;font-size:18px}
.prose .lead{font:30px/1.4 "Libre Caslon Display",Georgia,serif;color:#514337}
.buy-panel{margin-top:42px;padding:34px;border:1px solid var(--line);background:var(--paper);display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.buy-panel strong{font:25px/1.1 "Libre Caslon Display",Georgia,serif;font-weight:400;margin-right:auto}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.review-card{padding:30px;background:var(--paper);border-top:3px solid var(--ochre)}
.review-card p{font:23px/1.35 "Libre Caslon Display",Georgia,serif;margin:0 0 20px}
.review-card span{font-size:12px;color:#75695d}
.stories-intro{max-width:760px;margin-bottom:60px;font:28px/1.4 "Libre Caslon Display",Georgia,serif;color:#57483a}
.story-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.story{padding:30px 38px 30px 0;border-bottom:1px solid var(--line)}
.story:nth-child(even){padding-left:38px;border-left:1px solid var(--line)}
.story h3{font-size:30px;margin-bottom:10px}
.story p{margin:0;color:#62584e}
.story .era{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--ochre);margin-bottom:8px}
.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:80px;align-items:start}
.contact-copy h2{font-size:56px;line-height:1.04;margin-bottom:22px}
.contact-copy p{font-size:17px}
.form{background:var(--paper);padding:40px}
.form label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.13em;margin:0 0 8px;color:#6e6155}
.form input,.form textarea{width:100%;padding:15px 14px;border:1px solid rgba(47,41,34,.2);background:#fffdf9;font:16px "DM Sans",Arial,sans-serif;margin-bottom:22px;color:var(--ink)}
.form textarea{min-height:170px;resize:vertical}
.form-note{font-size:12px;color:#766b61;margin-top:14px}
.signup{background:linear-gradient(180deg,#6e6848,#5b593f);color:var(--cream);padding:64px 0}
.signup-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.signup h2{font-size:52px}.signup p{color:#ebe1d2}
.signup-box{display:flex;gap:10px}.signup-box input{flex:1;padding:14px;border:0;font:15px "DM Sans",sans-serif}.signup-box button{border:1px solid var(--cream);background:transparent;color:var(--cream);padding:12px 18px;border-radius:999px}
@media(max-width:900px){
 .page-hero-grid,.prose-grid,.contact-grid,.signup-grid{grid-template-columns:1fr;gap:34px}
 .review-grid{grid-template-columns:1fr}
 .story-grid{grid-template-columns:1fr}
 .story:nth-child(even){padding-left:0;border-left:0}
 .page-hero{padding:70px 0}.page-hero h1{font-size:62px}.book-cover-large{max-width:310px}
}


/* Production additions */
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{position:fixed;left:18px;top:18px;width:auto;height:auto;z-index:100;background:#fffdf9;color:var(--ink);padding:10px 14px;border:1px solid var(--ink)}
.form-success{max-width:720px;margin:0 auto;text-align:center;padding:120px 30px}
.form-success h1{font-size:72px;line-height:1}
.form-success p{font-size:18px;margin:24px auto 34px;max-width:560px}
.hp-field{position:absolute;left:-9999px;visibility:hidden}


/* V11: more compact homepage hero */
@media (min-width:901px){
  .hero{
    min-height:610px;
  }
  .hero-copy{
    padding-top:72px;
    padding-bottom:66px;
  }
  .hero h1{
    font-size:clamp(50px,5.3vw,78px);
    line-height:.98;
    max-width:700px;
  }
  .hero-copy p{
    font-size:24px;
    line-height:1.34;
    margin:26px 0;
    max-width:570px;
  }
  .hero-art{
    min-height:610px;
  }
}
