/* A calm, editorial front door using the existing local font and colour system. */
.welcomeView { min-height: 100svh; padding: 31px clamp(23px,6vw,90px) 22px; background: #f5f6fa; color: #34435f; position: relative; isolation: isolate; overflow: hidden; }
html:not(.entryDirect) body.entryPending > .shell, html:not(.entryDirect) body.entryPending > .mobileNav, body.entryPending > #modalRoot, body.entryPending > #captureRoot, body.entryPending > #detailRoot, body.entryPending > #toast { display: none !important; }
html.entryDirect #welcomeView { display: none; }
.welcomeView[hidden] { display: none; }
.welcomeView::before { content: ''; width: 570px; height: 570px; position: absolute; z-index: -1; top: -320px; right: -180px; border: 1px solid #dbe1ee; border-radius: 50%; box-shadow: 0 0 0 34px #e9edf560,0 0 0 69px #e8eaf540; pointer-events: none; }
.welcomeTop, .welcomeBottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: 1140px; margin: 0 auto; }
.welcomeBrand { display: flex; align-items: center; gap: 12px; }
.welcomeBrandMark { display: grid; place-items: center; width: 41px; height: 44px; border-radius: 13px 13px 13px 4px; background: #e7ecf6; border: 1px solid #ccd6e8; font-family: var(--serif); font-size: 25px; color: #4e6289; }
.welcomeBrand strong { display: block; font-size: 20px; font-weight: 600; letter-spacing: 2px; line-height: 1.4; }
.welcomeBrand small { display: block; font-size: 9px; letter-spacing: 2.8px; color: #65728c; }
.welcomeTopNote { font-size: 11px; color: #68758d; letter-spacing: 1.1px; }
.welcomeContent { max-width: 1100px; margin: 0 auto; min-height: calc(100svh - 162px); display: grid; grid-template-columns: minmax(0,1.08fr) minmax(300px,.92fr); align-items: center; gap: clamp(35px,6vw,85px); padding: 55px 0 65px; }
.welcomeCopy .eyebrow { color: #65728c; font-size: 10px; letter-spacing: 1.9px; line-height: 1.9; }
.welcomeCopy h1 { font-family: Georgia,'Songti SC','Noto Serif CJK SC',serif; font-weight: 400; font-size: clamp(38px,4.2vw,59px); line-height: 1.6; letter-spacing: -.8px; color: #35445f; margin: 20px 0 22px; }
.welcomeCopy h1 em { font-style: normal; color: #776c92; }
.welcomeCopy > p { color: #5c6982; font-size: 16px; line-height: 2.1; margin: 0; max-width: 30em; }
.welcomeTopics { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 24px; }
.welcomeTopics span { border: 1px solid #dce3ef; background: #f9fafe; border-radius: 20px; padding: 6px 12px; color: #606f89; font-size: 12px; }
.welcomeActions { display: flex; align-items: center; gap: 23px; flex-wrap: wrap; margin-top: 33px; }
.welcomeEnter { display: flex; align-items: center; justify-content: space-between; gap: 28px; background: #52638e; color: #fff; border: 1px solid #52638e; border-radius: 13px; min-height: 55px; padding: 14px 23px; font-size: 16px; box-shadow: 0 5px 14px #43557c0d; }
.entryReadyHint { min-height: 22px; color: #68758d; font-size: 12px; line-height: 1.8; margin: 2px 0 0; }
.welcomeEnter:disabled { cursor: wait; background: #64749a; border-color: #64749a; opacity: .85; }
.welcomeEnter:hover { background: #475a83; border-color: #475a83; }
.welcomeEnter span { font-size: 20px; line-height: 1; }
.welcomeActions .microLink { font-size: 14px; min-height: 44px; color: #596d92; }
.entryPreference { display: flex; align-items: center; gap: 9px; width: fit-content; min-height: 44px; color: #63718b; font-size: 13px; line-height: 1.8; margin-top: 12px; cursor: pointer; }
.entryPreference input { width: 17px; height: 17px; margin: 0; accent-color: #63749b; flex-shrink: 0; }
.welcomeCard { position: relative; padding: 35px 34px 25px; background: #fff; border: 1px solid #dde4ef; border-radius: 23px; box-shadow: 0 15px 45px #34476e06; }
.welcomeCard::before { content: ''; position: absolute; z-index: -1; inset: 12px -10px -12px 12px; border: 1px solid #e2dfed; border-radius: 23px; background: #efedf6; transform: rotate(3deg); }
.welcomeCardTop { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.welcomeCardTop > span { font-size: 10px; letter-spacing: 1.7px; color: #64738e; }
.welcomeCardTop b { font-size: 23px; font-weight: 400; color: #887da1; }
.welcomeCard blockquote { padding: 0; margin: 31px 0 28px; border: 0; }
.welcomeCard blockquote p { font-family: Georgia,'Times New Roman',serif; color: #3a4965; font-size: clamp(26px,2.6vw,35px); line-height: 1.6; letter-spacing: -.4px; margin: 0 0 17px; }
.welcomeCard blockquote footer { display: block; margin: 0; padding: 0; border: 0; color: #63718a; font-size: 14px; line-height: 1.95; }
.welcomeCardNote { display: flex; gap: 12px; align-items: center; border-top: 1px solid #e8ecf3; padding-top: 20px; }
.welcomeCardNote > span { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 13px; background: #f0edf7; font-size: 20px; flex-shrink: 0; }
.welcomeCardNote strong { display: block; color: #536581; font-size: 13px; font-weight: 500; line-height: 1.8; }
.welcomeCardNote small { font-size: 12px; color: #6a758b; line-height: 1.9; }
.welcomeBottom { border-top: 1px solid #e0e6ef; padding-top: 18px; font-size: 12px; line-height: 1.9; color: #65728a; }
.welcomeBottom em { font: italic 15px Georgia,serif; color: #6c7791; }
@media (prefers-reduced-motion:no-preference) {
 .welcomeCopy { animation: welcomeAppear .35s ease-out both; }
 .welcomeCard { animation: welcomeAppear .4s ease-out both; }
 .welcomeEnter { transition: background .18s ease,transform .15s ease; }
 .welcomeEnter:active { transform: translateY(1px); }
 @keyframes welcomeAppear { from { opacity: .55; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}
body.reduceEffects .welcomeCopy, body.reduceEffects .welcomeCard { animation: none !important; }
@media (max-width:780px) {
 .welcomeView { padding: calc(21px + env(safe-area-inset-top,0px)) 25px calc(20px + env(safe-area-inset-bottom,0px)); }
 .welcomeTopNote { font-size: 10px; letter-spacing: .5px; max-width: 9em; text-align: right; line-height: 1.8; }
 .welcomeBrand { gap: 10px; }
 .welcomeBrandMark { width: 36px; height: 40px; font-size: 23px; }
 .welcomeBrand strong { font-size: 18px; }
 .welcomeBrand small { font-size: 8px; }
 .welcomeContent { display: flex; flex-direction: column; min-height: 0; align-items: stretch; gap: 34px; padding: 45px 0 35px; max-width: 500px; }
 .welcomeCopy .eyebrow { font-size: 9px; letter-spacing: 1.5px; }
 .welcomeCopy h1 { font-size: clamp(34px,9.4vw,45px); margin: 15px 0 18px; line-height: 1.65; }
 .welcomeCopy > p { font-size: 15px; line-height: 2.05; }
 .welcomeTopics { gap: 7px; margin-top: 21px; }
 .welcomeTopics span { font-size: 12px; padding: 5px 10px; }
 .welcomeActions { display: grid; grid-template-columns: 1fr auto; gap: 18px; margin-top: 27px; }
 .welcomeEnter { min-height: 53px; padding: 13px 19px; font-size: 16px; gap: 16px; }
 .welcomeActions .microLink { font-size: 14px; }
 .entryPreference { font-size: 13px; margin-top: 10px; }
 .welcomeCard { padding: 25px 25px 21px; border-radius: 19px; margin-right: 5px; }
 .welcomeCard::before { border-radius: 19px; inset: 9px -7px -9px 9px; }
 .welcomeCard blockquote { margin: 23px 0; }
 .welcomeCard blockquote p { font-size: 27px; line-height: 1.6; }
 .welcomeCard blockquote footer { font-size: 14px; line-height: 1.9; }
 .welcomeCardNote { padding-top: 17px; }
 .welcomeBottom { align-items: flex-start; flex-direction: column; gap: 6px; font-size: 11px; }
}
@media (max-width:359px) {
 .welcomeView { padding-left: 21px; padding-right: 21px; }
 .welcomeCopy h1 { font-size: 33px; }
 .welcomeActions { grid-template-columns: 1fr; gap: 6px; }
 .welcomeActions .microLink { justify-self: start; }
 .welcomeCard { padding: 23px; }
}
@media (prefers-reduced-motion:reduce) { .welcomeCopy, .welcomeCard { animation: none !important; } }

@media (max-width:780px) and (max-height:700px) {
 .welcomeContent { padding-top: 27px; gap: 28px; }
 .welcomeCopy h1 { font-size: clamp(32px,9vw,38px); line-height: 1.55; margin: 12px 0 15px; }
 .welcomeCopy > p { font-size: 14px; line-height: 1.95; }
 .welcomeTopics { margin-top: 16px; }
 .welcomeActions { margin-top: 21px; }
}
