.invoice-page { color:#f3f2f8; background:#08090b; }
.invoice-page * { box-sizing:border-box; }
.invoice-page a { cursor:pointer; }
.invoice-page a:focus-visible { outline:2px solid #d3c5ff; outline-offset:6px; border-radius:3px; }
.invoice-page .page-atmosphere { pointer-events:none; }
.invoice-container { width:min(1120px,calc(100% - 64px)); margin-inline:auto; position:relative; }
.invoice-header { width:min(1280px,calc(100% - 64px)); margin:0 auto; padding:28px 0; display:flex; align-items:center; justify-content:space-between; gap:24px; position:relative; z-index:3; border-bottom:1px solid #ffffff12; }
.invoice-header a { color:#dcdbe6; text-decoration:none; font-size:.82rem; line-height:1.6; }
.invoice-header .invoice-site-brand { font-weight:650; letter-spacing:.02em; }
.invoice-site-brand span { margin-left:12px; color:#858594; font-weight:400; }
.invoice-header nav,.invoice-footer nav { display:flex; flex-wrap:wrap; gap:28px; }
.invoice-header nav { align-items:center; min-width:0; }
.invoice-header > a { flex-shrink:0; }
.invoice-header nav > a { overflow-wrap:anywhere; }
.invoice-header .language-control { transform:none; margin:0; flex-shrink:0; }
.invoice-header .language-toggle { transform:none; margin:0; }
.invoice-header .language-menu { top:calc(100% + .75rem); right:0; left:auto; width:min(260px,calc(100vw - 40px)); }
.invoice-header .language-menu a::after { content:none; }
.invoice-header .language-option { font-size:.8rem; }
.invoice-legal-meta > div { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.invoice-text-link,.invoice-actions a { overflow-wrap:anywhere; }
:is(html[lang="ja"],html[lang="zh"]) .invoice-kicker { letter-spacing:.06em; }
:is(html[lang="ja"],html[lang="zh"]) .invoice-hero h1 { letter-spacing:0; line-height:1.35; }
.invoice-header nav a { position:relative; }
.invoice-header nav a::after { content:""; position:absolute; bottom:-4px; left:0; right:0; height:1px; background:#d3c5ff; transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.invoice-header nav a:hover::after { transform:scaleX(1); }
.invoice-hero { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:70px; align-items:center; padding:90px 0 85px; position:relative; }
.invoice-hero::before { content:""; position:absolute; width:min(700px,100%); height:550px; right:0; top:0; background:radial-gradient(ellipse,rgba(116,102,182,.13),transparent 70%); pointer-events:none; z-index:-1; }
.invoice-kicker { display:block; font-size:.65rem; line-height:1.7; letter-spacing:.17em; text-transform:uppercase; color:#aaa4bf; }
.invoice-hero h1 { font-size:clamp(2.4rem,5.2vw,4.5rem); line-height:1.12; letter-spacing:-.055em; margin:24px 0 15px; font-weight:650; overflow-wrap:anywhere; }
.invoice-tagline { font-size:clamp(1.35rem,2.6vw,2rem); line-height:1.4; letter-spacing:-.025em; color:#d6cdf1; margin:0 0 25px; }
.invoice-lead { max-width:65ch; color:#aeb0bd; font-size:1rem; line-height:1.8; }
.invoice-hero-art img { display:block; width:100%; height:auto; border-radius:23%; box-shadow:0 25px 80px rgba(0,0,0,.35); }
.invoice-release { display:flex; align-items:center; gap:10px; margin:26px 0; font-size:.8rem; line-height:1.6; color:#c7c0dd; }
.invoice-release > span { width:6px; height:6px; flex:0 0 6px; border-radius:50%; background:#b7a4df; }
.invoice-actions { display:flex; align-items:center; flex-wrap:wrap; gap:26px; margin-top:30px; font-size:.82rem; }
.invoice-actions a { text-decoration:none; color:#d5cee7; }
.invoice-actions .invoice-action-primary { display:inline-flex; gap:30px; align-items:center; padding:15px 20px; border-radius:9px; background:#d9d0f1; color:#171520; font-weight:600; }
.invoice-actions .invoice-action-primary:hover { background:#eee8fc; }
.invoice-reading-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:70px; align-items:start; border-top:1px solid #ffffff18; padding-top:50px; }
.invoice-contents { position:sticky; top:34px; display:grid; gap:16px; padding-top:5px; }
.invoice-contents .invoice-kicker { margin-bottom:9px; }
.invoice-contents a { color:#9698a6; font-size:.78rem; line-height:1.6; text-decoration:none; overflow-wrap:anywhere; }
.invoice-contents a:hover { color:#ded4f4; }
.invoice-article { min-width:0; }
.invoice-section { padding:0 0 45px; margin:0 0 42px; border-bottom:1px solid #ffffff13; scroll-margin-top:34px; }
.invoice-section:last-child { border-bottom:0; }
.invoice-section h2 { margin:0 0 25px; font-size:clamp(1.4rem,2.4vw,1.85rem); font-weight:550; letter-spacing:-.025em; line-height:1.3; overflow-wrap:anywhere; }
.invoice-section p { color:#b6b8c4; font-size:.98rem; line-height:1.85; margin:0 0 20px; overflow-wrap:anywhere; }
.invoice-features { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 30px; }
.invoice-features li { color:#bdc0cd; font-size:.86rem; line-height:1.8; padding:20px 0 20px 20px; border-top:1px solid #ffffff10; position:relative; overflow-wrap:anywhere; }
.invoice-features li::before { content:""; width:4px; height:4px; border-radius:50%; background:#b8a4e4; position:absolute; left:0; top:31px; }
.invoice-text-link { display:inline-flex; align-items:center; gap:30px; text-decoration:none; color:#d6c7ff; font-size:.86rem; line-height:1.7; padding:8px 0; border-bottom:1px solid #b7a3e760; }
.invoice-legal-meta { display:flex; flex-wrap:wrap; gap:25px 48px; margin-top:30px; }
.invoice-legal-meta dt { color:#9693a8; font-size:.72rem; line-height:1.7; margin-bottom:5px; }
.invoice-legal-meta dd { margin:0; color:#dbd8e7; font-size:.86rem; line-height:1.6; }
.invoice-legal-meta a { color:inherit; }
.invoice-page--privacy .invoice-hero { display:block; padding:65px 0; }
.invoice-page--privacy .invoice-hero h1 { max-width:20ch; font-size:clamp(2.2rem,4vw,3.6rem); }
.invoice-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:25px; padding:30px 0 45px; border-top:1px solid #ffffff18; font-size:.73rem; line-height:1.8; color:#9293a1; }
.invoice-footer a { color:#c3bdcf; text-decoration:none; }
.invoice-skip { position:fixed; top:10px; left:10px; z-index:100; transform:translateY(-200%); background:#ded5f5; color:#111; padding:12px 20px; }
.invoice-skip:focus { transform:translateY(0); }
@media(max-width:850px) {
    .invoice-hero { grid-template-columns:minmax(0,1fr) 160px; gap:35px; padding:65px 0; }
    .invoice-reading-layout { grid-template-columns:1fr; gap:38px; }
    .invoice-contents { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 25px; }
    .invoice-contents .invoice-kicker { grid-column:1/-1; margin:0; }
}
@media(max-width:560px) {
    .invoice-container,.invoice-header { width:calc(100% - 40px); }
    .invoice-header { align-items:flex-start; padding:22px 0; gap:16px; flex-direction:column; }
    .invoice-header nav { gap:14px 20px; width:100%; }
    .invoice-header .language-control { margin-left:auto; }
    .invoice-hero { display:flex; flex-direction:column-reverse; align-items:flex-start; gap:30px; padding:40px 0 48px; }
    .invoice-hero-art { width:100px; }
    .invoice-hero h1 { margin-top:15px; font-size:clamp(2rem,8.3vw,2.8rem); }
    .invoice-hero-copy { min-width:0; width:100%; }
    .invoice-hero .invoice-kicker { font-size:.6rem; }
    .invoice-tagline { font-size:1.35rem; }
    .invoice-lead,.invoice-section p { font-size:.92rem; line-height:1.8; }
    .invoice-features { grid-template-columns:1fr; }
    .invoice-contents a { font-size:.74rem; }
    .invoice-legal-meta { gap:18px 30px; }
    .invoice-page--privacy .invoice-hero { padding:40px 0; }
    .invoice-section { padding-bottom:28px; margin-bottom:30px; }
}
@media(prefers-reduced-motion:reduce) { .invoice-header nav a::after { transition:none; } }
@media print {
    .invoice-page { background:#fff !important; color:#000 !important; }
    .invoice-page .page-atmosphere,.invoice-header,.invoice-contents,.invoice-actions,.invoice-footer,.invoice-hero-art { display:none !important; }
    .invoice-container { width:100%; }
    .invoice-reading-layout { display:block; }
    .invoice-page p,.invoice-page li,.invoice-page dd,.invoice-page dt,.invoice-page a { color:#222 !important; }
    .invoice-section { break-inside:avoid; }
}
