:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;color:#173a50;background:#f5f8fa;font-synthesis:none;--blue:#074d78;--red:#bf263f}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c32d47;outline-offset:4px}[hidden]{display:none!important}.skip{position:absolute;top:-100px;z-index:10;background:white;padding:16px}.skip:focus{top:10px}header{background:white;border-top:5px solid var(--blue);border-bottom:1px solid #e0e8ed}.header-inner{max-width:1200px;margin:auto;padding:24px 32px;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;display:flex;align-items:center;gap:14px}.brand strong{font-size:30px;letter-spacing:3px;font-weight:850;color:var(--blue)}.dot{color:var(--red)}.brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:3px}.edition{font-size:10px;letter-spacing:1.8px;display:flex;align-items:center;gap:12px}.edition i{width:22px;height:2px;background:var(--red)}main{max-width:1200px;margin:auto;padding:0 32px 72px}.intro{display:flex;justify-content:space-between;align-items:center;padding:46px 0 34px;gap:20px}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--blue);font-weight:700;margin:0 0 14px}.eyebrow:before{content:'';display:inline-block;width:24px;height:2px;background:var(--red);vertical-align:middle;margin-right:12px}h1{font-size:34px;letter-spacing:2px;line-height:1.6;margin:0;font-weight:750}.intro-copy{font-size:13px;color:#536d7e;line-height:1.8;margin:12px 0 0}.mobile-break{display:none}.intro-count{text-align:center;display:flex;flex-direction:column;padding:0 30px;border-left:1px solid #cadbe5}.intro-count b{font-size:66px;font-weight:300;line-height:1.15;color:var(--blue)}.intro-count span{font-size:9px;letter-spacing:2px;margin-top:8px}.brand-character-slot{display:flex;align-items:center}.brand-character{max-width:100px;max-height:110px;object-fit:contain}.brand-logo{max-width:90px;max-height:50px;object-fit:contain}.search-panel{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;background:white;border:1px solid #dbe5ec;border-radius:12px;padding:22px 26px;box-shadow:0 4px 18px #173a5004}.field{min-width:0}label{display:block;font-size:12px;font-weight:700;margin-bottom:9px}.search-wrap{position:relative}.search-wrap>span{position:absolute;left:15px;top:5px;font-size:28px;color:#718999}input,select{width:100%;height:48px;border:1px solid #c9d9e3;border-radius:6px;background:#fcfdfe;color:#173a50;font-size:14px;padding:0 13px}input{padding-left:43px}input::placeholder{color:#71818c}.list-heading{display:flex;justify-content:space-between;align-items:center;margin:34px 0 20px}.list-heading h2{font-size:17px;letter-spacing:1px;margin:0}.list-heading p{font-size:12px;color:#617c8b;margin:0}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 20px}.card{text-align:left;padding:0;border:1px solid #dbe5ec;border-radius:10px;overflow:hidden;background:white;color:inherit;display:flex;flex-direction:column;transition:box-shadow .18s,transform .18s}.card:hover{transform:translateY(-3px);box-shadow:0 9px 22px #173a5012}.portrait{width:100%;aspect-ratio:1.18;position:relative;background:#e8f0f5;overflow:hidden}.portrait img{width:100%;height:100%;object-fit:contain;display:block}.number{position:absolute;top:12px;left:12px;background:#ffffffd9;border-radius:3px;font-size:10px;letter-spacing:1px;padding:4px 7px;color:#5c7686}.card-body{padding:19px 18px 14px;display:flex;flex-direction:column;flex:1;width:100%}.kana{font-size:10px;letter-spacing:1px;color:#667f8f;margin:0 0 6px}.card h2{font-size:19px;letter-spacing:1px;margin:0 0 9px}.category{font-size:12px;line-height:1.8;margin:0 0 18px;overflow-wrap:anywhere}.card-link{margin-top:auto;padding-top:12px;border-top:1px solid #edf1f4;font-size:10px;color:#587a90;display:flex;justify-content:space-between;align-items:center}.card-link span{color:var(--blue);font-size:17px}footer{border-top:1px solid #dbe5ec;max-width:1136px;margin:auto;padding:26px 0 32px;display:flex;justify-content:space-between;align-items:center;color:#627a88}footer strong{letter-spacing:3px;font-size:15px}footer span{font-size:10px}#empty{text-align:center;padding:48px 12px}#empty h3{font-size:17px}#empty p{font-size:13px;line-height:1.8}.reset{background:var(--blue);color:white;border:0;border-radius:6px;padding:13px 20px}.modal-open{overflow:hidden}dialog{padding:0;width:min(720px,calc(100% - 32px));border:0;border-radius:14px;max-height:90dvh;overflow:auto;color:#173a50;box-shadow:0 25px 80px #001c3b55}dialog::backdrop{background:#062d48aa}#detail-content{display:grid;grid-template-columns:42% 58%}.detail-photo{width:100%;height:100%;min-height:380px;object-fit:contain;background:#e8f0f5}.detail-body{padding:45px 28px 30px;min-width:0}.detail-body h2{font-size:26px;margin:8px 0 12px}.detail-category{font-size:14px;line-height:1.9;margin-bottom:28px;overflow-wrap:anywhere}.detail-body h3{font-size:14px;border-top:1px solid #dbe5ec;padding-top:24px}.circles{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}.circles li{background:#edf4f8;border-radius:5px;font-size:12px;line-height:1.7;padding:7px 10px;overflow-wrap:anywhere}.unlisted{font-size:13px;color:#657f8d;line-height:1.8}.close{position:absolute;top:10px;right:10px;width:44px;height:44px;border:1px solid #dbe5ec;border-radius:50%;background:#fffffff2;color:var(--blue);font-size:28px;z-index:1}@media(max-width:900px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.edition{letter-spacing:0}footer{margin:0 32px}}@media(max-width:620px){.header-inner{padding:18px 20px}.brand strong{font-size:25px}.brand small{font-size:9px;letter-spacing:1px}.edition{font-size:10px;max-width:45px;line-height:1.8}.edition i{display:none}main{padding:0 18px 44px}.intro{padding:30px 0 25px;gap:8px}h1{font-size:27px;letter-spacing:1px}.mobile-break{display:block}.intro-copy{font-size:11px;max-width:230px}.eyebrow{font-size:8px;letter-spacing:2px}.intro-count{padding:0 0 0 13px}.intro-count b{font-size:44px}.intro-count span{font-size:7px;letter-spacing:.5px}.brand-character{max-width:55px}.brand-character-slot{flex-direction:column;gap:8px}.search-panel{grid-template-columns:1fr;padding:18px;gap:16px;border-radius:9px}input,select{font-size:16px}.list-heading{margin:27px 0 17px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.portrait{aspect-ratio:1}.card-body{padding:14px 12px 10px}.card h2{font-size:17px;letter-spacing:0}.kana{font-size:9px;letter-spacing:0}.category{font-size:11px;line-height:1.8;margin-bottom:14px}.card-link{font-size:9px}.number{top:8px;left:8px;font-size:9px}footer{margin:0 18px;align-items:start;gap:12px;flex-direction:column;padding:24px 0}#detail-content{grid-template-columns:1fr}.detail-photo{height:270px;min-height:0;object-fit:contain}.detail-body{padding:25px}.detail-body h2{font-size:25px}}@media(prefers-reduced-motion:reduce){.card{transition:none}.card:hover{transform:none}}
/* Shared detail-only logo: its own row keeps portraits and text unobstructed. */
.detail-chapter-logo{grid-column:1 / -1;justify-self:end;width:112px;max-width:calc(100% - 90px);height:60px;object-fit:contain;object-position:right center;margin:14px 68px 0 18px}
@media(max-width:620px){.detail-chapter-logo{width:88px;height:48px;margin-top:12px}}
/* Official hero photograph. All selectors below are limited to the hero. */
.intro{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;min-height:360px;height:clamp(360px,35vw,426px);padding:30px 32px 54px;margin:18px 0 0;border-radius:14px;background:#d9edf7 url('/assets/朝焼けの海を跳ぶザトウクジラ.png') center center / cover no-repeat}
.intro::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#ffffffed 0%,#f2faffcf 29%,#eef8ff85 39%,transparent 52%)}
.intro::after{content:"";position:absolute;pointer-events:none;width:125%;height:54px;left:-12%;bottom:-37px;border-radius:50%;background:#f5f8fa;box-shadow:0 -8px 0 #e6f7fa99;transform:rotate(-1deg)}
.hero-copy{position:relative;max-width:46%;min-width:0}
.intro .eyebrow{margin-bottom:15px;letter-spacing:1.7px}
.term{margin-left:8px;letter-spacing:1px}
.intro h1{font-size:clamp(20px,2.2vw,26px);line-height:1.75;letter-spacing:.3px;font-weight:650;color:#103e5b}
.intro h1 span{display:block}
.intro .intro-copy{font-size:12px;line-height:1.9;margin-top:13px;max-width:none;color:#284f65}
.intro-copy span{display:block}
.hero-english{margin:12px 0 0;font-size:10px;letter-spacing:1px;color:#345d74}
.intro .brand-character-slot{position:absolute;right:22px;top:20px;display:flex;flex-direction:column;align-items:center;gap:10px}
.hero-brand{width:104px;height:auto;border-radius:4px}
.intro .intro-count{border:0;padding:0;text-shadow:0 1px 7px white,0 0 14px white}
.intro+.search-panel{position:relative;z-index:1;margin-top:-19px;box-shadow:0 7px 22px #15537012}
.card-body{background:linear-gradient(170deg,#fff 75%,#f6fafc)}
@media(min-width:621px) and (max-width:900px){
 .intro{padding-left:22px;background-position:58% center}
 .hero-copy{max-width:45%}.intro h1{font-size:21px}
 .hero-brand{width:78px}.intro .brand-character-slot{right:13px;top:16px}
 .intro .intro-count b{font-size:52px}.intro .intro-count span{font-size:8px}
 .intro .eyebrow{font-size:8px;letter-spacing:1px}
}
@media(max-width:620px){
 .intro{display:block;height:402px;min-height:0;margin-top:12px;padding:17px 18px 0;background-size:auto 225px;background-position:63% bottom;border-radius:11px;background-color:#f2f9fd}
 .intro::before{background:linear-gradient(180deg,#f2f9fd 0%,#f2f9fd 40%,#f2f9fd77 46%,transparent 52%)}
 .hero-copy{max-width:100%}
 .intro .eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:7px}
 .intro h1{font-size:19px;line-height:1.6;letter-spacing:0}
 .intro .intro-copy{font-size:10px;line-height:1.7;margin-top:7px}
 .hero-english{font-size:8px;letter-spacing:.6px;margin-top:7px}
 .intro .brand-character-slot{left:12px;right:auto;top:auto;bottom:27px;gap:4px;padding:7px 8px;border-radius:7px;background:#ffffffd9}
 .hero-brand{width:61px}.intro .intro-count b{font-size:38px}
 .intro .intro-count span{font-size:7px;margin-top:2px;letter-spacing:0}
 .intro+.search-panel{margin-top:-15px}
}
