@import url('./wq-components.css');

*{box-sizing:border-box}body{margin:0;background:var(--wq-navy-deep);color:var(--wq-action-ink);font-family:var(--font-body)}.screen{position:relative;isolation:isolate;max-width:480px;min-height:100vh;min-height:100dvh;margin:auto;padding:calc(env(safe-area-inset-top,0px) + 28px) 26px calc(env(safe-area-inset-bottom,0px) + 22px);display:flex;flex-direction:column;background:var(--wq-paper)}.screen:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('assets/worldmap-ink.png') center 28%/170% auto no-repeat;opacity:.12}.brand{text-align:center}.brand .eyebrow{font-size:10px;letter-spacing:.18em;color:#87691a;margin:0 0 12px}.brand p:last-child{font-family:var(--font-heading);font-weight:900;font-size:24px;line-height:1.55;margin:0}.brand span{display:block;font-size:13px;letter-spacing:.2em}.rule{width:38px;height:2px;background:var(--wq-gold);margin:22px auto}.entry{margin:auto 0;padding:22px 0}.entry h1{text-align:center;font-family:var(--font-heading);font-size:23px;margin:0 0 12px;font-weight:900}.intro{font-size:13px;line-height:1.9;text-align:center;margin:0 0 24px}.fields{background:#fffaf0eb;border:1px solid #d8c8a7;border-radius:18px;padding:23px 20px;box-shadow:0 10px 30px #16273f08}label{display:block;font-size:13px;font-weight:700;margin-bottom:10px}input{width:100%;height:58px;border:1.5px solid #b6a787;border-radius:9px;background:#fffefa;color:var(--wq-action-ink);font-family:var(--font-body);font-size:22px;text-align:center;padding:10px;letter-spacing:.08em;min-width:0}input::placeholder{font-size:15px;color:#89877e;letter-spacing:.03em}input:focus-visible{outline:3px solid var(--wq-gold);outline-offset:3px}.hint{font-size:11px;line-height:1.8;margin:10px 0 21px;color:#68604e}.wq-button{width:100%;height:54px;gap:10px}.wq-button:disabled{cursor:default}.wq-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2}.help{font-size:11px;line-height:1.9;text-align:center;margin:22px 0 0;color:#655f51}footer{text-align:center;font-size:10px;line-height:1.8;color:#716958;padding-top:18px}footer p{margin:0 0 7px}.simon{display:none}.b{background:linear-gradient(180deg,var(--wq-navy),var(--wq-navy-deep));color:var(--wq-cream);padding-left:30px;padding-right:30px}.b:before{background-image:url('assets/worldmap-white.png');opacity:.09;background-position:center 32%}.b:after{content:"";position:absolute;inset:12px;border:1px solid #c9a22770;border-radius:22px;pointer-events:none;z-index:-1}.b .eyebrow{color:var(--wq-gold-soft)}.b .fields{color:var(--wq-action-ink);background:var(--wq-paper);border:0;box-shadow:0 14px 34px #0003}.b .help,.b footer{color:#d7cdb9}.b .rule{margin:26px auto}.c{padding-left:22px;padding-right:22px}.c:before{opacity:.22;background-size:220%;background-position:center 10%}.c .brand p:last-child{font-size:21px}.c .rule{display:none}.c .entry{position:relative;margin:10px 0 auto;padding:0}.c .simon{display:block;width:130px;height:150px;object-fit:contain;margin:0 auto -16px;position:relative;z-index:1;filter:drop-shadow(0 8px 8px #16273f18)}.c .letter{padding:38px 24px 36px;background:url('assets/letter-parchment.png') center/100% 100% no-repeat;filter:drop-shadow(0 8px 16px #49381718)}.c .fields{background:none;border:0;padding:0;box-shadow:none}.c .entry h1{font-size:22px}.c .intro{font-size:12px;margin-bottom:20px}.c .help{margin-top:15px}.c footer{padding-top:12px}@media(max-width:360px){.screen{padding-left:20px;padding-right:20px}.brand p:last-child{font-size:22px}.fields{padding:20px 16px}.c .letter{padding-left:20px;padding-right:20px}}@media(max-height:700px){.screen{padding-top:22px}.rule{margin:16px auto}.entry{padding:12px 0}.c .simon{height:110px;width:100px}.c .letter{padding-top:30px;padding-bottom:30px}}
/* Match the destination list's approved heritage artwork and font roles. */
.a::before{position:fixed;width:min(100%,480px);margin-inline:auto;background:url('assets/ui/background-heritage-stamps-v01.png') center top/cover no-repeat;mix-blend-mode:multiply;opacity:.35}
.a .brand .eyebrow{font-family:var(--font-display);font-weight:700}
.a label{font-family:var(--font-heading)}
.a .fields{background:#fffaf0}
/* A: selected Noto Sans JP / Noto Sans JP / Poppins font combination. */
.a {
  --font-heading: 'Noto Sans JP', sans-serif;
  --font-body: 'Noto Sans JP', sans-serif;
  --font-display: 'Poppins', sans-serif;
  padding: calc(env(safe-area-inset-top, 0px) + 28px) 24px calc(env(safe-area-inset-bottom, 0px) + 20px);
  font-family: var(--font-body);
}
.a .brand > p:not(.eyebrow) { margin: 0; font-family: var(--font-heading); font-size: clamp(24px, 6.5vw, 28px); font-weight: 700; line-height: 1.55; }
.a .brand span { font-size: 16px; letter-spacing: .12em; margin-bottom: 4px; }
.a .brand .eyebrow { font-size: 11px; margin-bottom: 14px; }
.a .rule { margin: 20px auto 0; }
.a .entry { margin: 30px 0 auto; padding: 0; }
.a .entry h1 { font-size: 21px; font-weight: 700; line-height: 1.5; margin-bottom: 12px; }
.a .intro { font-size: 13px; line-height: 1.85; margin-bottom: 22px; }
.a .fields { padding: 20px 18px; border-radius: 12px; }
.a label { font-size: 13px; margin-bottom: 8px; }
.a input { font-family: var(--font-body); font-size: 18px; height: 52px; letter-spacing: .04em; }
.a input::placeholder { font-size: 14px; }
.a .hint { font-size: 11px; margin: 9px 0 18px; }
.a .wq-button { font-family: var(--font-heading); font-size: 15px; font-weight: 700; height: 50px; gap: 8px; }
.a .help { font-size: 12px; margin-top: 20px; }
.a footer { font-size: 10px; padding-top: 24px; }
@media (max-width: 360px) { .a { padding-left: 20px; padding-right: 20px; } .a .fields { padding: 18px 16px; } }

.a .partner-logos { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 16px auto 0; padding: 12px; width: fit-content; max-width: 100%; border-radius: 10px; background: rgba(255, 250, 240, .95); }
.a .partner-logos img { display: block; object-fit: contain; max-width: 43%; width: auto; }
.a .partner-logos .tws-logo { height: 28px; }
.a .partner-logos .sekaken-logo { height: 22px; }
.a .partner-logos > span { width: 1px; height: 24px; background: rgba(19, 34, 56, .2); flex: none; }

/* Adopted entry header: the same navy and cream as the destination list. */
.a { padding-top: 0; --entry-side: 24px; }
.a .brand { margin: 0 calc(-1 * var(--entry-side)); padding: calc(env(safe-area-inset-top, 0px) + 22px) 24px 24px; background: var(--wq-navy); color: var(--wq-cream); }
.a .brand .eyebrow { color: var(--wq-gold); }
.a .rule { display: none; }
@media (max-width: 360px) { .a { --entry-side: 20px; } }
/* Keep the complete entry visible on short portrait viewports, including Safari bars. */
@media (max-height: 700px) {
  .a { padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 8px); }
  .a .brand { padding: calc(env(safe-area-inset-top, 0px) + 10px) 20px 12px; }
  .a .brand .eyebrow { font-size: 10px; margin-bottom: 5px; }
  .a .brand > p:not(.eyebrow) { font-size: 24px; line-height: 1.3; }
  .a .brand span { font-size: 13px; margin-bottom: 2px; }
  .a .entry { margin-top: 12px; }
  .a .entry h1 { font-size: 20px; line-height: 1.3; margin-bottom: 6px; }
  .a .intro { font-size: 12px; line-height: 1.5; margin-bottom: 12px; }
  .a .fields { padding: 12px 14px; }
  .a label { font-size: 12px; line-height: 1.4; margin-bottom: 6px; }
  .a input { height: 44px; font-size: 16px; padding: 8px; }
  .a .hint { font-size: 10px; line-height: 1.5; margin: 6px 0 10px; }
  .a .wq-button { height: 44px; font-size: 14px; }
  .a .help { font-size: 11px; line-height: 1.5; margin-top: 10px; }
  .a footer { padding-top: 10px; font-size: 9px; line-height: 1.4; }
  .a footer p { margin-bottom: 4px; }
  .a .partner-logos { margin-top: 6px; padding: 7px 10px; gap: 12px; }
  .a .partner-logos .tws-logo { height: 23px; }
  .a .partner-logos .sekaken-logo { height: 18px; }
  .a .partner-logos > span { height: 20px; }
}
@media (max-height: 480px) {
  .a .brand { padding-top: calc(env(safe-area-inset-top, 0px) + 6px); padding-bottom: 8px; }
  .a .brand > p:not(.eyebrow) { font-size: 22px; }
  .a .entry { margin-top: 8px; }
  .a .intro { margin-bottom: 8px; }
  .a .help { margin-top: 6px; }
  .a footer { padding-top: 6px; }
}

/* Invalid codes are identified by both the field outline and explanatory text. */
.a input[aria-invalid="true"] { border: 2px solid #b42318; background: #fff5f4; }
.a input[aria-invalid="true"]:focus-visible { outline-color: #b42318; }
.a input[aria-invalid="true"] + .hint { color: #b42318; font-weight: 700; }
