:root{--bg:#fff8fb;--deep:#101225;--pink:#e84b91;--violet:#4f35d9;--white:#fff;--ink:#241d3a;--ink-soft:#6b6280;--font-serif:"Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;--font-sans:system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"palt";-webkit-font-smoothing:antialiased;margin:0;line-height:1.8}h1,h2,h3{font-family:var(--font-serif);margin:0;font-weight:600;line-height:1.35}p{margin:0}a{color:inherit;text-decoration:none}.pc-only{display:inline}.sp-only{display:none}.siteHeader{z-index:20;pointer-events:none;mix-blend-mode:difference;color:#fff;justify-content:space-between;align-items:center;padding:1.4rem clamp(1.2rem,4vw,3rem);display:flex;position:fixed;inset:0 0 auto}.siteHeader__brand{font-family:var(--font-serif);letter-spacing:.35em;font-size:.85rem}.siteHeader__link{pointer-events:auto;letter-spacing:.25em;color:inherit;opacity:.75;border:1px solid;border-radius:999px;padding:.5rem 1.1rem;font-size:.75rem;transition:opacity .3s}.siteHeader__link:hover{opacity:1}.stage{--stage-ink:var(--ink);position:relative}.page--night .stage{--stage-ink:#f6f3ff}.stage__canvas{background:radial-gradient(circle at 55% 42%, #ffe3f0 0%, var(--bg) 55%);height:100dvh;transition:background .8s;position:sticky;top:0}.page--night .stage__canvas{background:radial-gradient(circle at 55% 42%, #23224d 0%, var(--deep) 60%)}.stage__canvas canvas{display:block}.stage__overlay{pointer-events:none;height:100dvh;color:var(--stage-ink);align-items:center;padding:0 clamp(1.2rem,5vw,5rem);transition:color .6s;display:flex;position:absolute;left:0;right:0}.stage__hero{top:0}.stage__viewer{top:100dvh}.stage--solo .stage__viewer{top:0}.stage__breakdown{top:200dvh}.hero__copy{pointer-events:auto;max-width:34rem}.eyebrow{letter-spacing:.4em;text-transform:uppercase;color:var(--pink);margin-bottom:1.2rem;font-size:.72rem}.hero__title{letter-spacing:.06em;font-size:clamp(2.6rem,6vw,4.6rem)}.hero__sub{color:var(--stage-ink);opacity:.78;margin-top:1.6rem;font-size:clamp(.95rem,1.4vw,1.1rem)}.hero__actions{flex-wrap:wrap;gap:.9rem;margin-top:2.4rem;display:flex}.hero__hint{letter-spacing:.12em;opacity:.5;margin-top:1.6rem;font-size:.75rem}.btn{letter-spacing:.14em;border-radius:999px;padding:.85rem 1.9rem;font-size:.9rem;transition:transform .25s,box-shadow .25s,background .25s,color .25s;display:inline-block}.btn:hover{transform:translateY(-2px)}.btn--primary{background:linear-gradient(120deg, var(--pink), var(--violet));color:var(--white);box-shadow:0 10px 28px #e84b9152}.btn--primary:hover{box-shadow:0 14px 34px #4f35d95c}.btn--ghost{color:var(--stage-ink,var(--ink));opacity:.85;border:1px solid}.btn--light{background:var(--white);color:var(--deep)}.stage__viewer{align-items:flex-end;padding-bottom:clamp(1.2rem,4vh,3rem)}.viewer__panel{pointer-events:auto;background:color-mix(in srgb, var(--white) 72%, transparent);-webkit-backdrop-filter:blur(18px);max-width:24rem;max-height:calc(100vh - 6rem);color:var(--ink);border:1px solid #fff9;border-radius:20px;padding:1.6rem 1.8rem;overflow-y:auto;box-shadow:0 20px 60px #1012251f}.page--night .viewer__panel{color:#f6f3ff;background:#161830ad;border-color:#ffffff24}.viewer__panelHead{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.viewer__toggle{font-family:var(--font-sans);letter-spacing:.08em;background:linear-gradient(120deg, var(--pink), var(--violet));color:var(--white);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;padding:.5rem 1rem;font-size:.78rem}.viewer__panel--closed{padding:.9rem 1.3rem}.viewer__panel--closed .viewer__title{font-size:1.1rem}.viewer__title{font-size:1.5rem}.viewer__lead{opacity:.75;margin-top:.6rem;font-size:.85rem}.viewer__hint{letter-spacing:.1em;opacity:.5;margin-top:1rem;font-size:.72rem}.controls{gap:1.1rem;margin-top:1.4rem;display:grid}.controls__label{letter-spacing:.18em;opacity:.65;margin-bottom:.5rem;font-size:.75rem;display:block}.controls__value{letter-spacing:.05em;opacity:.9}.controls__presets{flex-wrap:wrap;gap:.5rem;display:flex}.controls__preset{font-family:var(--font-sans);color:inherit;cursor:pointer;background:0 0;border:1px solid #241d3a38;border-radius:999px;padding:.45rem .95rem;font-size:.8rem;transition:background .25s,color .25s,border-color .25s}.page--night .controls__preset{border-color:#ffffff47}.controls__preset.is-active{background:linear-gradient(120deg, var(--pink), var(--violet));color:var(--white);border-color:#0000}.controls__colorway{align-items:center;gap:.4rem;display:inline-flex}.controls__colorway.is-active{background:var(--deep)}.controls__swatch{border:1px solid #ffffff8c;border-radius:50%;flex-shrink:0;width:.7rem;height:.7rem}.controls input[type=range]{width:100%;accent-color:var(--pink)}.controls__customRow{gap:1rem;margin-top:.6rem;display:flex}.controls__customPick{cursor:pointer;align-items:center;gap:.45rem;font-size:.78rem;display:flex}.controls__customPick input[type=color]{cursor:pointer;background:0 0;border:1px solid #ffffff8c;border-radius:8px;width:2.1rem;height:2.1rem;padding:0}.controls__toggle{cursor:pointer;align-items:center;gap:.55rem;font-size:.82rem;display:flex}.controls__toggle input{accent-color:var(--violet)}.stage__breakdown{align-items:center}.breakdown__panel{pointer-events:auto;max-width:36rem}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.8rem;display:grid}.card{background:color-mix(in srgb, var(--white) 78%, transparent);-webkit-backdrop-filter:blur(14px);cursor:default;color:var(--ink);border:1px solid #ffffffb3;border-radius:18px;padding:1.4rem 1.5rem;transition:transform .3s,box-shadow .3s,border-color .3s;box-shadow:0 14px 44px #10122514}.card:hover,.card:focus-visible{border-color:#e84b9166;outline:none;transform:translateY(-4px);box-shadow:0 22px 56px #e84b912e}.page--night .stage .card{color:#f6f3ff;background:#161830a8;border-color:#ffffff1f}.card__num{font-family:var(--font-serif);letter-spacing:.3em;color:var(--pink);font-size:.75rem}.card__title{letter-spacing:.08em;margin-top:.5rem;font-size:1.15rem}.card__body{opacity:.78;margin-top:.6rem;font-size:.82rem;line-height:1.75}.section{padding:clamp(4.5rem,10vw,8rem) clamp(1.2rem,5vw,3rem)}.section__inner{max-width:52rem;margin:0 auto}.section__title{letter-spacing:.08em;font-size:clamp(1.7rem,3.4vw,2.4rem)}.section__lead{color:var(--ink-soft);margin-top:1.1rem;font-size:.95rem}.story{gap:1.4rem;max-width:40rem;margin-top:2rem;display:grid}.story p{font-size:.95rem}.story__note{color:var(--ink-soft);border-left:2px solid #e84b9166;padding-left:1rem;line-height:1.9;font-size:.75rem!important}.cta{background:radial-gradient(circle at 30% 20%, #1c1e3f 0%, var(--deep) 60%);color:#f6f3ff;text-align:center;padding:clamp(5rem,12vw,9rem) clamp(1.2rem,5vw,3rem)}.cta__inner{max-width:42rem;margin:0 auto}.cta__title{letter-spacing:.1em;background:linear-gradient(120deg,#ffd0e6,#b9a6ff);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(1.9rem,4.2vw,3rem)}.cta__lead{opacity:.82;margin-top:1.6rem;font-size:.95rem}.cta__actions{margin-top:2.4rem}.footer{background:var(--deep);color:#f6f3ff80;text-align:center;letter-spacing:.08em;padding:1.6rem 1.2rem 2.2rem;font-size:.72rem}.scene-fallback{height:100%;color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:1.4rem;font-size:.85rem;display:flex}.scene-fallback__glass{background:linear-gradient(160deg,#e84b9180,#4f35d973);border-radius:18px 18px 42px 42px;width:130px;height:170px;box-shadow:0 26px 60px #e84b9147,inset 0 0 40px #ffffff8c}@media (width<=899px){.pc-only{display:none}.sp-only{display:inline}.stage__hero{align-items:flex-end;padding-bottom:12vh}.hero__copy{-webkit-backdrop-filter:blur(10px);background:#fff8fb80;border-radius:20px;padding:1.2rem 1.3rem}.page--night .hero__copy{background:#10122580}.hero__title{font-size:clamp(2.2rem,9vw,2.9rem)}.stage__viewer{padding-bottom:1rem}.viewer__panel{width:100%;max-width:none;padding:1.2rem 1.3rem}.viewer__lead{display:none}.cards{grid-template-columns:1fr}}@media (width>=900px){.cards{gap:1.2rem}}
