@font-face{font-family:Figtree;src:url('fonts/figtree-latin-wght-normal.woff2') format('woff2');font-style:normal;font-weight:300 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Figtree;src:url('fonts/figtree-latin-ext-wght-normal.woff2') format('woff2');font-style:normal;font-weight:300 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Allura;src:url('fonts/allura-latin-400-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#F7F3EC;--ink:#0F2A44;--body:#5B6573;--accent:#B5552F;--accent-hover:#A94F2F;--rule:#deded9;--gutter:24px;--hero-inset:12px;--header-height:80px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Figtree,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img{max-width:100%;display:block}p,h1,h2,h3,blockquote{margin:0}h1,h2,h3{font-weight:600;letter-spacing:-.02em;line-height:1.05}h1{font-size:clamp(43px,7vw,88px)}h2{font-size:clamp(34px,4vw,52px)}h3{font-size:18px;line-height:1.3}em{font-style:normal}svg{display:block}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:48px;border:1px solid transparent;border-radius:999px;background:var(--accent);color:#fff;padding:14px 23px;font-size:13px;letter-spacing:.14em;line-height:1.4;font-weight:600;text-transform:uppercase;text-align:center}.button:hover{background:var(--accent-hover)}.button span{font-size:20px;letter-spacing:0;line-height:1}.button-outline{background:transparent;border-color:var(--ink);color:var(--ink)}.button-outline:hover{background:var(--ink);color:#fff}.button-white{background:#0f2a4433;border-color:#fff;color:#fff}.button-white:hover{background:#fff;color:var(--ink)}.eyebrow,.index-label{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:16px}.accent-line{display:block;width:44px;height:2px;background:var(--accent);flex:none}.skip-link{position:fixed;top:8px;left:16px;padding:16px;background:var(--paper);z-index:100;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{height:80px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--paper);position:fixed;inset:0 0 auto;z-index:30;border-bottom:1px solid transparent;transition:transform .3s}.site-header.is-scrolled{border-bottom-color:var(--rule)}.site-header.is-hidden{transform:translateY(-100%)}.brand{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:14px;font-weight:600;letter-spacing:.14em}.brand img{width:36px;height:36px;object-fit:contain}.site-header nav{display:none;gap:28px;font-size:14px;font-weight:500}.site-header nav a{padding:12px 0}.site-header nav a:hover,footer a:hover{color:var(--accent)}.header-contact{min-height:42px;padding:11px 13px;font-size:10px;gap:8px;letter-spacing:.1em}.hero{padding-top:80px}.hero-stage{height:100svh;min-height:750px;max-height:1050px;position:relative;isolation:isolate;overflow:hidden}.hero-film{position:absolute;inset:0;z-index:-1;background:var(--ink);clip-path:inset(0 var(--hero-inset) calc(var(--header-height) + 12px) round 24px)}.film-inner{position:absolute;inset:0}.film-inner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,20,35,.62),rgba(5,20,35,.18) 60%,rgba(5,20,35,0)),linear-gradient(0deg,rgba(5,20,35,.45),transparent 35%)}.film-inner video{width:100%;height:100%;object-fit:cover}.hero-content{padding:52px 32px 150px;color:#fff;max-width:1000px;position:relative;z-index:2}.hero-content>.accent-line{background:#e89a73;margin-bottom:26px}.hero-line{display:block}.hero-subtitle{font-size:16px;line-height:1.6;max-width:460px;margin-top:24px;text-wrap:pretty}.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:30px}.hero-actions .button{font-size:11px;padding-inline:18px}.video-toggle{position:absolute;left:32px;bottom:calc(var(--header-height) + 36px);width:48px;height:48px;display:grid;place-items:center;background:#fff;color:var(--ink);border:0;border-radius:50%;z-index:3}.video-toggle svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.5;fill:none}.video-toggle[hidden]{display:none}.script-tagline{font-family:Allura,cursive;font-weight:400;font-size:36px;line-height:1;transform:rotate(-5deg);color:#fff;position:absolute;text-shadow:0 2px 12px #0008}.script-tagline svg{width:80%;height:16px;margin:5px auto 0;stroke:currentColor;stroke-width:1.5}.hero-tagline{right:24px;bottom:calc(var(--header-height) + 36px);max-width:none;white-space:nowrap;font-size:26px}.section-shell{max-width:1360px;margin-inline:auto;padding-inline:var(--gutter)}.journey-intro{padding-top:80px;padding-bottom:70px;text-align:center}.journey-intro h2{max-width:800px;margin:auto}.section-subtitle{color:var(--body);margin-top:18px}.flight{width:min(100%,470px);margin:20px auto 38px}.flight svg{width:100%;height:auto;overflow:visible}.flight-base{stroke:var(--rule);stroke-width:1.5;stroke-dasharray:5 7}.flight-draw{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:5 7}.land-mark,.flight circle{fill:var(--accent)}.flight>div{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.02em;color:var(--body)}.features{display:grid;grid-template-columns:1fr;gap:28px}.feature{padding:0 24px}.feature-icon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#efe4d9;color:var(--accent);margin:0 auto 18px}.feature-icon svg{width:24px;height:24px}.feature p{color:var(--body);font-size:14px;line-height:1.6;max-width:225px;margin:12px auto 0}.services{padding-top:30px;padding-bottom:80px}.section-heading{display:flex;flex-direction:column;align-items:flex-start;gap:24px;margin-bottom:34px}.section-heading .eyebrow{max-width:350px;font-size:10px;line-height:1.7}.service-grid{display:grid;grid-template-columns:1fr;gap:24px}.service-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #0f2a4408;scroll-margin-top:110px}.service-card>a{display:block}.service-card>a:focus-visible{outline-offset:-4px}.service-photo{aspect-ratio:1.05;overflow:hidden}.service-photo img{width:100%;height:100%;object-fit:cover}.service-info{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:23px 20px;min-height:112px}.service-info p{font-size:13px;color:var(--body);line-height:1.5;margin-top:8px}.card-arrow{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:50%;background:var(--accent);color:#fff;font-size:23px;transition:transform .2s}.service-card a:hover .card-arrow{transform:rotate(-35deg);background:var(--accent-hover)}.section-action{margin-top:40px;text-align:center}.section-action .button{font-size:11px}.spotlight{padding:20px var(--gutter) 70px}.spotlight-inner{max-width:1216px;margin:auto;display:grid;grid-template-columns:1fr;gap:36px;align-items:center}.spotlight-photo{aspect-ratio:1;overflow:hidden;border-radius:24px;box-shadow:0 12px 40px #0f2a440b}.spotlight-photo img{width:100%;height:110%;object-fit:cover;transform:translateY(-4%)}.spotlight-copy>.eyebrow{color:var(--body);margin-bottom:22px}.spotlight-copy h2{margin-bottom:24px}.spotlight-copy>p:not(.eyebrow){color:var(--body);margin-bottom:16px;max-width:490px}.spotlight-copy .lead{font-weight:600;color:var(--ink)!important}.spotlight-copy .button{margin-top:16px}.pull-quote{font-size:24px;font-weight:500;letter-spacing:-.02em;margin-bottom:20px;padding-left:18px;border-left:2px solid var(--accent)}.margin-note{font-size:17px;line-height:1.65;margin:24px 0;padding:4px 0 4px 22px;border-left:2px solid var(--accent);color:var(--ink);max-width:460px}.latest-video{background:linear-gradient(#0f2a44c4,#0f2a44d8),url('assets/photos/kyoto.jpg') center/cover;color:#fff;padding:56px var(--gutter) 64px}.video-heading,.video-grid{max-width:1216px;margin-inline:auto}.video-heading{display:flex;justify-content:space-between;gap:20px;margin-bottom:32px}.video-heading .eyebrow::before{content:"";width:32px;height:2px;background:#e89a73}.little-sun{display:none}.video-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:center}.video-facade{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:20px;background:var(--ink)}.video-facade>img{width:100%;height:100%;object-fit:cover}.video-facade::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,#000b);pointer-events:none}.play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--accent);color:#fff;z-index:1;transition:transform .2s}.play svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.5;fill:none}.video-facade:hover .play{transform:translate(-50%,-50%) scale(1.08)}.video-stamp{position:absolute;left:20px;bottom:18px;font-size:12px;z-index:1}.video-facade iframe{width:100%;height:100%;border:0;position:absolute;inset:0;z-index:3}.video-copy h2{font-size:clamp(32px,3.6vw,48px);margin-bottom:24px}.video-copy p{font-size:16px;max-width:470px;margin-bottom:26px;color:#e1e6eb}.latest-video a:focus-visible,.hero a:focus-visible,.hero button:focus-visible,.final-banner a:focus-visible{outline-color:#fff}.mission{padding:85px var(--gutter);text-align:center;max-width:1040px;margin:auto}.mission>.eyebrow{justify-content:center;color:var(--body);margin-bottom:30px}.mission-statement{font-size:clamp(30px,3.5vw,44px);font-weight:600;letter-spacing:-.02em;line-height:1.2;text-wrap:pretty}.mission-word{display:inline-block;position:relative;color:var(--body)}.mission-word::after{content:attr(data-word);position:absolute;left:0;top:0;color:var(--ink);opacity:var(--word-opacity,1)}.final-banner{position:relative;isolation:isolate;margin:0 var(--hero-inset) 64px;min-height:470px;border-radius:24px;overflow:hidden;color:#fff;background:var(--ink)}.final-banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.final-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0f2a44c8,#0f2a4430 70%,#0f2a4400),linear-gradient(0deg,#0f2a4455,transparent 50%);z-index:-1}.banner-content{padding:44px 25px 160px;max-width:760px}.banner-content h2{max-width:580px}.banner-content>p{margin:20px 0 26px}.banner-tagline{font-size:36px;bottom:32px;right:28px;max-width:300px}footer{max-width:1360px;margin:auto;padding:0 var(--gutter) 28px}.footer-top{display:flex;flex-direction:column;gap:28px;padding-bottom:30px}.footer-top nav{display:flex;flex-wrap:wrap;gap:12px 22px;font-size:14px}.footer-top nav a{padding-block:8px}.footer-bottom{border-top:1px solid var(--rule);padding-top:24px;display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;font-size:12px;color:var(--body)}.footer-email{font-size:14px}.social-links{display:flex;gap:24px}.social-links a{display:flex;gap:8px;align-items:center;min-height:44px}.reveal-mask{display:block;overflow:hidden;padding:.14em 0 .1em;margin:-.14em 0 -.1em}.reveal-line{display:block}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.no-motion{scroll-behavior:auto}.no-motion *, .no-motion *::before,.no-motion *::after{transition:none!important}
@media(min-width:600px){:root{--gutter:36px;--hero-inset:20px}.features,.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feature:nth-child(even){border-left:1px solid var(--rule)}.hero-content{padding:65px 56px 150px}.hero-actions{flex-direction:row;flex-wrap:wrap}.hero-tagline{font-size:38px;max-width:none;right:56px;bottom:calc(var(--header-height) + 40px)}.video-toggle{left:56px;bottom:48px}.brand{font-size:17px}.header-contact{font-size:12px;padding:12px 20px}.banner-content{padding:60px 44px 160px}.banner-tagline{font-size:42px;right:44px}.footer-bottom>p{margin-right:auto}}
@media(min-width:1000px){:root{--gutter:clamp(40px,5vw,80px);--header-height:96px}.site-header{height:96px}.site-header nav{display:flex}.hero{padding-top:96px}.hero-stage{height:100svh;min-height:756px}.hero-content{padding:64px max(70px,7vw) 150px}.hero-subtitle{font-size:18px;max-width:490px}.hero-actions{gap:16px;margin-top:32px}.hero-actions .button{font-size:12px;padding-inline:24px}.hero-tagline{font-size:44px;right:7vw;bottom:calc(var(--header-height) + 44px)}.video-toggle{left:7vw;bottom:52px}.journey-intro{padding-top:100px;padding-bottom:90px}.flight{margin-bottom:46px}.features{grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.feature+.feature{border-left:1px solid var(--rule)}.feature{padding-inline:24px}.section-heading{flex-direction:row;align-items:center;justify-content:space-between;margin-bottom:40px;gap:32px}.section-heading .eyebrow{font-size:10px;max-width:none}.service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.service-info{padding:22px 16px;gap:10px;min-height:129px}.card-arrow{width:36px;height:36px}.services{padding-bottom:100px}.spotlight{padding-bottom:110px}.spotlight-inner{grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,108px)}.spotlight-photo{aspect-ratio:1.04}.spotlight-copy h2{font-size:clamp(44px,4vw,52px)}.spotlight-reverse .spotlight-art{grid-column:2;grid-row:1}.spotlight-reverse .spotlight-copy{grid-column:1;grid-row:1}.latest-video{padding-top:64px;padding-bottom:80px}.video-heading{margin-bottom:40px}.video-grid{grid-template-columns:1.2fr 1fr;gap:64px}.mission{padding-block:112px}.final-banner{min-height:390px;margin-bottom:70px}.banner-content{padding:72px max(50px,6vw);max-width:790px}.banner-content h2{font-size:48px;max-width:540px}.banner-tagline{right:6vw;bottom:44px;font-size:44px}.footer-top{flex-direction:row;justify-content:space-between;align-items:center;padding-bottom:36px}.footer-bottom{gap:40px}.footer-top nav{gap:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Centered hero, no scroll expansion */
.hero-stage{display:flex;flex-direction:column;justify-content:center;align-items:center;padding-bottom:calc(var(--header-height) + 12px)}
.hero-content,.hero-content{margin-inline:auto;text-align:center;display:flex;flex-direction:column;align-items:center;padding:0 24px!important;max-width:900px}
.hero-content>.accent-line{margin-inline:auto}
.hero-subtitle{margin-inline:auto}
.hero-actions{align-items:center;justify-content:center}
.film-inner::after{background:radial-gradient(ellipse 70% 65% at 50% 48%,rgba(5,20,35,.62),rgba(5,20,35,.28) 70%,rgba(5,20,35,.12)),linear-gradient(0deg,rgba(5,20,35,.4),transparent 35%)!important}
/* Paper plane */
.paper-plane,.plane-trail{display:none}
.plane-on .paper-plane{display:block;position:fixed;left:0;top:0;width:44px;height:44px;z-index:25;pointer-events:none;opacity:0;will-change:transform;filter:drop-shadow(0 6px 8px rgba(15,42,68,.18))}
.plane-on .plane-trail{display:block;position:fixed;inset:0;width:100vw;height:100vh;z-index:24;pointer-events:none;overflow:visible}
.plane-trail path{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-dasharray:2 7;stroke-linecap:round;stroke-linejoin:round}
.paper-plane svg{width:100%;height:100%;overflow:visible}
.paper-plane path{stroke:#0F2A44;stroke-width:1.4;stroke-linejoin:round}
.wing-top{fill:#fff}.wing-far{fill:#E9DCCB}.keel{fill:var(--accent)}
@media(max-width:767px){.plane-on .paper-plane{width:32px;height:32px}}
/* CTA in Hinomaru red, the official Japanese flag crimson */
:root{--cta:#BC002D;--cta-gradient:#BC002D;--cta-hover:#9E0026}
.button:not(.button-outline):not(.button-white),.card-arrow,.play{background:var(--cta-gradient)}
.button:not(.button-outline):not(.button-white):hover,.service-card a:hover .card-arrow,.play:hover{background:var(--cta-hover)}
