:root{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,"Noto Sans JP",sans-serif;color:#28282b;background:#fff;letter-spacing:0;--accent:#bc2949;--line:#d5d5d8;--muted:#717176}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #bc2949;outline-offset:4px}[hidden]{display:none!important}.official-header{display:block;width:100%;height:40px;border:0}.mobile-header{display:none}.navigation{height:72px;background:#fff;display:flex;align-items:center;gap:28px;padding:0 5%;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.wordmark{font-size:18px;font-weight:700;margin-right:auto;white-space:nowrap}.navigation nav{display:flex;gap:26px;font-size:14px}.navigation nav a:hover,.footer-links button:hover{color:var(--accent)}.nav-register{background:#28282b;color:#fff;padding:12px 20px;font-size:14px;white-space:nowrap}.hero{min-height:660px;position:relative;isolation:isolate;background:#ececee;overflow:hidden}.slot{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:#ededf0;border:1px dashed #b5b5bb;color:#76767e;font-size:14px;text-align:center;padding:20px;min-width:0}.hero-art{position:absolute;inset:32px 5% 32px 47%;background:#e2e2e6}.hero-art small{font-size:12px}.hero-content{position:relative;width:38%;margin-left:9%;min-height:660px;padding:40px 0 64px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:28px}.hero-content>*{flex-shrink:0}.logo-slot{width:100%;max-width:340px;aspect-ratio:2.8;background:#f8f8f9}.copy-slot{width:100%;color:var(--muted);display:grid;gap:13px;font-size:14px}.copy-slot i,.text-placeholder i,.placeholder-lines i{display:block;height:7px;background:#d6d6da;width:100%;max-width:420px}.copy-slot i:last-child,.text-placeholder i:last-child{width:65%}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:36px;border:0;background:var(--accent);color:white;min-height:58px;width:280px;padding:16px 25px;font-size:18px}.primary-button:hover{background:#a11f3b}.scroll-link{position:absolute;left:9%;bottom:22px;display:flex;gap:20px;font-size:12px}.section{padding:72px max(6%,calc((100% - 1120px)/2));scroll-margin-top:0}.section-heading{display:flex;gap:16px;align-items:center;margin-bottom:36px;flex-wrap:wrap}.index{color:var(--accent);font-size:12px;border-top:2px solid var(--accent);padding-top:7px}h2{font-size:26px;margin:0;font-weight:600}h3{font-size:21px;line-height:1.5;margin:0 0 24px}.story-layout,.feature-layout{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:64px}.story-art{aspect-ratio:4/3}.text-placeholder{display:grid;gap:16px;min-width:0}.features{background:#f6f6f7}.feature-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:30px}.feature-tabs button{padding:14px 28px;border:0;background:transparent;color:var(--muted);border-bottom:3px solid transparent;font-size:14px}.feature-tabs button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}.feature-art{aspect-ratio:16/10;background:#e5e5e9}.character-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center}.character-art{height:450px;background:#f1f1f3}.character-picker{display:flex;gap:12px;margin-top:40px;flex-wrap:wrap}.character-picker button{width:62px;height:62px;background:#ececee;border:1px solid var(--line);color:var(--muted)}.character-picker button[aria-pressed=true]{border:2px solid var(--accent);color:var(--accent);background:#fff}.pending{font-size:12px;color:var(--muted);margin-left:auto}.rewards-slot{min-height:270px;background:#f6f6f7}.placeholder-lines{display:grid;gap:14px;width:50%;max-width:360px;margin-top:16px}.registration{border-top:1px solid var(--line);background:#f6f3f4}.registration-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.registration-logo{width:280px;max-width:100%;height:96px;margin-bottom:24px;background:#fff}.registration-controls{display:flex;flex-direction:column;align-items:center;gap:16px}.notification{font-size:13px;display:flex;gap:8px;align-items:center}.notification input{accent-color:var(--accent);width:17px;height:17px}.platform-label{font-size:12px;color:var(--muted)}.store-slot{font-size:12px;width:280px;max-width:100%;padding:18px;background:transparent}.information{display:grid;grid-template-columns:1fr 1fr;gap:64px}.information h2{font-size:18px;margin-bottom:22px}.social-area .slot{min-height:160px;background:#f7f7f8}.game-info dl{display:grid;grid-template-columns:100px 1fr;font-size:13px;margin:0}.game-info dt,.game-info dd{margin:0;padding:14px 0;border-bottom:1px solid var(--line);line-height:1.6}.game-info dt{color:var(--muted)}.blank-value:after{content:"";display:block;background:#e5e5e8;height:7px;width:65%;margin-top:8px}footer{position:relative;padding:32px 6%;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.footer-links{display:flex;gap:24px;flex-wrap:wrap}.footer-links button{border:0;background:none;padding:0;color:inherit;font-size:12px}.copyright-slot{margin-top:22px}footer>a{position:absolute;right:6%;top:32px;font-size:24px}dialog{width:560px;max-width:calc(100% - 32px);border:1px solid var(--line);padding:40px;background:#fff;color:#28282b;border-radius:4px}dialog::backdrop{background:#0009}dialog h2{font-size:20px;padding-right:24px}.dialog-close{position:absolute;right:12px;top:8px;font-size:28px;border:0;background:none;color:var(--muted)}.dialog-placeholder{height:180px;margin:28px 0}.dialog-done{display:block;margin-left:auto;border:0;background:#28282b;color:#fff;padding:10px 22px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.hero-art{z-index:0;inset:0;border:0;align-items:flex-end;justify-content:flex-start;padding:55px 7%;background:#e8e8eb}.hero-content{z-index:1}.hero-content .logo-slot{background:transparent;border-color:#a9a9b0}.hero-content .copy-slot i{background:#bfc0c6}
@media(max-width:760px){.desktop-header{display:none}.mobile-header{display:block}.navigation{height:auto;min-height:64px;gap:12px;padding:14px 20px;flex-wrap:wrap}.wordmark{font-size:15px}.nav-register{padding:10px 14px;font-size:12px}.navigation nav{order:3;width:100%;justify-content:space-between;gap:12px;font-size:12px;overflow:auto;padding-top:6px}.hero{height:630px;max-height:none;min-height:0}.hero-art{inset:24px 20px 235px 20px}.hero-content{width:auto;margin:0 32px;height:auto;position:absolute;left:0;right:0;bottom:55px;gap:16px;align-items:center}.logo-slot{height:68px;width:220px;aspect-ratio:auto}.hero-content .copy-slot{max-width:260px;gap:9px;text-align:center}.hero-content .copy-slot i{height:5px}.hero-content .copy-slot i:last-child{margin:auto}.primary-button{min-height:52px;font-size:16px;width:260px;max-width:100%}.scroll-link{left:auto;right:24px;bottom:18px}.section{padding:48px 24px}h2{font-size:23px}.section-heading{margin-bottom:26px;gap:12px}.story-layout,.feature-layout,.character-layout,.registration-layout,.information{grid-template-columns:1fr;gap:30px}.story-art{aspect-ratio:4/3}.feature-tabs button{padding:12px 17px;flex:1}.character-art{height:350px}.character-picker{margin-top:26px;gap:10px}.character-picker button{width:56px;height:56px}.pending{width:100%;margin:0 0 0 32px}.rewards-slot{min-height:240px}.registration-logo{margin:auto auto 24px}.registration-layout .copy-slot{text-align:center}.registration-layout .copy-slot i{margin:auto}.game-info dl{grid-template-columns:90px 1fr}.placeholder-lines{width:75%}footer{padding:28px 24px}.footer-links{gap:20px}dialog{padding:32px 24px}.dialog-placeholder{height:150px}}

/* 以下仅接入素材、通知选项和结果页；以上为 Drive 原排版样式。 */
.wordmark{display:flex;align-items:center;height:64px}.wordmark>img{width:112px;height:63px;object-fit:contain}
.logo-slot{display:grid;place-items:center;width:100%;max-width:340px;aspect-ratio:448/252}
.logo-slot img,.registration-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.registration-logo{display:grid;place-items:center;height:auto;aspect-ratio:448/252}
.hero-content{gap:20px}.hero-content .notification{color:#38323c;font-size:12px;line-height:1.7}
.hero-content .copy-slot{font-size:22px;font-weight:bold;color:#4b3147}
[data-slot].image-loaded{padding:0;background:transparent;border:0}
[data-slot].image-loaded> :not(img){display:none}
[data-inserted]{display:block;width:100%;height:100%;object-fit:contain}
.wordmark.image-loaded>[data-inserted]{width:112px;height:63px}
.hero-art.image-loaded>[data-inserted]{object-fit:contain;object-position:center top}
.hero.complete-kv [data-slot="game-logo"]{visibility:hidden}
[data-title-media].image-loaded{height:60px}
[data-title-media].image-loaded>[data-inserted]{object-fit:contain;object-position:left}
.has-registration-frame{background-size:contain;background-repeat:no-repeat;background-position:center}
.story-layout.composed-art,.feature-layout.composed-art{grid-template-columns:1fr;gap:0}
.story-layout.composed-art>[data-slot="story-text"],.feature-layout.composed-art>[data-slot="feature-text"]{display:none}
.story-layout.composed-art .story-art,.feature-layout.composed-art .feature-art{aspect-ratio:16/9;width:100%}




.character-picker button{width:auto;min-width:62px;height:auto;min-height:48px;padding:10px 12px;font-size:12px}
.rewards-slot{aspect-ratio:2/1;min-height:0;width:100%;padding:20px}
.reward-caption{font-size:12px;color:var(--muted);line-height:1.9;margin-top:20px}
.reward-caption p{margin:5px 0}.reward-caption p:last-child{margin-top:16px;font-size:11px}
[data-slot="social-content"]{width:100%}

.image-loaded[data-slot="story-image"],.image-loaded[data-slot="reward-campaign"]{background:none}
.dialog-message{font-size:14px;line-height:1.9;white-space:pre-line;color:var(--muted);margin-top:24px}
.dialog-actions{display:grid;gap:14px;margin:24px 0}.dialog-actions .primary-button{width:100%;font-size:15px;min-height:50px}
.dialog-image{width:100%;max-height:60vh;object-fit:contain;margin:20px 0}
.result-main{min-height:65vh;display:grid;place-items:center;padding:70px 24px;background:#f6f6f7}
.result-card{max-width:620px;width:100%;padding:44px;background:#fff;border:1px solid var(--line);text-align:center}
.result-card h1{font-size:27px;line-height:1.7;margin:0 0 24px}.result-card p{font-size:14px;line-height:2;color:var(--muted)}
.result-card .primary-button{margin:28px auto 0;font-size:16px;width:100%;max-width:320px}
.result-card .preview-note{font-size:11px;margin-top:28px}.result-card .review-links{display:grid;gap:14px;margin-top:25px}
@media(max-width:760px){.wordmark{height:40px}.wordmark>img,.wordmark.image-loaded>[data-inserted]{width:90px;height:50px}.navigation{padding-block:12px}
.logo-slot{width:220px;height:110px;aspect-ratio:448/252}.hero-content{gap:12px;bottom:48px}.hero-content .copy-slot{font-size:18px}
.hero-content .notification{font-size:11px}.hero-content .primary-button{flex-shrink:0}
.hero-art{bottom:290px}
.character-picker{gap:8px}.character-picker button{font-size:10px;padding:10px 8px;min-width:70px}
.rewards-slot{min-height:0}.result-main{padding:40px 20px}.result-card{padding:32px 22px}.result-card h1{font-size:23px}
}

/* 已提供的登记装饰只包围登记控件，不改变首屏 Logo 与主图位置。 */
.registration-art-frame{width:100%;max-width:390px;display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 20px;background-size:100% 100%;background-position:center;background-repeat:no-repeat}
.registration-art-frame .copy-slot{max-width:300px}.registration-art-frame .copy-slot [data-title-media]{height:44px}
.registration-art-frame>*{flex-shrink:0}.registration-art-frame .primary-button{max-width:100%}.registration-art-frame .notification{margin:0;font-size:11px}
@media(max-width:760px){.registration-art-frame{max-width:340px;gap:10px;padding:18px 14px}.registration-art-frame .copy-slot [data-title-media]{height:36px}.hero-content{bottom:35px}.hero-art{bottom:310px}}

.image-loaded>[data-media-fallback]{display:none!important}

/* 角色区：SP01..30 独立透明立绘，纯色背景。 */
.character-showcase{position:relative;isolation:isolate;overflow:hidden;background:#f5f0e8;padding-top:64px;padding-bottom:38px;color:#3e2d35}
.character-showcase:before{content:none}
.character-showcase .section-heading{position:relative;margin-bottom:10px}
.character-showcase .section-heading h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:30px;letter-spacing:.12em}
.character-section-en{margin-left:auto;font-size:10px;letter-spacing:.25em;color:#907146}
.character-showcase .index{color:#9b6e30;border-color:#9b6e30}
.character-showcase .character-layout{grid-template-columns:1.15fr .85fr;gap:36px;align-items:center;min-height:630px}
.character-stage{position:relative;min-width:0;height:630px;display:grid;place-items:center}
.character-showcase .character-art{position:relative;width:100%;height:100%;aspect-ratio:auto;background:transparent;border:0;padding:0;overflow:visible;display:grid;place-items:center;min-width:0}
.character-showcase .character-art img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 15px 16px #452c342d)}
.character-showcase .character-details{position:relative;width:100%;max-width:430px;margin-left:auto;padding:32px 0 28px 28px;background:transparent;border:0;box-shadow:none}
.character-showcase .character-profile{display:block;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:#272829}
.character-role{font-size:12px;font-weight:700;line-height:1.7;color:#a42d43;letter-spacing:.04em;margin:0 0 14px}
.character-showcase .character-profile h3{font-family:inherit;font-size:40px;letter-spacing:-.025em;line-height:1.35;font-weight:700;margin:0;color:#242526}

.character-showcase .character-description{font-size:14px;line-height:2;color:#4d504e;letter-spacing:.015em;border-top:1px solid #cbc9c1;padding-top:24px;margin:24px 0 0;min-height:120px}
.character-arrows{display:flex;align-items:center;gap:20px;margin-top:24px}
.character-arrows button{width:42px;height:42px;border:1px solid #aaa99f;border-radius:0;background:transparent;color:#343734;transition:background .15s,color .15s,border-color .15s}
.character-arrows button:hover{background:#343734;border-color:#343734;color:#fff}.character-count{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;color:#5f625d;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.character-showcase .character-picker{position:relative;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:10px;margin:24px auto 0;max-width:1120px}
.character-showcase .character-picker button{width:100%;min-width:0;min-height:0;height:auto;padding:0;border:0;background:transparent;color:#7d6b5b;overflow:visible;display:grid;grid-template-rows:112px auto;align-content:start;gap:8px;box-shadow:none}
.character-showcase .character-picker .character-thumbnail-frame{display:block;width:100%;height:112px;padding:10px 4px 0;border:1px solid #c3ac85;background:#fff9ee;overflow:hidden}
.character-showcase .character-picker button img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.character-showcase .character-picker .character-label{display:block;width:100%;min-height:30px;padding:0 2px;font-size:10px;line-height:1.6;white-space:normal;text-align:center;background:none}
.character-showcase .character-picker button[aria-pressed=true]{border:0;color:#633a32;background:transparent;box-shadow:none}
.character-showcase .character-picker button[aria-pressed=true] .character-thumbnail-frame{border:2px solid #9b7038;background:#f0dfc1;box-shadow:0 5px 18px #65422228}
.character-showcase .character-picker button:hover .character-thumbnail-frame{border-color:#9b7038}
@media(max-width:1000px) and (min-width:761px){.character-showcase .character-layout{gap:20px;grid-template-columns:1fr 1fr}.character-showcase .character-details{padding:28px}.character-showcase .character-profile h3{font-size:34px}.character-stage{height:560px}}
@media(max-width:760px){.character-showcase{padding:45px 22px 30px;background-position:42% center}
.character-showcase:before{content:none}
.character-showcase .section-heading{margin-bottom:0}.character-showcase .section-heading h2{font-size:25px}.character-section-en{font-size:8px;letter-spacing:.15em}
.character-showcase .character-layout{grid-template-columns:1fr;gap:0;min-height:0}
.character-stage{height:440px;max-width:480px;width:100%;margin:0 auto}
.character-showcase .character-details{max-width:none;margin:0;padding:26px 24px}
.character-showcase .character-profile h3{font-size:32px}
.character-role{font-size:10px;margin-bottom:12px}

.character-showcase .character-description{font-size:12px;min-height:0;padding-top:20px;margin-top:20px}
.character-arrows{margin-top:20px;justify-content:center}
.character-showcase .character-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:20px}
.character-showcase .character-picker button{width:100%;min-width:0;height:auto;grid-template-rows:90px auto;gap:6px}
.character-showcase .character-picker .character-thumbnail-frame{height:90px;padding-top:8px}
.character-showcase .character-picker .character-label{min-height:24px;font-size:8px;line-height:1.3}}
@media(max-width:380px){.character-stage{height:370px}.character-showcase .section-heading h2{font-size:22px}.character-section-en{letter-spacing:.05em}.character-showcase .character-profile h3{font-size:28px}}

.character-showcase .character-art .character-spine{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.character-showcase .character-art .character-spine[hidden]{display:none}
.character-showcase .character-art.spine-ready>img[data-inserted],.character-showcase .character-art.spine-ready>[data-media-fallback]{display:none!important}

/* 技能展示沿用当前页面内的排版。 */
.skill-design-preview .character-layout{align-items:start}
.skill-design-preview .character-stage{position:sticky;top:96px}
.skill-design-preview .character-details{padding-top:22px}
.skill-design-preview .character-description{min-height:0;margin-top:18px;padding-top:18px;font-size:13px;line-height:1.9}
.character-skill-sample{margin-top:26px;border-top:2px solid #343734}
.battle-sample-heading{display:flex;justify-content:space-between;gap:12px;padding:12px 0;font:10px/1.4 Arial,sans-serif;letter-spacing:.08em;color:#60645f}
.battle-sample-heading>span:last-child{letter-spacing:0;font-size:11px}
.battle-sample-stage{position:relative;height:210px;background:#e8e7df;overflow:hidden}
.battle-sample-art{position:absolute;inset:8px 16px 6px}
.battle-sample-art .character-spine{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.battle-sample-art .character-spine[hidden]{display:none}
.battle-sample-ground{position:absolute;bottom:12px;left:24px;right:24px;border-bottom:1px solid #cbcec4;pointer-events:none}
.battle-sample-controls{display:flex;align-items:center;justify-content:space-between;padding:9px 0 13px;border-bottom:1px solid #cbcec4;color:#6c7168;font-size:10px;letter-spacing:.02em}
.battle-sample-controls button{border:0;background:none;color:#343734;padding:6px 0 6px 14px;font-size:11px;font-weight:700}
.battle-sample-controls button:hover{color:#a42d43}
.battle-sample-controls button span{margin-left:10px;font-size:15px}
.initial-skill{padding-top:19px;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
.initial-skill-heading{display:flex;align-items:baseline;gap:13px}
.initial-skill-label{font-size:10px;white-space:nowrap;color:#a42d43;font-weight:700}
.initial-skill h4{font-size:19px;line-height:1.4;margin:0;color:#252925;font-weight:700;letter-spacing:0}
.initial-skill-stats{display:flex;gap:18px;color:#73786e;font-size:10px;margin:12px 0}
.initial-skill-stats b{font-weight:500;color:#363d34;margin-left:6px;font-variant-numeric:tabular-nums}
.initial-skill p{font-size:12px;line-height:1.95;color:#4d5549;margin:0}
@media(max-width:760px){.skill-design-preview .character-stage{position:relative;top:auto}.skill-design-preview .character-details{padding:22px 0}.battle-sample-stage{height:220px}.character-skill-sample{margin-top:24px}}

.battle-sample-art .spine-player{width:100%;height:100%;position:absolute;inset:0;pointer-events:none;background:transparent}
.battle-sample-art .spine-player canvas{width:100%;height:100%;display:block}

.battle-sample-art .spine-player{z-index:1}
.battle-skill-effect{position:absolute;inset:0;pointer-events:none}
.battle-sample-controls button:disabled{cursor:default;color:#8a8e86}

/* 每个玩法标签保留一张原始截图。 */
.feature-tabs{overflow-x:auto}
.feature-tabs button{white-space:nowrap}
.feature-layout.composed-art .plain-feature-screenshot{position:relative;aspect-ratio:1167/658;padding:0;overflow:hidden;border:0;background:#111}
.plain-feature-screenshot>[data-inserted]{position:absolute;left:0;top:-4.86322%;width:102.82776%;height:104.86322%;max-width:none;object-fit:fill}

.game-info .system-requirements{white-space:pre-line;line-height:1.9}

/* 使用已提供的日文字体，保持现有间距、字号和排版。 */
@font-face{font-family:"Aozora Mincho";src:url("../fonts/AozoraMinchoRegular-2.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Yuji Syuku";src:url("../fonts/YujiSyuku.otf") format("opentype");font-style:normal;font-weight:400;font-display:swap}
.section-heading h2,.character-showcase .section-heading h2{font-family:"Aozora Mincho","Yu Mincho",serif;font-weight:400}
.character-showcase .character-profile h3{font-family:"Yuji Syuku","Yu Mincho",serif;font-weight:400;font-synthesis:none}
.primary-button.registration-image-button{padding:0;border:0;background:transparent;box-shadow:none;min-height:0;display:block}
.primary-button.registration-image-button>img[data-inserted]{display:block;width:100%;height:auto;object-fit:contain}
.primary-button.registration-image-button:hover{background:transparent;filter:brightness(1.08)}

/* 空素材和未配置的可选内容不显示占位样式。 */
.hero-art:not(.image-loaded){visibility:hidden}
.hero{background:#f5f0e8}
.story-layout{grid-template-columns:1fr}
.story-art:not(.image-loaded),.rewards-slot:not(.image-loaded),.feature-art:not(.image-loaded){background:transparent;border:0}
.information.without-social{grid-template-columns:1fr}

/* 奖励阶段与原有整张活动图对齐。 */
.reward-progress{margin-bottom:22px}
.reward-total{font-size:15px;color:#333;margin:0 0 14px;font-variant-numeric:tabular-nums}
.reward-targets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.reward-target{padding:12px 16px;border:1px solid #d3ccc1;border-top:3px solid #bdb5a8;background:#faf8f3;color:#77736b}
.reward-target span{display:block;font-size:12px;margin-bottom:5px}
.reward-target strong{font-size:21px;font-weight:600;font-variant-numeric:tabular-nums}
.reward-target[data-state="current"]{border-color:#a62e46;background:#a62e46;color:white}
.reward-target[data-state="next"]{border-color:#406a84;background:#e9f0f5;color:#28516b}
.reward-target[data-state="achieved"]{border-color:#768774;background:#eef1eb;color:#52674d}
.reward-visual{position:relative}
.reward-stage-highlights{position:absolute;inset:0;pointer-events:none}
.reward-stage-highlight{position:absolute;top:41.5%;height:51%;width:13.6%;border:3px solid transparent;border-radius:9%;transition:border-color .2s,box-shadow .2s}
.reward-stage-0{left:4.4%}.reward-stage-1{left:21.7%}.reward-stage-2{left:37.6%;width:16%;height:54.5%}
.reward-stage-highlight[data-state="current"]{border-color:#a62e46;box-shadow:0 0 0 2px #fff9,0 0 18px #a62e4640}
.reward-stage-highlight[data-state="next"]{border-color:#406a84;box-shadow:0 0 0 2px #fff9}
.reward-stage-highlight[data-state="achieved"]{border-color:#768774}
@media(max-width:760px){.reward-targets{gap:7px}.reward-target{padding:9px 8px}.reward-target span{font-size:10px}.reward-target strong{font-size:17px}.reward-stage-highlight{border-width:2px}}

.reward-target .reward-target-unit{margin:4px 0 0;font-size:12px;line-height:1.5;letter-spacing:.08em}

/* 在图片框内保留顶部空间，确保角色完整显示。 */
.hero-art.image-loaded{padding-top:30px}
.hero-art.image-loaded>img[data-inserted]{object-fit:contain;object-position:center top;transform:none}

/* 沿用现有素材和组件样式适配移动端。 */
@media(max-width:1000px){
  .navigation nav{min-width:0}
  .character-layout>*,.registration-layout>*,.information>*{min-width:0}
  .feature-tabs button{flex:0 0 auto}
  .game-info dd{overflow-wrap:anywhere}
}
@media(max-width:760px){
  html{scroll-padding-top:122px}
  .navigation{gap:8px 16px;padding:8px 20px 10px}
  .navigation nav{gap:24px;justify-content:flex-start;white-space:nowrap;padding:6px 0 2px;scrollbar-width:thin}
  .navigation nav a{flex:none;padding:4px 0}
  .nav-register{min-height:40px;display:flex;align-items:center}
  .hero{display:flex;flex-direction:column;height:auto;min-height:0;max-height:none;padding-bottom:48px}
  .hero-art,.hero-art.image-loaded{position:relative;inset:auto;width:100%;padding:30px 0 0;flex:none}
  .hero-art.image-loaded>img[data-inserted]{width:100%;height:auto;object-fit:contain;object-position:center top;transform:none}
  .hero-content{position:relative;inset:auto;width:auto;height:auto;min-height:0;padding:0;margin:20px 20px 0;gap:16px;align-items:center}
  .hero.complete-kv [data-slot="game-logo"]{display:none}
  .hero-content .logo-slot{width:220px;max-width:100%;height:auto;aspect-ratio:448/252}
  .hero-content .registration-art-frame{width:100%;max-width:340px;padding:18px 14px;gap:12px}
  .hero-content .copy-slot{max-width:100%}
  .hero-content .notification,.registration-controls .notification{line-height:1.7;align-items:flex-start}
  .notification input{flex:none;margin-top:1px}
  .scroll-link{bottom:16px;right:20px}
  .section{padding:40px 20px}
  .section-heading{margin-bottom:22px;gap:10px}
  .section-heading h2{font-size:24px;line-height:1.5}
  [data-title-media].image-loaded{height:48px;max-width:100%}
  .feature-tabs{gap:0;margin-bottom:20px;scroll-snap-type:x proximity;scrollbar-width:thin}
  .feature-tabs button{padding:14px 18px;min-height:46px;scroll-snap-align:start}
  .feature-tabs button:first-child{padding-left:4px}
  .character-showcase{padding:40px 20px 30px}
  .character-showcase .character-layout{grid-template-columns:minmax(0,1fr);min-height:0;gap:0}
  .character-showcase .character-stage,.skill-design-preview .character-stage{position:relative;top:auto;width:100%;height:clamp(340px,112vw,520px);max-width:480px;margin:12px auto 0}
  .character-showcase .character-details,.skill-design-preview .character-details{max-width:none;margin:0;padding:22px 0 0}
  .character-showcase .character-profile h3{font-size:clamp(30px,8vw,40px);overflow-wrap:anywhere}
  .character-showcase .character-description{font-size:14px;line-height:1.9;min-height:0;margin-top:18px;padding-top:18px}
  .character-role{font-size:12px}
  .character-skill-sample{margin-top:22px}
  .battle-sample-stage{height:clamp(210px,60vw,280px)}
  .battle-sample-heading{font-size:11px}
  .battle-sample-controls{gap:12px;font-size:11px}
  .battle-sample-controls button{min-height:44px;flex-shrink:0}
  .initial-skill-heading{flex-wrap:wrap;gap:8px 12px}
  .initial-skill h4{font-size:21px;overflow-wrap:anywhere}
  .initial-skill-stats{flex-wrap:wrap;gap:8px 18px;font-size:12px;line-height:1.7}
  .initial-skill p{font-size:14px;line-height:1.9}
  .character-arrows{gap:24px;margin-top:24px}
  .character-arrows button{width:46px;height:46px}
  .character-showcase .character-picker{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:76px;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;margin-top:24px;padding:0 0 10px}
  .character-showcase .character-picker button{grid-template-rows:90px auto;scroll-snap-align:start;gap:8px}
  .character-showcase .character-picker .character-thumbnail-frame{height:90px}
  .character-showcase .character-picker .character-label{font-size:10px;min-height:32px;line-height:1.5}
  .reward-progress{margin-bottom:18px}
  .reward-targets{gap:7px}
  .reward-target{padding:10px 6px}
  .reward-target strong{font-size:clamp(17px,4.7vw,24px)}
  .reward-target span{font-size:10px;line-height:1.5}
  .reward-target .reward-target-unit{font-size:11px;letter-spacing:.02em}
  .reward-stage-highlight{border-width:1px}
  .reward-stage-highlight[data-state="current"],.reward-stage-highlight[data-state="next"]{box-shadow:0 0 0 1px #fff9}
  .reward-caption{font-size:12px;line-height:1.9;overflow-wrap:anywhere}
  .registration-layout{gap:26px}
  .registration-logo{width:240px;margin:0 auto 18px}
  .registration-layout .copy-slot{justify-items:center}
  .registration-controls{gap:16px;min-width:0}
  .registration-controls .primary-button{width:280px;max-width:100%}
  .information{gap:32px}
  .game-info dl{grid-template-columns:86px minmax(0,1fr)}
  .game-info dt,.game-info dd{font-size:12px;padding:14px 0}
  .game-info dt{padding-right:12px}
  footer{padding:26px 20px}
  .footer-links{gap:12px 20px;padding-right:24px}
  .footer-links a,.footer-links button{min-height:36px;display:inline-flex;align-items:center}
  .copyright-slot{line-height:1.8;overflow-wrap:anywhere}
  .result-main{min-height:60svh;padding:36px 20px}
  .result-card{padding:28px 20px}
  dialog{max-height:calc(100svh - 32px);overflow-y:auto}
}
@media(max-width:360px){
  .navigation{padding-inline:16px}
  .navigation nav{gap:20px}
  .section{padding-inline:16px}
  .hero-content{margin-inline:16px}
  .character-showcase .section-heading h2{font-size:22px}
  .character-section-en{font-size:8px;letter-spacing:.05em}
  .game-info dl{grid-template-columns:76px minmax(0,1fr)}
}

/* 活动图下方统一显示醒目的奖励领取说明。 */
.reward-delivery{display:flex;align-items:center;justify-content:center;gap:20px;padding:22px 24px;margin-top:22px;border-top:1px solid #d5c39e;border-bottom:1px solid #d5c39e;background:#fbf7ef;text-align:center}
.reward-delivery-label{font-size:12px;line-height:1.6;letter-spacing:.05em;color:#78664d}
.reward-delivery strong{font-size:23px;line-height:1.6;font-weight:700;color:#a62e46}
@media(max-width:760px){.reward-delivery{flex-direction:column;gap:6px;padding:18px 12px;margin-top:18px}.reward-delivery-label{font-size:11px}.reward-delivery strong{font-size:19px;line-height:1.7}}

/* 预约确认勾选与可选的游戏通知勾选相互独立。 */
.registration-agreement{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.8;color:#38323c;text-align:left}
.registration-agreement input{width:17px;height:17px;flex:none;margin:1px 0 0;accent-color:var(--accent)}
.registration-agreement input[aria-invalid="true"]{outline:2px solid var(--accent);outline-offset:2px}
.registration-agreement button{font:inherit;border:0;padding:0;background:none;color:#a62e46;text-decoration:underline;text-underline-offset:3px}
.registration-agreement button:hover{color:#761f33}
/* 将预约确认文字和勾选框上移，避开装饰框底边。 */
.registration-art-frame .registration-agreement{width:100%;justify-content:center;transform:translateY(-12px)}
@media(max-width:760px){.registration-agreement{font-size:11px;max-width:100%}.registration-art-frame .registration-agreement{transform:translateY(-8px)}.registration-controls .registration-agreement{justify-content:center}}

/* 预约人数使用已确认的单个计数展示，不增加阶段目标卡片。 */
.reward-total{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:10px 16px;max-width:480px;margin:0 auto 28px;padding:8px 0 22px;border-bottom:1px solid #cbb68f;text-align:center}
.reward-total-label{flex-basis:100%;font-size:14px;color:#695e56;margin-bottom:6px}
.reward-total strong{font-size:58px;line-height:1.1;color:#a62e46;font-weight:700;font-variant-numeric:tabular-nums}
.reward-total-unit{font-size:18px;color:#51443a}
@media(max-width:760px){.reward-total{max-width:100%;gap:8px 12px;margin-bottom:22px;padding-bottom:18px}.reward-total strong{font-size:44px}.reward-total-unit{font-size:15px}.reward-total-label{font-size:12px}}

/* 沿用已选定的塔楼构图，队伍使用原始 Spine 待机形象。 */
.thanks-tower{position:relative;width:100%;background:#dde6eb;overflow:hidden;isolation:isolate}
.thanks-tower-art{display:block;width:100%;height:auto}
.thanks-tower .thanks-party{position:absolute;inset:0;pointer-events:none}
.thanks-tower .thanks-actor{position:absolute;width:14%;height:14%}
.thanks-actor canvas,.thanks-actor .spine-player{display:block;width:100%!important;height:100%!important}
.thanks-actor .spine-player{position:relative}
.thanks-actor canvas[hidden]{display:none!important}
.thanks-tower .thanks-leader{left:58%;top:66%;z-index:2}
.thanks-tower .companion-1{left:53%;top:71%;z-index:3}
.thanks-tower .companion-2{left:46%;top:75%;z-index:4}
.thanks-tower .companion-3{left:57%;top:81%;z-index:7}
.thanks-tower .companion-4{left:40%;top:80%;z-index:6}
.thanks-tower .companion-5{left:49%;top:85%;z-index:9}
.thanks-tower .companion-6{left:34%;top:85%;z-index:10}
.thanks-tower .companion-7{left:63%;top:74%;z-index:5}
.thanks-tower .companion-8{left:64%;top:83%;z-index:8}
.thanks-tower .companion-9{left:41%;top:85%;z-index:11}
.thanks-return{position:absolute;left:5.5%;top:70%;width:40%;height:11%;border-radius:10px;z-index:10}
.thanks-return:hover{background:#ffffff10}.thanks-return:focus-visible{outline:3px solid #a72a46;outline-offset:4px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:760px){.thanks-tower{width:100%}.thanks-return{min-height:32px}}

/* 游戏介绍沿用原图左侧角色，使用独立文字层展示主张和玩法。 */
.story-readable-layout{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:stretch;gap:40px}
.story-readable-layout .story-art{position:relative;aspect-ratio:auto;min-height:620px;overflow:hidden}
.story-readable-layout .story-art>[data-inserted]{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:left center;clip-path:none}
.story-copy{font-size:18px;line-height:2.05;color:#453c39;align-self:center}
.story-copy p{margin:0 0 1.3em}.story-copy p:last-child{margin-bottom:0}
.feature-layout.composed-art .feature-copy{padding:24px 0 0;max-width:900px}
.feature-copy h3{font-size:23px;margin:0 0 10px}.feature-copy p{font-size:17px;line-height:1.9;margin:0;color:#525257}
.character-showcase.skill-design-preview .character-description{font-size:17px;line-height:1.95}
.character-showcase .initial-skill>p{font-size:16px;line-height:1.9}
.support-email{margin:20px 42px 8px 0;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.support-email a{text-decoration:underline;text-underline-offset:3px;color:#a72a46}
.support-whitelist{max-width:900px;font-size:13px;line-height:1.9;margin:0 42px 0 0}
.support-card .primary-button{width:auto;max-width:340px}
@media(max-width:760px){
 .story-readable-layout{grid-template-columns:1fr;gap:24px}
 .story-readable-layout .story-art{min-height:0;aspect-ratio:4/3}
 .story-readable-layout .story-art>[data-inserted]{width:137%;height:auto;max-width:none;object-fit:initial}
 .story-copy{font-size:16px;line-height:1.95}.story-copy br{display:none}
 .feature-copy h3{font-size:21px}.feature-copy p{font-size:16px}
 .character-showcase.skill-design-preview .character-description{font-size:16px}
 .support-email,.support-whitelist{margin-right:0}
}

/* 游戏介绍采用短标题、导语与正文分级，避免大段宣传文字。 */
.story-copy .intro-kicker{font-size:13px;font-weight:700;letter-spacing:.12em;color:#8a6c58;margin:0 0 18px}
.story-copy .intro-headline{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(28px,3vw,42px);font-weight:700;line-height:1.55;letter-spacing:.02em;margin:0 0 24px;color:#2e2427}
.story-copy .intro-headline em{font-style:normal;color:#9c2944}
.story-copy .intro-lead{font-size:19px;font-weight:600;line-height:1.85;color:#3d3436}
.story-copy .intro-closing{border-top:1px solid #d8cbc0;padding-top:22px;font-size:18px}.intro-closing strong{color:#9c2944}
@media(max-width:760px){.story-copy .intro-headline{font-size:29px}.story-copy .intro-headline br,.story-copy .intro-lead br,.story-copy .intro-closing br{display:initial}.story-copy .intro-lead,.story-copy .intro-closing{font-size:17px}}

/* 日文正文优先使用日本字形，导航增项后允许换行。 */
.navigation nav{gap:clamp(10px,1.5vw,26px);flex-wrap:wrap}
.reward-caption,.reward-delivery{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,"Noto Sans JP",sans-serif}
.legal-main{max-width:960px;margin:auto;padding:48px 24px 64px;font-size:16px;line-height:1.95}
.legal-main h1{font-size:30px;margin:0 0 24px}.legal-main h2{font-size:21px;margin:30px 0 12px}
.legal-main a{text-decoration:underline;text-underline-offset:3px;color:#a62e46}
.legal-draft{border-left:3px solid #a62e46;background:#fbf7ef;padding:16px 20px;margin:20px 0}
@media(max-width:760px){.navigation nav{row-gap:12px;justify-content:flex-start}.legal-main{font-size:15px}.legal-main h1{font-size:25px}}
