﻿:root{
  color-scheme: dark;
  --bg: oklch(0.112 0.018 276);
  --surface: oklch(0.156 0.028 276);
  --surface-2: oklch(0.206 0.042 278);
  --ink: oklch(0.982 0.006 110);
  --muted: oklch(0.744 0.032 285);
  --line: oklch(0.315 0.050 285 / .62);
  --primary: oklch(0.760 0.155 106);
  --accent: oklch(0.695 0.218 31);
  --accent-2: oklch(0.760 0.178 67);
  --danger: oklch(0.660 0.210 23);
  --white: oklch(1 0 0);
  --rail: clamp(268px, 24vw, 318px);
  --radius: 16px;
  --ease: cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 86% 14%, oklch(0.34 0.12 24 / .22), transparent 30rem),
    radial-gradient(circle at 54% 64%, oklch(0.32 0.11 118 / .13), transparent 25rem),
    var(--bg);
  color:var(--ink);
  font-family:"Noto Sans JP","Yu Gothic",Meiryo,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  padding-bottom:env(safe-area-inset-bottom);
}
a{color:inherit;text-decoration:none}
button,a{-webkit-tap-highlight-color:transparent}
img{display:block;max-width:100%}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;color:oklch(0.88 0.09 106)}
.skip-link{position:absolute;left:1rem;top:-4rem;background:var(--white);color:var(--bg);padding:.75rem 1rem;border-radius:999px;z-index:20;font-weight:900}.skip-link:focus{top:1rem}
.layout{display:block;min-height:100vh}.main{min-width:0;overflow:hidden}.section{padding:clamp(44px,7vw,96px) clamp(18px,5vw,76px)}.section--tight{padding-top:clamp(34px,5vw,70px)}
.side-rail{position:relative;padding:calc(18px + env(safe-area-inset-top)) 18px 22px;background:linear-gradient(180deg,oklch(0.145 0.026 276),oklch(0.106 0.018 276));border-bottom:1px solid var(--line);z-index:5}.side-inner{display:flex;flex-direction:column;align-items:center;gap:18px}.logo{width:min(238px,72vw);margin-inline:auto;filter:drop-shadow(0 10px 18px oklch(0.04 0 0 / .42))}
.app-card{width:min(100%,520px);border-radius:18px;overflow:hidden;position:relative;padding:18px;background:linear-gradient(145deg,var(--accent-2),var(--accent) 72%);min-height:430px;color:var(--white);box-shadow:0 10px 0 oklch(0.04 0 0 / .26)}.app-card::before{content:"";position:absolute;inset:-18% -28% auto auto;width:190px;height:190px;border-radius:50%;background:oklch(0.94 0.12 105 / .34);filter:blur(10px)}.app-card__label{position:relative;z-index:1;font-size:15px;letter-spacing:.02em;font-weight:900;line-height:1.25;text-shadow:0 2px 8px oklch(0.10 0.02 270 / .35)}.app-card__name{position:relative;z-index:1;font-size:clamp(2.25rem,11vw,4rem);line-height:.88;font-weight:950;letter-spacing:-.035em;margin:8px 0 8px;text-shadow:0 4px 0 oklch(0.33 0.12 31 / .55)}
.phone{width:min(205px,58vw);margin:8px auto 0;aspect-ratio:9/16;border-radius:30px;background:var(--surface);border:5px solid var(--white);position:relative;box-shadow:0 18px 22px oklch(0.06 0 0 / .45);overflow:hidden}.phone::before{content:"";position:absolute;z-index:3;top:0;left:50%;translate:-50% 0;width:88px;height:20px;border-radius:0 0 14px 14px;background:var(--white)}.phone-screen{height:100%;padding:34px 11px 12px;display:grid;grid-template-rows:1.2fr auto;gap:10px;background:linear-gradient(180deg,oklch(0.14 0.02 276),oklch(0.10 0.02 276))}.phone-hero{border-radius:10px;overflow:hidden;position:relative;min-height:0}.phone-hero img{width:100%;height:100%;object-fit:cover}.phone-hero::after{content:"";position:absolute;inset:auto 0 0;height:45%;background:linear-gradient(transparent,oklch(0.05 0 0 / .82))}.phone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.phone-grid img{aspect-ratio:1;border-radius:6px;object-fit:cover}.icon-pop{position:absolute;right:-14px;bottom:28px;width:76px;height:76px;border-radius:22px;box-shadow:0 12px 18px oklch(0.04 0 0 / .45);rotate:-9deg}.rail-note{width:min(100%,520px);margin:0;color:var(--muted);font-weight:800;line-height:1.7;text-align:center}.cta,.ghost{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;min-height:48px;font-weight:900;line-height:1;cursor:pointer;transition:transform .24s var(--ease),filter .24s var(--ease),box-shadow .24s var(--ease)}.cta{border:0;padding:15px 22px;background:linear-gradient(90deg,var(--danger),var(--accent-2));color:var(--white);gap:10px;box-shadow:0 10px 20px oklch(0.04 0 0 / .32), inset 0 1px 0 oklch(1 0 0 / .24)}.cta::after{content:"→";font-size:1.05em;line-height:1;translate:0 -1px}.cta:hover{box-shadow:0 14px 24px oklch(0.04 0 0 / .38), inset 0 1px 0 oklch(1 0 0 / .28)}.ghost{padding:14px 26px;background:var(--white);color:var(--accent);border:0}.cta:hover,.ghost:hover{transform:translateY(-2px);filter:saturate(1.05) brightness(1.04)}.cta:focus-visible,.ghost:focus-visible,.card:focus-visible,.spotlight:focus-visible,.mobile-cta a:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.cta--rail{width:min(100%,520px);font-size:15px}
.hero{position:relative;overflow:hidden}.hero::before{content:"";position:absolute;right:-24vw;top:12vh;width:78vw;height:78vw;border-radius:50%;background:oklch(0.76 0.16 106 / .08);filter:blur(18px)}.hero-content{position:relative;max-width:1120px}.brand-pill{display:inline-flex;gap:10px;align-items:center;color:var(--primary);font-weight:900;margin-bottom:22px}.brand-pill::before{content:"";width:34px;height:3px;border-radius:999px;background:var(--primary)}.hero-grid{display:grid;grid-template-columns:1fr;gap:26px;align-items:center}.hero-copy-block{min-width:0}h1{font-size:clamp(2.75rem,11vw,4.8rem);line-height:.9;letter-spacing:-.04em;text-wrap:balance;margin:0;font-weight:950;overflow-wrap:normal;word-break:keep-all}h1 span{display:block}.hero-copy{font-size:clamp(1rem,1.7vw,1.2rem);line-height:1.9;color:var(--muted);max-width:58ch;margin:24px 0 28px;text-wrap:pretty;font-weight:700}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.spotlight{display:grid;gap:0;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,var(--surface-2),var(--surface));box-shadow:0 12px 0 oklch(0.04 0 0 / .26)}.spotlight-poster{width:100%;aspect-ratio:3/4;object-fit:cover}.spotlight-body{padding:18px}.spotlight-label{margin:0 0 8px;color:var(--primary);font-size:13px;font-weight:900}.spotlight h2{margin:0 0 10px;font-size:clamp(1.4rem,4vw,2.2rem);line-height:1.18;letter-spacing:-.02em}.spotlight p:last-child{margin:0;color:var(--muted);font-weight:700;line-height:1.82}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:26px;flex-direction:column}.section-head h2{font-size:clamp(2.1rem,8vw,4.8rem);line-height:.96;letter-spacing:-.035em;margin:0;text-wrap:balance}.section-head p{color:var(--muted);line-height:1.8;max-width:44ch;margin:0;font-weight:700}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.work-grid--featured{grid-template-columns:repeat(2,minmax(0,1fr))}.card{display:flex;flex-direction:column;gap:9px;border-radius:14px;min-width:0;color:var(--ink);transition:transform .26s var(--ease)}.poster{position:relative;aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:var(--surface-2)}.poster img{width:100%;height:100%;object-fit:cover;transition:scale .5s var(--ease)}.poster::after{content:"Watch in app";position:absolute;left:7px;bottom:7px;border-radius:999px;padding:6px 9px;background:oklch(0.08 0 0 / .72);backdrop-filter:blur(8px);font-size:10px;font-weight:900;color:var(--white);opacity:1}.card-title{font-weight:900;line-height:1.42;font-size:12px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:2.8em}.more-row{display:flex;justify-content:center;margin-top:30px}
.download-panel{position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(125deg,var(--accent-2),var(--accent));padding:clamp(28px,5vw,58px);display:grid;grid-template-columns:1fr;gap:28px;align-items:center;color:var(--white)}.download-panel::before{content:"";position:absolute;inset:auto -28% -38% auto;width:78vw;height:78vw;border-radius:50%;background:var(--bg)}.download-panel::after{content:"";position:absolute;right:9%;top:8%;width:20px;height:20px;border-radius:50%;background:oklch(0.90 0.16 106);box-shadow:74px 28px 0 oklch(0.86 0.16 72),132px 112px 0 oklch(0.64 0.22 29)}.mock-stack{position:relative;z-index:1;max-width:320px;margin:auto}.phone--download{width:min(210px,60vw)}.big-icon{width:102px;border-radius:26px;position:absolute;left:4px;bottom:-18px;box-shadow:0 18px 22px oklch(0.04 0 0 / .34);rotate:-7deg}.download-copy{position:relative;z-index:1}.download-copy h2{font-size:clamp(2rem,9vw,4.6rem);line-height:.94;letter-spacing:-.035em;margin:0 0 18px;color:var(--white);text-wrap:balance}.download-copy p{font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.85;max-width:64ch;margin:0 0 22px;color:oklch(1 0 0 / .92);font-weight:700}.faq{border-radius:14px;background:oklch(0.12 0.02 276 / .18);padding:16px 18px;margin:20px 0;max-width:66ch;line-height:1.75}.faq strong{display:block;margin-bottom:8px}.download-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.apk-note{margin:14px 0 0!important;font-size:13px!important;line-height:1.7!important;color:oklch(1 0 0 / .84)!important;max-width:58ch!important}.store-badge{min-height:42px;border-radius:999px;background:oklch(0.08 0 0);border:1px solid oklch(1 0 0 / .24);display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;font-size:12px;font-weight:900;color:var(--white)}.source-note{font-size:12px;color:oklch(1 0 0 / .82);margin-top:14px}.footer{border-top:1px solid var(--line);padding:28px clamp(18px,5vw,76px) calc(90px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:13px}.footer a{text-decoration:underline;text-underline-offset:4px}.highlight-pulse{animation:pulse 1.4s var(--ease) 1}@keyframes pulse{0%,100%{box-shadow:0 12px 0 oklch(0.04 0 0 / .26)}40%{box-shadow:0 0 0 8px oklch(0.98 0.02 100 / .25)}}
.mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:10;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,oklch(0.10 0.02 276 / 0),oklch(0.08 0.014 276 / .96) 28%);display:block;opacity:0;pointer-events:none;transform:translateY(16px);transition:opacity .24s var(--ease),transform .24s var(--ease)}.mobile-cta.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-cta a{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:999px;background:linear-gradient(90deg,var(--danger),var(--accent-2));color:var(--white);font-weight:900;box-shadow:0 10px 18px oklch(0.04 0 0 / .35);gap:10px}.mobile-cta a::after{content:"→";font-size:1.05em}
@media (hover:hover) and (pointer:fine){.card:hover{transform:translateY(-5px)}.card:hover .poster img{scale:1.035}.poster::after{opacity:0;translate:0 6px;transition:opacity .24s var(--ease),translate .24s var(--ease)}.card:hover .poster::after,.card:focus-visible .poster::after{opacity:1;translate:0 0}}
@media (min-width: 700px){.work-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:clamp(14px,1.7vw,22px)}.work-grid--featured{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(16px,2vw,26px)}.card-title{font-size:14px}.featured .card-title{font-size:16px}.section-head{align-items:flex-end;flex-direction:row}.footer{padding-bottom:28px}}
@media (min-width: 1020px){.layout{display:grid;grid-template-columns:var(--rail) minmax(0,1fr)}.side-rail{position:sticky;top:0;align-self:start;height:100vh;overflow:auto;border-bottom:0;border-right:1px solid var(--line);padding:clamp(22px,3vw,34px) 22px}.side-inner{min-height:100%;justify-content:flex-start}.logo{width:min(220px,80%)}.app-card{min-height:356px;padding:16px}.app-card__name{font-size:34px}.phone{width:min(190px,92%)}.icon-pop{width:80px;height:80px}.hero{min-height:80vh;display:grid;align-items:center}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(330px,455px);gap:clamp(30px,5vw,70px)}h1{font-size:clamp(3.2rem,4.1vw,3.7rem);max-width:none}.download-panel{grid-template-columns:minmax(220px,.72fr) minmax(0,1fr);gap:clamp(30px,4vw,60px)}.download-panel::before{width:52vw;height:52vw}.mobile-cta{display:none}}
@media (max-width: 380px){.app-card{min-height:400px}.phone{width:178px}.hero-copy{font-size:1rem}.section{padding-left:15px;padding-right:15px}}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

@media (max-width: 699px){
  .side-rail{padding:calc(12px + env(safe-area-inset-top)) 14px 16px}
  .side-inner{gap:12px}
  .logo{width:min(205px,66vw)}
  .app-card{display:grid;grid-template-columns:1fr 150px;grid-template-rows:auto auto;align-items:center;column-gap:8px;min-height:250px;padding:14px;border-radius:16px}
  .app-card__label{grid-column:1;grid-row:1;font-size:13px;align-self:end}
  .app-card__name{grid-column:1;grid-row:2;font-size:clamp(2.15rem,12vw,3.15rem);margin:4px 0 0;align-self:start}
  .app-card .phone{grid-column:2;grid-row:1 / span 2;width:142px;margin:0;justify-self:end;border-width:4px;border-radius:24px}
  .app-card .phone::before{width:66px;height:16px;border-radius:0 0 11px 11px}
  .app-card .phone-screen{padding:27px 8px 9px;gap:7px}
  .app-card .phone-grid{gap:4px}
  .icon-pop{width:58px;height:58px;right:-8px;bottom:12px;border-radius:18px}
  .rail-note{font-size:13px;line-height:1.55;max-width:320px}
  .cta--rail{min-height:46px;max-width:360px}
}

@media (max-width: 699px){
  .side-rail{overflow:hidden}
  .side-inner{width:100%;align-items:stretch}
  .side-inner .logo,.side-inner .rail-note,.side-inner .cta--rail{align-self:center}
  .app-card{width:calc(100vw - 28px)!important;max-width:100%;grid-template-columns:minmax(0,1fr) 132px;overflow:hidden}
  .app-card .phone{width:128px}
  .section,.hero-content{max-width:100%;overflow-wrap:anywhere}
  h1{font-size:clamp(2.35rem,10.8vw,2.85rem);letter-spacing:-.035em;word-break:normal;overflow-wrap:anywhere}
  .hero-copy,.section-head p,.spotlight p,.download-copy p{overflow-wrap:anywhere;word-break:normal}
}

body{overflow-x:hidden}

.cta::after,.mobile-cta a::after{content:none!important}

body.modal-open{overflow:hidden}
.app-required-modal[hidden]{display:none}
.app-required-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}
.app-required-modal__backdrop{position:absolute;inset:0;background:oklch(0.04 0.01 276 / .78);backdrop-filter:blur(6px)}
.app-required-modal__dialog{position:relative;width:min(100%,440px);max-height:calc(100dvh - 40px);overflow:auto;border-radius:16px;background:var(--surface);color:var(--ink);padding:34px 26px 26px;box-shadow:0 24px 70px oklch(0.02 0 0 / .58);outline:0}
.app-required-modal__dialog h2{margin:0 40px 14px 0;font-size:clamp(1.45rem,5vw,2rem);line-height:1.2}
.app-required-modal__dialog p{margin:0;color:var(--muted);font-size:1rem;line-height:1.8;font-weight:700}
.app-required-modal__close{position:absolute;top:12px;right:12px;width:38px;height:38px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);font-size:30px;line-height:1;cursor:pointer}
.app-required-modal__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.app-required-modal__actions .cta,.app-required-modal__actions .ghost{flex:1 1 170px}

.download-notice-modal[hidden]{display:none}
.download-notice-modal{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:20px}
.download-notice-modal__backdrop{position:absolute;inset:0;background:oklch(0.04 0.01 276 / .82);backdrop-filter:blur(7px)}
.download-notice-modal__dialog{position:relative;width:min(100%,620px);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);padding:48px 42px 38px;box-shadow:0 28px 80px oklch(0.02 0 0 / .68);outline:0}
.download-notice-modal__dialog h2{margin:0 42px 24px;text-align:center;color:var(--danger);font-size:clamp(1.7rem,5vw,2.35rem);line-height:1.25}
.download-notice-modal__dialog p{margin:0;color:var(--muted);font-size:clamp(1rem,2.5vw,1.12rem);line-height:2;font-weight:700;text-align:left;word-break:normal;overflow-wrap:break-word;line-break:strict}
.download-notice-modal__dialog strong{font:inherit;color:inherit}
.download-notice-modal__fallback{margin-top:22px;padding:16px;border:1px solid var(--line);border-radius:8px;background:oklch(0.11 0.02 276 / .72)}
.download-notice-modal__fallback p{font-size:.92rem;line-height:1.75}
.download-notice-modal__copy-link{display:block;width:100%;margin-top:10px;padding:0;border:0;background:transparent;color:var(--primary);font:inherit;font-size:.95rem;font-weight:900;text-align:left;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere;cursor:pointer}
.download-notice-modal__copy-status{display:block;margin-top:8px;color:var(--primary);font-size:.82rem;font-weight:900}
.download-notice-modal__copy-status[hidden]{display:none}
.download-notice-modal__close{position:absolute;top:14px;right:14px;width:42px;height:42px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);font-size:32px;line-height:1;cursor:pointer}
.download-notice-modal__actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}
.download-notice-modal__actions .cta,.download-notice-modal__actions .ghost{width:100%;min-height:54px}
@media (max-width: 520px){.download-notice-modal{padding:18px}.download-notice-modal__dialog{width:100%;padding:42px 22px 26px}.download-notice-modal__actions{grid-template-columns:1fr}.download-notice-modal__actions .cta,.download-notice-modal__actions .ghost{min-height:52px}}





