/* A compact, visual introduction; results and account tools have their own pages. */
body[data-page=home] { background:#102b25; color:#fffaf0; }
body[data-page=home] main { max-width:1280px; padding:24px 32px 0; }
body[data-page=home] .lounge-icon { width:26px; height:26px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.welcome-grid { display:grid; grid-template-columns:1.05fr 1fr; border-radius:26px; overflow:hidden; background:#dff278; color:#163b30; }
.welcome-copy { padding:42px; align-self:center; }
.welcome-label { display:flex; align-items:center; gap:10px; font-size:11px; font-weight:800; letter-spacing:.12em; margin:0 0 24px; }
.welcome-copy h1 { font-size:clamp(43px,4.6vw,64px); line-height:1; letter-spacing:-.055em; margin:0; color:#163b30; }
.welcome-copy h1 span { color:#3a5d37; }
.welcome-line { max-width:350px; font-size:15px; line-height:1.5; margin:20px 0 24px; }
.welcome-action { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; min-height:48px; background:#163b30; color:#fffaf0; padding:12px 20px; border-radius:999px; font-size:14px; font-weight:750; text-decoration:none; }
.welcome-action .lounge-icon { width:19px; height:19px; }
.welcome-action:hover { background:#254f41; }
.welcome-action:focus-visible { outline-color:#163b30; }
.welcome-photo { position:relative; min-height:380px; overflow:hidden; }
.welcome-photo>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:56% 56%; }
.welcome-photo:after { content:''; position:absolute; inset:65% 0 0; background:linear-gradient(transparent,#071a17a8); pointer-events:none; }
.play-sticker { position:absolute; z-index:1; top:23px; right:23px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:104px; height:104px; border-radius:50%; background:#f5af8d; color:#183d31; transform:rotate(10deg); border:5px solid #f5af8d; outline:1px dashed #183d3188; outline-offset:-10px; }
.play-sticker span { font-size:16px; font-weight:900; line-height:1.05; text-align:center; letter-spacing:-.04em; }
.photo-caption { position:absolute; z-index:1; left:24px; bottom:23px; font-size:10px; font-weight:800; letter-spacing:.12em; color:#fffaf0; }
.lounge-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:20px 0 46px; }
.lounge-shortcut { display:flex; align-items:center; gap:14px; min-width:0; padding:20px; border-radius:18px; border:1px solid #557068; background:#1b3a32; color:#fffaf0; text-decoration:none; }
.shortcut-art { display:grid; place-items:center; flex:none; width:48px; height:48px; border-radius:14px; background:#dff278; color:#163b30; }
.lounge-shortcut:nth-child(2) .shortcut-art { background:#e5dcf2; }
.lounge-shortcut:nth-child(3) .shortcut-art { background:#f8cfb6; }
.lounge-shortcut>span:nth-child(2) { min-width:0; }
.lounge-shortcut strong { display:block; font-size:16px; letter-spacing:-.025em; line-height:1.3; }
.lounge-shortcut small { display:block; margin-top:4px; font-size:12px; line-height:1.4; color:#c3d3c8; }
.lounge-shortcut>.lounge-icon { margin-left:auto; width:18px; height:18px; color:#dff278; }
.lounge-shortcut:hover { background:#264b3e; border-color:#dff278; }
.drive-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:21px; }
.drive-heading h2 { font-size:clamp(28px,3vw,37px); margin:0; letter-spacing:-.045em; }
.drive-heading p { margin:0; font-size:13px; color:#c3d3c8; }
.drive-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.drive-card { min-width:0; padding:24px; border-radius:20px; background:#dff278; color:#173f35; }
.drive-card:nth-child(2) { background:#e5dcf2; color:#342a47; }
.drive-card:nth-child(3) { background:#f8cfb6; color:#492d1e; }
.drive-card:nth-child(4) { background:#cde9e7; color:#173f35; }
.drive-art { display:flex; justify-content:space-between; align-items:center; margin-bottom:27px; }
.drive-art>span { font:750 13px ui-monospace,Consolas,monospace; opacity:.8; }
body[data-page=home] .drive-art .lounge-icon { width:44px; height:44px; stroke-width:1.35; }
.drive-card h3 { margin:0 0 12px; font-size:27px; font-weight:800; line-height:1; letter-spacing:-.04em; }
.drive-card p { margin:0; font-size:14px; line-height:1.3; font-weight:700; }
.drive-detail { display:block; margin-top:5px; font-size:12px; line-height:1.4; }
.lap-explainer { margin-top:16px; padding:0 3px; color:#c3d3c8; font-size:12px; }
.lap-explainer summary { display:flex; align-items:center; gap:18px; min-height:44px; width:fit-content; max-width:100%; cursor:pointer; list-style:none; }
.lap-explainer summary::-webkit-details-marker { display:none; }
.lap-explainer summary span { color:#dff278; font-size:21px; }
.lap-explainer[open] summary span { transform:rotate(45deg); }
.lap-explainer p { max-width:730px; margin:0 0 16px; font-size:13px; line-height:1.6; }
.guest-strip { display:flex; align-items:center; gap:16px; margin:18px 0 30px; padding:20px 24px; border:1px solid #557068; border-radius:18px; background:#1b3a32; }
.guest-strip>.lounge-icon { color:#dff278; }
.guest-strip p { margin:0; font-size:15px; line-height:1.4; }
.guest-strip strong { color:#dff278; }
.guest-strip p span { display:block; color:#c3d3c8; font-size:12px; margin-top:5px; }
body[data-page=home] .local-footer { margin-top:0; border-color:#557068; font-family:inherit; font-size:11px; letter-spacing:.04em; }
body[data-page=home] .local-footer a { gap:12px; text-decoration:none; color:#dff278; }
body[data-page=home] .local-footer .lounge-icon { width:16px; height:16px; }
@media(max-width:1050px) {
  .welcome-copy { padding:32px; }
  .welcome-copy h1 { font-size:48px; }
  .lounge-shortcut { padding:16px; gap:10px; }
  .lounge-shortcut strong { font-size:14px; }
  .lounge-shortcut>.lounge-icon { display:none; }
  .drive-card { padding:20px; }
  .drive-card h3 { font-size:24px; }
}
@media(max-width:760px) {
  body[data-page=home] main { padding:16px 16px 0; }
  .welcome-grid { grid-template-columns:1fr 1fr; }
  .welcome-copy { padding:26px; }
  .welcome-copy h1 { font-size:42px; }
  .welcome-label { font-size:9px; gap:7px; letter-spacing:.07em; margin-bottom:18px; }
  .welcome-label .lounge-icon { width:21px; height:21px; }
  .welcome-line { font-size:13px; margin:16px 0 20px; }
  .welcome-photo { min-height:320px; }
  .play-sticker { width:84px; height:84px; top:16px; right:16px; }
  .play-sticker span { font-size:13px; }
  .play-sticker .lounge-icon { width:22px; height:22px; }
  .lounge-shortcuts { gap:10px; margin-bottom:32px; }
  .lounge-shortcut { align-items:flex-start; flex-direction:column; padding:16px; gap:10px; }
  .lounge-shortcut small { font-size:11px; }
  .drive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .drive-heading { align-items:flex-start; }
  .drive-heading p { font-size:11px; max-width:125px; text-align:right; }
  .drive-art { margin-bottom:16px; }
  .drive-card { padding:21px; }
  .drive-card h3 { font-size:25px; }
  .guest-strip { padding:18px; }
}
@media(max-width:540px) {
  .welcome-grid { grid-template-columns:1fr; border-radius:22px; }
  .welcome-copy { padding:27px; }
  .welcome-copy h1 { font-size:42px; }
  .welcome-label { font-size:10px; }
  .welcome-line { max-width:270px; font-size:14px; }
  .welcome-photo { min-height:180px; }
  .welcome-photo>img { object-position:50% 58%; }
  .photo-caption { bottom:17px; left:20px; font-size:9px; }
  .lounge-shortcuts { grid-template-columns:1fr; gap:10px; margin:15px 0 32px; }
  .lounge-shortcut { flex-direction:row; align-items:center; padding:14px 17px; gap:13px; }
  .lounge-shortcut strong { font-size:16px; }
  .lounge-shortcut small { font-size:12px; }
  .lounge-shortcut>.lounge-icon { display:block; }
  .shortcut-art { width:44px; height:44px; }
  .drive-heading h2 { font-size:29px; }
  .drive-heading p { max-width:110px; }
  .drive-card { padding:18px; }
  .drive-card h3 { font-size:24px; }
  .drive-card p { font-size:13px; }
  .drive-detail { font-size:11px; }
  body[data-page=home] .drive-art .lounge-icon { width:36px; height:36px; }
  .guest-strip { align-items:flex-start; gap:12px; }
  .guest-strip p { font-size:14px; }
  body[data-page=home] .local-footer { gap:4px; padding:14px 0; }
}
@media(max-width:359px) {
  .welcome-copy { padding:23px; }
  .welcome-copy h1 { font-size:34px; }
  .drive-card { padding:16px; }
  .drive-card h3 { font-size:21px; }
  .drive-heading h2 { font-size:26px; }
}
