:root { color-scheme: dark; }
body { background: #12091f; }
.phri-article { box-sizing: border-box; width: calc(100% - 48px); max-width:740px; margin:0 auto; padding:16px 0 56px; color:rgba(255,255,255,.92); font-family:inherit; font-size:17px; line-height: 1.65; overflow-wrap: anywhere; }
.phri-article h1 { margin: 0 0 18px; font-size: clamp(29px, 4vw, 38px); line-height: 1.18; font-weight: 500; letter-spacing: -.015em; }
.phri-article h1, .phri-article h2, .phri-article h3 { font-family: inherit; text-shadow: none; -webkit-text-stroke: 0; }
.phri-article h2 { margin: 36px 0 14px; font-size: 24px; line-height: 1.3; font-weight: 500; }
.phri-article h3 { margin: 24px 0 12px; font-size: 20px; line-height: 1.35; font-weight: 500; }
.phri-article p { margin: 0 0 20px; }
.phri-article a { color: #c8a6ef; text-underline-offset: .18em; }
.phri-article a:focus-visible { outline: 2px solid #e2c5ff; outline-offset: 4px; }
.phri-article figure { margin: 28px 0; }
.phri-article img { display: block; max-width: 100%; height: auto; border-radius: 6px; }
.phri-article figcaption { margin-top: 9px; color: #c4b5d0; font-size: 14px; line-height: 1.5; }
.phri-article table { width: 100%; border-collapse: collapse; font-size: 16px; margin: 24px 0; table-layout: fixed; }
.phri-article th, .phri-article td { text-align: left; vertical-align: top; padding: 13px 9px; border-bottom: 1px solid #47354f; overflow-wrap: anywhere; }
.phri-article th { color: #e8d8f7; background: #21152d; font-weight: 600; }
.phri-article caption { text-align: left; margin-bottom: 12px; }
.phri-article blockquote { margin: 24px 0; padding-left: 20px; border-left: 2px solid #8a57bb; }
.phri-byline { display: flex; flex-wrap: wrap; gap: 8px 16px; color: #c4b5d0; font-size: 14px; }
.phri-article ul, .phri-article ol { padding-left: 24px; }
.phri-article li { margin-bottom: 10px; }
.phri-actions { display: flex; gap: 12px; margin: 24px 0; }
.phri-actions button { color: #f3eef9; border: 1px solid #6a5279; background: transparent; border-radius: 6px; padding: 10px 18px; font: inherit; cursor: pointer; }
.phri-hero { margin-bottom: 32px; }
.phri-summary { font-size: 20px; line-height:1.5; color:inherit; max-width:62ch; }
.phri-breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:0 10px; color:#c4b5d0; font-size:14px; margin-bottom:12px; }
.phri-breadcrumbs a { display:inline-flex; align-items:center; min-height:44px; }
.phri-score { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; font-size: 15px; }
.phri-score strong { font-size: 26px; font-weight: 600; }
.phri-score small { font-size: 15px; font-weight: 400; margin-left: 3px; }
.phri-score a { margin-left: 8px; font-size: 14px; }
.phri-article .phri-avatar { width: 56px; height: 56px; object-fit: cover; border-radius: 50%; flex-shrink: 0; }
.phri-author-take h2, .phri-body h2:has(.phri-avatar) { display: flex; align-items: center; gap: 14px; }
.phri-author-take, .phri-rating-detail, .phri-external, .phri-related { border-top: 1px solid #47354f; margin-top: 34px; padding-top: 6px; }
.phri-related ul, .phri-external ul { list-style: none; padding: 0; }
.phri-related li, .phri-external li { padding: 16px 0; border-bottom: 1px solid #392941; margin: 0; }
.phri-related li a { font-size: 18px; font-weight: 500; }
.phri-related li p, .phri-external li p { font-size: 16px; color: #c4b5d0; margin: 5px 0 0; }
.phri-external li small { display: block; color: #c4b5d0; }
.phri-category-links { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 20px; }
.phri-category-links a { display: inline-block; padding: 8px 0; }
.phri-rating-detail dl > div { padding: 14px 0; border-bottom: 1px solid #392941; }
.phri-rating-detail dt { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.phri-rating-detail dt strong { margin-left: auto; }
.phri-rating-detail dt small { color: #c4b5d0; }
.phri-rating-detail dd { margin: 5px 0 0; font-size: 16px; color: #c4b5d0; }
.phri-article .phri-media--logo { max-width: 180px; max-height: 80px; object-fit: contain; }
.phri-article .phri-media--portrait { max-width: 220px; }
/* Keep the shared article template legible under the site's stronger theme rules. */
body .phri-article :is(h1,h2,h3) { font-family:inherit!important; font-weight:500!important; text-shadow:none!important; -webkit-text-stroke:0!important; letter-spacing:-.015em!important; }
body .phri-article h1 { line-height:1.18!important; }
body .phri-article h2 { line-height:1.3!important; }
body .phri-article h3 { line-height:1.35!important; }
body .phri-article a { line-height:1.5!important; font-family:inherit!important; }
body .phri-article .phri-comparison { table-layout:auto; border:0!important; border-collapse:collapse!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; margin:28px 0!important; }
body .phri-article .phri-comparison :is(th,td) { border:0!important; border-bottom:1px solid #392d43!important; background:transparent!important; padding:15px 16px!important; color:inherit!important; font-size:15px!important; line-height:1.55!important; }
body .phri-article .phri-comparison th { font-weight:600!important; color:#c4b5d0!important; border-bottom-color:#685575!important; }
body .phri-article .phri-comparison :is(th,td):first-child { padding-left:0!important; }
body .phri-article .phri-comparison :is(th,td):last-child { padding-right:0!important; }
body .phri-article .phri-comparison caption { font-size:14px; line-height:1.5; color:#c4b5d0; margin-bottom:12px; }
body .phri-article .phri-related li a { display:inline-block; }
/* Shared editorial styling; writer packages supply copy and assets only. */
body .phri-article a { color:#c8a6ef!important; text-decoration:underline!important; text-underline-offset:.2em; text-decoration-thickness:1px; }
body .phri-article a:hover { color:#e2c5ff!important; }
body .phri-article .phri-identity { display:flex; align-items:center; gap:14px; margin-bottom:0; }
body .phri-article .phri-identity h1 { margin:0!important; }
body .phri-article .phri-service-logo { width:40px!important; height:40px!important; flex:0 0 40px; object-fit:contain; border-radius:8px; }
body .phri-article .phri-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:24px 0!important; }
body .phri-article .phri-actions :is(a,button) { display:inline-flex!important; align-items:center; justify-content:center; gap:8px; min-height:44px; min-width:0; margin:0; padding:10px 20px!important; border:1px solid #493957!important; border-radius:7px!important; font-family:inherit!important; font-size:16px!important; font-weight:550!important; line-height:1.4!important; color:rgba(255,255,255,.92)!important; text-decoration:none!important; cursor:pointer; background:transparent!important; box-shadow:none!important; }
body .phri-article .phri-actions a.phri-visit { background:#6d35b5!important; border-color:#6d35b5!important; color:#fff!important; line-height:1.5!important; }
body .phri-article .phri-actions a.phri-visit:hover { background:#7b41c1!important; border-color:#7b41c1!important; }
body .phri-article .phri-actions button:hover, body .phri-article .phri-actions button[aria-pressed=true] { background:#24172f!important; border-color:#cba6ef!important; }
body .phri-article .phri-score { display:flex; align-items:baseline; gap:9px; font-size:14px; color:#c4b5d0; margin:20px 0 0; }
body .phri-article .phri-score strong { font-size:21px; color:#f3eef9; }
body .phri-article .phri-score small { font-size:14px; }
body .phri-article .phri-rating-detail { padding:18px 0 0; }
body .phri-article .phri-rating-detail summary { cursor:pointer; font-size:16px; color:#d5bbea; font-weight:500; }
body .phri-article .phri-rating-detail dl { margin:14px 0 0; }
body .phri-article .phri-rating-detail dl>div { padding:10px 0; }
body .phri-article .phri-rating-detail dt { font-size:15px; }
body .phri-article .phri-rating-detail dd { font-size:15px; line-height:1.6; }
body .phri-article .phri-feedback-identity { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
body .phri-article .phri-platform-logo { width:36px!important; height:36px!important; object-fit:contain; border-radius:5px; flex:0 0 36px; }
body .phri-article .phri-external h3 { font-size:16px!important; font-weight:500!important; color:#c4b5d0; margin-top:24px; }
body .phri-article .phri-external small { font-size:12px; margin-top:7px; }
body .phri-article .phri-body :is(img.phri-media--content,img.phri-media--cover) { width:100%!important; max-width:100%!important; height:auto!important; }
body .phri-article .phri-author-take .phri-avatar { width:72px!important; height:72px!important; }
body .phri-article :is(.phri-score,.phri-rating-detail,.phri-feedback-identity) strong { font-style:normal!important; font-weight:600!important; }
/* Native email-confirmed reader workflow, adapted to the established review typography. */
body .phri-article .phri-reader { margin-top:40px; --ep-rule:#47354f; --ep-secondary:#c4b5d0; --ep-ink:#f3eef9; --ep-link:#c8a6ef; }
body .phri-article .ep-review__reader { margin-top:32px; padding-top:8px; border-top:1px solid #47354f; }
body .phri-article .ep-review__reader-form { display:grid; gap:10px; margin-top:20px; }
body .phri-article .ep-review__reader-form fieldset { border:0; margin:0; padding:0; min-width:0; }
body .phri-article .ep-review__reader-ratings { display:flex; flex-wrap:wrap; gap:8px 16px; }
body .phri-article .ep-review__reader-ratings label,body .phri-article .ep-review__reader-check { display:flex; align-items:center; gap:8px; min-height:44px; font-size:15px; }
body .phri-article .ep-review__reader-form :is(input:not([type]),input[type=email],textarea) { width:100%; box-sizing:border-box; background:#20152c; border:1px solid #6a5279; border-radius:6px; color:#f3eef9; padding:11px 12px; font:inherit; }
body .phri-article .ep-review__reader-note { color:#c4b5d0; font-size:14px; }
body .phri-article .ep-review__reader-form button { justify-self:start; background:#7034b4; color:#fff; border:1px solid #7034b4; border-radius:6px; padding:12px 18px; min-height:46px; font:inherit; cursor:pointer; }
body .phri-article .ep-review__reader-list { list-style:none; padding:0; }
body .phri-article .ep-review__reader-list li { border-bottom:1px solid #392941; padding:16px 0; }
body .phri-article .phri-reader-score { font-size:14px; }
/* Match the accepted Eporner typography and one consistent left reading edge. */
body .phri-article { width:calc(100% - 48px); max-width:740px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size:17px; line-height:1.65; color:rgba(255,255,255,.92); text-align:start; }
body .phri-article :is(.phri-body,.phri-author-take,.phri-rating-detail,.phri-external,.phri-related,.phri-reader) { max-width:68ch; margin-left:0!important; margin-right:0!important; padding-left:0!important; padding-right:0!important; }
body .phri-article :is(h1,h2,h3) { font-weight:500!important; }
body .phri-article h1 { font-size:38px!important; line-height:1.15!important; color:#f5edf9; }
body .phri-article h2 { font-size:24px!important; margin:32px 0 12px; }
body .phri-article .phri-byline { gap:2px 20px; margin:12px 0 16px; line-height:1.5; }
body .phri-article .phri-summary { font-size:20px; line-height:1.5; max-width:62ch; }
@media (max-width: 600px) {
    .phri-article { width:calc(100% - 40px); font-size:17px; line-height:1.65; }
    .phri-article table { font-size: 14px; }
    .phri-article th, .phri-article td { padding: 10px 5px; }
    .phri-article .phri-comparison, .phri-comparison tbody { display: block; }
    .phri-article .phri-comparison .phri-table-head { display: none; }
    .phri-article .phri-comparison tr { display: block; border-bottom: 1px solid #47354f; padding: 10px 0; }
    .phri-article .phri-comparison td, .phri-article .phri-comparison th { display: grid; grid-template-columns: minmax(90px, 35%) minmax(0, 1fr); gap: 12px; border: 0; padding: 7px 0; }
    .phri-comparison [data-label]::before { content: attr(data-label); color: #c4b5d0; font-size: 13px; }
    body .phri-article .phri-comparison tr { border:0!important; border-bottom:1px solid #47354f!important; }
    body .phri-article .phri-comparison :is(td,th) { border:0!important; padding:7px 0!important; font-size:14px!important; }
    body .phri-article .phri-comparison caption { display:block!important; width:100%!important; min-width:0!important; max-width:none!important; white-space:normal!important; box-sizing:border-box; }
    body .phri-article { width:calc(100% - 40px); font-size:17px; padding-top:12px; padding-bottom:40px; }
    body .phri-article h1 { font-size:29px!important; line-height:1.2!important; }
    body .phri-article h2 { font-size:22px!important; }
    body .phri-article .phri-summary { font-size:19px; line-height:1.55; }
}
