@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Lora:ital,wght@1,500;1,600&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');

/* A warm, readable resident-facing site. App illustrations are deliberately
   distinct from screenshots; language pages share this one layout. */
:root {
  --site-bg:#f8f6f0; --site-surface:#fffefa; --site-ink:#243c40;
  --site-muted:#5e7172; --site-accent:#215e67; --site-soft:#eaf0ea;
  --site-line:#dce2d9; --site-coral:#b7553c; --site-peach:#f3e9dd;
  --site-deep:#244e53; --site-on-deep:#f8f6ee; --site-visual:#e3eae0;
  --site-shadow:0 15px 40px #263e4010, 0 2px 5px #263e4005;
  --site-font:'DM Sans','Noto Sans JP',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) {
    --site-bg:#172326; --site-surface:#213135; --site-ink:#edf0e8;
    --site-muted:#b0c0bd; --site-accent:#a2d2ca; --site-soft:#243a3c;
    --site-line:#35494a; --site-coral:#efa185; --site-peach:#3a322d;
    --site-deep:#233f43; --site-visual:#263d3c;
    --site-shadow:0 16px 42px #0003;
  }
}
:root[data-theme="dark"] {
  --site-bg:#172326; --site-surface:#213135; --site-ink:#edf0e8;
  --site-muted:#b0c0bd; --site-accent:#a2d2ca; --site-soft:#243a3c;
  --site-line:#35494a; --site-coral:#efa185; --site-peach:#3a322d;
  --site-deep:#233f43; --site-visual:#263d3c;
  --site-shadow:0 16px 42px #0003;
}
.homepage *, .organization-page * { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body.homepage { margin:0; padding:0; background:var(--site-bg); color:var(--site-ink); font:400 16px/1.6 var(--site-font); -webkit-font-smoothing:antialiased; }
.homepage :is(h1,h2,h3,h4,p,figure,ul) { margin:0; }
.homepage button, .homepage select { font:inherit; }
.homepage button, .homepage a, .organization-page a { -webkit-tap-highlight-color:transparent; }
.homepage a { color:inherit; }
.homepage svg { width:22px; height:22px; flex:none; }
.homepage [hidden] { display:none!important; }
.homepage .wrap, .organization-page .wrap { width:min(100%,1240px); margin-inline:auto; padding-inline:36px; }
.homepage .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.homepage .skip-link { position:fixed; top:10px; left:15px; z-index:100; transform:translateY(-150%); padding:10px 16px; background:var(--site-ink); color:var(--site-bg); border-radius:8px; }
.homepage .skip-link:focus { transform:none; }
.homepage :focus-visible, .organization-page :focus-visible { outline:3px solid var(--site-coral); outline-offset:5px; }

/* Shared navigation retains the existing language and theme controls. */
:is(.homepage,.organization-page) .nav { position:sticky; top:0; z-index:20; padding:0; background:var(--site-bg); border-bottom:1px solid transparent; transition:border-color .2s; }
:is(.homepage,.organization-page) .nav.scrolled { border-color:var(--site-line); box-shadow:0 3px 16px #153c3c04; }
:is(.homepage,.organization-page) .nav .bar { min-height:92px; height:auto; display:flex; align-items:center; gap:12px; background:none; border:0; box-shadow:none; border-radius:0; }
.homepage .logo { display:inline-flex; align-items:center; gap:8px; text-decoration:none; font-size:23px; font-weight:800; letter-spacing:-1px; color:var(--site-accent); flex:none; line-height:1; }
.homepage .logo img { width:28px; height:28px; }
.homepage .logo span span { color:var(--site-coral); }
:is(.homepage,.organization-page) .nav .links { display:flex; align-items:center; gap:26px; margin-left:auto; }
:is(.homepage,.organization-page) .nav .links a { color:var(--site-muted); font-size:13px; font-weight:500; text-decoration:none; white-space:nowrap; }
:is(.homepage,.organization-page) .nav .links a:hover { color:var(--site-accent); }
:is(.homepage,.organization-page) .nav .langsel-wrap { margin-left:12px; }
:is(.homepage,.organization-page) .nav .langsel { color:var(--site-ink); background-color:var(--site-bg); border:1px solid var(--site-line); opacity:1; min-height:36px; }
:is(.homepage,.organization-page) .nav .thbtn { color:var(--site-muted); margin-left:0; }
:is(.homepage,.organization-page) .btn-cta { display:inline-flex; align-items:center; justify-content:center; gap:14px; padding:15px 22px; border:1px solid var(--site-accent); border-radius:9px; background:var(--site-accent); color:var(--site-bg); text-decoration:none; font:600 14px/1.35 var(--site-font); white-space:normal; transition:transform .2s,box-shadow .2s; }
:is(.homepage,.organization-page) .btn-cta:hover { transform:translateY(-2px); box-shadow:0 5px 16px #215e6720; }
:is(.homepage,.organization-page) .btn-cta svg { width:18px; height:18px; }
:is(.homepage,.organization-page) .nav .btn-cta { padding:11px 15px; font-size:12px; margin-left:6px; }
.homepage .quiet-link { display:inline-flex; align-items:center; gap:10px; text-decoration:none; font-size:14px; font-weight:600; color:var(--site-accent); text-underline-offset:5px; }
.homepage .quiet-link:hover { text-decoration:underline; }
.homepage .section-kicker { color:var(--site-coral); font-size:11px; letter-spacing:.11em; font-weight:700; text-transform:uppercase; line-height:1.6; }
.homepage h2 { font-weight:500; font-size:clamp(31px,3.45vw,45px); line-height:1.16; letter-spacing:-1.7px; }
.homepage .section-head { max-width:720px; }
.homepage .section-head h2 { margin-top:14px; }
.homepage .section-head > p:last-child:not(.section-kicker) { margin-top:18px; color:var(--site-muted); max-width:620px; }

/* The hero shows the useful outcome before listing capabilities. */
.homepage .home-hero { display:grid; grid-template-columns:1.14fr 1fr; gap:48px; align-items:center; padding-block:66px 62px; }
.homepage .hero-copy { min-width:0; padding-block:24px; }
.homepage h1 { font-size:clamp(43px,4.55vw,64px); font-weight:500; line-height:1.12; letter-spacing:-2.8px; }
.homepage h1 em { display:inline-block; margin-top:3px; color:var(--site-accent); font-family:'Lora',var(--site-font); font-weight:500; letter-spacing:-2.8px; }
:is(html[lang="ja"],html[lang="zh"],html[lang="ko"]) .homepage h1 em { font-family:var(--site-font); font-style:normal; letter-spacing:-1.2px; }
html[lang="ko"] .homepage :is(h1,h2,h3) { word-break:keep-all; }
.homepage .hero-lead { color:var(--site-muted); font-size:17px; line-height:1.75; margin-top:24px; max-width:490px; }
.homepage .hero-actions { display:flex; gap:24px; align-items:center; flex-wrap:wrap; margin-top:32px; }
.homepage .hero-facts { display:flex; gap:9px 17px; list-style:none; padding:0; margin-top:28px; flex-wrap:wrap; }
.homepage .hero-facts li { display:flex; align-items:center; gap:5px; color:var(--site-muted); font-size:11px; }
.homepage .hero-facts svg { width:13px; height:13px; color:var(--site-accent); }
.homepage .hero-scene { min-width:0; position:relative; display:flex; flex-direction:column; padding-top:112px; isolation:isolate; }
.homepage .hero-scene::before { content:''; position:absolute; inset:24px 0 44px 0; background:var(--site-visual); border-radius:49% 49% 38% 46%; z-index:-2; transform:rotate(9deg); }
.homepage .scene-orbit { position:absolute; inset:5px 14px 46px -13px; border:1px solid var(--site-line); border-radius:50%; transform:rotate(-16deg); z-index:-1; }
.homepage .scene-label { position:absolute; top:0; right:12px; font:500 11px/1.5 var(--site-font); color:var(--site-muted); }
.homepage .paper-letter { position:absolute; left:20px; top:56px; width:215px; height:263px; padding:24px; background:var(--site-surface); border:1px solid var(--site-line); border-radius:5px; transform:rotate(-10deg); box-shadow:var(--site-shadow); }
.homepage .paper-mark { display:block; color:var(--site-coral); font-size:20px; }
.homepage .paper-title { display:block; color:var(--site-ink); font-size:19px; letter-spacing:3px; margin-top:19px; }
.homepage .paper-line { display:block; height:4px; width:82%; margin-top:12px; background:var(--site-line); border-radius:3px; }
.homepage .paper-line.long { width:100%; margin-top:20px; }
.homepage .paper-line.short { width:60%; }
.homepage .paper-footer { display:flex; gap:7px; align-items:center; margin-top:23px; font-size:10px; color:var(--site-muted); line-height:1.4; }
.homepage .paper-footer svg { width:14px; height:14px; }
.homepage .hero-scene > .example-result { position:relative; align-self:flex-end; width:304px; transform:rotate(3deg); }
.homepage .example-result, .homepage .example-chat, .homepage .example-timeline, .homepage .example-visa, .homepage .example-safety { background:var(--site-surface); border:1px solid var(--site-line); border-radius:17px; padding:25px; box-shadow:var(--site-shadow); }
.homepage .example-app-label { display:flex; align-items:center; gap:8px; color:var(--site-accent); font-weight:600; font-size:12px; }
.homepage .example-app-label svg { width:17px; height:17px; }
.homepage .example-result h3 { font-size:23px; line-height:1.3; letter-spacing:-.65px; font-weight:600; margin-top:21px; }
.homepage .example-task { margin-top:10px; color:var(--site-muted); font-size:13px; line-height:1.5; }
.homepage .example-date { display:grid; grid-template-columns:1fr auto; align-items:center; margin-top:20px; padding:12px 0; border-top:1px solid var(--site-line); border-bottom:1px solid var(--site-line); }
.homepage .example-date span { font-size:10px; color:var(--site-muted); }
.homepage .example-date strong { grid-row:2; font-size:16px; font-weight:600; }
.homepage .example-date svg { grid-row:1/3; grid-column:2; color:var(--site-accent); }
.homepage .example-save { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:17px; padding:10px; border-radius:7px; color:var(--site-bg); background:var(--site-accent); font-size:11px; font-weight:600; }
.homepage .example-save svg { width:14px; height:14px; }
.homepage .saved-note { position:relative; align-self:flex-start; margin:24px 0 0 5px; max-width:300px; display:flex; align-items:center; gap:10px; padding:14px 19px; border-radius:11px; background:var(--site-surface); border:1px solid var(--site-line); box-shadow:var(--site-shadow); transform:rotate(-3deg); }
.homepage .saved-note > svg { width:27px; height:27px; padding:5px; border-radius:50%; background:var(--site-soft); color:var(--site-accent); }
.homepage .saved-note strong { display:block; font-size:11px; line-height:1.45; font-weight:600; }
.homepage .saved-note span { display:block; font-size:10px; color:var(--site-muted); margin-top:3px; }

.homepage .language-strip { padding-block:28px 32px; border-top:1px solid var(--site-line); border-bottom:1px solid var(--site-line); display:flex; align-items:center; gap:35px; }
.homepage .language-strip p { font-size:12px; color:var(--site-muted); max-width:200px; }
.homepage .language-strip > div { display:flex; justify-content:space-between; gap:20px; flex:1; flex-wrap:wrap; }
.homepage .language-strip a { font-size:14px; font-weight:500; text-decoration:none; color:var(--site-muted); }
.homepage .language-strip a:hover, .homepage .language-strip a[aria-current] { color:var(--site-accent); text-decoration:underline; text-underline-offset:6px; }

/* One manual tour, with real keyboard focus and no autoplay. */
.homepage .product-section { padding-block:96px 100px; }
.homepage .section-anchor { display:block; }
.homepage .feature-tabs { display:flex; align-items:stretch; gap:5px; padding:5px; border:1px solid var(--site-line); border-radius:12px; margin-top:35px; width:max-content; max-width:100%; background:var(--site-soft); }
.homepage .feature-tab { border:0; background:transparent; color:var(--site-muted); display:flex; align-items:center; gap:8px; padding:13px 15px; border-radius:8px; font:500 12px/1.4 var(--site-font); cursor:pointer; text-align:left; transition:background .2s,color .2s; }
.homepage .feature-tab svg { width:17px; height:17px; }
.homepage .feature-tab.active { background:var(--site-surface); color:var(--site-accent); box-shadow:0 2px 5px #203b3910; }
.homepage .feature-tab:hover { color:var(--site-accent); }
.homepage .feature-stage { margin-top:36px; }
.homepage .feature-panel { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; min-height:395px; padding:12px 0; }
.homepage .feature-copy { max-width:510px; }
.homepage .feature-copy h3 { font-size:32px; line-height:1.2; letter-spacing:-1px; font-weight:500; margin-top:14px; }
.homepage .feature-copy > p { margin-top:17px; color:var(--site-muted); font-size:15px; }
.homepage .feature-copy ul { list-style:none; padding:0; margin-top:22px; }
.homepage .feature-copy li { display:flex; align-items:flex-start; gap:9px; font-size:13px; margin-top:10px; }
.homepage .feature-copy li svg { color:var(--site-accent); width:16px; height:16px; margin-top:3px; }
.homepage .feature-visual { min-height:390px; background:var(--site-soft); border:1px solid var(--site-line); border-radius:20px; padding:32px 55px 36px; display:flex; flex-direction:column; align-items:stretch; justify-content:center; position:relative; }
.homepage .feature-visual > div { width:100%; max-width:350px; margin:auto; }
.homepage .example-question { margin:20px 0 22px auto; padding:13px 16px; border-radius:12px 12px 2px 12px; background:var(--site-soft); color:var(--site-ink); font-size:13px; max-width:90%; }
.homepage .example-answer { display:flex; gap:12px; align-items:flex-start; }
.homepage .example-answer p { font-size:13px; color:var(--site-muted); }
.homepage .mini-logo { display:grid; place-items:center; flex:none; width:27px; height:27px; background:var(--site-accent); color:var(--site-bg); border-radius:7px; font-weight:700; font-size:11px; }
.homepage .example-source { display:flex; align-items:center; gap:8px; border-top:1px solid var(--site-line); padding-top:16px; margin-top:25px; font-size:11px; color:var(--site-accent); }
.homepage .example-source svg { width:14px; height:14px; }
.homepage :is(.example-timeline,.example-visa,.example-safety) h3 { margin-top:23px; font-size:22px; line-height:1.25; font-weight:500; letter-spacing:-.6px; }
.homepage .timeline-row { display:flex; gap:12px; padding-top:19px; margin-top:17px; border-top:1px solid var(--site-line); align-items:flex-start; }
.homepage .timeline-dot { width:10px; height:10px; margin:6px 5px 0; border:2px solid var(--site-coral); border-radius:50%; flex:none; }
.homepage .timeline-row strong { font-size:12px; line-height:1.4; display:block; font-weight:500; }
.homepage .timeline-row small { font-size:10px; color:var(--site-muted); display:block; margin-top:3px; }
.homepage .timeline-row.done strong { text-decoration:line-through; color:var(--site-muted); }
.homepage .timeline-row.done svg { color:var(--site-accent); width:20px; height:20px; }
.homepage .route-field { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px; border:1px solid var(--site-line); border-radius:8px; margin-top:20px; font-size:12px; }
.homepage .route-field + .route-field { margin-top:10px; }
.homepage .route-line { display:flex; align-items:center; padding-inline:20px; margin-top:30px; }
.homepage .route-line i { width:12px; height:12px; border:3px solid var(--site-accent); border-radius:50%; }
.homepage .route-line span { flex:1; border-top:1px dashed var(--site-muted); }
.homepage .example-visa > p { font-size:11px; color:var(--site-muted); margin-top:7px; }
.homepage .safety-row { display:flex; gap:10px; align-items:center; font-size:12px; border-top:1px solid var(--site-line); padding-top:14px; margin-top:14px; }
.homepage .safety-row svg { width:18px; height:18px; color:var(--site-accent); }

.homepage .coverage-section { background:var(--site-soft); padding-block:80px; border-block:1px solid var(--site-line); }
.homepage .coverage-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; margin-top:40px; }
.homepage .coverage-grid article { border-top:1px solid var(--site-line); padding-top:19px; }
.homepage .coverage-number { color:var(--site-coral); font-size:11px; }
.homepage .coverage-grid h3 { font-weight:500; font-size:23px; letter-spacing:-.5px; margin-top:20px; }
.homepage .coverage-grid p { font-size:14px; color:var(--site-muted); margin-top:9px; max-width:310px; }
.homepage .local-tools { margin-top:45px; padding:30px; background:var(--site-surface); border:1px solid var(--site-line); border-radius:14px; }
.homepage .local-heading { display:flex; gap:14px; align-items:flex-start; }
.homepage .local-heading > svg { color:var(--site-accent); margin-top:4px; }
.homepage .local-heading h3 { font-size:22px; line-height:1.3; font-weight:500; letter-spacing:-.4px; }
.homepage .local-heading p { margin-top:7px; font-size:13px; color:var(--site-muted); }
.homepage .local-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-top:26px; }
.homepage .local-grid article { padding-top:19px; border-top:1px solid var(--site-line); }
.homepage .local-grid h4 { font-size:15px; font-weight:600; }
.homepage .local-grid p { margin-top:8px; font-size:13px; color:var(--site-muted); }

.homepage .strengths-section { padding-block:90px; }
.homepage .strengths-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; margin-top:40px; }
.homepage .strength-icon { display:inline-flex; padding:12px; color:var(--site-accent); background:var(--site-soft); border-radius:12px; }
.homepage .strengths-grid h3 { margin-top:20px; font-size:22px; line-height:1.3; font-weight:500; letter-spacing:-.5px; }
.homepage .strengths-grid p { margin-top:12px; font-size:14px; color:var(--site-muted); }

.homepage .organization-invite { display:flex; gap:50px; align-items:center; justify-content:space-between; background:var(--site-peach); padding:38px 42px; width:calc(100% - 72px); max-width:1168px; border-radius:13px; }
.homepage .organization-invite > div { max-width:770px; }
.homepage .organization-invite h2 { margin-top:8px; font-size:29px; letter-spacing:-.8px; }
.homepage .organization-invite p:not(.section-kicker) { font-size:13px; margin-top:12px; color:var(--site-muted); max-width:700px; }
.homepage .organization-invite .btn-cta { flex:none; flex-wrap:wrap; column-gap:12px; max-width:200px; }
.homepage .org-language { width:100%; text-align:center; font-size:10px; font-weight:400; }
.homepage .org-language:empty { display:none; }
.homepage .launch-section { padding-block:75px 70px; }
.homepage .launch-panel { position:relative; overflow:hidden; text-align:center; background:var(--site-deep); color:var(--site-on-deep); border-radius:20px; padding:60px 30px 52px; }
.homepage .launch-mark { font-size:20px; letter-spacing:-1px; font-weight:800; color:#cfe0d6; display:block; margin-bottom:27px; }
.homepage .launch-mark span { color:#efae91; }
.homepage .launch-panel h2 { max-width:750px; margin:16px auto 0; font-size:clamp(29px,3.4vw,44px); }
.homepage .launch-panel > p:not(.section-kicker) { max-width:620px; margin:20px auto 0; font-size:14px; color:#c8d9d3; }
.homepage .launch-panel .quiet-link { color:#f5efe3; margin-top:25px; font-size:12px; }
.homepage .home-footer { border-top:1px solid var(--site-line); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:25px; padding-block:30px 38px; }
.homepage .home-footer .logo { font-size:18px; }
.homepage .home-footer .logo img { width:23px; height:23px; }
.homepage .footer-links { display:flex; gap:12px 23px; flex-wrap:wrap; }
.homepage .footer-links a { color:var(--site-muted); font-size:11px; text-decoration:none; }
.homepage .footer-links a:hover { text-decoration:underline; }
.homepage .home-footer > p { font-size:10px; color:var(--site-muted); width:100%; }

/* Organization page uses its existing form and content hooks, with the same
   quieter palette and spacing as the resident page. */
body.organization-page { background:var(--site-bg); }
.organization-page .org-language-switch { display:flex; align-items:center; gap:10px; margin-left:auto; flex:none; font-size:12px; }
.organization-page .org-language-switch a { color:var(--site-muted); text-decoration:none; }
.organization-page .org-language-switch a[aria-current] { color:var(--site-accent); text-decoration:underline; text-underline-offset:5px; }
html[lang="ja"] .organization-page { font-family:var(--site-font); }
html[lang="ja"] .organization-page .org-hero h1 { font-size:clamp(32px,3.5vw,47px); line-height:1.5; letter-spacing:-.04em; max-width:15em; }
html[lang="ja"] .organization-page :is(.shead h2,.pilot-panel h2) { font-size:clamp(27px,3vw,38px); line-height:1.5; letter-spacing:-.03em; }
html[lang="ja"] .organization-page :is(.pill,.eyebrow-c) { letter-spacing:.04em; }
.organization-page .org-page { --tx:var(--site-ink); --tx2:var(--site-muted); --tx3:var(--site-muted); --act:var(--site-accent); --card:var(--site-surface); --card2:var(--site-soft); --hair:var(--site-line); --hair2:var(--site-line); --act-soft:var(--site-soft); --hi:var(--site-coral); --hi-soft:var(--site-peach); background:var(--site-bg); }
.organization-page .org-hero { padding-block:65px 80px; gap:60px; }
.organization-page .org-hero h1 { font:500 clamp(38px,4.5vw,61px)/1.13 var(--site-font); letter-spacing:-2px; max-width:12em; }
.organization-page .org-hero .lead { font-size:16px; }
.organization-page .pill, .organization-page .eyebrow-c { font-size:10px; color:var(--site-coral); border:0; padding:0; background:none; }
.organization-page .shead h2 { font:500 clamp(29px,3.2vw,42px)/1.2 var(--site-font); letter-spacing:-1.3px; }
.organization-page .org-section { padding-block:75px; }
.organization-page .pilot-summary { border-radius:14px; background:var(--site-soft); box-shadow:none; border-color:var(--site-line); }
.organization-page .pilot-summary h2 { font-weight:500; }
.organization-page .pilot-summary > p { margin-top:20px; font-size:12px; color:var(--site-muted); line-height:1.6; }
.organization-page :is(.outcome-card,.trust-card) { border-radius:12px; box-shadow:none; background:var(--site-surface); }
.organization-page :is(.outcome-card,.trust-card) h3 { font-weight:600; }
.organization-page .trust-card > p { color:var(--site-muted); font-size:14px; line-height:1.65; margin-top:12px; }
.organization-page .pilot-panel { grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); border-radius:16px; background:var(--site-soft); }
.organization-page .pilot-panel > * { min-width:0; }
.organization-page .pilot-form { min-width:0; grid-template-columns:repeat(2,minmax(0,1fr)); }
.organization-page .pilot-panel h2 { color:var(--site-ink); font-weight:500; }
.organization-page .pilot-panel p { color:var(--site-muted); }
.organization-page .pilot-form .pilot-field { min-width:0; width:100%; color:var(--site-ink); background:var(--site-surface); border-color:var(--site-line); }
.organization-page .pilot-form .pilot-field::placeholder { color:var(--site-muted); }
.organization-page .pilot-form .wl-btn { background:var(--site-accent); color:var(--site-bg); border-radius:8px; }
.organization-page .pilot-form .wl-status:is(.info,.ok) { color:var(--site-accent); }
.organization-page .pilot-form .wl-status.err { color:var(--site-coral); }
.organization-page .org-form-section { padding-block:65px 80px; }
.organization-page .reveal { opacity:1; filter:none; transform:none; }

@media(min-width:1100px) { .homepage .hero-scene { margin-left:8px; } }
@media(max-width:1100px) {
  :is(.homepage,.organization-page) .nav .links { gap:17px; }
  :is(.homepage,.organization-page) .nav .links a { font-size:12px; }
  .homepage .home-hero { gap:28px; }
  .homepage .hero-scene > .example-result { width:270px; }
  .homepage .paper-letter { left:0; width:190px; }
  .homepage .feature-tab { padding:12px; font-size:11px; }
  .homepage .feature-tab svg { display:none; }
  .homepage .feature-panel { gap:40px; }
  .homepage .feature-visual { padding-inline:30px; }
}
@media(max-width:900px) {
  .organization-page .pilot-panel { grid-template-columns:minmax(0,1fr); }
  :is(.homepage,.organization-page) .nav .links { display:none; }
  :is(.homepage,.organization-page) .nav .langsel-wrap { margin-left:auto; }
  .organization-page .nav .btn-cta { margin-left:0; }
  .homepage .home-hero { grid-template-columns:1fr 1fr; gap:20px; padding-block:35px 55px; }
  .homepage h1 { font-size:46px; letter-spacing:-2px; }
  .homepage h1 em { letter-spacing:-2px; }
  .homepage .hero-lead { font-size:15px; }
  .homepage .hero-actions { gap:18px; }
  .homepage .hero-scene > .example-result { width:250px; }
  .homepage .paper-letter { width:178px; padding:20px; top:55px; height:240px; }
  .homepage .saved-note { padding:12px; }
  .homepage .scene-label { font-size:9px; }
  .homepage .language-strip { flex-direction:column; gap:17px; }
  .homepage .language-strip p { max-width:none; }
  .homepage .language-strip > div { justify-content:center; }
  .homepage .feature-panel { gap:28px; }
  .homepage .feature-copy h3 { font-size:28px; }
  .homepage .feature-visual { padding-inline:22px; }
  .homepage .strengths-grid { gap:24px; }
  .homepage .organization-invite { gap:30px; }
}
@media(max-width:700px) {
  .homepage .wrap, .organization-page .wrap { padding-inline:23px; }
  :is(.homepage,.organization-page) .nav .bar { min-height:76px; gap:7px; margin-inline:0; }
  :is(.homepage,.organization-page) .nav .btn-cta { display:none; }
  .organization-page .nav .thbtn { margin-left:0; }
  .homepage .logo { font-size:21px; }
  .homepage .home-hero { grid-template-columns:1fr; gap:16px; padding-block:22px 45px; }
  .homepage .hero-copy { padding-block:10px; }
  .homepage h1 { font-size:clamp(42px,8vw,59px); max-width:550px; }
  :is(html[lang="ja"],html[lang="zh"],html[lang="ko"]) .homepage h1 { font-size:clamp(32px,7.2vw,44px); line-height:1.3; letter-spacing:-1.2px; }
  .homepage .hero-lead { font-size:16px; max-width:540px; margin-top:20px; }
  .homepage .hero-actions { margin-top:25px; }
  .homepage .hero-facts { margin-top:22px; }
  .homepage .hero-scene { width:min(100%,470px); margin:28px auto 0; padding-top:104px; }
  .homepage .hero-scene::before { transform:none; }
  .homepage .scene-orbit { inset:15px 0 35px; transform:none; }
  .homepage .hero-scene > .example-result { width:275px; }
  .homepage .paper-letter { width:200px; top:44px; left:10px; }
  .homepage .saved-note { margin-left:7px; }
  .homepage .scene-label { top:-4px; font-size:10px; }
  .homepage .language-strip { padding-block:25px; }
  .homepage .language-strip > div { gap:15px 23px; }
  .homepage .language-strip a { font-size:13px; }
  .homepage .product-section { padding-block:65px 60px; }
  .homepage h2 { font-size:34px; letter-spacing:-1.3px; }
  .homepage .feature-tabs { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:26px; border-radius:12px; }
  .homepage .feature-tab { justify-content:flex-start; font-size:12px; padding:13px 10px; }
  .homepage .feature-tab svg { display:block; width:16px; height:16px; }
  .homepage .feature-tab:last-child { grid-column:1/-1; }
  .homepage .feature-panel { grid-template-columns:1fr; gap:26px; min-height:0; }
  .homepage .feature-stage { margin-top:27px; }
  .homepage .feature-copy h3 { max-width:450px; font-size:31px; }
  .homepage .feature-visual { min-height:350px; padding:27px 35px 24px; }
  .homepage .coverage-section { padding-block:60px; }
  .homepage .coverage-grid { grid-template-columns:1fr; gap:24px; margin-top:30px; }
  .homepage .coverage-grid article { display:grid; grid-template-columns:28px 1fr; column-gap:14px; }
  .homepage .coverage-number { grid-row:1/3; padding-top:4px; }
  .homepage .coverage-grid h3 { margin-top:0; font-size:22px; }
  .homepage .coverage-grid p { grid-column:2; max-width:none; }
  .homepage .local-tools { margin-top:35px; padding:23px; }
  .homepage .local-heading { gap:10px; }
  .homepage .local-heading h3 { font-size:20px; }
  .homepage .local-grid { grid-template-columns:1fr; gap:20px; }
  .homepage .strengths-section { padding-block:60px; }
  .homepage .strengths-grid { grid-template-columns:1fr; gap:28px; margin-top:30px; }
  .homepage .strengths-grid article { display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:17px; }
  .homepage .strength-icon { padding:11px; align-self:start; grid-row:1/3; }
  .homepage .strengths-grid h3 { margin-top:0; font-size:21px; }
  .homepage .strengths-grid p { grid-column:2; margin-top:8px; }
  .homepage .organization-invite { width:calc(100% - 46px); display:block; padding:29px 25px; }
  .homepage .organization-invite h2 { font-size:28px; }
  .homepage .organization-invite .btn-cta { margin-top:23px; max-width:none; }
  .homepage .launch-section { padding-block:45px; }
  .homepage .launch-panel { padding:39px 23px; border-radius:14px; }
  .homepage .launch-panel h2 { font-size:31px; }
  .homepage .launch-panel h2 br { display:none; }
  .homepage .home-footer { gap:22px; padding-block:27px 35px; }
  .homepage .footer-links { gap:12px 20px; }
  .organization-page .org-hero { padding-block:35px 55px; gap:35px; }
  .organization-page .org-hero h1 { font-size:42px; }
  .organization-page .org-section { padding-block:55px; }
}
@media(max-width:370px) {
  .homepage .wrap, .organization-page .wrap { padding-inline:18px; }
  .homepage h1 { font-size:39px; }
  :is(html[lang="ja"],html[lang="zh"],html[lang="ko"]) .homepage h1 { font-size:30px; }
  .homepage .hero-scene > .example-result { width:248px; padding:21px; }
  .homepage .hero-facts { gap:8px 12px; }
  .homepage .hero-facts li { font-size:10px; }
  .homepage .feature-visual { padding-inline:20px; }
  .homepage .organization-invite { width:calc(100% - 36px); }
}
@media(max-width:560px) {
  .organization-page .pilot-form { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .homepage *, .organization-page * { animation:none!important; transition:none!important; }
}

/* App Store download: Apple's official badge (never restyled) plus a stable QR code to /get for desktop visitors. */
.homepage .store-badge { display:inline-flex; flex:none; border-radius:8px; line-height:0; transition:transform .2s,box-shadow .2s; }
.homepage .store-badge img { display:block; height:48px; width:auto; }
.homepage .store-badge:hover { transform:translateY(-2px); box-shadow:0 6px 18px #0004; }
.homepage .launch-get { display:flex; align-items:center; justify-content:center; gap:40px; flex-wrap:wrap; margin-top:34px; }
.homepage .launch-get .store-badge img { height:54px; }
.homepage .store-qr { display:flex; align-items:center; gap:16px; margin:0; text-align:left; }
.homepage .store-qr a { display:block; padding:8px; background:#fff; border-radius:12px; line-height:0; }
.homepage .store-qr img { display:block; width:108px; height:108px; }
.homepage .store-qr figcaption { max-width:170px; font-size:12px; line-height:1.5; color:#c8d9d3; }
.homepage .launch-panel > p.launch-android { margin-top:22px; font-size:12px; color:#a9bdb6; }
@media(hover:none), (max-width:700px) { .homepage .store-qr { display:none; } }
@media(prefers-reduced-motion:reduce) { .homepage .store-badge { transition:none; } .homepage .store-badge:hover { transform:none; } }

/* The hero is page-native motion: the site's own colors and live, localized text. */
.homepage .hero-scene > .example-result { width:min(330px,86%); margin-right:10px; }
.homepage .hero-scene .example-task { font-size:14px; }
.homepage .hero-scene .example-save { font-size:12px; }
.homepage .hero-scene .saved-note strong { font-size:13px; }
.homepage .hero-scene .saved-note span { font-size:12px; }
.homepage .watch-film { gap:8px; }
.homepage .watch-film > svg { width:16px; height:16px; fill:currentColor; stroke-width:0; }
.homepage .motion-toggle { position:absolute; inset:0; z-index:1; width:100%; height:100%; padding:0; border:0; border-radius:16px; background:transparent; cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }

/* A full-viewport film canvas, with no enclosing card or player frame. */
body.homepage.film-open { overflow:hidden; }
.homepage .film-dialog { --film-bg:#f8f6f0; --film-ink:#243c40; --film-muted:#5c6e6d; border:0; border-radius:0; margin:0; padding:20px 32px; width:100%; max-width:none; height:100vh; height:100dvh; max-height:none; overflow:auto; color:var(--film-ink); background:var(--film-bg); transition:background-color .16s linear,color .16s linear; }
.homepage .film-dialog::backdrop { background:var(--film-bg,#f8f6f0); }
.homepage .film-dialog[open] { display:grid; place-items:center; }
.homepage .film-dialog:fullscreen { padding:20px 32px; }
.homepage .film-shell { position:relative; width:min(1600px,100%); height:100%; min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:8px; }
.homepage .film-heading, .homepage .film-heading-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.homepage .film-heading h2 { font:600 17px/1.4 var(--site-font); letter-spacing:-.3px; }
.homepage .film-heading h2 small { font-size:13px; font-weight:400; color:var(--film-muted); }
.homepage .film-heading select { max-width:150px; padding:8px 10px; border:0; border-radius:0; color:var(--film-ink); background:var(--film-bg); font:500 14px/1.4 var(--site-font); cursor:pointer; }
.homepage .film-heading select:focus { outline:none; box-shadow:none; }
.homepage .film-heading select:focus-visible { text-decoration:underline; text-underline-offset:5px; }
.homepage .film-stage { display:grid; place-items:center; min-height:0; position:relative; }
.homepage .film-stage video { display:block; width:auto; height:auto; max-width:100%; max-height:100%; min-height:0; aspect-ratio:16/9; object-fit:contain; border:0; border-radius:0; background:transparent; }
/* A tiny feather in the film's empty safe margin absorbs codec/color differences. */
.homepage .film-stage video[data-custom-controls] { -webkit-mask-image:linear-gradient(to right,transparent,#000 1.5%,#000 98.5%,transparent),linear-gradient(to bottom,transparent,#000 1.5%,#000 98.5%,transparent); -webkit-mask-composite:source-in; mask-image:linear-gradient(to right,transparent,#000 1.5%,#000 98.5%,transparent),linear-gradient(to bottom,transparent,#000 1.5%,#000 98.5%,transparent); mask-composite:intersect; }
.homepage .film-stage video[data-custom-controls] { cursor:pointer; }
.homepage .film-icon-button { display:inline-flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; padding:10px; color:var(--film-ink); border:0; border-radius:50%; background:transparent; cursor:pointer; }
.homepage .film-icon-button:hover { background:color-mix(in srgb,var(--film-ink) 8%,transparent); }
.homepage .film-icon-button > span { display:flex; }
.homepage .film-icon-button svg { width:21px; height:21px; }
.homepage .film-controls { display:grid; grid-template-columns:44px auto minmax(50px,1fr) 44px 44px; gap:12px; align-items:center; }
.homepage .film-controls:has([data-film-fullscreen][hidden]) { grid-template-columns:44px auto minmax(50px,1fr) 44px; }
.homepage .film-time { font-size:12px; font-variant-numeric:tabular-nums; color:var(--film-muted); white-space:nowrap; }
.homepage .film-seek { --film-progress:0%; width:100%; min-width:0; height:32px; margin:0; appearance:none; -webkit-appearance:none; background:transparent; cursor:pointer; }
.homepage .film-seek::-webkit-slider-runnable-track { height:2px; background:linear-gradient(to right,var(--film-ink) var(--film-progress),color-mix(in srgb,var(--film-ink) 22%,transparent) var(--film-progress)); }
.homepage .film-seek::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:12px; height:12px; margin-top:-5px; border:0; border-radius:50%; background:var(--film-ink); }
.homepage .film-seek::-moz-range-track { height:2px; background:color-mix(in srgb,var(--film-ink) 22%,transparent); }
.homepage .film-seek::-moz-range-progress { height:2px; background:var(--film-ink); }
.homepage .film-seek::-moz-range-thumb { width:12px; height:12px; border:0; border-radius:50%; background:var(--film-ink); }
.homepage .film-info > summary { list-style:none; }
.homepage .film-info > summary::-webkit-details-marker { display:none; }
.homepage .film-info[open] > summary { background:color-mix(in srgb,var(--film-ink) 10%,transparent); }
/* The disclosure floats over the canvas; opening it never resizes the film. */
.homepage .film-info-panel { position:absolute; z-index:2; top:56px; right:0; width:min(400px,100%); max-height:calc(100% - 64px); overflow-y:auto; overscroll-behavior:contain; padding:20px 24px 24px; border-radius:16px; background:#fffdf8; color:#243c40; box-shadow:0 12px 48px #132a2926,0 0 0 1px #243c4014; }
.homepage .film-info-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.homepage .film-info-heading h3 { font:600 16px/1.4 var(--site-font); }
.homepage .film-info-heading .film-icon-button { color:#5c6e6d; margin:-8px -12px -8px 0; }
.homepage .film-info-heading .film-icon-button:hover { background:#243c4010; }
.homepage .film-info-lead { font-size:14px; line-height:1.7; color:#5c6e6d; }
.homepage .film-highlights { display:grid; gap:20px; list-style:none; padding:22px 0; }
.homepage .film-highlights li { display:flex; align-items:flex-start; gap:12px; }
.homepage .film-highlights svg { width:20px; height:20px; margin-top:2px; color:#387c63; }
.homepage .film-highlights h4 { font:600 14px/1.5 var(--site-font); }
.homepage .film-highlights p { font-size:13px; line-height:1.65; color:#5c6e6d; margin-top:4px; }
.homepage .film-info-note { border-top:1px solid #243c4014; padding-top:14px; font-size:12px; line-height:1.6; color:#5c6e6d; }
.homepage .film-error { position:absolute; left:0; right:0; bottom:16px; padding:14px; background:var(--film-bg); color:var(--film-ink); text-align:center; font-size:14px; }
.homepage .film-error a { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:700px) {
  .homepage .hero-actions { gap:18px; }
  .homepage .watch-film { font-size:13px; }
  .homepage .film-dialog, .homepage .film-dialog:fullscreen { padding:12px 14px; padding-top:max(12px,env(safe-area-inset-top)); padding-bottom:max(12px,env(safe-area-inset-bottom)); }
  .homepage .film-heading { gap:8px; }
  .homepage .film-heading h2 { font-size:15px; }
  .homepage .film-heading h2 small { display:none; }
  .homepage .film-heading-actions { gap:2px; }
  .homepage .film-controls { gap:4px; }
  .homepage .film-time { font-size:11px; }
  .homepage .film-info-panel { padding:18px 20px 20px; }
}
@media(max-height:500px) and (orientation:landscape) {
  .homepage .film-dialog, .homepage .film-dialog:fullscreen { padding-block:4px; }
  .homepage .film-shell { gap:0; }
  .homepage .film-heading h2 { font-size:14px; }
}
