:root{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:#830b00;background:#fafafa;font-synthesis:none;font-weight:400;--red:#830b00;--paper:#fafafa;--cream:#fff2cc;--ink:#830b00;--muted:#88645f;--rule:rgba(131,11,0,.2);--field:rgba(131,11,0,.035);--page:#fafafa}
*{box-sizing:border-box}
body{margin:0}
button,input,textarea{font:inherit}
button,a,input,textarea{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
button:disabled{cursor:default}
button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:6px}
input:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
::selection{background:#830b00;color:#fff2cc}
.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:var(--paper);color:var(--red);padding:12px}
.skip-link:focus{top:12px}
.site-shell{min-height:100svh;position:relative;background:var(--page);overflow:hidden;isolation:isolate;display:flex;flex-direction:column}
.site-header{display:flex;align-items:center;justify-content:space-between;padding:30px 4%;position:relative;z-index:3}
.brand{display:inline-flex;gap:13px;align-items:center}
.brand-mark{position:relative;overflow:hidden;width:48px;height:48px;flex-shrink:0}
.brand-mark img{position:absolute;width:198.1%;max-width:none;height:auto;left:-.04%;top:-.1%}
.brand-name{font-size:14px;line-height:1.13;letter-spacing:-.35px;font-weight:600}
.site-header nav{display:flex;gap:40px;align-items:center;font-size:14px}
.site-header nav a{display:flex;align-items:center;gap:10px;padding:8px 0;opacity:.58}
.site-header nav a[aria-current="page"],.site-header nav a:hover{opacity:1}
.nav-dot{height:5px;width:5px;border-radius:100%;background:currentColor;display:none}
.site-header nav a[aria-current="page"] .nav-dot{display:block}
main{position:relative;display:grid;grid-template-columns:58% 42%;flex:1;padding:42px 4% 62px;min-height:615px;z-index:2;outline:none}
/* Keep the branding column independent of the translated form's height. */
.identity{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;align-self:start;height:calc(100svh - 288px);min-height:544px;padding-top:15px;pointer-events:none}
.eyebrow{font-family:Arial,sans-serif;font-size:10px;font-weight:500;letter-spacing:1.6px;display:flex;gap:9px;align-items:center;line-height:1.4}
.little-square{width:5px;height:5px;background:currentColor;display:inline-block;flex-shrink:0}
h1{font-size:clamp(64px,7.55vw,126px);line-height:.91;font-weight:500;letter-spacing:-.075em;margin:29px 0 0;position:relative;z-index:2}
.period{color:inherit}
p{margin:0}
.identity-jp{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:9px;font-weight:400;line-height:1.5;writing-mode:vertical-rl;position:absolute;left:-23px;bottom:2px;letter-spacing:2px;opacity:.65}
.portal{display:flex;align-items:center;justify-content:flex-end;padding:35px 4% 20px 14%;border-left:1px solid var(--rule)}
.portal-inner{max-width:365px;width:100%;position:relative}
.portal-kicker{margin-bottom:28px}
h2{font-size:37px;font-weight:400;line-height:1.1;letter-spacing:-1.5px;margin:0 0 13px}
.portal-intro{font-size:14px;line-height:1.6;color:var(--muted);max-width:320px}
.portal-form{margin-top:37px}
.field{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.field label{font-size:12px;letter-spacing:.1px}
.field input,.field textarea{width:100%;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent;color:var(--ink);font-size:14px;padding:5px 0 13px;line-height:1.4;transition:border-color .2s}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.8}
.field input:hover,.field textarea:hover{border-bottom-color:var(--ink)}
.password-wrap{position:relative}
.password-wrap input{padding-right:46px}
.show-password{border:0;background:transparent;color:var(--muted);font-size:11px;padding:6px 0 6px 8px;position:absolute;right:0;top:1px}
.form-options{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-top:-2px;margin-bottom:28px}
.form-options button{padding:3px 0;border:0;background:none;color:var(--muted);font-size:11px}
.remember{display:flex;align-items:center;gap:7px;color:var(--muted);cursor:pointer}
.remember input{accent-color:var(--red);width:12px;height:12px;margin:0}
.submit-button{display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:var(--page);border:1px solid var(--ink);padding:17px 18px;width:100%;font-size:13px;transition:background .2s,transform .2s}
.submit-button:hover{transform:translateY(-2px);background:var(--muted);border-color:var(--muted)}
.arrow{display:inline-block;width:20px;height:20px;flex-shrink:0;vertical-align:middle}
.submit-button .arrow{width:20px;height:20px}
.access-note{font-size:11px;color:var(--muted);margin-top:23px;line-height:1.6}
.text-link{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.form-status{font-size:12px;line-height:1.6;margin-top:18px;background:var(--field);border-left:2px solid var(--ink);padding:12px 14px}
.form-status:empty{display:none}
.site-footer{position:relative;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:22px 4% 26px;font-size:10px;z-index:2;color:var(--muted)}
.footer-location{font-size:9px;letter-spacing:1px;display:flex;gap:8px;align-items:center}
.status-dot{width:4px;height:4px;display:inline-block;background:currentColor;border-radius:50%;margin-right:3px}
#motion-toggle{display:flex;gap:8px;align-items:center;border:0;color:inherit;background:none;font-size:10px;padding:5px 0}
.pause-icon{font-size:12px}
.background{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.contact-form{margin-top:28px}
.contact-form .field{margin-bottom:17px}
.contact-form textarea{resize:vertical;min-height:70px;max-height:180px}
.contact-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.contact-form .submit-button{margin-top:24px}
.back-link{border:0;background:none;color:var(--ink);padding:0;font-size:12px;cursor:pointer}
.reset-intro{margin-bottom:20px}
.noscript{position:fixed;top:100px;right:5%;background:white;padding:20px;z-index:10}
@media(min-width:1600px){main{padding-top:60px;padding-bottom:85px;min-height:730px}
.identity{height:calc(100svh - 329px);min-height:585px}
.portal{padding-right:10%}
.portal-inner{max-width:390px}
h2{font-size:42px}
}
@media(max-width:1050px){main{grid-template-columns:54% 46%;padding-top:40px;padding-bottom:50px;min-height:620px}
.identity{height:auto;min-height:0;align-self:stretch}
.portal{padding-left:12%;padding-right:0}
h1{font-size:8.4vw}
.identity-jp{display:none}
.portal-intro{font-size:13px}
}
@media(max-width:700px){.site-shell{min-height:100svh}
.site-header{padding:23px 6%}
.brand-mark{width:39px;height:39px}
.brand-name{font-size:11px}
.brand{gap:10px}
.site-header nav{gap:23px;font-size:12px}
main{display:flex;flex-direction:column;padding:22px 6% 40px;min-height:0}
.identity{padding-top:7px;padding-bottom:31px}
.eyebrow{font-size:8px;letter-spacing:1.2px}
h1{font-size:clamp(57px,13.7vw,92px);line-height:.92;margin-top:23px;letter-spacing:-.07em}
.portal{border:0;padding:31px 0 5px;justify-content:flex-start}
.portal-inner{max-width:none}
.portal-kicker{margin-bottom:19px}
h2{font-size:31px;letter-spacing:-1.2px}
.portal-intro{font-size:13px;max-width:none}
.portal-form{margin-top:27px}
.field{margin-bottom:20px}
.field input,.field textarea{font-size:16px}
.form-options{font-size:12px;margin-top:0;margin-bottom:24px}
.form-options button{font-size:12px}
.remember input{width:14px;height:14px}
.submit-button{padding:17px 16px}
.access-note{margin-top:19px}
.site-footer{padding:15px 6% 22px;flex-wrap:wrap;font-size:8px;gap:14px}
.footer-location{font-size:8px;gap:5px}
#motion-toggle{font-size:9px;margin-left:auto}
.site-footer>span:first-child{order:3;width:100%;opacity:.8}
.contact-form .field-row{gap:20px}
.contact-form textarea{min-height:85px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
/* The supplied animated Japan map, recolored in solid burgundy. */
.map-filters{position:absolute;pointer-events:none}
.header-actions{display:flex;align-items:center;gap:36px}
.language-switch{display:flex;align-items:center;gap:9px;font-size:11px;white-space:nowrap}
.language-switch>span{opacity:.35}
.language-switch button{border:0;border-bottom:1px solid transparent;border-radius:0;background:none;color:inherit;font-size:11px;letter-spacing:.4px;padding:8px 0;opacity:.45;min-width:22px}
.language-switch button[aria-pressed="true"]{opacity:1;border-bottom-color:currentColor;font-weight:600}
.language-switch button:hover{opacity:1}
.skip-link{clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.skip-link:focus{clip-path:none;width:auto;height:auto;overflow:visible}
html[lang="ja"]{font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
html[lang="ja"] .portal h2{font-family:inherit;font-style:normal;font-size:30px;letter-spacing:-.03em;line-height:1.45}
html[lang="ja"] .portal-intro{line-height:1.9;font-size:13px}
html[lang="ja"] .form-options{gap:12px}
html[lang="ja"] .form-options button{font-size:10px}
html[lang="ja"] .eyebrow{letter-spacing:1.3px}
@media(max-width:700px){.header-actions{gap:18px}
.site-header nav{gap:17px}
.language-switch{gap:7px}
.language-switch button{font-size:10px;min-width:19px}
html[lang="ja"] .portal h2{font-size:clamp(23px,6.7vw,28px)}
}
@media(max-width:480px){.brand-name{display:none}
.site-header nav{font-size:11px;gap:14px}
.header-actions{gap:17px}
html[lang="ja"] .site-header nav{gap:13px}
}
.japan-map{position:absolute;width:min(52vw,750px);left:9%;top:18%;opacity:.82;filter:url(#map-red);pointer-events:none}
.map-animation{display:block;width:100%;height:auto}
.map-still{display:none;position:absolute;inset:0;width:100%;height:100%}
.motion-paused .map-animation{visibility:hidden}
.motion-paused .map-still{display:block}
@media(min-width:1600px){.japan-map{top:16%;left:11%}
}
@media(max-width:1050px){.japan-map{width:59vw;left:0;top:25%}
}
@media(max-width:700px){.japan-map{width:350px;left:23%;top:88px;opacity:.5}
}
#motion-toggle{justify-content:center;min-width:28px;min-height:28px;padding:6px}
