/* Served only on the public welcome / first-character screen. */
.landing-page{background:#102d45;color:#e6f3f1}
.landing-page .sea-light{display:none}
.landing-page .topbar{height:86px;max-width:1440px;margin:auto;padding:0 5%;border:0;background:transparent;display:flex}
.landing-page .brand{color:#eff4ec;font-size:23px}.landing-page .brand small{color:#a9c7d0;font-size:8px;letter-spacing:.28em}
.landing-page #wallet{display:none}.landing-login-link{margin-left:auto;border-bottom:1px solid #aac9d466;padding:10px 0;color:#d5e4e5;font-size:12px}.landing-login-link span{margin-left:15px;color:#dfd4a7}
.landing-page #login{position:relative;isolation:isolate;max-width:1300px;width:calc(100% - 72px);margin:0 auto 38px;padding:58px 52px 24px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,1fr);gap:26px 46px;min-height:730px;overflow:hidden;border:1px solid #b4ddde36;border-radius:28px;background:#163a53;box-shadow:0 28px 80px #06182770}
#login .landing-atmosphere{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
#login .landing-atmosphere picture,#login .landing-atmosphere picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
#login .landing-atmosphere::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#102d45c9 0%,#102d4566 44%,#102d4560),linear-gradient(0deg,#112e49f5 0%,#122e471c 50%,#183e5326)}
#login .landing-rays,#landing-effects{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
#login .landing-rays{overflow:hidden;opacity:.55;contain:paint}
#login .landing-rays i{position:absolute;top:-25%;left:35%;width:17%;height:135%;background:linear-gradient(180deg,#d5f5ff35,#eefaff08 65%,transparent);transform:rotate(24deg);transform-origin:top;clip-path:polygon(36% 0,61% 0,100% 100%,0 100%)}
#login .landing-rays i:nth-child(2){left:60%;width:10%;opacity:.65}#login .landing-rays i:nth-child(3){left:78%;width:6%;opacity:.45}
#login.landing-moving .landing-rays i{animation:landing-light-sway 14s ease-in-out infinite alternate}#login.landing-moving .landing-rays i:nth-child(2){animation-delay:-6s}#login.landing-moving .landing-rays i:nth-child(3){animation-delay:-10s}
#login .welcome{position:relative;min-width:0;min-height:520px;align-self:stretch;padding:6px 0 0}
#login .welcome .eyebrow{color:#c6dbde;font-size:9px;letter-spacing:.27em;margin-bottom:21px}
#login .welcome h1{position:relative;z-index:2;color:#fff7e9;font:500 clamp(30px,3.1vw,45px)/1.65 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.06em;margin:0 0 22px;text-shadow:0 3px 20px #092739;white-space:nowrap}
#login .welcome>p{position:relative;z-index:2;color:#dfebe9;font-size:13px;line-height:2;margin:0;text-shadow:0 2px 12px #0c293f}
#login .welcome-portrait{position:absolute;right:0;bottom:5px;width:300px;aspect-ratio:1;pointer-events:none}
#login .welcome-portrait::before{content:'';position:absolute;inset:15% 10% 5%;border-radius:50%;background:radial-gradient(ellipse,#c4e6f02b,transparent 68%)}
#login .welcome-portrait::after{content:'';position:absolute;left:28%;right:24%;bottom:1%;height:13px;border:1px solid #e3d8ad70;border-radius:50%;box-shadow:0 0 22px #d1e8ed40;transform:rotate(-7deg)}
#login .welcome-portrait img{position:relative;display:block;width:100%;height:100%;left:auto;bottom:auto;object-fit:contain;filter:drop-shadow(0 9px 12px #0a233760)}
#login.landing-moving .welcome-portrait img{animation:landing-character-float 7s ease-in-out infinite}
#login .landing-signature{position:absolute;left:0;bottom:34px;writing-mode:vertical-rl;color:#b9d6de;font:8px/1.5 sans-serif;letter-spacing:.3em;opacity:.8}
#login .auth-card{position:relative;align-self:center;min-width:0;padding:32px 29px 23px;background:#f6fbf7f5;color:#34536a;border:1px solid #edf6e5b3;border-radius:21px;box-shadow:0 15px 50px #04172e30}
#login .auth-eyebrow{font:8px/1.5 sans-serif;letter-spacing:.25em;color:#617b86;margin-bottom:15px}
#login .auth-card h2{color:#284c60;font:500 25px/1.6 "Yu Mincho",serif;margin:0 0 12px}
#login .auth-card .muted{color:#607785;font-size:12px;line-height:1.9;margin-bottom:23px}
#login .auth-card .google-login{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:54px;padding:14px 16px;border:1px solid #edf4e0;border-radius:11px;background:linear-gradient(110deg,#376e7c,#416884);box-shadow:0 5px 16px #27445524;color:#fff;font-weight:600;font-size:14px;transition:background .2s,transform .2s}
#login .auth-card .google-login:hover{background:#2d5b70;transform:translateY(-1px)}#login .auth-card .google-login span{margin:0}#login .auth-card .google-login .landing-google-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff;color:#426c8b;font:bold 14px Arial,sans-serif;flex-shrink:0}
#login .auth-card .muted.small{font-size:10px;margin:17px 0 0;color:#667e8a}#login .auth-card .muted.small a{text-decoration:underline;text-underline-offset:3px}
#login .auth-card .service-entry-links{margin:21px 0 0;padding-top:17px;border-top:1px solid #d1e0e2;font-size:10px;gap:9px 15px;color:#637e8a}
#login .auth-card [role=alert]{background:#f8e7e3;color:#914f43;border-radius:8px;padding:10px;font-size:12px}
#login .auth-card label{font-size:12px}#login .auth-card summary{color:#415e75}#login .auth-card input,#login .auth-card select{font-size:16px}#login .auth-card button.primary{background:linear-gradient(110deg,#376e7c,#416884);font-size:13px;padding:13px 8px}#login .auth-card button.primary span{margin-left:5px}
#login .landing-features{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);position:relative;z-index:2;border-top:1px solid #c1dbe13d;padding-top:23px;gap:25px}
#login .landing-features article{display:flex;align-items:center;gap:15px;min-width:0}#login .landing-feature-icon{display:grid;place-items:center;width:41px;height:41px;flex-shrink:0;border:1px solid #c2d9d44d;border-radius:50%;color:#e4d7ab;font:27px/1 serif;background:#2e52673d}
#login .landing-features h2{font:500 17px/1.4 "Yu Mincho",serif;color:#f1ede0;margin:0 0 6px;letter-spacing:.12em}#login .landing-features p{font-size:10px;line-height:1.7;color:#c5d7dc;margin:0}
.landing-page .site-footer{border:0;color:#d3e4e5}.landing-page .site-footer #logout{color:#d3e4e5}
@keyframes landing-light-sway{from{transform:rotate(19deg);opacity:.35}to{transform:rotate(28deg);opacity:.85}}
@keyframes landing-character-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:1000px){.landing-page #login{width:calc(100% - 36px);padding:54px 28px 24px;gap:22px;grid-template-columns:minmax(0,1fr) 310px;min-height:650px}#login .welcome{min-height:460px}#login .welcome h1{font-size:32px;letter-spacing:.025em}#login .welcome>p{font-size:11px}#login .welcome-portrait{width:260px;right:-20px}#login .auth-card{padding:28px 24px}#login .landing-features{gap:14px}#login .landing-features article{gap:10px}#login .landing-feature-icon{width:33px;height:33px;font-size:23px}}
@media(max-width:720px){.landing-page #login{grid-template-columns:1fr;max-width:560px;width:calc(100% - 28px);padding:46px 25px 25px;gap:22px;min-height:0}#login .welcome{min-height:320px}#login .welcome h1{font-size:34px}#login .welcome>p{font-size:12px;max-width:245px}#login .welcome-portrait{width:230px;right:-18px;bottom:-8px}#login .landing-signature{bottom:15px;font-size:7px}#login .auth-card{padding:25px;align-self:auto}#login .landing-features{gap:16px;padding-top:20px}#login .landing-features article{display:block}#login .landing-feature-icon{margin-bottom:12px}#login .landing-features h2{font-size:16px}#login .landing-features p{font-size:10px}#login .landing-atmosphere picture img{height:660px;object-position:56% top}#login .landing-atmosphere::after{background:linear-gradient(90deg,#102d459e,#102d4520),linear-gradient(0deg,#122e47 20%,#122e4708 70%,#16395030)}}
@media(max-width:450px){.landing-page .topbar{height:73px;min-height:73px;padding:0 20px;gap:10px}.landing-page .brand{font-size:18px}.landing-page .brand small{font-size:6px;letter-spacing:.24em;margin-top:5px}.landing-login-link{font-size:11px}.landing-login-link span{margin-left:7px}.landing-page #login{width:calc(100% - 20px);border-radius:20px;padding:45px 20px 22px;margin-bottom:20px;gap:18px}#login .welcome{min-height:291px;padding:0}#login .welcome .eyebrow{font-size:7px;letter-spacing:.19em;margin-bottom:15px}#login .welcome h1{font-size:29px;line-height:1.65;letter-spacing:.015em;margin-bottom:16px}#login .welcome>p{font-size:10px;line-height:2;max-width:219px}#login .welcome-portrait{width:200px;right:-22px;bottom:-7px}#login .landing-signature{font-size:6px;bottom:10px}#login .auth-card{padding:24px 21px 21px;border-radius:17px}#login .auth-card h2{font-size:24px}#login .auth-card .muted{font-size:11px;margin-bottom:19px}#login .auth-card .google-login{font-size:13px;gap:10px}#login .landing-features{gap:13px;padding-top:18px}#login .landing-features h2{font-size:15px}#login .landing-features p{font-size:9px;line-height:1.8}#login .landing-feature-icon{width:30px;height:30px;font-size:21px;margin-bottom:9px}}
@media(max-width:350px){.landing-page .topbar{padding:0 14px}.landing-page .brand{font-size:16px}.landing-page #login{padding-left:17px;padding-right:17px}#login .welcome h1{font-size:25px}#login .welcome>p{font-size:9px;max-width:192px}#login .welcome-portrait{width:175px;right:-22px}#login .welcome{min-height:270px}#login .auth-card{padding:22px 17px}#login .auth-card h2{font-size:22px}#login .auth-card .google-login{font-size:12px;gap:8px}}
@media(max-width:720px){.landing-page #login{grid-template-columns:minmax(0,1fr)}}
@media(max-width:350px){#login .welcome h1{font-size:23px}}
@media(prefers-reduced-motion:reduce){#login .landing-rays i,#login .welcome-portrait img{animation:none!important}#login .google-login{transition:none}#login .google-login:hover{transform:none}}
