:root{
    --roman-ink:#264437;
    --roman-paper:#fbfdfb;
    --roman-paper-2:#eef7ef;
    --roman-gold:#5e8d73;
    --roman-gold-soft:#9dbfae;
    --roman-muted:#5f7266;
    --roman-shadow:0 24px 60px rgba(47,82,63,.14);
}
body{
    background:
        radial-gradient(circle at top left, rgba(127,168,141,.14), transparent 36%),
        radial-gradient(circle at top right, rgba(95,146,115,.10), transparent 28%),
        linear-gradient(180deg, #fbfdfb 0%, #edf7ef 100%);
}
.roman-page{
    max-width:1220px;
    margin:0 auto;
    padding:clamp(1.2rem, 2vw, 2rem);
}
.roman-hero{
    position:relative;
    overflow:hidden;
    background:
        linear-gradient(135deg, rgba(248,252,249,.98), rgba(231,243,235,.98) 58%, rgba(241,248,244,.98)),
        radial-gradient(circle at 25% 20%, rgba(127,168,141,.16), transparent 34%);
    color:#264437;
    border-radius:28px;
    box-shadow:var(--roman-shadow);
    padding:clamp(1.4rem, 3vw, 2.5rem);
}
.roman-hero-grid{
    position:relative;
    display:grid;
    grid-template-columns:minmax(250px, 350px) minmax(0, 1fr);
    gap:clamp(1.25rem, 3vw, 2.5rem);
    align-items:start;
}
.roman-cover-panel{
    position:relative;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(127,168,141,.22);
    border-radius:24px;
    padding:1rem;
    box-shadow:0 12px 28px rgba(47,82,63,.10);
}
.roman-cover{
    width:100%;
    height:auto;
    display:block;
    border-radius:16px;
    box-shadow:0 20px 36px rgba(47,82,63,.18);
}
.roman-status{
    position:absolute;
    top:1rem;
    right:1rem;
    padding:.45rem .8rem;
    border-radius:999px;
    background:rgba(127,168,141,.12);
    border:1px solid rgba(127,168,141,.28);
    color:#3f6d58;
    font-size:.72rem;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.roman-kicker{
    text-transform:uppercase;
    letter-spacing:.18em;
    font-size:.73rem;
    color:rgba(95,146,115,.92);
    margin-bottom:.7rem;
}
.roman-title{
    font-family:'Libre Caslon Display', Georgia, serif;
    font-size:clamp(2.2rem, 5vw, 4.2rem);
    line-height:1.02;
    margin:0 0 .45rem 0;
    color:#264437;
}
.roman-subtitle{
    display:block;
    font-size:clamp(1rem, 2vw, 1.4rem);
    color:#5e8d73;
    margin-top:.3rem;
}
.roman-summary{
    max-width:62ch;
    font-size:1.05rem;
    line-height:1.8;
    color:#335243;
    margin:1rem 0 1.4rem;
}
.roman-meta{
    display:flex;
    flex-wrap:wrap;
    gap:.7rem;
    margin:0 0 1.5rem;
}
.roman-chip{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:.48rem .78rem;
    border-radius:999px;
    background:rgba(255,255,255,.82);
    border:1px solid rgba(127,168,141,.20);
    color:#264437;
    font-size:.85rem;
}
.roman-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.8rem;
    margin-top:.3rem;
}
.roman-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:.85rem 1.15rem;
    border-radius:14px;
    font-weight:700;
    text-decoration:none;
    transition:transform .2s, box-shadow .2s, background .2s, color .2s, border-color .2s;
}
.roman-btn:hover{
    transform:translateY(-2px);
    text-decoration:none;
}
.roman-btn.primary{
    background:#8ab79a;
    color:#fff !important;
    box-shadow:0 10px 24px rgba(47,82,63,.18);
}
.roman-btn.secondary{
    background:#fff;
    color:#264437 !important;
    border:1px solid rgba(127,168,141,.28);
}
.roman-btn.ghost{
    background:transparent;
    color:#5e8d73 !important;
    border:1px solid rgba(127,168,141,.35);
}
.roman-strip{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:.9rem;
    margin-top:1.3rem;
}
.roman-stat{
    padding:1rem 1rem .95rem;
    background:rgba(255,255,255,.86);
    border:1px solid rgba(127,168,141,.18);
    border-radius:18px;
}
.roman-stat-label{
    display:block;
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:rgba(95,146,115,.82);
    margin-bottom:.4rem;
}
.roman-stat-value{
    font-family:'Libre Caslon Display', Georgia, serif;
    font-size:1.1rem;
    color:#264437;
}
.roman-sections{
    display:grid;
    gap:1.2rem;
    margin-top:1.4rem;
}
.roman-card{
    background:rgba(255,255,255,.96);
    border:1px solid rgba(127,168,141,.14);
    border-radius:24px;
    box-shadow:0 12px 36px rgba(47,82,63,.08);
    overflow:hidden;
}
.roman-card-inner{
    padding:1.35rem;
}
.roman-card h2{
    margin:0 0 .9rem;
    font-family:'Libre Caslon Display', Georgia, serif;
    font-size:1.7rem;
    color:#264437;
}
.roman-prose{
    font-size:1.02rem;
    line-height:1.82;
    color:#264437;
}
.roman-prose p{ margin:0 0 1rem; }
.roman-excerpt-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:1rem;
    margin-top:1rem;
}
.roman-excerpt{
    padding:1.1rem 1rem;
    border-radius:18px;
    background:linear-gradient(180deg, #ffffff, #eff7f1);
    border:1px solid rgba(127,168,141,.14);
}
.roman-excerpt h3{
    margin:0 0 .45rem;
    font-family:'Libre Caslon Display', Georgia, serif;
    font-size:1.25rem;
    color:#264437;
}
.roman-excerpt p{
    margin:0;
    color:#4c665a;
    line-height:1.7;
}
.roman-links{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
    margin-top:1rem;
}
.roman-review-summary{
    display:flex;
    flex-wrap:wrap;
    gap:.7rem;
    align-items:center;
    margin-bottom:1rem;
    color:#5f7266;
}
.roman-rating{
    font-weight:700;
    color:#5e8d73;
    letter-spacing:.08em;
}
.roman-reviews{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:1rem;
}
.roman-review{
    padding:1rem;
    background:#fff;
    border:1px solid rgba(127,168,141,.14);
    border-radius:18px;
    box-shadow:0 8px 20px rgba(47,82,63,.05);
}
.roman-review-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:.55rem;
}
.roman-review-name{ font-weight:700; color:#264437; }
.roman-review-note{ color:#5e8d73; white-space:nowrap; letter-spacing:.08em; font-size:.92rem; }
.roman-review-title{ font-weight:700; margin:0 0 .35rem; color:#264437; }
.roman-review-comment{ color:#4d665a; line-height:1.65; margin:0; }
.roman-footer-cta{
    margin-top:1.3rem;
    padding:1.2rem 1.35rem;
    border-radius:22px;
    background:linear-gradient(135deg, rgba(248,252,249,.98), rgba(231,243,235,.98));
    color:#264437;
    box-shadow:var(--roman-shadow);
}
.roman-footer-cta h2{ margin:0 0 .6rem; color:#264437; }
.roman-footer-cta p{ margin:0 0 .95rem; line-height:1.75; color:#355446; }
.roman-error{
    max-width:760px;
    margin:3rem auto;
    padding:2rem;
    text-align:center;
    background:#fff;
    border-radius:24px;
    box-shadow:var(--roman-shadow);
}
.roman-error h1{
    font-family:'Libre Caslon Display', Georgia, serif;
    margin:0 0 .7rem;
}
@media (max-width: 900px){
    .roman-hero-grid{ grid-template-columns:1fr; }
    .roman-strip{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .roman-excerpt-grid{ grid-template-columns:1fr; }
}
@media (max-width: 600px){
    .roman-page{ padding:1rem .75rem 2rem; }
    .roman-hero{ border-radius:20px; }
    .roman-card-inner{ padding:1.1rem; }
    .roman-title{ font-size:2rem; }
    .roman-strip{ grid-template-columns:1fr; }
    .roman-actions{ flex-direction:column; }
    .roman-btn{ width:100%; }
}
