@charset "UTF-8";
:root{--red:#b91c36;--bright:#d63249;--deep:#86172b;--ink:#352b32;--muted:#78656b;--paper:#fff;--blush:#fff3f4;--line:#ebcdd2;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.65}img{display:block;max-width:100%}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #145a9e;outline-offset:5px}h1,h2,h3,p{margin:0}button{border:0}::selection{background:var(--red);color:white}main:focus{outline:none}.eyebrow{font-size:12px;letter-spacing:.24em;font-weight:800;color:var(--red)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:60px;padding:16px 27px;border-radius:8px 8px 24px 8px;font-weight:700;line-height:1.5;transition:transform .25s,box-shadow .25s,background .25s}.button:hover{transform:translateY(-4px)}.primary{color:#fff;background:var(--red);box-shadow:0 7px 0 #86172b,0 15px 28px #8d17301a}.primary:hover{background:var(--bright);box-shadow:0 7px 0 var(--deep),0 19px 30px #8d173026}.secondary{background:white;border:1px solid var(--line);box-shadow:0 5px 0 #f3e1e4}.fanza{justify-content:space-between;min-width:276px;text-align:left;letter-spacing:.05em}.fanza small{display:block;font-size:12px;letter-spacing:.15em;margin-bottom:3px}.fanza .arrow{font-size:30px;font-weight:400}.wordmark{font-family:var(--serif);font-weight:900;color:var(--red);letter-spacing:-.12em;line-height:1.1;white-space:nowrap;transform:rotate(-5deg);font-size:clamp(48px,6.6vw,98px);text-shadow:2px 2px 0 #fff,4px 4px 0 #fff,5px 6px 0 #e3afb8}.wordmark i{display:inline-block;font-family:var(--sans);font-style:normal;font-weight:400;letter-spacing:-.1em;font-size:.64em;vertical-align:.12em;margin:0 .03em;color:#ce5870}.logo-sub{display:block;font-family:var(--serif);font-size:clamp(16px,1.5vw,24px);font-weight:700;color:var(--deep);letter-spacing:.13em;margin-top:20px;text-align:center}
.age-screen{min-height:100svh;display:grid;place-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 10% 85%,#fbe6ea 0,transparent 35%),radial-gradient(circle at 94% 9%,#fbe6ea 0,transparent 38%),#fff;padding:48px 22px}.age-screen:before,.age-screen:after{content:"";position:absolute;width:460px;height:460px;border:1px solid #d180923b;transform:rotate(45deg);pointer-events:none}.age-screen:before{top:-300px;left:-160px;box-shadow:0 0 0 30px #fff8,0 0 0 31px #d1809226}.age-screen:after{bottom:-270px;right:-180px;box-shadow:0 0 0 30px #fff8,0 0 0 31px #d1809226}.gate-orbit{position:absolute;width:min(82vw,820px);aspect-ratio:1;border:1px solid #d594a32e;border-radius:50%;box-shadow:0 0 0 20px #fff8,0 0 0 21px #d594a320;animation:orbit-breathe 8s ease-in-out infinite}.age-panel{position:relative;z-index:1;max-width:640px;width:100%;text-align:center}.age-panel>.eyebrow{margin-bottom:33px}.age-panel .wordmark{font-size:clamp(64px,10vw,98px)}.age-panel .logo-sub{font-size:20px}.gate-rule{display:flex;align-items:center;justify-content:center;gap:18px;color:var(--red);margin:28px auto 20px;width:80%;font-size:20px}.gate-rule:before,.gate-rule:after{content:"";height:1px;flex:1;background:var(--line)}.age-badge{display:inline-grid;place-items:center;color:var(--red);font-weight:800;font-size:17px;border:1px solid var(--red);border-radius:50%;width:49px;height:49px;margin-bottom:15px}.age-panel h1{font-family:var(--serif);font-size:clamp(21px,3vw,27px);margin-bottom:12px}.age-panel #gate-description{font-size:14px;color:var(--muted)}.gate-actions{display:flex;justify-content:center;gap:18px;margin-top:30px}.gate-actions .button{min-width:210px}#gate-status{min-height:30px;font-size:14px;color:var(--red);margin-top:18px}.gate-brand{font-size:13px;letter-spacing:.15em;color:var(--muted);margin-top:18px}
.skip-link{position:fixed;left:20px;top:-100px;z-index:200;padding:12px 20px;background:white;color:var(--red)}.skip-link:focus{top:10px}.site-header{position:fixed;top:0;left:50%;transform:translateX(-50%);width:min(1280px,94%);z-index:50;display:flex;align-items:center;justify-content:space-between;min-height:86px;padding:12px 32px;background:#fffffff5;border-bottom:2px solid #b91c361a;border-radius:0 0 28px 28px;box-shadow:0 9px 35px #4c173b0c;backdrop-filter:blur(12px)}.brand{font-family:var(--serif);font-size:29px;font-weight:900;line-height:1.2;color:var(--red);white-space:nowrap}.brand>span{font-size:20px;margin:0 3px;color:#d67587}.brand small{display:block;font-family:var(--sans);font-size:10px;color:var(--muted);letter-spacing:.07em;margin-top:5px}.site-header nav{display:flex;align-items:center;gap:30px}.site-header nav a{position:relative;text-align:center;padding:6px 8px;transition:color .2s}.site-header nav a>span{display:block;font-size:15px;font-weight:700;letter-spacing:.06em}.site-header nav small{display:block;font-size:10px;letter-spacing:.1em;color:var(--muted);font-weight:700}.site-header nav a:after{content:"";position:absolute;bottom:-9px;left:50%;width:6px;height:6px;background:var(--red);transform:translateX(-50%) rotate(45deg) scale(0);transition:transform .2s}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--red)}.site-header nav a[aria-current]:after{transform:translateX(-50%) rotate(45deg) scale(1)}.menu-toggle{display:none}
.hero{height:min(900px,calc(100svh + 60px));min-height:750px;max-width:2000px;margin:auto;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 11% 20%,#fff 0,transparent 26%),#fff7f8;border-bottom-left-radius:50% 4%;border-bottom-right-radius:50% 5%}.hero-art{position:absolute;right:-2%;top:0;width:70%;height:94%;overflow:hidden;border-radius:18% 0 0 44% / 48% 0 0 30%;z-index:-1;animation:art-enter 1.2s ease-out both}.hero-art img{width:100%;height:100%;object-fit:cover;object-position:43% top}.hero-red{position:absolute;z-index:-2;top:-160px;right:-150px;width:88%;height:113%;border-radius:50%;background:var(--red);transform:rotate(-15deg)}.hero-orbit{position:absolute;z-index:-1;left:-330px;bottom:-350px;width:800px;height:800px;border:1px solid #b91c361b;border-radius:50%;box-shadow:0 0 0 18px #fff6,0 0 0 19px #b91c3612;pointer-events:none}.hero-copy{position:absolute;left:max(5.5%,calc((100% - 1280px)/2));top:22%;width:39%;animation:copy-enter .85s .1s ease-out both}.hero-copy>.eyebrow{font-size:11px;letter-spacing:.22em}.catchphrase{font-family:var(--serif);font-size:clamp(22px,2.6vw,39px);font-weight:700;letter-spacing:.15em;line-height:1.9;margin-top:25px;text-shadow:0 0 12px white,0 0 20px white}.hero-title{margin:38px 0 0;width:max-content;max-width:100%;position:relative}.hero-title .wordmark{font-size:clamp(63px,7.2vw,112px)}.hero-title .logo-sub{text-shadow:0 0 5px white,0 0 10px white;margin-top:18px;font-size:clamp(17px,1.6vw,24px)}.genre{font-size:13px;letter-spacing:.05em;margin-top:28px;font-weight:700}.genre>span{color:var(--red);font-size:20px;margin:0 6px}.hero-purchase{margin-top:35px}.release{display:flex;gap:14px;align-items:center;font-size:16px;font-weight:700;margin-bottom:18px}.release>span{font-size:12px;font-weight:500;padding:2px 10px;border:1px solid var(--red);color:var(--red);border-radius:3px}.hero .fanza{min-width:300px;background:var(--red)}.hero-index{position:absolute;right:20px;top:25%;writing-mode:vertical-rl;letter-spacing:.25em;font-size:11px;font-weight:700;color:white;text-shadow:0 1px 4px #0005}.scroll-cue{position:absolute;left:50%;bottom:25px;font-size:10px;letter-spacing:.22em;color:var(--red);display:flex;gap:15px;align-items:center;transform:translateX(-50%);padding:10px;background:#fff9;border-radius:30px}.scroll-cue>span{font-size:24px;animation:scroll-bob 2s ease-in-out infinite}
.section-wrap{width:min(1100px,86%);margin:0 auto}.section-heading{display:flex;justify-content:center;align-items:center;gap:25px;text-align:center;margin-bottom:42px}.section-heading p{font-family:var(--serif);font-size:43px;color:var(--red);font-weight:900;line-height:1.25;letter-spacing:.055em}.section-heading h2{font-size:13px;font-weight:500;letter-spacing:.24em;color:var(--muted);margin-top:7px}.heading-flank{width:60px;height:1px;background:var(--line);position:relative}.heading-flank:after{content:"";position:absolute;width:7px;height:7px;border:1px solid var(--red);top:-4px;left:27px;transform:rotate(45deg);background:white}.news-section{padding-top:75px;padding-bottom:65px}.news-list{max-width:920px;margin:0 auto}.news-row{display:flex;align-items:center;gap:25px;min-height:83px;border-bottom:1px solid var(--line);padding:20px 10px;font-size:14px}.news-row:first-child{border-top:1px solid var(--line)}.news-meta{display:flex;align-items:center;gap:16px;flex-shrink:0}.news-meta time{font-size:13px;color:var(--muted);letter-spacing:.05em}.category{display:inline-block;background:var(--blush);color:var(--red);border-radius:4px;padding:3px 12px;min-width:84px;text-align:center;font-size:12px}.news-arrow{margin-left:auto;color:var(--red);font-size:20px}.news-row:is(a):hover{background:var(--blush)}.empty-news{text-align:center;color:var(--muted)}.pickup-section{padding-top:25px;padding-bottom:115px}.pickup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}.pickup-card{min-width:0;border:1px solid #efdae0;border-radius:17px;overflow:hidden;background:#fff;box-shadow:0 5px 0 #faedef;transition:transform .3s,box-shadow .3s}.pickup-card:is(a):hover{transform:translateY(-7px) rotate(-.5deg);box-shadow:0 10px 0 #f6e4e8}.card-art{position:relative;aspect-ratio:1.85;overflow:hidden;background:var(--blush)}.card-art img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.pickup-card:hover .card-art img{transform:scale(1.045)}.portrait .card-art{background:radial-gradient(circle at 65% 85%,#f9dce3 0 47%,transparent 47%),#fff3f5}.portrait .card-art img{width:100%;height:auto;position:absolute;top:-16%;object-fit:initial}.story .card-art img{object-position:80% 35%}.visual .card-art img{object-position:center 28%}.card-label{position:absolute;left:0;bottom:0;padding:5px 14px;background:var(--red);color:white;font-size:10px;font-weight:700;letter-spacing:.12em;border-top-right-radius:10px;z-index:1}.card-caption{display:flex;justify-content:space-between;align-items:center;min-height:74px;padding:13px 18px}.card-caption h3{font-size:16px;line-height:1.4;letter-spacing:.035em}.card-caption p{font-size:12px;margin-top:4px;color:var(--muted)}.card-arrow{display:grid;place-items:center;color:var(--red);background:var(--blush);border-radius:50%;width:29px;height:29px;flex-shrink:0;margin-left:10px}.card-dot{color:#b27080}.upcoming .card-art{display:grid;place-items:center;background:repeating-linear-gradient(135deg,transparent 0 9px,#b91c3604 9px 10px),#fbf0f3}.upcoming:nth-child(2n) .card-art{background:repeating-linear-gradient(45deg,transparent 0 9px,#b91c3604 9px 10px),#fbf0f3}.upcoming .card-label{background:#935663}.card-monogram{font-family:var(--serif);font-size:64px;color:#ad6d7c;letter-spacing:.03em;opacity:.7;transform:rotate(-5deg)}.upcoming:nth-child(n+7) .card-monogram{font-size:37px}.upcoming:nth-child(n+7) .card-caption h3{color:var(--muted);font-weight:500}
.purchase-section{position:relative;background:var(--blush);padding:75px 7% 65px;border-radius:50% 50% 0 0 / 25px 25px 0 0;border-top:1px solid #f0d6dc}.purchase-inner{width:min(100%,1050px);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.purchase-inner h2{font-family:var(--serif);font-size:27px;letter-spacing:.06em;margin:8px 0}.purchase-inner>div>p:last-child{font-size:14px;color:var(--muted)}footer{background:var(--red);color:#fff;padding:48px 7% 24px}.footer-top,.footer-bottom{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:25px}.footer-logo .wordmark{font-size:42px;color:white;text-shadow:none}.footer-logo .wordmark i{color:#f9b8c5}.footer-logo .logo-sub{font-size:12px;color:white;margin-top:10px;letter-spacing:.06em}.footer-links{display:flex;flex-wrap:wrap;gap:14px 26px;font-size:13px}.footer-links a:hover{text-decoration:underline;text-underline-offset:6px}.footer-bottom{margin-top:37px;padding-top:21px;border-top:1px solid #ffffff38;font-size:12px;flex-wrap:wrap}.footer-bottom button{background:none;color:white;font-size:12px;padding:6px}.footer-bottom button:hover{text-decoration:underline}.footer-age{border:1px solid #ffffff78;padding:2px 9px;border-radius:2px}.back-top{position:fixed;right:23px;bottom:22px;width:43px;height:43px;display:grid;place-items:center;background:white;color:var(--red);border:1px solid var(--line);border-radius:50%;z-index:20;box-shadow:0 3px 15px #4e10241a;font-size:22px}
.page-heading{padding:145px 7% 48px;position:relative;text-align:center;background:radial-gradient(ellipse at 50% -60%,#f7d9e1,transparent 70%),#fff6f8;border-radius:0 0 50% 50% / 0 0 20px 20px}.page-heading>a{position:absolute;left:7%;bottom:50px;font-size:12px;color:var(--muted);letter-spacing:.12em}.page-heading>a span{margin-left:12px;color:var(--line)}.page-heading>p{font-family:var(--serif);color:var(--red);font-size:clamp(38px,5vw,58px);line-height:1.3;font-weight:900;letter-spacing:.06em}.page-heading h1{font-size:14px;font-weight:500;letter-spacing:.22em;margin-top:8px;color:var(--muted)}.page-heading-diamond{position:absolute;bottom:-19px;color:var(--red);left:50%;transform:translateX(-50%);font-size:28px}.story-layout{max-width:1000px;margin:auto;padding:90px 30px 100px;text-align:center;position:relative;overflow:hidden}.story-lead{font-family:var(--serif);font-size:clamp(27px,4vw,43px);color:var(--red);letter-spacing:.18em;line-height:1.8;margin-bottom:50px}.story-text{position:relative}.story-text p{font-family:var(--serif);font-size:17px;line-height:2.7;margin-bottom:37px;overflow-wrap:anywhere}.story-text .story-emphasis{color:var(--red);font-weight:700}.story-orbit{position:absolute;width:800px;height:800px;border:1px solid #b91c360c;border-radius:50%;top:210px;left:50%;transform:translateX(-50%);box-shadow:0 0 0 20px #fff,0 0 0 21px #b91c3609;pointer-events:none}
.character-layout{max-width:1240px;display:grid;grid-template-columns:55% 45%;margin:auto;padding:50px 30px 80px;overflow:hidden;min-height:850px}.character-stage{position:relative;isolation:isolate;min-width:0}.character-circle{position:absolute;z-index:-1;left:3%;top:10%;width:92%;aspect-ratio:1;border-radius:50%;background:#fff0f3;border:1px solid #e6b8c4;box-shadow:0 0 0 15px white,0 0 0 16px #f1d7de}.character-stage>img{position:relative;width:100%;max-height:930px;object-fit:contain;animation:copy-enter .6s ease-out both}.character-watermark{position:absolute;top:15%;left:3%;writing-mode:vertical-rl;color:#c06f8340;letter-spacing:.2em;font-family:var(--serif);font-size:60px}.character-profile{padding:105px 25px 40px;min-width:0}.character-role{display:inline-block;background:var(--red);color:white;padding:3px 22px;border-radius:20px;font-size:14px;letter-spacing:.12em}.character-profile h2{display:flex;gap:28px;align-items:center;margin:36px 0 24px;font-family:var(--serif);font-size:68px;line-height:1.5;letter-spacing:.12em}.character-profile rt{font-family:var(--sans);font-size:14px;color:var(--muted);font-weight:400;letter-spacing:.4em}.character-profile h2 small{font-family:var(--sans);font-size:15px;color:var(--red);letter-spacing:.16em}.character-description{font-size:16px;line-height:2.4}.expression-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 0;margin-top:38px;border-top:1px solid var(--line)}.expression-heading h3{font-size:14px;font-weight:500}.expression-heading>span{font-size:11px;letter-spacing:.1em;color:var(--muted)}.expression-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.expression-buttons button{border:1px solid var(--line);background:white;border-radius:7px;padding:11px 8px;font-size:14px;transition:background .2s,color .2s;min-height:56px}.expression-buttons button[aria-pressed=true]{background:var(--red);color:white;border-color:var(--red)}.expression-buttons button:hover:not([aria-pressed=true]){background:var(--blush)}.expression-number{font-size:10px;display:block;opacity:.7;line-height:1.2;margin-bottom:5px}.expression-status{font-size:12px;color:var(--muted);min-height:25px;margin-top:12px}
.system-layout{padding-top:65px;padding-bottom:80px}.system-intro{font-family:var(--serif);font-size:25px;text-align:center;margin:0 0 55px;font-weight:700}.system-intro>span{color:var(--red);margin:0 15px}.system-card{display:grid;grid-template-columns:1fr 1fr;gap:30px;position:relative;border-top:1px solid var(--line);padding:38px 15px 45px 65px}.system-number{position:absolute;left:0;top:34px;color:#d4a2af;font-family:var(--serif);font-size:32px}.system-copy h2{font-family:var(--serif);font-size:27px;margin:12px 0 18px}.system-copy>p:last-child{font-size:15px;line-height:2}.system-coming{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px 10px 50px 10px;background:repeating-linear-gradient(135deg,#fff6f8 0 11px,#faeff2 11px 12px);border:1px solid #f2dfe4;color:var(--muted)}.system-coming>span{font-family:var(--serif);font-size:24px;color:#ae6579;letter-spacing:.09em}.system-coming p{font-size:12px;margin-top:8px}.system-image{width:100%;border-radius:12px}.trial-note{margin:30px 0 0;border-top:1px solid var(--line);padding:27px;text-align:center;color:var(--red)}.gallery-layout{padding-top:75px;padding-bottom:90px;max-width:960px}.gallery-item+.gallery-item{margin-top:45px}.gallery-open{padding:0;display:block;width:100%;background:var(--blush);overflow:hidden;border-radius:16px;position:relative}.gallery-open>img{width:100%;height:auto;transition:transform .5s}.gallery-open:hover>img{transform:scale(1.025)}.gallery-open>span{position:absolute;bottom:15px;right:15px;background:white;border-radius:30px;padding:10px 17px;font-size:13px}.gallery-open>span>span{margin-left:15px;color:var(--red);font-size:20px}.gallery-item figcaption{display:flex;gap:20px;align-items:center;font-size:15px;margin-top:18px}.gallery-item figcaption>span{font-family:var(--serif);font-size:22px;color:var(--red)}dialog{border:0;padding:12px;max-width:calc(100vw - 32px);width:1100px;max-height:94svh;border-radius:12px;box-shadow:0 15px 60px #0003;background:white;color:var(--ink)}dialog::backdrop{background:#1c1024dc;backdrop-filter:blur(6px)}.dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 7px 10px;font-size:14px}.dialog-bar button{padding:8px 15px;background:var(--blush);border-radius:6px}.dialog-bar button>span{margin-left:12px;font-size:22px;color:var(--red)}#dialog-image{width:100%;height:auto;max-height:calc(94svh - 90px);object-fit:contain}.manga-layout{padding-top:75px;padding-bottom:90px}.coming-panel{text-align:center;padding:60px 20px 70px;border:1px solid var(--line);border-radius:90px 12px 90px 12px;background:radial-gradient(circle at center,#fff 0 35%,#fff5f7 90%)}.coming-kanji{display:inline-grid;place-items:center;width:100px;height:100px;font-family:var(--serif);font-size:55px;color:#c1768a;border:1px solid var(--line);border-radius:50%;margin-bottom:25px}.coming-panel h2{font-family:var(--serif);font-size:26px;margin:13px 0 10px}.coming-panel>p:not(.eyebrow){color:var(--muted);font-size:15px}.text-link{display:inline-block;margin-top:30px;font-size:14px;color:var(--red);border-bottom:1px solid var(--line);padding-bottom:6px}.text-link>span{margin-left:22px}.manga-chapter{max-width:850px;margin:0 auto 50px}.manga-chapter h2{text-align:center;font-family:var(--serif);margin-bottom:30px}.manga-chapter img{width:100%;height:auto;margin:0 auto 16px}
.will-reveal{opacity:0;transform:translateY(20px);transition:opacity .65s,transform .65s}.will-reveal.is-visible{opacity:1;transform:none}.pickup-card:nth-child(3n+2){transition-delay:.07s}.pickup-card:nth-child(3n+3){transition-delay:.14s}@keyframes copy-enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes art-enter{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}@keyframes scroll-bob{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}@keyframes orbit-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@media(min-width:1600px){.hero-copy{width:38%;top:23%}.hero-title .wordmark{font-size:116px}.hero-art{width:72%}.hero-copy>.eyebrow{font-size:12px}}
@media(max-width:1100px){.site-header{padding:14px 23px}.site-header nav{gap:12px}.site-header nav a{padding:5px}.hero{min-height:720px}.hero-art{width:76%;right:-12%}.hero-copy{left:5%;width:44%;top:22%}.hero-title .wordmark{font-size:clamp(60px,8vw,88px)}.hero-title .logo-sub{font-size:18px}.hero-copy .catchphrase{font-size:28px}.hero .genre{font-size:12px}.hero .fanza{min-width:270px}.character-profile{padding:80px 0 30px 20px}.character-profile h2{font-size:55px;gap:15px}.character-layout{padding:40px 25px;min-height:740px}.character-description{font-size:15px}.purchase-inner h2{font-size:24px}.news-row{gap:18px}.footer-links{gap:12px 18px}}
@media(max-width:760px){html{scroll-padding-top:85px}.site-header{min-height:70px;width:94%;padding:12px 20px;border-radius:0 0 20px 20px}.brand{font-size:24px}.brand small{font-size:9px}.menu-toggle{display:flex;gap:12px;align-items:center;background:none;font-size:12px;color:var(--red);padding:7px}.menu-toggle>span{font-size:23px}.site-header nav{position:absolute;top:calc(100% - 1px);left:0;right:0;background:#fff;border-radius:0 0 20px 20px;box-shadow:0 16px 20px #3e152118;display:none;padding:15px 18px 25px;grid-template-columns:repeat(2,1fr);gap:14px}.site-header nav.open{display:grid}.site-header nav a{padding:12px;border-bottom:1px solid var(--line)}.site-header nav a:after{bottom:0}.hero{height:auto;min-height:0;padding:0 0 80px;border-radius:0 0 50% 50% / 0 0 18px 18px;background:#fff7f9}.hero-art{position:relative;top:auto;right:auto;width:100%;height:auto;aspect-ratio:1.15;border-radius:0 0 12% 34% / 0 0 9% 9%;padding-top:70px;z-index:0}.hero-art img{height:100%;object-position:50% 25%;object-fit:cover}.hero-red{width:130%;height:48%;top:-5%;right:-20%;border-radius:0 0 50% 50%;transform:rotate(-8deg)}.hero-copy{position:relative;top:auto;left:auto;width:100%;padding:18px 24px 0;margin-top:0;text-align:center;z-index:1}.hero-copy>.eyebrow{font-size:9px;letter-spacing:.16em}.hero-copy .catchphrase{font-size:20px;line-height:1.7;letter-spacing:.1em;margin-top:12px}.hero-title{margin:24px auto 0}.hero-title .wordmark{font-size:clamp(66px,15vw,92px)}.hero-title .logo-sub{font-size:18px;margin-top:14px;letter-spacing:.1em}.hero .genre{font-size:12px;margin-top:18px}.hero-purchase{margin-top:20px}.release{justify-content:center;margin-bottom:16px;font-size:14px}.hero .fanza{min-width:300px;max-width:100%;font-size:16px;padding:12px 22px;min-height:65px}.hero-orbit{width:550px;height:550px;left:-300px;bottom:-270px}.hero-index{right:8px;top:110px;font-size:9px;z-index:1}.scroll-cue{bottom:8px;font-size:9px;gap:10px;padding:4px 12px}.section-wrap{width:88%}.news-section{padding-top:50px;padding-bottom:45px}.section-heading{gap:18px;margin-bottom:30px}.section-heading p{font-size:34px}.section-heading h2{font-size:12px}.heading-flank{width:38px}.heading-flank:after{left:15px}.news-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:16px 0;font-size:14px}.news-meta{grid-column:1/-1;gap:14px}.category{font-size:11px;min-width:70px;padding:2px 8px}.news-meta time{font-size:12px}.news-arrow{grid-row:2;grid-column:2}.pickup-section{padding-top:15px;padding-bottom:65px}.pickup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 13px}.pickup-card{border-radius:12px}.card-caption{min-height:73px;padding:12px}.card-caption h3{font-size:13px}.card-caption p{font-size:11px}.card-arrow{width:23px;height:23px;font-size:13px;margin-left:5px}.card-label{font-size:9px;padding:3px 9px}.card-monogram{font-size:40px}.upcoming:nth-child(n+7) .card-monogram{font-size:25px}.pickup-card:nth-child(3n+2),.pickup-card:nth-child(3n+3){transition-delay:0s}.purchase-section{padding:48px 7% 45px}.purchase-inner{flex-direction:column;text-align:center;gap:24px}.purchase-inner h2{font-size:22px;letter-spacing:0}.purchase-inner .fanza{width:300px;max-width:100%}.purchase-inner .eyebrow{font-size:10px}footer{padding:35px 7% 24px}.footer-top{flex-direction:column;gap:28px}.footer-logo .wordmark{font-size:43px}.footer-links{justify-content:center;font-size:12px;gap:12px 20px}.footer-bottom{justify-content:center;gap:12px;margin-top:26px;font-size:11px}.footer-bottom p{width:100%;text-align:center}.back-top{right:12px;bottom:12px;width:37px;height:37px;font-size:20px}.page-heading{padding:115px 6% 40px}.page-heading>a{left:6%;bottom:12px;font-size:10px}.page-heading>p{font-size:36px}.page-heading h1{font-size:13px}.story-layout{padding:65px 6% 50px}.story-lead{font-size:30px;margin-bottom:35px}.story-text p{font-size:15px;line-height:2.4;text-align:left;margin-bottom:30px}.story-text p:first-child,.story-text .story-emphasis{text-align:center}.character-layout{display:flex;flex-direction:column;padding:40px 6% 45px;min-height:0}.character-stage{width:100%;max-width:520px;margin:auto;height:590px;overflow:hidden}.character-stage>img{height:100%;object-fit:contain}.character-circle{width:90%;left:5%;top:10%}.character-watermark{font-size:48px;top:15%;left:4%}.character-profile{padding:20px 0 0;max-width:520px;width:100%;margin:auto}.character-role{font-size:12px}.character-profile h2{font-size:54px;margin:27px 0 16px;gap:30px}.character-description{font-size:15px}.expression-heading{margin-top:25px}.expression-buttons button{min-height:61px}.system-layout{padding-top:50px;padding-bottom:50px}.system-intro{font-size:19px;margin-bottom:35px}.system-intro>span{margin:0 6px}.system-card{grid-template-columns:1fr;padding:30px 0 30px 43px;gap:20px}.system-number{font-size:27px;top:25px}.system-copy h2{font-size:22px}.system-copy>.eyebrow{font-size:10px}.system-copy>p:last-child{font-size:14px}.system-coming{min-height:150px}.trial-note{font-size:14px;padding:22px 0}.gallery-layout{padding-top:50px;padding-bottom:55px}.gallery-item{margin:0}.gallery-open{border-radius:10px}.gallery-open>span{font-size:11px;padding:5px 12px;bottom:10px;right:10px}.gallery-item figcaption{font-size:13px;margin-top:12px}.manga-layout{padding-top:50px;padding-bottom:55px}.coming-panel{padding:40px 15px 45px;border-radius:50px 10px 50px 10px}.coming-panel h2{font-size:20px}.coming-panel>p:not(.eyebrow){font-size:14px}.age-screen{padding:35px 22px}.age-panel>.eyebrow{font-size:10px;margin-bottom:27px}.age-panel .wordmark{font-size:68px}.age-panel .logo-sub{font-size:17px;margin-top:15px}.gate-actions{flex-direction:column;max-width:310px;margin:25px auto 0;gap:16px}.gate-actions .button{min-height:55px;padding:13px 22px}.gate-rule{margin:25px auto 18px}.age-panel h1{font-size:21px}.age-panel #gate-description{font-size:13px}.gate-brand{font-size:11px}.age-badge{width:42px;height:42px;font-size:15px}}
@media(max-width:380px){.hero .fanza{min-width:0;width:100%}.hero-copy{padding-left:18px;padding-right:18px}.hero-title .wordmark{font-size:62px}.hero-title .logo-sub{font-size:16px}.genre{letter-spacing:0}.pickup-grid{grid-template-columns:1fr}.card-caption h3{font-size:16px}.card-caption p{font-size:12px}.card-monogram{font-size:55px}.upcoming:nth-child(n+7) .card-monogram{font-size:35px}.card-label{font-size:11px}.character-stage{height:500px}.system-intro{font-size:17px}.brand{font-size:22px}.menu-toggle{font-size:11px;gap:8px}.age-panel .wordmark{font-size:59px}.age-panel .logo-sub{font-size:15px}}
.story-layout{isolation:isolate}
.story-orbit{z-index:-1}
.story-lead,.story-text{position:relative;z-index:1}
.character-picker{display:flex;justify-content:center;gap:16px;width:min(88%,680px);margin:45px auto 0}
.character-picker button{flex:1;min-width:0;padding:13px 18px;border:1px solid var(--line);border-radius:10px 10px 22px 10px;background:white;transition:background .2s,color .2s}
.character-picker button[aria-pressed=true]{background:var(--red);border-color:var(--red);color:white}
.character-picker button:hover:not([aria-pressed=true]){background:var(--blush)}
.character-picker span{display:block;font-size:18px;font-weight:700}
.character-picker small{display:block;font-size:11px;letter-spacing:.15em}
@media(max-width:760px){.character-picker{gap:8px;margin-top:35px}.character-picker button{padding:10px 5px}.character-picker span{font-size:16px}}
/* Completed title artwork: preserve alpha, proportions and its own lettering. */
.title-logo{display:block;width:100%;height:auto;object-fit:contain}
.age-logo{width:min(100%,500px);margin:0 auto}
.site-header .brand{display:block;flex:0 0 118px;width:118px;line-height:1}
.hero-title{width:min(100%,560px);margin-top:18px}
.footer-logo{display:block;width:250px;max-width:100%;flex-shrink:0}
@media(min-width:761px){
  .hero{min-height:900px}
  .hero-copy{top:130px}
  .hero-copy .catchphrase{font-size:clamp(24px,2.3vw,34px);line-height:1.6;margin-top:16px}
  .hero .genre{margin-top:12px}
  .hero-purchase{margin-top:18px}
}
@media(max-width:760px){
  .site-header .brand{flex-basis:90px;width:90px}
  .hero-title{width:min(100%,460px);margin:20px auto 0}
  .age-logo{width:min(100%,380px)}
  .age-panel>.eyebrow{margin-bottom:20px}
  .footer-logo{width:240px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.will-reveal{opacity:1;transform:none}}
:root { --privacy-red: #a71932; }
.analytics-notice { position: fixed; inset: auto 16px 16px; z-index: 10000; max-width: 760px; margin: auto; padding: 18px 22px; border: 1px solid #d9b6bc; border-radius: 16px; background: #fffaf7; color: #38252a; box-shadow: 0 8px 32px #380b2426; font-size: 14px; line-height: 1.7; max-height: 65dvh; overflow: auto; }
.analytics-notice[hidden] { display: none; }
.analytics-notice p { margin: 0 0 12px; }
.analytics-notice a, .privacy-page a { color: var(--privacy-red); text-decoration: underline; }
.analytics-notice > div { display: flex; gap: 12px; flex-wrap: wrap; }
.analytics-notice button { flex: 1; padding: 10px 16px; background: #fff; border: 1px solid var(--privacy-red); border-radius: 8px; color: var(--privacy-red); cursor: pointer; font: inherit; }
.analytics-notice button:focus-visible, [data-analytics-settings]:focus-visible { outline: 3px solid #a71932; outline-offset: 3px; }
.analytics-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.privacy-page { max-width: 850px; margin: 0 auto; padding: 60px 24px 120px; line-height: 1.95; overflow-wrap: anywhere; }
.privacy-page h1 { font-size: clamp(24px, 5vw, 38px); margin-bottom: 28px; }
.privacy-page h2 { font-size: 22px; margin: 34px 0 12px; color: var(--privacy-red); }
.privacy-page p { margin: 14px 0; }
.age-panel > p:has([data-analytics-settings]) { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; column-gap:14px; margin-top:16px; font-size:11px; color:var(--muted); }
.age-panel [data-analytics-settings] { appearance:none; background:transparent; padding:8px 0; font-size:inherit; color:inherit; }
.age-panel > p:has([data-analytics-settings]) a { padding:8px 0; }
.footer-bottom > a, .footer-bottom [data-analytics-settings] { font-size:11px; line-height:1.6; text-decoration:none; opacity:.85; }
.footer-bottom > a:hover, .footer-bottom [data-analytics-settings]:hover { opacity:1; text-decoration:underline; }
.analytics-notice { padding:18px 22px; border-top:3px solid var(--red); border-radius:14px; }
.analytics-notice strong { display:inline-block; margin-bottom:4px; font-size:15px; color:var(--ink); }
.analytics-notice button { min-height:44px; font-weight:700; }
.analytics-notice button:hover { background:var(--blush); }
@media(max-width:760px) {
  /* Size the red ornament from the artwork, never from the full hero text height. */
  .hero-red { top:0; right:0; width:100%; height:calc(100vw / 1.15 + 16px); transform:none; border-radius:0 0 45% 28% / 0 0 9% 9%; }
  .hero-copy { padding-top:34px; }
  .hero-copy .catchphrase { text-shadow:none; color:var(--ink); }
  .analytics-notice { inset:auto 12px max(12px, env(safe-area-inset-bottom)); padding:15px 16px; font-size:12px; line-height:1.75; max-height:48svh; box-shadow:0 6px 24px #380b2420; }
  .analytics-notice strong { font-size:14px; }
  .analytics-notice > div { gap:10px; }
  .analytics-notice button { padding:9px 12px; font-size:12px; border-radius:7px; }
  .footer-bottom { column-gap:18px; row-gap:8px; }
}

/* Contact page */
.contact-card { margin: 32px 0 44px; padding: clamp(22px, 5vw, 40px); background: #fff; border: 1px solid #edd3d9; border-top: 3px solid #b91c36; border-radius: 24px 8px 24px 8px; }
.contact-card .contact-label { margin: 0; color: #78676b; font-size: 14px; }
.contact-card .contact-address { margin: 12px 0 24px; font-size: clamp(16px, 4.5vw, 25px); font-weight: 600; overflow-wrap: anywhere; }
.contact-card .button { width: 100%; min-height: 56px; padding: 16px 20px; font-size: clamp(16px, 4vw, 20px); }
.contact-page .contact-help { margin-top: 24px; color: #78676b; font-size: 14px; line-height: 1.9; }
.contact-nav { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 36px; padding-top: 24px; border-top: 1px solid #edd3d9; font-size: 14px; }
.contact-page .contact-card .button { color: #fff; text-decoration: none; }

/* Circle identity: native aspect ratio, accessible name, responsive sizing. */
.circle-logo{display:block;width:240px;max-width:100%;height:auto;object-fit:contain}
.gate-brand .circle-logo{width:280px;margin-inline:auto}
.circle-credit{display:flex;align-items:center;gap:8px;max-width:100%;flex-shrink:0}
.footer-bottom .circle-credit{margin:0}
@media(max-width:600px){.circle-logo{width:220px}.gate-brand .circle-logo{width:250px}.footer-bottom .circle-credit{flex-basis:100%;margin-bottom:8px}}

/* Scroll header: the full navigation gives way to a compact menu off the top. */
/* Switch the positioning container instantly: animating its transform also
   moves the fixed menu panel's containing block across the viewport. */
.site-header{transition:none}
.menu-toggle{justify-content:center;align-items:center;flex-direction:column;gap:7px;width:74px;height:74px;padding:10px;border:1px solid #e8c6cd;border-radius:8px 8px 22px 8px;background:#fff;color:var(--red);box-shadow:0 10px 30px #4c173b1f;transition:opacity .25s ease,transform .38s cubic-bezier(.22,1,.36,1),background-color .2s}
.menu-toggle:hover{background:var(--blush)}
.menu-toggle .menu-label{font-size:9px;font-weight:800;line-height:1;letter-spacing:.18em}
.menu-icon{display:grid;gap:5px;width:28px}
.menu-icon i{display:block;width:100%;height:2px;background:currentColor;border-radius:2px;transition:transform .25s,opacity .2s}
.menu-toggle[aria-expanded=true] .menu-icon i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-icon i:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] .menu-icon i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.site-header.is-compact{left:auto;right:clamp(12px,2.5vw,34px);top:18px;width:74px;min-height:74px;padding:0;transform:none;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none}
.site-header.is-compact .brand{visibility:hidden;position:absolute;opacity:0;pointer-events:none}
.site-header.is-compact .menu-toggle{display:flex;opacity:0;visibility:hidden;transform:translateX(calc(100% + 48px));transition:none}
.site-header.is-compact.is-compact-ready .menu-toggle{opacity:1;visibility:visible;transform:none;transition:opacity .22s,transform .38s cubic-bezier(.22,1,.36,1),background-color .2s}
.site-header.is-compact nav{display:none!important;position:fixed;top:102px;right:clamp(12px,2.5vw,34px);left:auto;width:min(360px,calc(100vw - 24px));grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:18px;background:#fffffff7;border:1px solid #ecd3d8;border-radius:24px 8px 24px 8px;box-shadow:0 18px 50px #35101d2b;opacity:0;visibility:hidden;transform:translateX(calc(100% + 64px));transform-origin:top right;pointer-events:none;transition:none;backdrop-filter:blur(14px)}
.site-header.is-compact.is-compact-ready nav{display:grid!important;transition:opacity .22s,transform .38s cubic-bezier(.22,1,.36,1)}
.site-header.is-compact nav.open{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.site-header.is-compact nav a{padding:14px 8px;border-bottom:1px solid var(--line)}
.site-header.is-compact nav{max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:760px){
  .site-header:not(.is-compact) .menu-toggle{display:flex;width:auto;height:auto;padding:7px;background:none;border:0;border-radius:0;box-shadow:none;flex-direction:row;gap:10px}
  .site-header:not(.is-compact) .menu-label{font-size:10px}
  .site-header:not(.is-compact) .menu-icon{width:24px;gap:4px}
  .site-header:not(.is-compact) .menu-toggle[aria-expanded=true] .menu-icon i:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .site-header:not(.is-compact) .menu-toggle[aria-expanded=true] .menu-icon i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .site-header.is-compact{top:12px;right:12px;width:64px;min-height:64px}
  .site-header.is-compact .menu-toggle{width:64px;height:64px}
  .site-header.is-compact nav{top:86px;right:12px;max-height:calc(100dvh - 98px)}
  .site-header:not(.is-compact) nav{max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain}
}

/* ===== 2026-09 fun renewal ===== */
:root{--pop-svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='%23fffaf0' stroke='%23e0b88a' stroke-width='.6'%3E%3Ccircle cx='6' cy='10' r='5'/%3E%3Ccircle cx='14' cy='9' r='5'/%3E%3Ccircle cx='10' cy='5.5' r='5'/%3E%3Ccircle cx='10' cy='13' r='4.5'/%3E%3C/g%3E%3Ccircle cx='11' cy='15' r='2.3' fill='%23f2b544'/%3E%3C/svg%3E")}
.hero-stars{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.hero-copy,.hero-index,.scroll-cue{z-index:1}.hero-art img{will-change:transform}
.hero-title{cursor:pointer;animation:logo-pop .9s .35s cubic-bezier(.34,1.56,.64,1) both}@keyframes logo-pop{0%{opacity:0;transform:scale(.4) rotate(-8deg)}70%{opacity:1;transform:scale(1.08) rotate(2deg)}100%{transform:none}}
.will-reveal{opacity:0;transform:translateY(28px) scale(.98);transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}.will-reveal.is-visible{opacity:1;transform:none}.pickup-grid .will-reveal:nth-child(3n+2){transition-delay:.08s}.pickup-grid .will-reveal:nth-child(3n+3){transition-delay:.16s}
#pop-layer{position:fixed;inset:0;pointer-events:none;z-index:300;overflow:hidden}.pop-kernel{position:absolute;width:var(--size);height:var(--size);margin:calc(var(--size)/-2) 0 0 calc(var(--size)/-2);background:var(--pop-svg) center/contain no-repeat;animation:pop-fly .9s cubic-bezier(.2,.7,.4,1) forwards;filter:drop-shadow(0 2px 2px #86172b33)}@keyframes pop-fly{0%{transform:translate(0,0) scale(.3) rotate(0)}40%{transform:translate(calc(var(--dx)*.8),calc(var(--dy)*.8)) scale(1.1) rotate(calc(var(--rot)*.5))}100%{transform:translate(var(--dx),calc(var(--dy) + 70px)) scale(.9) rotate(var(--rot));opacity:0}}
.speech-bubble{position:absolute;z-index:2;top:4%;right:2%;max-width:62%;background:#fff;border:2px solid var(--red);border-radius:22px 22px 22px 4px;padding:12px 18px;font-family:var(--serif);font-weight:700;font-size:16px;line-height:1.6;box-shadow:0 6px 0 #f3d9df}.speech-bubble:empty{display:none}.speech-bubble.pop{animation:bubble-pop .45s cubic-bezier(.34,1.56,.64,1)}@keyframes bubble-pop{0%{transform:scale(.6);opacity:0}100%{transform:none;opacity:1}}#character-image{cursor:pointer;transition:transform .25s}#character-image:hover{transform:translateY(-6px)}
.relation-section{padding:30px 0 90px}.relation-map{position:relative;max-width:760px;height:520px;margin:auto;border-radius:30px;background:radial-gradient(circle at 50% 55%,#fff 0 30%,#fff3f5 75%);border:1px solid var(--line)}.relation-map svg{position:absolute;inset:0;width:100%;height:100%}.relation-map line{stroke:var(--red);stroke-width:2;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.relation-label{position:absolute;transform:translate(-50%,-50%);background:var(--red);color:#fff;font-size:12px;font-weight:700;padding:4px 12px;border-radius:20px;white-space:nowrap}.relation-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;background:none;padding:0;transition:transform .25s}.relation-node:hover{transform:translate(-50%,-55%)}.relation-face{display:block;width:120px;height:120px;border-radius:50%;overflow:hidden;background:#fff0f3;border:3px solid #fff;box-shadow:0 0 0 2px var(--red),0 8px 20px #86172b26}.relation-face img{width:340%;max-width:none;margin:-4% 0 0 -120%}.relation-node span{font-family:var(--serif);font-weight:900;font-size:20px;margin-top:6px}.relation-node small{font-size:11px;color:var(--muted)}
.diary-section{padding-bottom:60px}.diary-list{display:grid;gap:18px;max-width:920px;margin:auto}.diary-card{display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:center;padding:22px;border:1px solid var(--line);border-radius:18px 18px 18px 4px;background:#fff;box-shadow:0 5px 0 #faedef}.diary-card img{width:120px;height:120px;object-fit:cover;border-radius:12px}.diary-pop{width:120px;height:120px;border-radius:12px;background:var(--pop-svg) center/55% no-repeat,radial-gradient(circle,#b91c36,#6d1023)}.diary-card time{font-size:12px;color:var(--muted);letter-spacing:.08em}.diary-card h3{font-family:var(--serif);font-size:19px;margin:4px 0 8px}.diary-card p{font-size:14px;line-height:1.9}
.clap-section{padding:10px 0 80px}.clap-box{display:grid;grid-template-columns:1fr auto;gap:20px 30px;align-items:center;max-width:920px;margin:auto;padding:34px 40px;border-radius:26px;background:linear-gradient(135deg,#2a1033,#86172b);color:#fff;position:relative;overflow:hidden}.clap-box:before{content:"";position:absolute;inset:0;background:radial-gradient(1.5px 1.5px at 20% 30%,#fff,transparent),radial-gradient(1px 1px at 70% 20%,#fff,transparent),radial-gradient(2px 2px at 85% 70%,#ffd98a,transparent),radial-gradient(1px 1px at 40% 80%,#fff,transparent);opacity:.8;pointer-events:none}.clap-box .eyebrow{color:#ffc3cf}.clap-box h2{font-family:var(--serif);font-size:24px;margin:6px 0}.clap-box p{font-size:14px;opacity:.9}.clap-button{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:150px;padding:18px 24px;border-radius:20px;background:#fff;color:var(--red);font-weight:800;box-shadow:0 6px 0 #ffd24a;transition:transform .1s,box-shadow .1s}.clap-button:active{transform:translateY(4px);box-shadow:0 2px 0 #ffd24a}.clap-button strong{font-size:22px;font-family:var(--serif)}.clap-icon{width:40px;height:40px;background:var(--pop-svg) center/contain no-repeat}.clap-button.bounce .clap-icon{animation:clap-bounce .4s cubic-bezier(.34,1.56,.64,1)}@keyframes clap-bounce{50%{transform:scale(1.35) rotate(-12deg)}}.visit-counter{grid-column:1/-1;font-size:13px;border-top:1px solid #ffffff33;padding-top:14px}.visit-counter strong{font-family:var(--serif);font-size:20px;color:#ffd24a;margin:0 4px}
.play-layout{display:grid;gap:40px;padding-top:65px;padding-bottom:90px;max-width:900px}.play-card{padding:40px;border:1px solid var(--line);border-radius:28px 28px 28px 6px;background:#fff;box-shadow:0 7px 0 #faedef;min-width:0}.play-card>h2{font-family:var(--serif);font-size:28px;margin:8px 0 20px}.quiz-intro,.game-help{font-size:14px;color:var(--muted);margin-bottom:22px}.quiz-progress{height:6px;background:var(--blush);border-radius:6px;overflow:hidden;margin-bottom:18px}.quiz-progress span{display:block;height:100%;background:var(--red);transition:width .4s}.quiz-step{font-size:12px;letter-spacing:.2em;color:var(--red);font-weight:800}.quiz-body h3{font-family:var(--serif);font-size:22px;margin:6px 0 20px;outline:none}.quiz-options{display:grid;gap:12px}.quiz-options button{text-align:left;padding:16px 20px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:700;transition:background .2s,transform .2s}.quiz-options button:hover{background:var(--blush);transform:translateX(6px)}.quiz-result{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:start;animation:bubble-pop .5s cubic-bezier(.34,1.56,.64,1)}.quiz-result img{width:200px;height:280px;object-fit:cover;object-position:50% 0;transform-origin:50% 0;border-radius:100px 100px 16px 16px;background:#fff0f3;border:1px solid var(--line)}.quiz-result h3 strong{color:var(--red);font-size:1.4em;margin:0 4px}.quiz-line{font-family:var(--serif);font-weight:700;color:var(--deep);margin-bottom:10px}.quiz-result p{font-size:15px}.quiz-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.quiz-actions .button{min-height:50px;padding:10px 22px;gap:14px}
.game-frame{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 10px 30px #2a103333}#game-canvas{display:block;width:100%;height:auto;aspect-ratio:640/420;touch-action:none;background:#2a1033}#game-canvas:focus-visible{outline:3px solid #ffd24a;outline-offset:-3px}.game-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#2a1033c4;color:#fff;text-align:center;padding:20px}.game-overlay p{line-height:1.9}.game-overlay strong{color:#ffd24a;font-size:20px}.game-score{font-family:var(--serif);font-size:56px;font-weight:900;color:#ffd24a;line-height:1}.game-score small{font-size:20px;margin-left:4px}.game-new{display:inline-block;margin-left:10px;padding:2px 10px;border-radius:20px;background:#ffd24a;color:var(--deep);font-size:12px;font-weight:800;vertical-align:middle}.game-share{color:#fff;text-decoration:underline;text-underline-offset:5px;font-size:14px}.game-status{font-size:13px;color:var(--muted);min-height:24px;margin-top:10px}
@media(max-width:760px){.speech-bubble{font-size:13px;max-width:70%;padding:9px 13px;top:2%}.relation-map{height:420px}.relation-face{width:84px;height:84px}.relation-node span{font-size:16px}.relation-label{font-size:10px;padding:3px 8px}.diary-card{grid-template-columns:72px 1fr;gap:14px;padding:16px}.diary-card img,.diary-pop{width:72px;height:72px}.diary-card h3{font-size:16px}.clap-box{grid-template-columns:1fr;text-align:center;padding:28px 22px}.clap-button{margin:auto}.play-card{padding:26px 18px}.play-card>h2{font-size:22px}.quiz-result{grid-template-columns:1fr;justify-items:center;text-align:center}.quiz-result img{width:160px;height:220px}.quiz-actions{justify-content:center}.game-score{font-size:40px}.game-overlay{gap:10px;font-size:13px}.game-overlay .button{min-height:48px;padding:8px 20px}}
@media(prefers-reduced-motion:reduce){.hero-title,.speech-bubble.pop,.quiz-result{animation:none}.will-reveal{opacity:1;transform:none}}

/* ===== block breaker ===== */
.breaker-frame{position:relative;display:flex;justify-content:center;max-width:480px;margin:0 auto;background:#1a0f2e;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px #2a103333}.breaker-frame canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none;cursor:crosshair}.breaker-frame canvas:focus-visible{outline:3px solid #ffd24a;outline-offset:-3px}
.breaker-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 14px;background:#1a0f2ee6;color:#fff;text-align:center;overflow-y:auto;overscroll-behavior:contain}.breaker-overlay:not(.breaker-over){justify-content:center}.breaker-title{font-family:var(--serif);font-size:22px;font-weight:900;letter-spacing:.1em;color:#ffd24a}
.breaker-heroes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%}.breaker-hero{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:10px;background:#2a1033;border:2px solid #3d1a4a;color:#fff;transition:transform .15s,border-color .15s}.breaker-hero[aria-pressed=true]{border-color:#ffd24a;background:#3d1a4a;transform:translateY(-3px)}.breaker-hero-art canvas{display:block;image-rendering:pixelated;width:48px;height:72px}.breaker-hero strong{font-size:15px}.breaker-hero small{font-size:10px;color:#ffd24a}.breaker-hero-desc{font-size:10px;line-height:1.5;color:#e8d8ee}.breaker-line{min-height:24px;font-size:13px;font-family:var(--serif)}
.breaker-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;max-width:480px;margin:12px auto 0}.breaker-controls button{flex:1 1 30%;min-height:44px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:700}.breaker-controls button:disabled{cursor:default;opacity:.45}.breaker-controls [data-breaker-skill]:not(:disabled){background:#ffd24a;border-color:#e0a800;color:var(--deep);animation:skill-glow 1s ease-in-out infinite alternate}@keyframes skill-glow{to{box-shadow:0 0 0 4px #ffd24a55}}
.breaker-result{display:flex;gap:24px;justify-content:center}.breaker-result span{display:flex;flex-direction:column;font-size:11px;letter-spacing:.2em;color:#aab0c8}.breaker-result strong{font-family:var(--serif);font-size:34px;line-height:1.1;color:#fff;letter-spacing:0}.breaker-unlock{background:#ffd24a;color:var(--deep);padding:8px 14px;border-radius:10px;font-weight:700;font-size:13px}.breaker-unlock a{display:block;text-decoration:underline;margin-top:2px}.breaker-card-img{width:100%;max-width:360px;border-radius:6px;image-rendering:pixelated;border:2px solid #3d1a4a}.breaker-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.breaker-row .button{min-height:44px;padding:8px 18px;gap:10px;font-size:14px}.breaker-rank-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;justify-content:center}.breaker-rank-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;text-align:left}.breaker-rank-form input{font:inherit;font-size:16px;padding:8px 10px;border-radius:8px;border:1px solid #aab0c8;width:190px}.breaker-rank-form .button{min-height:42px;padding:6px 16px}.breaker-rank-status{font-size:13px;min-height:20px;color:#ffd24a}.breaker-fanza{font-size:12px;color:#f7a8b8;text-decoration:underline;text-underline-offset:4px}
.ranking-tabs{display:flex;gap:8px;margin-bottom:16px}.ranking-tabs button{padding:8px 20px;border-radius:20px;border:1px solid var(--line);background:#fff;font-weight:700;font-size:14px}.ranking-tabs button[aria-pressed=true]{background:var(--red);border-color:var(--red);color:#fff}.ranking-list{list-style:none;margin:0;padding:0;max-height:520px;overflow-y:auto}.ranking-list li{display:grid;grid-template-columns:36px 1fr auto auto auto;gap:12px;align-items:center;padding:10px 6px;border-bottom:1px solid var(--line);font-size:14px}.ranking-list li:nth-child(-n+3) .rank-no{background:var(--red);color:#fff}.rank-no{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--blush);color:var(--red);font-weight:800;font-size:13px}.rank-name{font-weight:700;overflow-wrap:anywhere}.rank-hero{font-size:12px;color:var(--muted)}.rank-wave{font-size:12px;color:var(--muted)}.rank-score{font-family:var(--serif);font-size:18px;color:var(--red)}.ranking-list .ranking-empty{display:block;text-align:center;color:var(--muted);border:0}
.usage-row{display:grid;grid-template-columns:32px 64px 1fr 48px;gap:12px;align-items:center;margin-bottom:12px}.usage-icon canvas{display:block;width:32px;height:48px;image-rendering:pixelated}.usage-name{font-weight:700}.usage-bar{height:14px;border-radius:7px;background:var(--blush);overflow:hidden}.usage-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--red),#e46a82);border-radius:7px;transition:width .8s}.usage-row strong{font-family:var(--serif);font-size:18px;color:var(--red);text-align:right}.usage-total{font-size:12px;color:var(--muted);text-align:right}
.reward-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.reward-slot{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;min-height:150px;padding:10px 6px;border-radius:12px;border:1px dashed var(--line);background:#fbf4f6;font-size:12px;text-align:center;color:var(--muted)}.reward-slot.is-open{border-style:solid;background:#fff;color:var(--ink)}.reward-slot.is-adult{background:#f8eef3}.reward-wave{font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--red)}.reward-lock{display:grid;place-items:center;width:64px;height:64px;border-radius:12px;background:#2a1033;color:#ffd24a;font-family:var(--serif);font-size:24px;font-weight:900}.reward-slot a,.reward-slot button:not(.reward-thumb){color:var(--red);background:none;padding:0;text-decoration:underline;text-underline-offset:3px;font-size:12px;font-weight:700}.reward-thumb{padding:0;background:none;border-radius:10px;overflow:hidden;width:100%;height:auto;display:block}.reward-thumb img{display:block;width:100%;height:auto;max-height:180px;object-fit:contain;margin:auto}.reward-player{margin-top:18px;padding:16px;border-radius:14px;background:#2a1033;color:#fff;text-align:center}.reward-player video{width:100%;max-height:70svh;border-radius:8px;background:#000}.reward-player-title{font-weight:700;margin-bottom:10px}.reward-branches{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:12px}.reward-branches button{padding:8px 18px;border-radius:20px;background:#3d1a4a;color:#fff;border:1px solid #6b3fa0;font-weight:700}.reward-branches button[aria-pressed=true]{background:#ffd24a;color:var(--deep);border-color:#ffd24a}.reward-note{font-size:13px;color:#f7a8b8;min-height:18px}
@media(max-width:760px){.breaker-card .game-help{font-size:13px}.breaker-hero-desc{display:none}.reward-grid{grid-template-columns:repeat(3,1fr)}.ranking-list li{grid-template-columns:30px 1fr auto;gap:4px 10px}.rank-hero,.rank-wave{grid-column:2;font-size:11px}.rank-score{grid-row:1;grid-column:3}.rank-hero{grid-row:2}.rank-wave{display:none}.usage-row{grid-template-columns:32px 52px 1fr 42px;gap:8px}.breaker-result strong{font-size:28px}}
@media(prefers-reduced-motion:reduce){.breaker-controls [data-breaker-skill]:not(:disabled){animation:none}}
.breaker-overlay .button.secondary{color:var(--ink)}
.breaker-frame canvas{width:100%;height:auto;aspect-ratio:2/3}
.breaker-controls button{flex:1 1 22%}.breaker-level{font-size:13px;color:#f7a8b8}.breaker-levelup{justify-content:center}.breaker-perks{display:grid;gap:10px;width:100%;max-width:340px}.breaker-perk{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border-radius:12px;background:#2a1033;border:2px solid #6b3fa0;color:#fff;text-align:left;transition:transform .15s,border-color .15s}.breaker-perk:hover,.breaker-perk:focus-visible{border-color:#ffd24a;transform:translateX(4px)}.breaker-perk strong{font-size:15px;color:#ffd24a}.breaker-perk small{font-size:11px;color:#f7a8b8}.breaker-perk span{font-size:12px;color:#e8d8ee;line-height:1.5}.breaker-perk-list{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:480px;margin:10px auto 0}.breaker-perk-list span{font-size:11px;font-weight:700;padding:3px 10px;border-radius:12px;background:#2a1033;color:#ffd24a}.breaker-perk-list .is-empty{background:none;color:var(--muted);font-weight:500}
@media(max-width:760px){.breaker-controls button{flex:1 1 40%}}
.breaker-hero-art canvas{width:auto;height:72px}.usage-icon canvas{width:auto;height:48px}.usage-icon{display:flex;justify-content:center}
/* ===== game hub cards / runner ===== */
.game-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.game-card{display:flex;flex-direction:column;border-radius:24px 24px 24px 6px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 7px 0 #faedef;transition:transform .25s,box-shadow .25s}.game-card:hover{transform:translateY(-6px);box-shadow:0 12px 0 #f6e4e8}.game-card-art{display:flex;justify-content:center;align-items:flex-end;gap:6px;min-height:118px;padding:18px 12px 12px;background:linear-gradient(#1a0f2e,#3d1a4a);border-bottom:4px solid var(--red)}.game-card-art canvas{image-rendering:pixelated}.game-card-body{display:flex;flex-direction:column;gap:6px;padding:18px 20px 8px}.game-card-body strong{font-family:var(--serif);font-size:22px}.game-card-body>span:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.8}.game-card-body small{align-self:flex-start;margin-top:4px;padding:2px 10px;border-radius:12px;background:var(--blush);color:var(--red);font-weight:700;font-size:12px}.game-card-go{align-self:flex-end;margin:6px 18px 18px;padding:8px 18px;border-radius:20px;background:var(--red);color:#fff;font-weight:800;font-size:13px;letter-spacing:.1em}.game-back{text-align:center}
.runner-frame{max-width:720px}.runner-frame canvas{aspect-ratio:16/9}.runner-card .breaker-heroes{max-width:520px}.runner-controls{max-width:720px}.runner-controls button{flex:1 1 40%}.runner-controls [data-runner-dive]{background:#2a1033;color:#ffd24a;border-color:#2a1033}
@media(max-width:760px){.game-cards{grid-template-columns:1fr}.runner-card .breaker-overlay{gap:6px;padding:10px 8px}.runner-card .breaker-title{font-size:16px}.runner-card .breaker-hero{padding:6px 2px}.runner-card .breaker-line{display:none}.runner-card .breaker-result strong{font-size:22px}}
@media(max-width:760px){.runner-frame{flex-direction:column;overflow:visible;background:none;box-shadow:none}.runner-frame canvas{border-radius:14px;box-shadow:0 10px 30px #2a103333}.runner-card .breaker-overlay{position:static;margin-top:10px;border-radius:14px;background:#1a0f2e;overflow:visible}.runner-card .breaker-line{display:block}}
.runner-stage{position:relative;width:100%}.runner-stage canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;image-rendering:pixelated;touch-action:none}
.runner-bubble{position:absolute;z-index:2;transform:translate(-50%,calc(-100% - 10px));padding:5px 10px;background:#fff;color:#1a0f2e;border:2px solid #1a0f2e;border-radius:4px;box-shadow:3px 3px 0 #1a0f2e;font-family:var(--serif);font-weight:700;font-size:13px;line-height:1.4;white-space:nowrap;pointer-events:none;animation:runner-pop .22s steps(3) both}.runner-bubble:after{content:"";position:absolute;left:50%;bottom:-7px;width:8px;height:8px;background:#fff;border-right:2px solid #1a0f2e;border-bottom:2px solid #1a0f2e;transform:translateX(-50%) rotate(45deg)}
.runner-label{position:absolute;z-index:2;left:10px;top:34px;padding:4px 12px 4px 10px;background:#1a0f2ee0;color:#fff;border-left:4px solid var(--red);font-size:12px;font-weight:800;letter-spacing:.14em;pointer-events:none;animation:runner-slide .3s steps(4) both}
@keyframes runner-pop{from{transform:translate(-50%,calc(-100% - 2px)) scale(.6);opacity:0}}@keyframes runner-slide{from{transform:translateX(-24px);opacity:0}}
@media(max-width:760px){.runner-bubble{font-size:11px;padding:3px 7px}.runner-label{top:26px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.runner-bubble,.runner-label{animation:none}}
.runner-label{left:50%;top:8px;transform:translateX(-50%);white-space:nowrap;border-left:0;border-bottom:3px solid var(--red);animation-name:runner-drop}@keyframes runner-drop{from{transform:translate(-50%,-12px);opacity:0}}
.runner-bubble.is-below{transform:translate(-50%,10px)}.runner-bubble.is-below:after{bottom:auto;top:-7px;transform:translateX(-50%) rotate(225deg)}
@media(max-width:760px){.runner-label{top:4px}}
/* runner: wider on PC + full screen */
.runner-layout{max-width:1200px}.runner-layout .runner-frame,.runner-layout .runner-controls{max-width:1100px}
.runner-fs-exit,.runner-fs-dive{display:none}
.runner-frame.is-full{position:fixed;inset:0;z-index:1000;max-width:none;width:auto;display:flex;flex-direction:row;align-items:center;justify-content:center;border-radius:0;background:#000;overflow:hidden;box-shadow:none}
.runner-frame.is-full.is-rotated{inset:auto;top:50%;left:50%;width:var(--full-w);height:var(--full-h);transform:translate(-50%,-50%) rotate(90deg)}
.runner-frame.is-full .runner-stage{width:min(var(--full-w,100vw),calc(var(--full-h,100vh) * 16 / 9))}
.runner-frame.is-full .runner-stage canvas{border-radius:0;box-shadow:none}
.runner-frame.is-full .breaker-overlay{position:absolute;inset:0;margin:0;border-radius:0;background:#1a0f2ee8;overflow-y:auto;justify-content:center}
.runner-frame.is-full .runner-fs-exit{display:block;position:absolute;top:10px;right:10px;z-index:6;padding:8px 14px;border-radius:20px;background:#1a0f2ecc;color:#fff;border:1px solid #ffffff55;font-weight:700;font-size:13px}
.runner-frame.is-full .runner-fs-dive:not([hidden]){display:block;position:absolute;right:14px;bottom:14px;z-index:5;width:76px;height:76px;border-radius:50%;background:#2a1033cc;color:#ffd24a;border:2px solid #ffd24a;font-weight:800;font-size:13px}
.runner-frame.is-full .runner-bubble{font-size:clamp(12px,1.6vw,20px)}.runner-frame.is-full .runner-label{font-size:clamp(11px,1.3vw,16px);top:14px}
html.runner-locked,html.runner-locked body{overflow:hidden}
.runner-full-button{background:var(--red)!important;color:#fff!important;border-color:var(--red)!important}
@media(max-width:760px){.runner-controls button{flex:1 1 30%}}
.runner-frame.is-full .runner-fs-exit{top:auto;right:auto;left:10px;bottom:10px}
/* JS pages: keep the crawlable intro text off screen and show a small loader until the app renders. */
html.js #public-intro{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
html.js body:has(#site[hidden]):has(#gate[hidden])::after{content:"";position:fixed;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border:3px solid var(--line);border-top-color:var(--red);border-radius:50%;animation:page-spin .8s linear infinite,page-fade .2s .25s both}
@keyframes page-spin{to{transform:rotate(360deg)}}@keyframes page-fade{from{opacity:0}}
.hero-title{cursor:default}
/* PC: runner game-over in two columns so it fits inside the 16:9 game without scrolling; game fits the window height. */
@media(min-width:761px){
.runner-layout .runner-frame{max-width:min(1100px,calc((100svh - 150px) * 16 / 9))}
.runner-card .breaker-over{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-flow:dense;align-content:center;column-gap:22px;row-gap:10px;padding:16px 22px}
.runner-card .breaker-over>*{grid-column:2;margin:0}
.runner-card .breaker-over>.breaker-title,.runner-card .breaker-over>.breaker-result,.runner-card .breaker-over>.breaker-unlock,.runner-card .breaker-over>.breaker-card-img{grid-column:1;justify-self:center}
.runner-card .breaker-over .breaker-card-img{max-width:100%}
.runner-card .breaker-over .breaker-rank-form{justify-content:center}
}
@media(min-width:761px){.runner-card .breaker-over>.breaker-card-img{grid-row:span 5;align-self:start}.runner-card .breaker-over{align-items:center}}

/* characters: the name picker stays at the top; the standing picture fits under it */
.character-picker{position:sticky;top:12px;z-index:30;padding:8px;border-radius:18px;background:#ffffffe8;backdrop-filter:blur(8px);box-shadow:0 8px 24px #4c173b14}
@media(min-width:761px){.character-picker{width:min(88%,560px)}.character-layout{min-height:0;padding-top:24px;align-items:start}.character-stage>img{max-height:calc(100svh - 150px);width:auto;margin:0 auto}.character-circle{top:4%}.character-profile{padding-top:40px}}
@media(max-width:760px){.character-picker{top:8px}.character-stage{height:min(590px,calc(100svh - 150px))}}
/* relation map: crop each face around its measured centre */
.relation-face{position:relative}.relation-face img{position:absolute;width:416%;max-width:none;margin:0;left:calc(50% - var(--fx) * 416%);top:calc(50% - var(--fy) * 416% * 1.4615)}
/* game hub: three cards */
.game-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1000px){.game-cards{grid-template-columns:1fr 1fr}}@media(max-width:760px){.game-cards{grid-template-columns:1fr}}
.reward-subtitle{font-family:var(--serif);font-size:20px;margin:34px 0 6px;padding-top:24px;border-top:1px solid var(--line)}.reward-grid-quiz{grid-template-columns:repeat(3,1fr)}
.quiz-reward{margin-top:12px;padding:10px 14px;border-radius:12px;background:#fff6dc;color:var(--deep);font-size:14px;font-weight:700}.quiz-reward a{color:var(--red);text-decoration:underline;margin-left:4px}
.quiz-art{padding:0;background:none;border-radius:16px;overflow:hidden}.quiz-art img{width:200px;height:280px;object-fit:cover;border-radius:16px}
@media(max-width:760px){.character-picker{width:auto;margin-left:12px;margin-right:88px}}
.game-card-body{flex:1}

/* illustrated face icons on the character select and the usage chart */
.breaker-hero-art .hero-icon{display:block;margin:0 auto 4px;filter:drop-shadow(0 2px 0 #0006)}.usage-icon .hero-icon{display:block}.usage-row{grid-template-columns:48px 64px 1fr 48px}

/* breaker: passive line on the character select */
.breaker-hero .breaker-hero-passive{color:#9fe0ff;margin-top:3px}

/* give-up button and the auto-save note under the game controls */
.breaker-controls .breaker-quit{flex:1 1 100%;min-height:38px;background:#fff;border-color:#efc3cd;color:var(--red)}.breaker-controls .breaker-quit:disabled{opacity:.4}
.game-save-note{margin-top:8px;font-size:12px;line-height:1.6;color:var(--muted);text-align:center}

/* reward → purchase call-to-action (game over unlock, reward viewer, loop player, quiz result) */
.reward-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px;margin:12px auto 0;max-width:560px;padding:14px 16px;border-radius:14px;background:linear-gradient(135deg,#fff6dc,#ffe3ea);border:1px solid #f3c7d2;color:#4c173b;text-align:left}
.reward-cta p{flex:1 1 240px;font-size:13px;line-height:1.7}.reward-cta strong{display:block;font-family:var(--serif);font-size:16px;color:var(--red)}
.reward-cta-button{display:inline-flex;flex-direction:column;align-items:center;padding:9px 18px;border-radius:999px;background:var(--red);color:#fff;font-weight:700;font-size:14px;box-shadow:0 4px 0 #86172b;white-space:nowrap}.reward-cta-button small{font-size:10px;font-weight:500;opacity:.85}
.reward-cta-button:hover{transform:translateY(-1px)}#image-dialog .reward-cta{margin:10px 12px 12px}

/* top-page game banner */
.game-banner-section{padding-top:10px;padding-bottom:70px}
.game-banner{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-height:230px;padding:28px 32px;border-radius:26px 26px 26px 6px;overflow:hidden;color:#fff;background:radial-gradient(circle at 82% 18%,#ffe6a8 0 34px,#ffd24a55 35px,transparent 90px),linear-gradient(160deg,#1a0f2e 0%,#3d1a4a 62%,#6b1f3e 100%);box-shadow:0 8px 0 #f3dbe1;transition:transform .25s,box-shadow .25s}
.game-banner:hover{transform:translateY(-4px);box-shadow:0 12px 0 #f0d2da}
.game-banner-canvas{position:absolute;inset:auto 0 0 0;width:100%;height:150px;pointer-events:none}
.game-banner-copy{position:relative;display:flex;flex-direction:column;gap:6px;max-width:560px}.game-banner-copy .eyebrow{color:#ffd24a}
.game-banner-copy strong{font-family:var(--serif);font-size:28px;line-height:1.4;letter-spacing:.04em}.game-banner-copy>span:last-child{font-size:14px;color:#f1e3f0}
.game-banner-progress{color:#ffd24a;font-weight:700}
.game-banner-go{position:relative;flex-shrink:0;padding:10px 20px;border-radius:999px;background:#ffd24a;color:#4c173b;font-weight:800;font-size:14px;letter-spacing:.08em;box-shadow:0 4px 0 #c99a1e}
.game-banner-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px}.game-banner-links a{padding:7px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--red);font-size:14px;font-weight:700}.game-banner-links a:hover{background:var(--blush)}
@media(max-width:760px){.game-banner{flex-direction:column;min-height:280px;padding:22px 20px}.game-banner-copy strong{font-size:22px}.game-banner-canvas{height:130px}.game-banner-go{position:absolute;right:16px;top:18px;padding:6px 14px;font-size:12px}.game-banner-copy{padding-right:70px}}
/* readability: Yu Gothic renders thin at weight 400 on Windows, so use its Medium face; slightly darker muted text and larger captions */
:root{--sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium",YuGothic,"Yu Gothic",Meiryo,sans-serif;--muted:#6a575d}
.card-caption p,.news-meta time,.diary-card time{font-size:13px}.category{font-size:12px}.section-heading h2{font-size:13px}
.clap-box p,.purchase-inner p:not(.eyebrow),.pickup-card .card-caption p{font-size:14px}
@media(max-width:760px){.news-row{font-size:15px}.game-help{font-size:14px}.card-caption h3{font-size:15px}}

/* play hub: illustrated card art when content.gameArt has an image */
.game-card-art.has-image{padding:0;min-height:0;aspect-ratio:16/9}.game-card-art.has-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.game-card:hover .game-card-art.has-image img{transform:scale(1.04)}

.portrait-low .card-art img{top:-4%}

/* pickup cards whose page is not ready yet: veiled thumbnail with a 準備中 badge */
.card-preparing{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#2a103366;backdrop-filter:blur(2px) saturate(.8);color:#fff;z-index:1;pointer-events:none}
.card-preparing span{padding:6px 22px;border:1px solid #ffffffcc;border-radius:999px;background:#b91c36d9;font-family:var(--serif);font-size:18px;font-weight:700;letter-spacing:.2em;box-shadow:0 4px 14px #0004}
.card-preparing small{margin-top:6px;font-size:10px;font-weight:800;letter-spacing:.3em;text-shadow:0 1px 3px #0008}
.card-art .card-label{z-index:2}
#dialog-image.is-zoomable{cursor:zoom-in}.reward-full{text-align:center;font-size:12px;margin:6px 0 0}.reward-full a{color:var(--red);border-bottom:1px solid var(--line)}
.quiz-result img.quiz-chibi{width:200px;height:auto;max-height:340px;object-fit:contain;object-position:50% 100%;border:0;border-radius:0;background:none;filter:drop-shadow(0 8px 12px #4c173b22)}
.quiz-gift{margin:18px 0 4px;padding:16px 18px;border-radius:16px;background:#fff8fa;border:2px solid #f3c7d2;text-align:left}
.quiz-gift p{font-size:14px;line-height:1.7}.quiz-gift strong{color:var(--red)}
.quiz-gift-title{font-family:var(--serif);font-weight:800;font-size:18px!important;color:var(--red);margin-bottom:4px}
.quiz-gift-note{font-size:13px!important;color:var(--muted);margin-top:6px}.quiz-gift-note a{color:var(--red);text-decoration:underline;text-underline-offset:3px;font-weight:700}
.quiz-gift-art{display:block;position:relative;width:100%;max-width:360px;margin:10px 0 0;padding:0;border-radius:12px;overflow:hidden;background:none}
.quiz-result .quiz-gift-art img{width:100%;height:auto;border:0;border-radius:12px;object-fit:contain;background:none}
.quiz-gift-art span{position:absolute;right:8px;bottom:8px;padding:3px 10px;border-radius:20px;background:#fffd;font-size:11px;color:var(--red);font-weight:700}
.quiz-gift-link{margin-top:12px;min-height:44px;padding:8px 18px;gap:10px}
@media(max-width:760px){.quiz-result img.quiz-chibi{width:150px;max-height:260px}.quiz-gift{text-align:center}.quiz-gift-art{margin:10px auto 0}}
.reward-grid[data-rewards]{grid-template-columns:repeat(2,1fr)}
.reward-coming{border-style:dashed;background:repeating-linear-gradient(135deg,#fff8fa 0 12px,#fbeef2 12px 13px);justify-content:center;gap:8px;color:var(--ink)}
.reward-coming strong{font-family:var(--serif);color:var(--red);font-size:15px}.reward-coming span:last-child{font-size:12px;line-height:1.6;color:var(--muted)}
.reward-coming .reward-lock{background:linear-gradient(135deg,#2a1033,#6b3fa0);animation:coming-twinkle 2.4s ease-in-out infinite}
@keyframes coming-twinkle{50%{transform:scale(1.08) rotate(8deg);color:#fff}}
.manga-lead{text-align:center;color:var(--muted);margin:0 0 30px}
.manga-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,340px));justify-content:center;gap:26px;max-width:1080px;margin:0 auto}
.manga-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 6px 0 #faedef;transition:transform .25s,box-shadow .25s}
.manga-card:hover{transform:translateY(-3px);box-shadow:0 10px 0 #f6dfe5}
.manga-thumb{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--blush)}
.manga-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.manga-card:hover .manga-thumb img,.manga-card:focus-visible .manga-thumb img{transform:scale(1.07)}
.manga-badge{position:absolute;right:10px;top:10px;padding:4px 10px;border-radius:20px;background:#2a1033e6;color:#ffd24a;font-size:11px;font-weight:800}
.manga-card-body{display:flex;flex-direction:column;gap:6px;padding:16px 18px 6px}.manga-card-body strong{font-family:var(--serif);font-size:19px}
.manga-card-go{align-self:flex-end;padding:0 18px 14px;color:var(--red);font-size:13px;font-weight:700}
.manga-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--muted)}.manga-meta span{color:var(--red)}
.manga-episode{max-width:760px;margin:0 auto;text-align:center}.manga-episode>h2{font-family:var(--serif);font-size:26px;margin:6px 0 8px}.manga-episode>.manga-meta{justify-content:center;margin-bottom:24px}
.manga-comic{display:block;width:100%;height:auto;margin:0 auto;border-radius:10px;box-shadow:0 8px 30px #4c173b1a}
.manga-bonus{margin:40px auto 0;padding:26px 20px;border-radius:20px;background:#fff8fa;border:2px solid #f3c7d2}
.manga-bonus h3{font-family:var(--serif);font-size:21px;margin:4px 0 16px}.manga-bonus h3 small{font-size:12px;color:#fff;background:var(--red);border-radius:20px;padding:2px 9px;margin-left:6px;vertical-align:middle}
.manga-bonus-art{position:relative;display:block;width:100%;padding:0;background:none;border-radius:14px;overflow:hidden}
.manga-bonus-art img{display:block;width:100%;height:auto}
.manga-bonus-art span{position:absolute;right:10px;bottom:10px;padding:4px 12px;border-radius:20px;background:#fffd;font-size:12px;color:var(--red);font-weight:700}
.manga-teaser{position:relative;border-radius:14px;overflow:hidden}
.manga-teaser{min-height:220px;background:#2a1033}.manga-teaser>img{display:block;width:100%;height:auto;min-height:220px;object-fit:cover}.manga-teaser-lock .button.secondary{color:var(--ink);background:#fff}
.manga-teaser::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#2a1033f2 78%);pointer-events:none}
.manga-teaser-lock{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:16px;color:#fff;display:flex;flex-direction:column;align-items:center;gap:6px}
.manga-teaser-lock p{font-size:13px}.manga-teaser-lead{font-family:var(--serif);font-size:18px!important;color:#ffd24a;font-weight:800}
.manga-teaser-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:4px}.manga-teaser-actions .button{min-height:44px;padding:8px 20px}
.manga-teaser-status{min-height:1em}
.manga-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin:34px 0 0;font-size:14px}
.manga-nav a{color:var(--red);font-weight:700}.manga-nav a:first-child{justify-self:start}.manga-nav a:last-child{justify-self:end}
.manga-share{margin-top:20px}
@media(max-width:760px){.manga-teaser::after{inset:20% 0 0}.manga-teaser-lock{padding:10px}.manga-teaser-lead{font-size:15px!important}.manga-episode>h2{font-size:21px}}
.manga-bonus-title{font-family:var(--serif);font-size:20px;font-weight:700;color:var(--deep);margin:-6px 0 16px;letter-spacing:.04em}
@media(max-width:760px){.manga-bonus-title{font-size:17px}}
.reward-slot button.reward-sensitive,.quiz-gift-note .reward-sensitive{display:inline-block;margin-left:4px;padding:4px 14px;border:0;border-radius:20px;background:var(--red);color:#fff;text-decoration:none;font-size:12px;font-weight:800;cursor:pointer}
/* 開発日記：画像付きは写真を大きく（2026-10-08） */
.diary-card.has-image{grid-template-columns:260px 1fr}
.diary-card.has-image img{width:260px;height:260px}
@media(max-width:760px){.diary-card.has-image{grid-template-columns:1fr}.diary-card.has-image img{width:100%;height:auto;aspect-ratio:1}}
