:root{color-scheme:light;--paper:#f7f3e9;--ink:#272f29;--muted:#62685f;--green:#365c43;--line:#d8d9cf}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Yu Gothic",sans-serif;font-size:16px;line-height:1.7} .layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:46% 54%;min-height:100vh}.art{position:sticky;top:0;height:100vh;background:#e2d6b8;overflow:hidden}.art img{width:100%;height:100%;object-fit:cover;object-position:center}.art-caption{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-size:12px;letter-spacing:.18em;color:#fff;text-shadow:0 1px 5px #333}.content{padding:64px clamp(24px,5vw,80px) 24px;min-width:0}header{margin-bottom:42px}.eyebrow{font-size:11px;letter-spacing:.19em;font-weight:700;color:var(--green)}h1{font-size:clamp(28px,3vw,38px);line-height:1.5;letter-spacing:.03em;margin:16px 0 22px;font-weight:650}.intro{color:var(--muted);font-size:14px;line-height:2}.meta{font-size:12px;color:var(--green);margin-top:24px}.meta span{border-left:1px solid #b3b8aa;margin-left:12px;padding-left:12px}fieldset{border:0;padding:0;margin:0;min-width:0}.question{margin-bottom:32px}legend,h2{font-size:19px;font-weight:650;margin:0}.number{font-size:12px;color:var(--green);margin-right:8px;letter-spacing:.06em}.hint{font-size:12px;color:var(--muted);margin:8px 0 16px}.part{font-size:11px;letter-spacing:.15em;color:var(--green);margin:24px 0 9px;font-weight:700}.song{display:flex;gap:12px;align-items:flex-start;padding:14px 12px;min-height:54px;border:1px solid var(--line);border-radius:12px;margin:8px 0;background:#fffdf8;cursor:pointer;transition:background .15s,border-color .15s}.song:has(input:checked){border-color:var(--green);background:#eaf0e7}.song:hover{border-color:#82917e}.song input{width:20px;height:20px;flex:none;margin:3px 0 0;accent-color:var(--green)}.song strong{font-size:14px;font-weight:550;line-height:1.5;display:block}.song small{font-size:11px;line-height:1.65;display:block;color:var(--muted);margin-top:3px}textarea{width:100%;resize:vertical;border:1px solid #aeb7a7;border-radius:12px;background:#fffdf8;color:var(--ink);padding:16px;font:inherit;min-height:150px}textarea::placeholder{color:#72776e;font-size:14px}.counter{text-align:right;color:var(--muted);font-size:11px;margin:3px 0}.privacy{font-size:12px;line-height:1.9;color:var(--muted);border-top:1px solid var(--line);padding-top:24px}button{font:inherit;font-weight:600;width:100%;min-height:56px;background:var(--green);border:0;border-radius:28px;color:white;cursor:pointer;padding:12px 24px;display:flex;justify-content:space-between;align-items:center}button:disabled{opacity:.6;cursor:wait}:focus-visible{outline:3px solid #b27b10;outline-offset:4px}#error{background:#fff0ed;border:1px solid #a63b28;color:#882d1f;border-radius:12px;padding:14px;font-size:14px}#status{font-size:12px;color:var(--muted)}footer{margin-top:48px;font-size:11px;text-align:center;color:var(--muted);letter-spacing:.1em}.trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(100%)}[hidden]{display:none!important}#success{text-align:center;padding:32px 0}.success-mark{width:64px;height:64px;display:grid;place-items:center;background:#e3eddf;color:var(--green);border-radius:50%;font-size:28px;margin:0 auto 24px}#success h2{font-size:25px}#success p{line-height:2}.signature{font-size:14px;margin-top:32px}@media(min-width:1000px){.art img{object-fit:contain}}@media(max-width:700px){.layout{display:block}.art{position:relative;height:auto;max-height:none}.art img{display:block;height:auto;width:100%}.art-caption{display:none}.content{padding:32px 22px 24px}header{margin-bottom:32px}h1{font-size:28px}.song{padding:14px 12px}footer{margin-top:32px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Display only the artwork and title through 2026; date and venue below are clipped. */
.art{display:flex;align-items:center;justify-content:center;background:#e8ddc5}
.cover-frame{width:100%;aspect-ratio:1122 / 1100;overflow:hidden;position:relative}
.art .cover-frame img{display:block;width:100%;height:auto;max-width:none;object-fit:initial}
.art-caption{display:none}
@media(max-width:700px){.art{height:auto}.cover-frame{width:100%}}
