:root{
  --ink:#1d1713;
  --ink-soft:#6b5d52;
  --ink-faint:rgba(29,23,19,.56);
  --sea:#0d617d;
  --sea-deep:#0a4d64;
  --sea-soft:#7cc5d0;
  --leaf:#3d6c50;
  --leaf-deep:#264735;
  --sun:#d59a46;
  --rose:#c9857d;
  --paper:#fff8ef;
  --paper-deep:#f0e1cd;
  --glass:rgba(255,249,241,.68);
  --glass-strong:rgba(255,249,241,.84);
  --line:rgba(29,23,19,.08);
  --shadow:0 28px 80px rgba(29,23,19,.10);
  --radius-xl:36px;
  --radius-lg:28px;
}

/* Dark mode overrides */
[data-theme="dark"]{
  --ink:#f0e6d6;
  --ink-soft:#b0a090;
  --paper:#1a1612;
  --glass:rgba(30,26,22,.78);
  --glass-strong:rgba(30,26,22,.88);
  --line:rgba(240,230,214,.12);
  --shadow:0 28px 80px rgba(0,0,0,.30);
}

[data-theme="dark"] body{
  background:
    radial-gradient(circle at 10% 8%, rgba(124,197,208,.12), transparent 24%),
    radial-gradient(circle at 88% 12%, rgba(213,154,70,.08), transparent 21%),
    radial-gradient(circle at 50% 100%, rgba(61,108,80,.06), transparent 35%),
    linear-gradient(180deg,#1a1612 0%,#12100d 100%);
}

[data-theme="dark"] body::before{
  background:radial-gradient(circle, rgba(124,197,208,.10), transparent 68%);
}

[data-theme="dark"] body::after{
  background:radial-gradient(circle, rgba(213,154,70,.08), transparent 70%);
}

[data-theme="dark"] .hero{
  background:
    linear-gradient(145deg, rgba(30,26,22,.92), rgba(26,22,18,.72)),
    linear-gradient(135deg, rgba(124,197,208,.08), rgba(213,154,70,.04));
  border-color:rgba(240,230,214,.08);
}

[data-theme="dark"] .nav-links a:hover{
  background:rgba(124,197,208,.12);
}

[data-theme="dark"] .mini-panel,
[data-theme="dark"] .menu-card,
[data-theme="dark"] .roman-card{
  border-color:rgba(240,230,214,.08);
}

[data-theme="dark"] .btn-secondary{
  background:rgba(30,26,22,.82);
  border-color:rgba(240,230,214,.12);
}

[data-theme="dark"] .placeholder-panel{
  background:
    linear-gradient(145deg, rgba(30,26,22,.88), rgba(26,22,18,.78)),
    linear-gradient(135deg, rgba(124,197,208,.06), rgba(201,133,125,.04));
  border-color:rgba(124,197,208,.18);
}

[data-theme="dark"] .roman-cover-frame{
  background:#2a2420;
}

/* Theme toggle button */
.theme-toggle{
  position:fixed;
  bottom:24px;
  left:24px;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:var(--glass);
  backdrop-filter:blur(18px);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  cursor:pointer;
  z-index:100;
  font-size:1.2rem;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.theme-toggle:hover{
  transform:scale(1.12);
  box-shadow:0 12px 32px rgba(0,0,0,.18);
}

/* Nav brand */
.nav-brand{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:50%;
  font-family:'Cormorant Garamond',serif;
  font-weight:700;
  font-size:1.18rem;
  letter-spacing:.06em;
  color:#fff;
  margin-right:2px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,0)),
    linear-gradient(135deg,var(--sea),var(--leaf));
  box-shadow:0 16px 28px rgba(13,97,125,.24);
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  min-height:100vh;
  font-family:'Manrope',sans-serif;
  color:var(--ink);
  background:
    linear-gradient(135deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 36%),
    radial-gradient(circle at 10% 8%, rgba(124,197,208,.26), transparent 24%),
    radial-gradient(circle at 88% 12%, rgba(213,154,70,.18), transparent 21%),
    radial-gradient(circle at 50% 100%, rgba(61,108,80,.12), transparent 35%),
    repeating-linear-gradient(90deg, rgba(29,23,19,.022) 0 1px, transparent 1px 72px),
    linear-gradient(180deg,#fdf7ee 0%,#efe0cb 100%);
  overflow-x:hidden;
}

body::before,
body::after{
  content:"";
  position:fixed;
  pointer-events:none;
  z-index:0;
  border-radius:50%;
  filter:blur(12px);
  opacity:.7;
}

body::before{
  width:28rem;
  height:28rem;
  top:8%;
  left:-6rem;
  background:radial-gradient(circle, rgba(124,197,208,.28), transparent 68%);
  animation:drift 16s ease-in-out infinite;
}

body::after{
  width:24rem;
  height:24rem;
  right:-4rem;
  bottom:8%;
  background:radial-gradient(circle, rgba(213,154,70,.22), transparent 70%);
  animation:drift 19s ease-in-out infinite reverse;
}

a{color:inherit;text-decoration:none}

.page-shell{
  width:min(1180px, calc(100% - 32px));
  margin:0 auto;
  padding:22px 0 34px;
  position:relative;
  z-index:1;
}

.topbar{
  position:sticky;
  top:18px;
  z-index:20;
  width:min(100%, 820px);
  max-width:100%;
  margin:0 auto 24px;
  padding:12px 14px;
  background:var(--glass);
  border:1px solid rgba(255,255,255,.62);
  border-radius:999px;
  box-shadow:0 24px 60px rgba(29,23,19,.12);
  backdrop-filter:blur(18px);
  overflow:hidden;
}

.topbar::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:inherit;
  background:linear-gradient(135deg, rgba(255,255,255,.36), rgba(255,255,255,0) 42%);
  pointer-events:none;
}

.nav-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  position:relative;
  z-index:1;
}

.nav-links a{
  padding:12px 18px;
  border-radius:999px;
  color:var(--ink-soft);
  font-size:.88rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  transition:transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}

.nav-links a:hover{
  color:var(--ink);
  background:rgba(13,97,125,.08);
  transform:translateY(-1px);
}

.nav-links a.is-active{
  color:#fff;
  background:linear-gradient(135deg,var(--sea),var(--leaf));
  box-shadow:0 14px 28px rgba(13,97,125,.22);
}

.hero{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:26px;
  align-items:start;
  min-height:0;
  padding:38px 40px 34px;
  border-radius:var(--radius-xl);
  background:
    linear-gradient(145deg, rgba(255,255,255,.92), rgba(255,245,233,.76)),
    linear-gradient(135deg, rgba(124,197,208,.12), rgba(213,154,70,.08));
  border:1px solid rgba(255,255,255,.82);
  box-shadow:0 34px 100px rgba(29,23,19,.13), inset 0 1px 0 rgba(255,255,255,.42);
  overflow:hidden;
  position:relative;
  isolation:isolate;
}

.hero::before{
  content:"";
  position:absolute;
  inset:auto -8% -30% auto;
  width:28rem;
  height:28rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(213,154,70,.24), transparent 68%);
  animation:halo 11s ease-in-out infinite;
}

.hero::after{
  content:"";
  position:absolute;
  inset:-18% auto auto -8%;
  width:24rem;
  height:24rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(124,197,208,.22), transparent 68%);
  animation:halo 13s ease-in-out infinite reverse;
}

.hero-copy,
.hero-side{
  position:relative;
  z-index:1;
}

main{animation:fadeRise .6s ease both}

.hero-copy{
  animation:fadeRise .75s ease both;
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}

.hero-side{
  display:grid;
  gap:18px;
  align-self:start;
  align-content:start;
  grid-auto-rows:max-content;
  justify-self:end;
  width:min(100%, 430px);
}

.eyebrow{
  margin:0 0 10px;
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(13,97,125,.08);
  color:var(--sea);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:800;
}

.hero h1,
.section-heading h2,
.menu-card h3,
.roman-card-body h3{
  font-family:'Cormorant Garamond',serif;
}

.hero h1{
  margin:0;
  max-width:10ch;
  font-size:clamp(2.35rem, 3.7vw, 3.8rem);
  line-height:.98;
  letter-spacing:-.03em;
  text-shadow:0 2px 30px rgba(13,97,125,.08);
}

.hero-text{
  margin:14px 0 0;
  max-width:54ch;
  color:var(--ink-soft);
  font-size:.95rem;
  line-height:1.7;
}

.hero-text strong{color:var(--ink)}

.hero-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:22px;
}

.hero-chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.hero-chip{
  display:inline-flex;
  align-items:center;
  padding:9px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.68);
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 14px 28px rgba(29,23,19,.05);
  color:var(--sea-deep);
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.05em;
}

.hero-metrics{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  margin-top:28px;
}

.hero-metric{
  padding:18px 18px 16px;
  border-radius:24px;
  background:rgba(255,252,247,.58);
  border:1px solid rgba(255,255,255,.74);
  box-shadow:0 18px 32px rgba(29,23,19,.07);
  backdrop-filter:blur(12px);
}

.hero-metric strong{
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-size:2.2rem;
  line-height:.9;
  color:var(--sea-deep);
}

.hero-metric span{
  display:block;
  margin-top:8px;
  color:var(--ink-faint);
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.16em;
  line-height:1.5;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 20px;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:800;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
}

.btn:hover{transform:translateY(-3px)}

.btn-primary:active,
.btn-secondary:active{
  transform:scale(0.97);
}

.btn-primary{
  color:#fff;
  background:linear-gradient(135deg,var(--sea),var(--leaf));
  box-shadow:0 18px 36px rgba(13,97,125,.22);
}

.btn-secondary{
  color:var(--ink);
  background:rgba(255,255,255,.82);
  border-color:var(--line);
}

.mini-panel,
.menu-card,
.roman-card{
  background:var(--glass-strong);
  border:1px solid rgba(255,255,255,.74);
  box-shadow:var(--shadow);
  backdrop-filter:blur(18px);
}

.mini-panel{
  padding:20px 20px 18px;
  border-radius:28px;
  transform:translateY(0);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  position:relative;
  overflow:hidden;
}

.mini-panel:hover{
  transform:translateY(-4px);
  box-shadow:0 30px 70px rgba(29,23,19,.12);
  border-color:rgba(124,197,208,.34);
}

.mini-panel::before{
  content:"";
  position:absolute;
  inset:14px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.42);
  pointer-events:none;
}

.mini-panel-highlight{
  background:
    linear-gradient(160deg, rgba(18,77,96,.92), rgba(38,71,53,.86)),
    linear-gradient(140deg, rgba(255,255,255,.18), rgba(255,255,255,0));
  color:#f7efe5;
  box-shadow:0 30px 80px rgba(13,97,125,.24);
}

.mini-panel-highlight .mini-kicker,
.mini-panel-highlight p{
  color:rgba(247,239,229,.92);
}

.mini-panel-highlight strong{
  color:#fff;
}

.mini-kicker{
  display:block;
  margin-bottom:8px;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--ink-soft);
}

.mini-panel strong{
  display:block;
  margin-bottom:4px;
  font-size:1.18rem;
  line-height:1.02;
  font-family:'Cormorant Garamond',serif;
}

.mini-panel p,
.menu-card p,
.roman-card-body p{
  margin:0;
  color:var(--ink-soft);
  line-height:1.76;
}

.placeholder-panel{
  background:
    linear-gradient(145deg, rgba(255,255,255,.88), rgba(255,243,229,.78)),
    linear-gradient(135deg, rgba(124,197,208,.14), rgba(201,133,125,.10));
  border:1px dashed rgba(13,97,125,.24);
}

.section{
  margin-top:26px;
}

.section-featured{
  margin-top:18px;
}

.section-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:14px;
}

.section-side-copy{
  margin:0;
  max-width:320px;
  color:var(--ink-soft);
  font-size:.92rem;
  line-height:1.65;
  text-align:right;
}

.section-heading::after{
  content:"";
  flex:1;
  height:1px;
  background:linear-gradient(90deg, rgba(29,23,19,.12), transparent 90%);
}

.section-heading h2{
  margin:0;
  font-size:2rem;
  line-height:1;
}

.section-strip{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:12px;
  padding:0 4px;
}

.section-strip-head{
  display:grid;
  gap:6px;
}

.section-strip-kicker{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(13,97,125,.08);
  color:var(--sea);
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:800;
}

.section-strip h2{
  margin:0;
  font-family:'Cormorant Garamond',serif;
  font-size:2rem;
  line-height:1;
}

.section-strip-copy{
  margin:0;
  max-width:360px;
  color:var(--ink-soft);
  font-size:.9rem;
  line-height:1.62;
  text-align:right;
}

.menu-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
}

.menu-card{
  display:flex;
  flex-direction:column;
  min-height:230px;
  padding:22px;
  border-radius:34px;
  position:relative;
  overflow:hidden;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.menu-card:hover{
  transform:translateY(-8px) rotate(-1deg);
  box-shadow:0 30px 70px rgba(29,23,19,.14);
  border-color:rgba(124,197,208,.34);
}

.menu-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(255,255,255,.16), transparent 40%);
  pointer-events:none;
}

.menu-card::after{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  border-radius:50%;
  right:-44px;
  bottom:-58px;
  opacity:.18;
}

.menu-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.menu-icon{
  width:52px;
  height:52px;
  border-radius:16px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  background:rgba(255,255,255,.46);
  border:1px solid rgba(255,255,255,.74);
  box-shadow:0 12px 24px rgba(29,23,19,.06);
  color:var(--sea-deep);
  font-family:'Cormorant Garamond',serif;
  font-size:1.25rem;
  font-weight:700;
}

.menu-card.is-primary::after{background:var(--sea-soft)}
.menu-card.is-secondary::after{background:#9fd5ab}
.menu-card.is-muted::after{background:#f1c985}

.menu-card.is-primary{
  background:
    linear-gradient(160deg, rgba(255,255,255,.96), rgba(238,250,252,.82)),
    linear-gradient(135deg, rgba(124,197,208,.16), rgba(13,97,125,.06));
}

.menu-card.is-secondary{
  background:
    linear-gradient(160deg, rgba(255,255,255,.96), rgba(241,250,243,.84)),
    linear-gradient(135deg, rgba(159,213,171,.16), rgba(61,108,80,.06));
}

.menu-card.is-muted{
  background:
    linear-gradient(160deg, rgba(255,255,255,.96), rgba(255,247,237,.84)),
    linear-gradient(135deg, rgba(241,201,133,.16), rgba(201,133,125,.06));
}

.menu-kicker,
.tag{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(13,97,125,.08);
  color:var(--sea);
  font-size:.78rem;
  font-weight:800;
}

.menu-card h3{
  margin:18px 0 8px;
  font-size:1.9rem;
  line-height:.94;
}

.menu-linkline{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:auto;
  padding-top:16px;
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--sea-deep);
}

.menu-linkline::after{
  content:"->";
  transition:transform .22s ease;
}

.menu-card:hover .menu-linkline::after{
  transform:translateX(4px);
}

.roman-stage{
  display:flex;
  justify-content:center;
  margin-top:0;
}

.roman-card{
  width:min(980px, 100%);
  display:grid;
  grid-template-columns:minmax(240px, 300px) 1fr;
  gap:22px;
  align-items:center;
  padding:22px;
  border-radius:40px;
  position:relative;
  overflow:hidden;
  transition:transform .28s ease, box-shadow .28s ease;
  background:
    linear-gradient(150deg, rgba(255,255,255,.96), rgba(255,247,237,.84)),
    linear-gradient(135deg, rgba(124,197,208,.12), rgba(213,154,70,.06));
}

.roman-card:hover{
  transform:translateY(-8px);
  box-shadow:0 36px 80px rgba(29,23,19,.16);
}

.roman-card::after{
  content:"";
  position:absolute;
  inset:auto -10% -22% auto;
  width:18rem;
  height:18rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(124,197,208,.22), transparent 70%);
}

.roman-cover-frame{
  position:relative;
  width:100%;
  max-width:280px;
  justify-self:center;
  border-radius:30px;
  overflow:hidden;
  background:#eadfce;
  aspect-ratio:3/4;
  border:1px solid rgba(255,255,255,.82);
  box-shadow:0 24px 60px rgba(29,23,19,.18);
  transform:rotate(-2.5deg);
  transition:transform .28s ease, box-shadow .28s ease;
}

.roman-cover-frame::before{
  content:"";
  position:absolute;
  inset:14px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.42);
  pointer-events:none;
  z-index:1;
}

.roman-card:hover .roman-cover-frame{
  transform:rotate(0deg) scale(1.02);
  box-shadow:0 34px 70px rgba(29,23,19,.18);
}

.roman-cover-frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, rgba(255,255,255,0) 24%, rgba(255,255,255,.22) 46%, rgba(255,255,255,0) 66%);
  transform:translateX(-120%);
  transition:transform .8s ease;
}

.roman-card:hover .roman-cover-frame::after{
  transform:translateX(120%);
}

.roman-cover-frame img{
  display:block;
  width:100%;
  height:auto;
}

.roman-card-body{
  position:relative;
  z-index:1;
  padding:4px 2px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.roman-facts{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.roman-fact{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(13,97,125,.08);
  color:var(--sea);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.04em;
}

.roman-card-body h3{
  margin:12px 0 8px;
  max-width:11ch;
  font-size:clamp(1.7rem, 3vw, 2.65rem);
  line-height:.94;
}

.roman-caption{
  margin-top:12px !important;
  font-size:.85rem;
  color:var(--ink-faint) !important;
}

.page-romans .section-heading{
  align-items:end;
}

.page-romans .section-heading::after{
  display:none;
}

.roman-action{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:12px;
  color:var(--sea);
  font-weight:800;
  letter-spacing:.02em;
}

.roman-action::after{
  content:"→";
  transition:transform .22s ease;
}

.roman-card:hover .roman-action::after{
  transform:translateX(4px);
}

.future-romans-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.future-roman-card{
  position:relative;
  display:grid;
  gap:16px;
  padding:18px;
  border-radius:34px;
  background:
    linear-gradient(150deg, rgba(255,255,255,.97), rgba(255,248,239,.88)),
    linear-gradient(135deg, rgba(124,197,208,.10), rgba(213,154,70,.06));
  border:1px solid rgba(255,255,255,.82);
  box-shadow:0 24px 60px rgba(29,23,19,.10);
  overflow:hidden;
  transition:transform .26s ease, box-shadow .26s ease, border-color .26s ease;
}

.future-roman-card::before{
  content:"";
  position:absolute;
  inset:auto -16% -26% auto;
  width:14rem;
  height:14rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(124,197,208,.18), transparent 72%);
  pointer-events:none;
}

.future-roman-card:hover{
  transform:translateY(-6px);
  box-shadow:0 32px 76px rgba(29,23,19,.14);
  border-color:rgba(124,197,208,.28);
}

.future-roman-cover{
  position:relative;
  z-index:1;
  min-height:300px;
  padding:0;
  border-radius:28px;
  display:block;
  color:#fff;
  box-shadow:0 24px 54px rgba(29,23,19,.18);
  transition:transform .26s ease, box-shadow .26s ease;
  overflow:hidden;
  background:#d9d0c3;
}

.future-roman-cover img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.future-roman-cover::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(10,16,22,.06) 0%, rgba(10,16,22,.08) 46%, rgba(10,16,22,.28) 100%);
}

.future-roman-cover::before{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.18);
  pointer-events:none;
  z-index:2;
}

.future-roman-card:hover .future-roman-cover{
  transform:translateY(-4px);
  box-shadow:0 28px 60px rgba(29,23,19,.22);
}

.future-cover-kicker{
  display:inline-flex;
  position:absolute;
  top:14px;
  left:14px;
  z-index:3;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#fff;
  backdrop-filter:blur(10px);
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.future-roman-body{
  position:relative;
  z-index:1;
}

.future-roman-status{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(13,97,125,.08);
  color:var(--sea);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.future-roman-body h3{
  margin:12px 0 8px;
  font-family:'Cormorant Garamond',serif;
  font-size:1.75rem;
  line-height:.96;
  color:var(--ink);
}

.future-roman-body p{
  margin:0;
  color:var(--ink-soft);
  font-size:.9rem;
  line-height:1.68;
}

.future-roman-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.future-roman-meta span{
  display:inline-flex;
  align-items:center;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.84);
  box-shadow:0 12px 24px rgba(29,23,19,.04);
  color:var(--sea-deep);
  font-size:.72rem;
  font-weight:800;
}

.future-roman-card.is-victor .future-roman-status{background:rgba(13,97,125,.08)}
.future-roman-card.is-vendredi .future-roman-status{background:rgba(61,108,80,.1);color:var(--leaf-deep)}
.future-roman-card.is-horla .future-roman-status{background:rgba(85,65,89,.1);color:#533e58}

.page-home .topbar{
  width:max-content;
  max-width:100%;
}

.page-home .hero{
  grid-template-columns:minmax(0,1fr) minmax(320px,420px);
  align-items:center;
  gap:24px;
  padding:32px 34px 30px;
  overflow:visible;
}

.hero-home-copy{
  justify-content:center;
}

.hero-ribbon{
  display:inline-flex;
  align-self:flex-start;
  margin-bottom:12px;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 14px 28px rgba(29,23,19,.06);
  color:var(--sea-deep);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.page-home .hero h1{
  max-width:9.6ch;
  font-size:clamp(2.45rem, 4.2vw, 4rem);
  line-height:.92;
}

.page-home .hero-text{
  max-width:42ch;
  font-size:.93rem;
}

.hero-visual{
  position:relative;
  min-height:380px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.hero-aurora{
  position:absolute;
  border-radius:50%;
  filter:blur(14px);
  opacity:.9;
  pointer-events:none;
}

.hero-aurora-a{
  width:220px;
  height:220px;
  top:46px;
  right:24px;
  background:radial-gradient(circle, rgba(124,197,208,.42), transparent 70%);
  animation:drift 12s ease-in-out infinite;
}

.hero-aurora-b{
  width:190px;
  height:190px;
  left:14px;
  bottom:48px;
  background:radial-gradient(circle, rgba(213,154,70,.34), transparent 72%);
  animation:drift 15s ease-in-out infinite reverse;
}

.cover-portal{
  position:relative;
  z-index:2;
  width:min(100%, 372px);
  display:grid;
  grid-template-columns:150px 1fr;
  gap:12px;
  align-items:end;
  padding:16px;
  border-radius:38px;
  background:
    linear-gradient(160deg, rgba(15,86,103,.96), rgba(35,69,56,.9)),
    linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,0));
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 38px 90px rgba(13,97,125,.26);
  transform:rotate(-4deg);
  transition:transform .3s ease, box-shadow .3s ease;
}

.cover-portal:hover{
  transform:translateY(-8px) rotate(-1deg);
  box-shadow:0 44px 110px rgba(13,97,125,.32);
}

.cover-portal-frame{
  position:relative;
  border-radius:26px;
  overflow:hidden;
  background:#e8dfd2;
  box-shadow:0 22px 50px rgba(0,0,0,.28);
  transform:rotate(8deg);
}

.cover-portal-frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.22) 50%, rgba(255,255,255,0) 72%);
  transform:translateX(-130%);
  transition:transform .85s ease;
}

.cover-portal:hover .cover-portal-frame::after{
  transform:translateX(130%);
}

.cover-portal-frame img{
  display:block;
  width:100%;
  height:auto;
}

.cover-portal-copy{
  color:#f8efe4;
  padding-bottom:10px;
}

.portal-badge{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#f7efe5;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.cover-portal-copy strong{
  display:block;
  margin:12px 0 8px;
  font-family:'Cormorant Garamond',serif;
  font-size:1.72rem;
  line-height:.92;
}

.cover-portal-copy p{
  margin:0;
  color:rgba(248,239,228,.84);
  line-height:1.52;
  font-size:.86rem;
}

.portal-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:14px;
  color:#fff;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.portal-link::after{
  content:"->";
  transition:transform .22s ease;
}

.cover-portal:hover .portal-link::after{
  transform:translateX(4px);
}

.floating-note{
  position:absolute;
  z-index:3;
  width:166px;
  padding:12px 13px;
  border-radius:22px;
  background:rgba(255,252,247,.84);
  border:1px solid rgba(255,255,255,.86);
  box-shadow:0 20px 46px rgba(29,23,19,.1);
  backdrop-filter:blur(16px);
}

.floating-note span{
  display:block;
  margin-bottom:6px;
  color:var(--sea);
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.floating-note strong{
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-size:.95rem;
  line-height:1.06;
}

.note-a{
  top:34px;
  left:-8px;
  transform:rotate(-6deg);
}

.note-b{
  right:-10px;
  bottom:34px;
  transform:rotate(4deg);
}

.home-panels{
  margin-top:14px;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);
  gap:16px;
}

.home-banner,
.home-card{
  position:relative;
  overflow:hidden;
  border-radius:36px;
  border:1px solid rgba(255,255,255,.82);
  box-shadow:0 28px 70px rgba(29,23,19,.11);
}

.home-banner-main{
  padding:22px 22px 20px;
  background:
    linear-gradient(155deg, rgba(16,86,104,.95), rgba(31,65,52,.9)),
    linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,0));
  color:#f9f1e8;
  min-height:220px;
}

.home-banner-main::after{
  content:"01";
  position:absolute;
  right:28px;
  bottom:-14px;
  font-family:'Cormorant Garamond',serif;
  font-size:10rem;
  color:rgba(255,255,255,.08);
  line-height:1;
}

.home-banner-kicker,
.home-card-kicker{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.home-banner-kicker{
  background:rgba(255,255,255,.12);
  color:#f7efe5;
}

.home-card-kicker{
  background:rgba(13,97,125,.08);
  color:var(--sea-deep);
  box-shadow:inset 0 0 0 1px rgba(13,97,125,.08);
}

.home-banner-main h2,
.home-card h3{
  margin:18px 0 12px;
  font-family:'Cormorant Garamond',serif;
  line-height:.9;
}

.home-banner-main h2{
  max-width:11ch;
  font-size:clamp(1.95rem, 3.1vw, 3rem);
}

.home-banner-main p,
.home-card p{
  margin:0;
  line-height:1.75;
}

.home-banner-main p{
  max-width:40ch;
  color:rgba(249,241,232,.82);
}

.home-banner-link,
.home-card-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:16px;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.home-banner-link::after,
.home-card-link::after{
  content:"->";
}

.home-stack{
  display:grid;
  gap:16px;
}

.home-card{
  padding:18px 18px 17px;
  background:linear-gradient(150deg, rgba(255,255,255,.96), rgba(255,248,240,.88));
}

.home-card h3{
  font-size:1.4rem;
  color:var(--ink);
}

.home-card p{
  color:var(--ink-soft);
  font-size:.89rem;
  line-height:1.62;
}

.home-card-games{
  background:
    linear-gradient(150deg, rgba(255,255,255,.98), rgba(237,250,252,.88)),
    linear-gradient(135deg, rgba(124,197,208,.14), rgba(255,255,255,0));
}

.home-card-games .home-card-link{
  color:var(--sea-deep);
}

.home-card-future{
  background:
    linear-gradient(150deg, rgba(255,255,255,.98), rgba(255,246,235,.9)),
    linear-gradient(135deg, rgba(213,154,70,.12), rgba(255,255,255,0));
}

[data-theme="dark"] .home-card-kicker{
  background:rgba(124,197,208,.14);
  color:#e9f8fb;
  box-shadow:inset 0 0 0 1px rgba(124,197,208,.14);
}

.page-romans .hero{
  grid-template-columns:minmax(0,1fr) minmax(320px,390px);
  align-items:center;
  gap:24px;
  padding:28px 30px 24px;
}

.hero-romans-copy{
  justify-content:center;
}

.page-romans .hero h1{
  max-width:11ch;
  font-size:clamp(2.15rem, 3.5vw, 3.35rem);
  line-height:.92;
}

.roman-hero-author{
  margin:10px 0 0;
  color:var(--sea);
  font-size:.92rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.roman-hero-text{
  max-width:42ch;
  min-height:4.9em;
}

.roman-hero-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.roman-hero-tags span{
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.68);
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 14px 28px rgba(29,23,19,.05);
  color:var(--sea-deep);
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.05em;
}

.page-romans .hero .hero-actions{
  margin-top:20px;
}

.roman-hero-statusline{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:18px;
}

.roman-hero-statusline span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--ink-soft);
  font-size:.77rem;
  font-weight:700;
}

.roman-hero-statusline span::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--sea),var(--leaf));
  box-shadow:0 0 0 4px rgba(13,97,125,.08);
}

.hero-romans-side{
  width:min(100%, 390px);
}

.romans-slider{
  position:relative;
  padding:16px 16px 14px;
  border-radius:36px;
  background:
    linear-gradient(155deg, rgba(255,255,255,.94), rgba(244,250,251,.82)),
    linear-gradient(135deg, rgba(124,197,208,.12), rgba(213,154,70,.08));
  border:1px solid rgba(255,255,255,.82);
  box-shadow:0 30px 72px rgba(29,23,19,.13);
  backdrop-filter:blur(18px);
  overflow:hidden;
}

.romans-slider::before{
  content:"";
  position:absolute;
  width:16rem;
  height:16rem;
  right:-3rem;
  top:-2rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(13,97,125,.14), transparent 70%);
  pointer-events:none;
}

.romans-slider-stage{
  position:relative;
  min-height:430px;
}

.roman-slide{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:10px;
  opacity:0;
  pointer-events:none;
  transform:translateX(20px) scale(.98);
  transition:opacity .45s ease, transform .45s ease;
}

.roman-slide::before{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:28px;
  background:
    linear-gradient(160deg, rgba(13,97,125,.18), rgba(61,108,80,.12)),
    linear-gradient(135deg, rgba(255,255,255,.24), rgba(255,255,255,0));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);
  pointer-events:none;
}

.roman-slide.is-active{
  opacity:1;
  pointer-events:auto;
  transform:translateX(0) scale(1);
}

.roman-slide-frame{
  position:relative;
  z-index:1;
  width:min(100%, 252px);
  aspect-ratio:11 / 16;
  border-radius:26px;
  overflow:hidden;
  background:#e8dfd2;
  box-shadow:0 34px 70px rgba(29,23,19,.26);
  transform:translateY(8px) scale(.98);
  transition:transform .45s ease, box-shadow .45s ease;
}

.roman-slide.is-active .roman-slide-frame{
  transform:translateY(0) scale(1);
}

.roman-slide.is-active:hover .roman-slide-frame{
  transform:translateY(-4px) scale(1.015);
  box-shadow:0 42px 82px rgba(29,23,19,.3);
}

.roman-slide-frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#d9cebc;
}

.romans-slider-footer{
  position:relative;
  z-index:1;
  margin-top:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.romans-slider-meta{
  flex:1 1 auto;
  display:grid;
  gap:8px;
}

.romans-slider-status{
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--sea-deep);
}

.romans-slider-progress{
  height:6px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(13,97,125,.12);
}

.romans-slider-progress-bar{
  display:block;
  width:100%;
  height:100%;
  transform:scaleX(0);
  transform-origin:left center;
  background:linear-gradient(135deg, var(--sea), var(--leaf));
}

.romans-slider-dots{
  display:flex;
  align-items:center;
  gap:8px;
}

.romans-slider-dot{
  width:10px;
  height:10px;
  padding:0;
  border:none;
  border-radius:999px;
  background:rgba(13,97,125,.22);
  cursor:pointer;
  transition:transform .22s ease, background .22s ease, width .22s ease;
}

.romans-slider-dot:hover{
  transform:scale(1.08);
}

.romans-slider-dot.is-active{
  width:28px;
  background:linear-gradient(135deg, var(--sea), var(--leaf));
}

[data-theme="dark"] .romans-slider{
  background:
    linear-gradient(155deg, rgba(29,24,20,.9), rgba(20,18,16,.82)),
    linear-gradient(135deg, rgba(124,197,208,.1), rgba(213,154,70,.05));
  border-color:rgba(240,230,214,.08);
}

[data-theme="dark"] .roman-hero-author{
  color:#8dd8e2;
}

[data-theme="dark"] .roman-hero-tags span{
  background:rgba(30,26,22,.78);
  border-color:rgba(240,230,214,.12);
  color:#e6f7fa;
}

[data-theme="dark"] .roman-hero-statusline span{
  color:#cbbbab;
}

[data-theme="dark"] .roman-hero-statusline span::before{
  box-shadow:0 0 0 4px rgba(124,197,208,.08);
}

[data-theme="dark"] .romans-slider-status{
  color:#e7f6f8;
}

[data-theme="dark"] .romans-slider-progress{
  background:rgba(124,197,208,.16);
}

.site-footer{
  margin-top:36px;
  padding:34px 8px 8px;
  text-align:center;
  color:var(--ink-soft);
  font-size:.88rem;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg, transparent 0%, rgba(13,97,125,.03) 100%);
}

.site-footer p{
  margin:0;
  letter-spacing:.04em;
}

.site-footer strong{color:var(--ink)}

@keyframes drift{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(24px,-18px,0) scale(1.08)}
}

@keyframes halo{
  0%,100%{transform:scale(1);opacity:.7}
  50%{transform:scale(1.12);opacity:1}
}

@keyframes fadeRise{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}

@media (max-width: 980px){
  .hero,
  .roman-card{
    grid-template-columns:1fr;
  }

  .future-romans-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .menu-grid{
    grid-template-columns:1fr;
  }

  .hero{
    padding:34px 24px;
    min-height:auto;
  }

  .hero h1{
    font-size:clamp(2.3rem, 10vw, 4.3rem);
    max-width:none;
  }

  .hero-metrics{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .hero-side{
    width:100%;
    justify-self:stretch;
  }

  .hero-chips{
    margin-top:16px;
  }

  .page-home .topbar{
    width:100%;
  }

  .page-home .hero{
    grid-template-columns:1fr;
    gap:24px;
    padding:30px 22px 26px;
  }

  .page-home .hero h1{
    max-width:none;
    font-size:clamp(2.35rem, 7.2vw, 3.8rem);
  }

  .hero-visual{
    min-height:360px;
  }

  .note-a{
    left:10px;
    top:18px;
  }

  .note-b{
    right:10px;
    bottom:18px;
  }

  .home-panels{
    grid-template-columns:1fr;
  }

  .section-strip{
    align-items:flex-start;
    flex-direction:column;
  }

  .section-strip-copy{
    max-width:none;
    text-align:left;
  }

  .section-side-copy{
    max-width:none;
    text-align:left;
  }

  .page-romans .section-heading{
    align-items:flex-start;
  }

  .page-romans .hero{
    grid-template-columns:1fr;
    gap:22px;
  }

  .hero-romans-side,
  .romans-slider{
    width:100%;
    max-width:none;
  }

  .romans-slider-stage{
    min-height:412px;
  }
}

@media (max-width: 720px){
  .page-shell{
    width:min(100% - 20px, 1180px);
    padding-top:20px;
  }

  .topbar{
    top:12px;
    width:100%;
  }

  .nav-links{
    justify-content:flex-start;
  }

  .hero-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .hero-chips{
    display:grid;
    grid-template-columns:1fr;
  }

  .hero-chip{
    justify-content:center;
    text-align:center;
  }

  .hero-metrics{
    grid-template-columns:1fr;
  }

  .btn{
    width:100%;
  }

  .menu-card,
  .roman-card{
    padding:20px;
  }

  .future-romans-grid{
    grid-template-columns:1fr;
  }

  .hero-ribbon{
    font-size:.66rem;
    letter-spacing:.1em;
  }

  .hero-visual{
    min-height:auto;
    padding-top:6px;
  }

  .cover-portal{
    grid-template-columns:1fr;
    width:100%;
    max-width:none;
    transform:none;
  }

  .cover-portal:hover{
    transform:translateY(-6px);
  }

  .cover-portal-frame{
    max-width:230px;
    margin:0 auto;
    transform:rotate(4deg);
  }

  .cover-portal-copy{
    text-align:center;
    padding-bottom:0;
  }

  .floating-note{
    position:static;
    width:100%;
    transform:none !important;
  }

  .hero-visual{
    display:grid;
    gap:14px;
  }

  .hero-aurora{
    display:none;
  }

  .home-banner-main,
  .home-card{
    padding:20px;
  }

  .home-banner-main h2{
    max-width:none;
    font-size:clamp(1.85rem, 9vw, 2.8rem);
  }

  .home-card h3{
    font-size:1.45rem;
  }

  .page-romans .hero{
    padding:30px 22px 26px;
  }

  .roman-hero-text{
    min-height:auto;
  }

  .roman-hero-tags,
  .roman-hero-statusline{
    justify-content:center;
  }

  .romans-slider{
    padding:9px;
  }

  .romans-slider-stage{
    min-height:404px;
  }

  .roman-slide{
    padding:14px;
  }

  .roman-slide-frame{
    width:min(100%, 214px);
    margin:0 auto;
  }

  .romans-slider-footer{
    flex-direction:column;
    align-items:stretch;
  }

  .romans-slider-status{
    text-align:center;
  }

  .romans-slider-dots{
    justify-content:center;
  }

  .section-side-copy{
    font-size:.88rem;
  }

  .section-strip h2{
    font-size:1.7rem;
  }
}
