/* Shared by the saved preview and the public feature renderer. */
.sw-feature-detail {
    --feature-ink: #181c1c;
    --feature-muted: #626a68;
    --feature-rule: #dce1de;
    --feature-surface: #f3f5f4;
    box-sizing: border-box;
    display: block;
    width: min(1100px, calc(100% - 48px));
    max-width: 1100px;
    margin: 0 auto;
    padding: 32px 0 72px;
    color: var(--feature-ink);
    font-family: "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    letter-spacing: 0;
}
.sw-feature-detail *, .sw-feature-detail *::before, .sw-feature-detail *::after { box-sizing: border-box; letter-spacing: 0; }
.sw-feature-detail .sw-feature-detail__hero {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
    padding: 0 0 36px;
    border: 0;
    border-bottom: 1px solid var(--feature-rule);
}
.sw-feature-detail .sw-feature-detail__copy {
    order: 0;
    width: 100%;
    min-width: 0;
    padding: 0;
}
.sw-feature-detail .sw-feature-detail__eyebrow,
.sw-feature-detail .sw-feature-block__eyebrow {
    margin: 0 0 12px;
    color: var(--feature-muted);
    font-size: 12px;
    line-height: 1.5;
    font-weight: 700;
}
.sw-feature-detail .sw-feature-detail__title {
    max-width: 1040px;
    margin: 0;
    color: var(--feature-ink);
    font-size: 36px;
    font-weight: 700;
    line-height: 1.45;
    overflow-wrap: anywhere;
    text-wrap: pretty;
}
.sw-feature-detail .sw-feature-detail__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin: 16px 0 0;
    color: var(--feature-muted);
    font-size: 12px;
    line-height: 1.6;
}
.sw-feature-detail .sw-feature-detail__media {
    order: 1;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    overflow: visible;
    background: transparent;
}
.sw-feature-detail .sw-feature-detail__media img {
    display: block;
    width: auto;
    max-width: 100%;
    margin: 0 auto;
    height: auto;
    max-height: 360px;
    aspect-ratio: auto;
    object-fit: contain;
    border-radius: 0;
    background: transparent;
}
.sw-feature-detail .sw-feature-detail__lead {
    order: 2;
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    color: var(--feature-muted);
    font-size: 16px;
    line-height: 1.95;
    white-space: pre-line;
    overflow-wrap: anywhere;
}
.sw-feature-detail .sw-feature-detail__media figcaption,
.sw-feature-detail .sw-feature-figure figcaption {
    margin: 0;
    padding: 10px 0 0;
    background: transparent;
    color: var(--feature-muted);
    font-size: 12px;
    line-height: 1.7;
    overflow-wrap: anywhere;
}
.sw-feature-detail .sw-feature-detail__blocks { display: grid; width: 100%; max-width: none; margin: 0; gap: 56px; padding: 44px 0 0; }
.sw-feature-detail .sw-feature-block {
    width: 100%; max-width: 780px; min-width: 0; margin: 0 auto; padding: 0;
    border: 0; border-radius: 0; box-shadow: none; background: transparent;
}
.sw-feature-detail .sw-feature-block--content-two-column-wide,
.sw-feature-detail .sw-feature-block--content-highlights,
.sw-feature-detail .sw-feature-block--image,
.sw-feature-detail .sw-feature-block--slider,
.sw-feature-detail .sw-feature-block--video { max-width: 1100px; }
.sw-feature-detail .sw-feature-block__content { min-width: 0; }
.sw-feature-highlights,.sw-feature-timeline { padding:0; margin:0; list-style:none; }
.sw-feature-highlights { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; counter-reset:feature-point; }
.sw-feature-highlights li { min-width:0; border-top:2px solid var(--feature-ink); padding-top:18px; counter-increment:feature-point; }
.sw-feature-highlights li::before { content:counter(feature-point,decimal-leading-zero); display:block; margin-bottom:16px; font-size:14px; color:var(--feature-muted); }
.sw-feature-highlights h3,.sw-feature-timeline h3 { margin:0 0 12px; font-size:19px; line-height:1.5; overflow-wrap:anywhere; }
.sw-feature-highlights p,.sw-feature-timeline p { margin:0; font-size:16px; line-height:1.9; overflow-wrap:anywhere; }
.sw-feature-timeline li { display:grid; grid-template-columns:150px minmax(0,1fr); gap:24px; position:relative; padding:0 0 32px 26px; border-left:1px solid var(--feature-rule); }
.sw-feature-timeline li:last-child { padding-bottom:0; }
.sw-feature-timeline li::before { content:""; position:absolute; left:-4px; top:8px; width:7px; height:7px; border-radius:50%; background:var(--feature-ink); }
@media(max-width:767px) {
    .sw-feature-highlights { grid-template-columns:minmax(0,1fr); gap:24px; }
    .sw-feature-highlights li::before { margin-bottom:8px; }
    .sw-feature-timeline li { grid-template-columns:minmax(0,1fr); gap:0; padding-left:20px; }
}
.sw-feature-detail .sw-feature-block__heading {
    margin: 0 0 20px; color: var(--feature-ink); font-size: 25px; line-height: 1.6;
    font-weight: 700; overflow-wrap: anywhere; text-wrap: pretty;
}
.sw-feature-detail .sw-feature-block__copy p {
    margin: 0 0 22px; color: var(--feature-ink); font-size: 16px; line-height: 2;
    overflow-wrap: anywhere;
}
.sw-feature-detail .sw-feature-block__copy p:last-child { margin-bottom: 0; }
.sw-feature-detail .sw-feature-facts { width: 100%; margin: 24px 0 0; border-collapse: collapse; font-size: 14px; line-height: 1.6; }
.sw-feature-detail .sw-feature-facts tr { border-top: 1px solid var(--feature-rule); }
.sw-feature-detail .sw-feature-facts tr:last-child { border-bottom: 1px solid var(--feature-rule); }
.sw-feature-detail .sw-feature-facts th, .sw-feature-detail .sw-feature-facts td { padding: 13px 10px; text-align: left; vertical-align: top; }
.sw-feature-detail .sw-feature-facts th { width: 35%; font-weight: 700; }
.sw-feature-detail .sw-feature-facts td:nth-child(2) { width: 25%; font-weight: 700; white-space: nowrap; }
.sw-feature-detail .sw-feature-facts td:last-child { color: var(--feature-muted); }
.sw-feature-detail .sw-feature-block--content-two-column .sw-feature-block__copy,
.sw-feature-detail .sw-feature-block--content-two-column-wide .sw-feature-block__copy { column-count: 2; column-gap: 40px; column-rule: 1px solid var(--feature-rule); }
.sw-feature-detail .sw-feature-block--content-two-column .sw-feature-block__copy p,
.sw-feature-detail .sw-feature-block--content-two-column-wide .sw-feature-block__copy p { break-inside: avoid; }
.sw-feature-detail .sw-feature-block--image-layout-wide > .sw-feature-block__content,
.sw-feature-detail .sw-feature-block--slider > .sw-feature-block__copy { max-width: 780px; margin: 0 auto; }
.sw-feature-detail .sw-feature-block--image-layout-split-left,
.sw-feature-detail .sw-feature-block--image-layout-split-right { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 36px; }
.sw-feature-detail .sw-feature-block--image-layout-split-left > .sw-feature-figure { grid-column: 1; grid-row: 1; }
.sw-feature-detail .sw-feature-block--image-layout-split-left > .sw-feature-block__content { grid-column: 2; grid-row: 1; }
.sw-feature-detail .sw-feature-block--image-layout-split-right > .sw-feature-block__content { grid-column: 1; grid-row: 1; }
.sw-feature-detail .sw-feature-block--image-layout-split-right > .sw-feature-figure { grid-column: 2; grid-row: 1; }
.sw-feature-detail .sw-feature-figure,
.sw-feature-detail .sw-feature-block--image .sw-feature-figure {
    width: 100%; min-width: 0; max-width: 100%; margin: 0; padding: 0;
    border: 0; border-radius: 0; overflow: visible; background: transparent;
}
.sw-feature-detail .sw-feature-block--image-layout-wide .sw-feature-figure { margin: 24px 0 0; }
.sw-feature-detail .sw-feature-block--image-layout-wide .sw-feature-figure--sized { width: min(100%, var(--feature-wide-image-width)); margin-right: auto; margin-left: auto; }
.sw-feature-detail .sw-feature-block--image-layout-wide .sw-feature-figure--sized .sw-feature-zoom,
.sw-feature-detail .sw-feature-block--image-layout-wide .sw-feature-figure--sized img { width: 100%; max-height: none; }
.sw-feature-detail .sw-feature-figure img,
.sw-feature-detail .sw-feature-block--image .sw-feature-figure img {
    display: block; width: auto; max-width: 100%; height: auto; max-height: 680px; aspect-ratio: auto; margin: 0 auto;
    object-fit: contain; border-radius: 0; background: transparent;
}
.sw-feature-detail .sw-feature-block--quote { padding: 8px 0 8px 28px; border-left: 3px solid #287265; }
.sw-feature-detail .sw-feature-quote { margin: 0; padding: 0; border: 0; }
.sw-feature-detail .sw-feature-quote p { margin: 0 0 16px; color: var(--feature-ink); font-size: 22px; font-weight: 700; line-height: 1.85; overflow-wrap: anywhere; }
.sw-feature-detail .sw-feature-quote footer { color: var(--feature-muted); font-size: 13px; line-height: 1.7; }
.sw-feature-detail .sw-feature-link-cards { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--feature-rule); }
.sw-feature-detail .sw-feature-link-card {
    display: grid; position: relative; gap: 8px; min-width: 0; min-height: 76px;
    padding: 18px 42px 18px 0; border: 0; border-bottom: 1px solid var(--feature-rule);
    border-radius: 0; background: transparent; color: var(--feature-ink); text-decoration: none; overflow-wrap: anywhere;
}
.sw-feature-detail .sw-feature-link-card span { color: var(--feature-muted); font-size: 12px; }
.sw-feature-detail .sw-feature-link-card__title { display: block; }
.sw-feature-detail .sw-feature-link-card strong { color: inherit; font-size: 16px; line-height: 1.6; }
.sw-feature-detail .sw-feature-link-card__external { display: none; color: inherit; font-size: 16px; font-style: normal; line-height: 1; }
.sw-feature-detail .sw-feature-link-card::after { content: "\2192"; position: absolute; right: 8px; top: 50%; transform: translateY(-50%); }
.sw-feature-detail .sw-feature-link-card:hover strong { text-decoration: underline; }
.sw-feature-detail a:focus-visible { outline: 2px solid #287265; outline-offset: 4px; }
.sw-feature-detail .sw-feature-video { margin-top: 24px; aspect-ratio: 16 / 9; background: #111; }
.sw-feature-detail .sw-feature-video iframe { display: block; width: 100%; height: 100%; border: 0; }
.sw-feature-detail .sw-feature-video--native { aspect-ratio: auto; max-width: 640px; margin-inline: auto; }
.sw-feature-detail .sw-feature-video--native video { display: block; width: 100%; max-height: 80vh; aspect-ratio: 4 / 5; object-fit: contain; }
.sw-feature-detail .sw-feature-video__credit { max-width: 640px; margin: 10px auto 0; font-size: 12px; color: #666; }
.sw-feature-detail .sw-feature-slider { margin-top: 24px; min-width: 0; visibility: visible; }
.sw-feature-detail .sw-feature-slider__figure img { width: 100%; aspect-ratio: 3 / 2; height: auto; object-fit: contain; }
.sw-feature-detail [data-gallery-layout="slider"] .sw-feature-slider { max-width: 640px; margin-inline: auto; }
.sw-feature-detail [data-gallery-layout="slider"] .sw-feature-slider__figure img { aspect-ratio: 2 / 3; max-height: 720px; }
.sw-feature-detail .sw-feature-slider:not(.is-initialized) .splide__list { display: grid; margin: 0; padding: 0; gap: 24px; list-style: none; transform: none !important; }
.sw-feature-detail .sw-feature-slider .splide__arrow { width: 44px; height: 44px; background: #1c2421; opacity: .9; }
.sw-feature-detail .sw-feature-slider .splide__arrow svg { fill: #fff; }
.sw-feature-detail .sw-feature-slider .splide__pagination { position: static; gap: 4px; padding: 12px; }
.sw-feature-detail .sw-feature-slider__count { display: block; margin: 0; color: var(--feature-muted); font-size: 12px; line-height: 1.5; text-align: center; }
.sw-feature-detail .sw-feature-slider .splide__pagination__page { width: 16px; height: 16px; margin: 4px; }
.sw-feature-detail .sw-feature-related { margin-top: 64px; padding-top: 32px; border-top: 1px solid var(--feature-rule); }
.sw-feature-detail .sw-feature-related__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.sw-feature-detail .sw-feature-card { min-width: 0; }
.sw-feature-detail .sw-feature-card__media img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
.sw-feature-detail .sw-feature-card__title { font-size: 18px; line-height: 1.6; overflow-wrap: anywhere; }
[data-bs-theme="dark"] .sw-feature-detail { --feature-ink: #f0f4f2; --feature-muted: #b5beb9; --feature-rule: #39433e; --feature-surface: #252b28; }
@media (max-width: 767px) {
    .sw-feature-detail.sw-feature-detail { width: calc(100% - 36px); padding: 24px 0 48px; }
    .sw-feature-detail .sw-feature-detail__hero { gap: 20px; padding-bottom: 28px; }
    .sw-feature-detail .sw-feature-detail__title { font-size: 26px; line-height: 1.5; }
    .sw-feature-detail .sw-feature-detail__media img { max-height: 420px; }
    .sw-feature-detail .sw-feature-detail__lead { font-size: 16px; }
    .sw-feature-detail .sw-feature-facts tr { display: grid; grid-template-columns: minmax(0,1fr); gap: 2px; padding: 12px 0; }
    .sw-feature-detail .sw-feature-facts th, .sw-feature-detail .sw-feature-facts td { width: 100%; padding: 0; }
    .sw-feature-detail .sw-feature-facts td:nth-child(2) { width: 100%; white-space: normal; }
    .sw-feature-detail .sw-feature-detail__blocks { gap: 36px; padding: 32px 0 0; }
    .sw-feature-detail .sw-feature-block__heading { font-size: 21px; margin-bottom: 16px; }
    .sw-feature-detail .sw-feature-block--content-two-column .sw-feature-block__copy,
    .sw-feature-detail .sw-feature-block--content-two-column-wide .sw-feature-block__copy { column-count: 1; column-rule: 0; }
    .sw-feature-detail .sw-feature-block--image-layout-split-left,
    .sw-feature-detail .sw-feature-block--image-layout-split-right { display: flex; flex-direction: column; align-items: stretch; gap: 22px; }
    .sw-feature-detail .sw-feature-block__content { order: 0; }
    .sw-feature-detail .sw-feature-figure { order: 1; }
    .sw-feature-detail .sw-feature-block--quote { padding-left: 18px; }
    .sw-feature-detail .sw-feature-quote p { font-size: 19px; }
    .sw-feature-detail .sw-feature-related__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .sw-feature-detail * { scroll-behavior: auto; } }

.sw-feature-index { width: min(1100px, calc(100% - 36px)); margin: 0 auto; padding: 32px 0 64px; }
.sw-feature-index .sw-feature-index__hero { display: block; margin: 0 0 32px; padding: 0; }
.sw-feature-index .sw-feature-index__eyebrow { color: #68716b; font-size: 12px; margin: 0 0 8px; letter-spacing: 0; }
.sw-feature-index .sw-feature-index__title { font-size: 32px; line-height: 1.4; font-weight: 700; margin: 0 0 12px; }
.sw-feature-index .sw-feature-index__lead { font-size: 14px; color: #68716b; margin: 0; }
.sw-feature-index .sw-feature-index__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.sw-feature-index .sw-feature-card { min-width: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.sw-feature-index .sw-feature-card__link { display: block; text-decoration: none; color: inherit; }
.sw-feature-index .sw-feature-card__media { aspect-ratio: 3 / 2; overflow: hidden; background: #f1f3f2; }
.sw-feature-index .sw-feature-card__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.sw-feature-index .sw-feature-card__body { padding: 16px 0; }
.sw-feature-index .sw-feature-card__meta { display: flex; flex-wrap: wrap; gap: 8px 12px; color: #68716b; font-size: 12px; }
.sw-feature-index .sw-feature-card__title { font-size: 20px; line-height: 1.6; font-weight: 700; margin: 12px 0; overflow-wrap: anywhere; }
.sw-feature-index .sw-feature-card__lead { font-size: 14px; line-height: 1.85; margin: 0; color: #626a66; }
@media(max-width: 767px) { .sw-feature-index .sw-feature-index__grid { grid-template-columns: 1fr; } }

/* Presentation choices are opt-in; existing features keep their original layout. */
.sw-feature-detail { --feature-accent: #303838; --feature-accent-soft: #f3f5f4; }
.sw-feature-detail[data-accent="red"] { --feature-accent: #ad2536; --feature-accent-soft: #fff3f4; }
.sw-feature-detail[data-accent="green"] { --feature-accent: #256044; --feature-accent-soft: #f0f7f2; }
.sw-feature-detail[data-accent="blue"] { --feature-accent: #235eaa; --feature-accent-soft: #f0f5fc; }
.sw-feature-detail[data-accent]:not([data-accent="neutral"]) .sw-feature-block__eyebrow,
.sw-feature-detail[data-accent]:not([data-accent="neutral"]) .sw-feature-detail__eyebrow { color: var(--feature-accent); }
.sw-feature-detail[data-hero-layout="photo"] .sw-feature-detail__media { order: 0; }
.sw-feature-detail[data-hero-layout="photo"] .sw-feature-detail__copy { order: 1; max-width: 900px; margin: 0 auto; }
.sw-feature-detail[data-hero-layout="photo"] .sw-feature-detail__media img { width: 100%; height: 360px; max-height: 40svh; object-fit: contain; background: #101212; }
.sw-feature-detail[data-hero-layout="photo"] .sw-feature-detail__hero { gap: 20px; }
.sw-feature-detail[data-hero-layout="photo"] .sw-feature-detail__lead { max-width: 900px; }
.sw-feature-detail[data-hero-layout="cover"] { --feature-reading-width: 780px; width: 100%; max-width: none; padding-top: 0; overflow-x: clip; }
.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__hero { display: grid; grid-template-columns: minmax(0,1fr); gap: 0; border: 0; padding-bottom: 0; max-width: 1440px; margin: 0 auto; }
.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__media { grid-area: 1 / 1; align-self: stretch; position: relative; background: #101212; margin: 0; }
.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__media img { width: 100%; height: 100%; max-height: none; position: absolute; inset: 0; object-fit: cover; object-position: center 60%; padding: 0; }
.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__copy { grid-area: 1 / 1; position: relative; z-index: 1; align-self: start; width: 100%; margin: 0; padding: 40px 4% 290px; pointer-events: none; min-height: 620px; }
.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__title { color: #fff; font-size: 52px; max-width: 620px; line-height: 1.18; text-shadow: 0 2px 16px #0008; }
.sw-feature-detail__title-name, .sw-feature-detail__title-subtitle { display: block; }
.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__title-subtitle { margin-top: 12px; font-size: 36px; line-height: 1.4; text-wrap: balance; }
.sw-feature-detail.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__eyebrow,
.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__meta { color: #e4e9e7; }
.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__media figcaption { position: absolute; top: 100%; left: 50%; right: auto; width: min(var(--feature-reading-width), calc(100% - 48px)); padding: 16px 0 0; color: var(--feature-muted); font-size: 11px; text-align: left; transform: translateX(-50%); }
.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__lead { grid-area: 2 / 1; width: min(var(--feature-reading-width), calc(100% - 48px)); max-width: none; margin: 56px auto 0; }
.sw-feature-detail[data-hero-layout="cover"] > .sw-feature-detail__blocks,
.sw-feature-detail[data-hero-layout="cover"] > .sw-feature-related { width: min(1100px, calc(100% - 48px)); margin-left: auto; margin-right: auto; }
.sw-feature-detail[data-hero-layout="cover"] > .sw-feature-toc { width: min(var(--feature-reading-width), calc(100% - 48px)); margin-left: auto; margin-right: auto; }
.sw-feature-detail .sw-feature-block { scroll-margin-top: 100px; }
.sw-feature-toc { margin: 24px 0 0; padding: 8px 0 16px; border-bottom: 1px solid var(--feature-rule); }
.sw-feature-toc ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 32px; list-style: none; padding: 0; margin: 0; counter-reset: feature-chapter; }
.sw-feature-toc li { min-width: 0; counter-increment: feature-chapter; }
.sw-feature-toc a { display: grid; grid-template-columns: 26px 1fr; gap: 10px; align-items: baseline; min-height: 48px; padding: 12px 0; color: var(--feature-ink); font-size: 14px; line-height: 1.7; text-decoration: none; overflow-wrap: anywhere; }
.sw-feature-toc a::before { content: counter(feature-chapter, decimal-leading-zero); color: var(--feature-accent); font-size: 12px; }
.sw-feature-toc a:hover { text-decoration: underline; text-underline-offset: 4px; }
.sw-feature-toc a[aria-current="location"] { font-weight: 700; color: var(--feature-accent); }
.sw-feature-reader-nav { position: fixed; z-index: 1040; right: 24px; bottom: max(16px, env(safe-area-inset-bottom)); width: min(420px, calc(100% - 48px)); color: var(--feature-ink); background: var(--feature-surface); border: 1px solid var(--feature-rule); border-radius: 6px; box-shadow: 0 4px 18px rgb(0 0 0 / 10%); }
.sw-feature-reader-nav[hidden] { display: none; }
.sw-feature-reader-nav[data-compact="true"] { width: 96px; }
.sw-feature-reader-nav[data-compact="true"] summary { grid-template-columns: 1fr 18px; gap: 4px; padding-right: 10px; padding-left: 12px; }
.sw-feature-reader-nav[data-compact="true"] .sw-feature-reader-nav__current { display: none; }
.sw-feature-reader-nav[open] { width: min(420px, calc(100% - 32px)); }
.sw-feature-reader-nav[open] .sw-feature-reader-nav__current { display: block; }
.sw-feature-reader-nav summary { display: grid; grid-template-columns: auto minmax(0,1fr) 18px; gap: 12px; align-items: center; min-height: 48px; padding: 10px 14px; cursor: pointer; list-style: none; font-size: 13px; }
.sw-feature-reader-nav summary::-webkit-details-marker { display: none; }
.sw-feature-reader-nav summary:focus-visible { outline: 3px solid var(--feature-accent); outline-offset: 3px; }
.sw-feature-reader-nav__label { font-weight: 700; color: var(--feature-accent); }
.sw-feature-reader-nav__current { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw-feature-reader-nav__chevron { text-align: center; font-size: 20px; line-height: 1; }
.sw-feature-reader-nav[open] .sw-feature-reader-nav__chevron { transform: rotate(180deg); }
.sw-feature-reader-nav__panel { position: absolute; bottom: calc(100% + 8px); left: 0; width: 100%; padding: 8px 16px; max-height: min(55svh, 380px); overflow-y: auto; overscroll-behavior: contain; background: var(--feature-surface); border: 1px solid var(--feature-rule); border-radius: 6px; box-shadow: 0 4px 18px rgb(0 0 0 / 10%); }
.sw-feature-reader-nav ol { list-style: none; margin: 0; padding: 0; counter-reset: reader-chapter; }
.sw-feature-reader-nav li { counter-increment: reader-chapter; }
.sw-feature-reader-nav li + li { border-top: 1px solid var(--feature-rule); }
.sw-feature-reader-nav a { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 8px; min-height: 48px; padding: 12px 0; color: var(--feature-ink); font-size: 13px; line-height: 1.7; text-decoration: none; overflow-wrap: anywhere; }
.sw-feature-reader-nav a::before { content: counter(reader-chapter, decimal-leading-zero); color: var(--feature-muted); }
.sw-feature-reader-nav a[aria-current="location"] { color: var(--feature-accent); font-weight: 700; }
.sw-feature-reader-nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.sw-feature-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1100; background: transparent; pointer-events: none; }
.sw-feature-progress[hidden] { display: none; }
.sw-feature-progress span { display: block; height: 100%; background: var(--feature-accent); transform-origin: left; transform: scaleX(0); }
.sw-feature-detail[data-quote-style="statement"] .sw-feature-block--quote { max-width: 1100px; padding: 42px 48px; border: 0; background: #111315; color: #fff; text-align: left; }
.sw-feature-detail[data-quote-style="statement"] .sw-feature-quote { max-width: none; margin: 0; padding: 0; border: 0; }
.sw-feature-detail[data-quote-style="statement"] .sw-feature-quote::before { display: none; }
.sw-feature-detail[data-quote-style="statement"] .sw-feature-quote p { margin: 0; color: #fff; font-size: 28px; line-height: 1.7; }
.sw-feature-detail[data-quote-style="statement"] .sw-feature-quote footer { margin-top: 14px; color: #b8bfbc; text-align: left; }
.sw-feature-detail[data-links-style="tiles"] .sw-feature-link-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; border: 0; }
.sw-feature-detail[data-links-style="tiles"] .sw-feature-link-card { border: 1px solid var(--feature-rule); border-top: 3px solid var(--feature-accent); border-radius: 4px; padding: 24px 48px 24px 20px; min-height: 120px; background: var(--feature-accent-soft); }
.sw-feature-detail[data-links-style="tiles"] .sw-feature-link-card::after { right: 18px; color: var(--feature-accent); }
.sw-feature-detail[data-links-style="minimal"] .sw-feature-link-cards { display: grid; grid-template-columns: minmax(0,1fr); gap: 0; border: 0; }
.sw-feature-detail[data-links-style="minimal"] .sw-feature-link-card {
    display: grid; gap: 10px; min-height: 0; padding: 22px 0; border: 0; border-radius: 0;
    background: transparent; color: var(--feature-ink);
}
.sw-feature-detail[data-links-style="minimal"] .sw-feature-link-card + .sw-feature-link-card { border-top: 1px solid var(--feature-rule); }
.sw-feature-detail[data-links-style="minimal"] .sw-feature-link-card > span:first-child { color: var(--feature-muted); font-size: 12px; font-weight: 700; }
.sw-feature-detail[data-links-style="minimal"] .sw-feature-link-card__title {
    display: flex; align-items: center; gap: 10px; width: fit-content; max-width: 100%;
    color: var(--feature-ink); font-family: inherit; font-size: inherit; font-weight: inherit;
    letter-spacing: 0; text-transform: none;
}
.sw-feature-detail[data-links-style="minimal"] .sw-feature-link-card strong { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.sw-feature-detail[data-links-style="minimal"] .sw-feature-link-card__external { display: inline-block; flex: 0 0 auto; }
.sw-feature-detail .sw-feature-link-card--external::after { content: "\2197"; }
.sw-feature-detail[data-links-style="minimal"] .sw-feature-link-card::after { display: none; }
.sw-feature-detail[data-links-style="minimal"] .sw-feature-link-card:hover strong { text-decoration-thickness: 2px; }
.sw-feature-detail .sw-feature-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.sw-feature-detail .sw-feature-gallery .sw-feature-figure { margin: 0; }
.sw-feature-detail .sw-feature-gallery img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; background: var(--feature-surface); }
.sw-feature-detail [data-gallery-layout="grid"] .sw-feature-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.sw-feature-detail [data-gallery-layout="grid"] .sw-feature-gallery img { aspect-ratio: 4 / 5; background: #f5f5f5; }
.sw-feature-detail .sw-feature-gallery .sw-feature-figure { background: transparent; }
.sw-feature-detail .sw-feature-block--video > .sw-feature-block__heading,
.sw-feature-detail .sw-feature-block--slider > .sw-feature-block__heading { max-width: 780px; margin-right: auto; margin-left: auto; }
.sw-feature-detail [data-gallery-layout="slider"] .sw-feature-slider__figure { width: min(100%, var(--feature-slide-image-width, 100%)); margin-right: auto; margin-left: auto; }
.sw-feature-detail .sw-feature-block--slider + .sw-feature-block { margin-top: -16px; }
.sw-feature-detail .sw-feature-video--native { position: relative; }
.sw-feature-detail .sw-feature-video__play { position: absolute; top: 50%; left: 50%; display: grid; place-items: center; width: 64px; height: 64px; padding: 0 0 0 4px; transform: translate(-50%, -50%); border: 1px solid #fff; border-radius: 50%; background: rgb(0 0 0 / 72%); color: #fff; font-size: 25px; cursor: pointer; }
.sw-feature-detail .sw-feature-video__play[hidden] { display: none; }
.sw-feature-detail .sw-feature-video__duration { position: absolute; right: 12px; bottom: 48px; padding: 4px 8px; border-radius: 3px; background: rgb(0 0 0 / 75%); color: #fff; font-size: 12px; pointer-events: none; }
.sw-feature-detail .sw-feature-video__duration[hidden] { display: none; }
.sw-feature-detail .sw-feature-zoom { display: block; position: relative; padding: 0; margin: 0 auto; width: 100%; border: 0; border-radius: 0; background: transparent; cursor: zoom-in; color: inherit; }
.sw-feature-detail .sw-feature-block--image .sw-feature-zoom { width: fit-content; max-width: 100%; }
.sw-feature-detail .sw-feature-zoom::after { content: "+"; display: grid; place-items: center; position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; background: #fff; color: #161a18; border: 1px solid #d4dbd6; border-radius: 50%; font: 24px/1 sans-serif; }
.sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__media .sw-feature-zoom { position: absolute; inset: 0; }
.sw-feature-detail a:focus-visible, .sw-feature-detail button:focus-visible { outline: 3px solid var(--feature-accent); outline-offset: 4px; }
.sw-feature-lightbox { box-sizing: border-box; width: min(1400px, calc(100% - 32px)); height: calc(100dvh - 32px); max-width: none; max-height: none; padding: 16px; border: 0; border-radius: 4px; background: #111; color: white; overflow: hidden; }
.sw-feature-lightbox[open] { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: 44px minmax(0,1fr) auto auto; gap: 12px; }
.sw-feature-lightbox:not([open]) { display: none; }
.sw-feature-lightbox::backdrop { background: rgb(0 0 0 / 80%); }
.sw-feature-lightbox__toolbar { display: flex; align-items: center; gap: 8px; grid-row: 1; }
.sw-feature-lightbox__toolbar span { margin-right: auto; font-size: 14px; }
.sw-feature-lightbox__toolbar button { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0; border: 1px solid #666; border-radius: 4px; background: #222; color: #fff; font: 26px/1 sans-serif; cursor: pointer; }
.sw-feature-lightbox__toolbar button[hidden] { display: none; }
.sw-feature-lightbox button:focus-visible { outline: 2px solid white; outline-offset: 2px; }
.sw-feature-lightbox > img { grid-area: 2 / 1; width: 100%; height: 100%; object-fit: contain; min-height: 0; }
.sw-feature-lightbox > img[hidden], .sw-feature-lightbox__message[hidden] { display: none; }
.sw-feature-lightbox__message { grid-area: 2 / 1; margin: auto; }
.sw-feature-lightbox__caption { grid-row: 3; font-size: 13px; line-height: 1.6; margin: 0; max-height: 72px; overflow: auto; overflow-wrap: anywhere; }
.sw-feature-lightbox__thumbnails { grid-row: 4; display: flex; gap: 8px; width: fit-content; max-width: 100%; min-width: 0; margin: 0 auto; padding: 4px; overflow-x: auto; overscroll-behavior-x: contain; }
.sw-feature-lightbox__thumbnails[hidden] { display: none; }
.sw-feature-lightbox__thumbnail { display: block; flex: 0 0 72px; width: 72px; height: 64px; padding: 3px; border: 2px solid transparent; border-radius: 4px; background: #303030; cursor: pointer; }
.sw-feature-lightbox__thumbnail[aria-pressed="true"] { border-color: #fff; background: #595959; }
.sw-feature-lightbox__thumbnail img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
@media (max-width: 767px) {
    .sw-feature-detail[data-hero-layout="photo"] .sw-feature-detail__media img { height: 260px; max-height: 38svh; }
    .sw-feature-detail.sw-feature-detail[data-hero-layout="cover"] { width: 100%; padding-top: 0; }
    .sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__copy { width: 100%; margin: 0; padding: 30px 22px 76%; min-height: 520px; }
    .sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__title { font-size: 40px; max-width: 100%; }
    .sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__title-subtitle { font-size: 26px; line-height: 1.45; }
    .sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__media { background: #0b0c0d; }
    .sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__media img { width: 140%; max-width: none; height: auto; top: auto; left: -20%; bottom: 0; padding: 0; object-fit: contain; mask-image: linear-gradient(to bottom, transparent, #000 22%); }
    .sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__media .sw-feature-zoom { overflow: hidden; }
    .sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__media figcaption { top: 100%; left: 18px; right: 18px; width: auto; max-width: none; transform: none; }
    .sw-feature-detail[data-hero-layout="cover"] > .sw-feature-detail__blocks,
    .sw-feature-detail[data-hero-layout="cover"] > .sw-feature-related,
    .sw-feature-detail[data-hero-layout="cover"] > .sw-feature-toc,
    .sw-feature-detail[data-hero-layout="cover"] .sw-feature-detail__lead { width: calc(100% - 36px); }
    .sw-feature-toc ol { grid-template-columns: minmax(0,1fr); }
    .sw-feature-reader-nav { right: 16px; width: calc(100% - 32px); }
    .sw-feature-detail[data-quote-style="statement"] .sw-feature-block--quote { padding: 28px 22px; }
    .sw-feature-detail[data-quote-style="statement"] .sw-feature-quote p { font-size: 22px; line-height: 1.7; }
    .sw-feature-detail[data-links-style="tiles"] .sw-feature-link-cards,
    .sw-feature-detail .sw-feature-gallery { grid-template-columns: minmax(0,1fr); }
    .sw-feature-detail [data-gallery-layout="grid"] .sw-feature-gallery { grid-template-columns: minmax(0,1fr); }
    .sw-feature-lightbox { width: 100%; height: 100dvh; margin: 0; border-radius: 0; padding: max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom)); }
    .sw-feature-lightbox__thumbnail { flex-basis: 60px; width: 60px; height: 56px; }
}
[data-bs-theme="dark"] .sw-feature-detail { --feature-accent: #bfcac4; --feature-accent-soft: #202523; }
[data-bs-theme="dark"] .sw-feature-detail[data-accent="red"] { --feature-accent: #ffa7b0; }
[data-bs-theme="dark"] .sw-feature-detail[data-accent="green"] { --feature-accent: #9cd5b2; }
[data-bs-theme="dark"] .sw-feature-detail[data-accent="blue"] { --feature-accent: #a6c8ff; }
