:root{color-scheme:dark;--bg:#0c0715;--surface:#161024;--raised:#241333;--text:#f8f5ff;--muted:#bfb6cd;--border:#523369;--accent:#13e2f3;--pink:#ff48d8;--shadow:0 6px 25px #0003;font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif}
:root[data-theme=light]{color-scheme:light;--bg:#fff;--surface:#fff;--raised:#f6f0fa;--text:#20162c;--muted:#665c72;--border:#d8c5e3;--accent:#006f82;--pink:#b10083;--shadow:0 4px 18px #26113d10}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-bottom:100px}body{margin:0;background:var(--bg);color:var(--text);line-height:1.65}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button{color:inherit;background:var(--raised);border:1px solid var(--border);border-radius:10px;padding:8px 13px;min-height:44px}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button:hover{border-color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button[aria-pressed=true]{color:var(--pink)}[hidden]{display:none!important}.skip{position:absolute;left:12px;top:-100px;z-index:100;background:var(--surface);padding:12px}.skip:focus{top:12px}
.masthead{position:relative;background:#e00094;overflow:hidden;border-bottom:1px solid #ff63d9}.brand-wrap{position:relative;max-width:1080px;margin:auto;height:250px;display:flex;align-items:center}.brand{position:relative;z-index:1;width:64%;padding:0 8px 0 22px;text-align:center;color:white!important}.brand img{width:100%;height:auto;display:block;filter:drop-shadow(0 3px 10px #65005c44)}.brand p{font-size:18px;letter-spacing:.12em;margin:-5px 0 12px;font-weight:650;text-shadow:0 1px 5px #7d004e}.characters{position:absolute;width:48%;height:100%;right:-10px;object-fit:cover;object-position:center 38%;mask-image:linear-gradient(to right,transparent,#000 12%,#000 94%,transparent)}
.page-shell{max-width:1010px;margin:auto;padding:0 25px}.utility{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 0}.preview-label{color:var(--muted);font-size:12px}.theme-button{font-size:14px;white-space:nowrap;background:transparent;border-color:var(--border);min-height:38px;padding:4px 11px}.categories{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:23px}.category{display:flex;justify-content:center;align-items:center;text-align:center;min-height:58px;border:1px solid var(--border);border-radius:15px;background:var(--raised);font-size:19px;font-weight:700;box-shadow:inset 0 1px 0 #ffffff0a}.category[aria-current=page]{background:linear-gradient(110deg,#23f0ed,#0abbee);border-color:#93fcff;color:#002b37;box-shadow:0 0 17px #08deed44}.category:hover{border-color:var(--accent)}
.feature-card{position:relative;display:grid;grid-template-columns:1.05fr 1fr;overflow:hidden;border:1px solid #ae4ccf;border-radius:19px;min-height:285px;box-shadow:var(--shadow);background:#171025;color:#fff!important}.feature-copy{position:relative;z-index:1;padding:23px 25px;background:linear-gradient(90deg,#181024,#181024e6 75%,transparent);margin-right:-50px}.feature-copy h2{font-size:clamp(26px,4.8vw,46px);line-height:1.35;letter-spacing:.015em;max-width:8em;margin:13px 0 12px}.feature-copy p{max-width:26em;font-size:16px;color:#e0d8e8;margin:0 30px 12px 0}.tag{display:inline-block;font-size:13px;line-height:1.4;background:#cf009b;color:white;padding:4px 12px;border-radius:7px}.sample{font-size:12px;color:var(--muted)}.feature-copy .sample{color:#d5c5e3;margin-left:8px}.feature-picture{height:100%;width:100%;position:relative;overflow:hidden}.art{position:relative;overflow:hidden;display:block;background:#211134;aspect-ratio:2.26}.art img{position:absolute;max-width:none;height:auto;display:block;pointer-events:none}.feature-picture .art{position:absolute;inset:0;aspect-ratio:auto}.feature-picture .art img{height:100%;width:auto!important;top:0!important;left:0!important;object-fit:cover}.feature-picture .art{background-image:none;background-size:216% auto;background-position:69% 29.2%}.feature-picture .art img{display:none}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 15px;padding-top:18px;border-top:1px solid var(--border)}h1{font-size:27px;margin:0;line-height:1.5;padding-left:17px;position:relative}h1:before{content:'';position:absolute;width:6px;border-radius:5px;background:var(--accent);left:0;top:5px;bottom:5px;box-shadow:0 0 12px #13e2f333}#result-count{font-size:14px;color:var(--muted);white-space:nowrap}.article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.card{min-width:0;border:1px solid var(--border);border-radius:17px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow);position:relative;display:flex;flex-direction:column}.card-link{display:block;flex:1}.card:hover{border-color:var(--pink)}.card-link:hover{color:var(--text)}.card-body{padding:13px 17px 4px}.card .category-label{display:inline-block;background:linear-gradient(100deg,#9f007d,#bf009c);border:1px solid #ee70d9;color:white;padding:0 10px;border-radius:12px;font-size:13px;margin-bottom:6px}.card:nth-child(even) .category-label{background:#006a87;border-color:#18d9ef}.card h2{font-size:24px;line-height:1.4;margin:0 0 6px}.card-summary{font-size:16px;line-height:1.6;margin:0;color:var(--muted)}.card-meta{padding:6px 12px 10px 17px;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.save-button{margin-left:auto;border:0;background:transparent;padding:8px;display:flex;align-items:center;justify-content:center;min-width:44px;border-radius:8px}.icon{display:block;width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.save-button[aria-pressed=true] .icon{fill:var(--pink);stroke:var(--pink)}.view-description{color:var(--muted);font-size:16px;margin:0 0 20px}.site-footer{text-align:center;padding:30px 0 130px;color:var(--muted);font-size:14px}.site-footer>p:first-child{color:var(--text);font-size:19px;font-weight:700;margin-bottom:2px}.small{font-size:12px;line-height:1.8}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,1010px);z-index:10;display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--border);border-bottom:0;border-radius:22px 22px 0 0;padding:10px 8px max(9px,env(safe-area-inset-bottom));box-shadow:0 -6px 24px #08031233}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:57px;font-size:14px;position:relative;color:var(--muted)}.bottom-nav a[aria-current=page]{color:var(--pink)}.bottom-nav a[aria-current=page]:after{content:'';position:absolute;bottom:-5px;height:3px;width:48px;background:var(--pink);border-radius:5px}.bottom-nav .icon{height:29px;width:29px}
#search-panel{margin:6px 0 25px;padding:19px;background:var(--surface);border:1px solid var(--border);border-radius:16px}#search-panel label{display:block;font-weight:700;margin-bottom:9px}.search-row{display:flex;gap:9px}.search-row input{width:100%;min-width:0;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:9px;padding:10px 12px;font-size:16px}.search-row button{background:var(--accent);color:var(--bg);white-space:nowrap;font-weight:700}.empty{padding:35px 20px;text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:16px}.empty h2{font-size:21px}.empty p{color:var(--muted)}.empty a{color:var(--accent);text-decoration:underline}
dialog{padding:0;border:1px solid var(--border);border-radius:18px;color:var(--text);background:var(--surface);width:min(760px,calc(100% - 28px));max-height:90dvh;box-shadow:0 12px 80px #0008}dialog::backdrop{background:#070311cf;backdrop-filter:blur(6px)}.reader-tools{position:sticky;top:0;z-index:3;background:var(--surface);display:flex;justify-content:space-between;gap:12px;padding:10px 15px;border-bottom:1px solid var(--border)}.reader-tools button{font-size:14px}#reader-content{padding:22px 30px 35px}#reader-content .art{border-radius:12px;margin:20px 0}#reader-title{font-size:30px;line-height:1.5;margin:10px 0}#reader-content p{line-height:1.95;font-size:17px}#reader-content .reader-notice{font-size:14px;background:var(--raised);padding:10px 13px;border-left:3px solid var(--pink)}#reader-content .reader-meta{font-size:13px;color:var(--muted)}#reader-content a{color:var(--accent);text-decoration:underline}.toast{position:fixed;z-index:100;bottom:100px;left:50%;transform:translateX(-50%);width:max-content;max-width:90%;padding:11px 20px;border:1px solid var(--accent);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-size:14px}
@media(max-width:600px){.brand-wrap{height:174px}.brand{width:66%;padding:0 0 0 8px}.brand p{font-size:12px;line-height:1.6;letter-spacing:0;margin:0 0 0 6px;max-width:19em}.characters{width:49%;right:-9px;object-position:center 35%}.page-shell{padding:0 13px}.utility{padding:10px 0}.preview-label{font-size:12px;max-width:51%}.theme-button{font-size:12px;min-height:36px}.categories{gap:7px;margin-bottom:16px}.category{font-size:14px;border-radius:10px;min-height:47px}.feature-card{min-height:215px;grid-template-columns:1.05fr 1fr;border-radius:14px}.feature-copy{padding:15px 13px;margin-right:-30px}.feature-copy h2{font-size:27px;margin:12px 0 8px}.feature-copy p{font-size:14px;line-height:1.65;margin:0 22px 5px 0}.feature-copy .sample{display:block;margin:3px 0 0;font-size:12px}.feature-picture .art{background-size:240% auto;background-position:66% 29.5%}.section-heading{margin:17px 0 12px;padding-top:14px}h1{font-size:22px;padding-left:13px}.article-grid{gap:11px}.card{border-radius:12px}.card-body{padding:10px 10px 0}.card h2{font-size:18px;line-height:1.5}.card-summary{font-size:14px;line-height:1.6}.card .category-label{font-size:12px;padding:0 8px}.card-meta{gap:4px;flex-wrap:wrap;padding:0 5px 5px 10px;font-size:12px}.card-meta time{display:none}.card .art{aspect-ratio:1.95}.card-meta .save-button{min-width:40px}.bottom-nav{border-radius:18px 18px 0 0}.bottom-nav a{font-size:13px}.site-footer{padding-bottom:112px}#reader-content{padding:17px 20px 28px}#reader-title{font-size:25px}#reader-content p{font-size:16px}.reader-tools{padding:8px}.reader-tools button{padding:8px;font-size:13px}}
@media(max-width:350px){.category{font-size:12px}.brand-wrap{height:156px}.card h2{font-size:16px}.feature-copy h2{font-size:24px}.feature-copy p{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* 元画像の挿絵領域だけを表示し、モックの見出しを混ぜない。 */
.feature-picture .art{aspect-ratio:auto!important;background-size:auto 514.46%;background-position:68% 29.32%;background-repeat:no-repeat}.brand img{mix-blend-mode:screen}
.brand{mix-blend-mode:screen}
:root[data-theme=light] .feature-card{background:var(--surface);color:var(--text)!important}
:root[data-theme=light] .feature-copy{background:linear-gradient(90deg,#fff,#fffffff0 75%,transparent)}
:root[data-theme=light] .feature-copy p,:root[data-theme=light] .feature-copy .sample{color:var(--muted)}
@media(max-width:600px){.category{font-size:13px}.brand p{font-size:12px}}
.characters{object-fit:contain}
.feature-picture .art-direct{background:none}
.feature-picture .art-direct img{display:block;position:static;width:100%!important;height:100%;object-fit:cover;object-position:32% center}
/* Light-v2 articles extend the approved theme. */
.categories.has-extra{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}
.categories:not(.has-extra){grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}
.preview-label a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.card-text{border-top:3px solid var(--pink)}
.card-text .card-body{padding-top:18px}
.card-text .card-meta{flex-wrap:wrap}
.draft-badge{font-size:12px;border:1px solid var(--border);border-radius:5px;padding:1px 6px;color:var(--pink);white-space:nowrap}
.ready-badge{color:var(--accent)}
.draft-date{font-size:12px}.card-meta .draft-date time{display:inline}
.card-meta time{display:inline}
#reader-content{overflow-wrap:anywhere}
#reader-content .reader-byline{font-size:15px;line-height:1.7;margin:16px 0 10px;font-weight:700}
.reader-byline span{display:block;font-size:13px;font-weight:400;color:var(--muted)}
.reader-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.article-tags{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 24px}
#reader-content .tag-link{font-size:14px;padding:5px 9px;border:1px solid var(--border);border-radius:8px;text-decoration:none;min-height:36px;display:flex;align-items:center}
#reader-content .tag{color:white;text-decoration:none}
#reader-content .article-prose p{line-height:1.85;margin:0 0 1.3em}
#reader-content .article-prose h2{font-size:22px;line-height:1.6;margin:1.8em 0 .7em}
.source-ref{font-size:.75em;line-height:0;margin:0 .1em}
#reader-content .source-ref a{padding:0 .15em;text-decoration:underline}
#reader-content .reference-card{display:block;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;background:var(--raised);padding:16px 18px;font-size:15px;line-height:1.8;text-decoration:none}
#reader-content .reference-card:after{content:' ↗';white-space:nowrap}
#reader-content .reference-card:hover{border-color:var(--accent)}
.reader-note{margin-top:32px;padding:15px 17px;background:var(--raised);border-left:3px solid var(--pink);border-radius:0 10px 10px 0}
#reader-content .reader-note h2{font-size:16px;margin:0 0 8px}
#reader-content .reader-note p{font-size:14px;line-height:1.8;margin:0}
.reader-sources{border-top:1px solid var(--border);margin-top:25px;padding-top:15px}
.reader-sources h2,.related-articles h2{font-size:20px;line-height:1.6}
.reader-sources ol{padding-left:1.4em;font-size:14px;line-height:1.8}
.reader-sources li{padding-left:3px;margin-bottom:12px}
#reader-content .source-dates{font-size:13px;color:var(--muted);line-height:1.8}
.related-articles{margin-top:28px;padding-top:15px;border-top:1px solid var(--border)}
#reader-content .related-articles a{display:block;border:1px solid var(--border);padding:14px 15px;margin:10px 0;border-radius:10px;text-decoration:none;color:var(--text);font-size:16px;line-height:1.7}
.related-articles a span{display:block;font-size:12px;color:var(--pink);margin-bottom:5px}
.related-articles a:hover{border-color:var(--accent)}
@media(max-width:600px){
 .categories.has-extra{grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:7px}
 .card-text .card-body{padding:12px 11px 0}
 #reader-content .article-prose h2{font-size:20px}
 .reader-tools{flex-wrap:wrap}
 .card-text .card-meta{row-gap:4px;padding-top:9px}
 .draft-date{width:100%;order:3}
}
@media(max-width:380px){#reader-content{padding:16px 16px 24px}#reader-title{font-size:23px}.reader-tools button{font-size:12px}}
/* Linked editorial imagery: source links stay separate from article navigation. */
.article-media{margin:26px 0;min-width:0}
.media-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px;margin:26px 0}
.media-gallery .article-media{margin:0}
.media-gallery .article-media:nth-child(odd):last-child{grid-column:1/-1}
@media(max-width:600px){.media-gallery{grid-template-columns:1fr;gap:24px}.media-gallery .article-media{margin:0}}
.media-link{display:block;position:relative;border-radius:10px;overflow:hidden;background:#161024;line-height:0}
.article-media img{display:block;width:100%;height:auto;max-width:100%}
.media-kind,.media-source-label{position:absolute;bottom:9px;background:#110b20e8;color:#fff;font-size:12px;line-height:1.5;padding:4px 7px;border-radius:5px}
.media-kind{left:9px}.media-source-label{right:9px}
.article-media figcaption{margin-top:9px;font-size:14px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}
.media-caption,.media-credit{display:block}.media-credit{margin-top:4px;font-size:12px}
.media-credit summary{cursor:pointer;min-height:28px;padding:4px 0}
.media-credit a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.media-card{margin:0}.media-card .media-link{border-radius:0}
.media-card img{aspect-ratio:16/10;object-fit:cover}
.media-card.media-preserve img{aspect-ratio:auto;object-fit:contain}
.media-body.media-portrait{width:min(100%,420px);margin-left:auto;margin-right:auto}
.media-body[data-media-id="rezo-010-app"]{width:min(100%,326px)}
.media-card figcaption{padding:0 12px;margin:7px 0 0}
.media-card .media-credit{font-size:12px;line-height:1.5}
.media-card .media-link:hover img{filter:brightness(1.08)}
#reader-content .media-link{color:inherit;text-decoration:none}
#reader-content .media-credit a{color:var(--muted)}
.primary-source{border-left:3px solid var(--accent);background:var(--raised);padding:13px 15px;margin:20px 0 24px;border-radius:0 8px 8px 0;overflow-wrap:anywhere}
.primary-source>span{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:5px}
.primary-source>a{font-size:14px;font-weight:650;line-height:1.7}
.primary-source small{display:block;font-size:12px;line-height:1.7;color:var(--muted);margin-top:7px}
@media(max-width:600px){.media-card .media-source-label{font-size:12px;right:5px;bottom:5px}.media-card .media-kind{font-size:12px;left:5px;bottom:5px;padding:4px 5px}.media-card figcaption{padding:0 10px}.article-media figcaption{font-size:13px}.media-card .media-credit{font-size:12px}.media-cover .media-source-label{font-size:12px}.article-media{margin:22px 0}.media-card{margin:0}}

/* The age check covers the entry screen until the visitor chooses YES. */
#age-gate{position:fixed;inset:0;z-index:200;overflow:auto;background:var(--bg);display:grid;align-items:center;justify-items:center;padding:32px 20px;overscroll-behavior:contain}
.age-card{width:min(100%,460px);padding:32px 28px 36px;text-align:center;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--pink);border-radius:20px;box-shadow:var(--shadow)}
.age-logo{display:block;width:min(100%,280px);height:auto;margin:0 auto 24px}
#age-title{font-size:clamp(1.4rem,5.5vw,1.8rem);line-height:1.5;margin:0 0 12px;overflow-wrap:anywhere}
#age-title:focus{outline:none}
#age-description{font-size:1rem;line-height:1.8;color:var(--muted);margin:0 0 28px}
.age-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.age-actions button,.age-actions a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:80px;padding:12px 8px;border:1px solid var(--border);border-radius:12px;font-size:1.35rem;line-height:1.5;font-weight:700}
.age-actions span{font-size:.875rem;font-weight:400}
#age-yes{background:var(--accent);border-color:var(--accent);color:var(--bg)}
#age-yes:disabled{opacity:.5;cursor:default}
#age-yes:hover:not(:disabled){filter:brightness(1.1)}
#age-no{background:var(--raised);color:var(--text)}
#age-no:hover{border-color:var(--pink)}
.age-card noscript p{font-size:.875rem;color:var(--muted);margin:24px 0 0}
@media(max-width:380px){.age-card{padding:28px 18px}.age-actions{gap:10px}}
