:root{color-scheme:dark;--background:#0c0c0e;--gold:#c9a348;--line:#06c755;--closed:#db8588}
*{box-sizing:border-box}
body{margin:0;background:var(--background);color:#ececec;font-family:-apple-system,BlinkMacSystemFont,'Hiragino Sans','Yu Gothic',Meiryo,sans-serif;-webkit-text-size-adjust:100%;font-size:13px;line-height:1.45}
.page{width:100%;max-width:480px;margin:0 auto;padding:11px 16px 12px}
.view-page{height:100vh;height:100svh;min-height:600px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:'brand' 'greeting' 'media' 'notice' 'booking' 'footer';grid-template-rows:auto auto minmax(100px,1fr) auto auto auto;gap:8px}
.brand{grid-area:brand;text-align:center;margin:0}.brand img{width:108px;height:auto;display:block;margin:auto}.gold-rule{width:28px;height:1.5px;background:var(--gold);margin:9px auto 0}
.greeting{grid-area:greeting;text-align:center;margin:0;font-size:12.5px;line-height:1.45}.greeting p{margin:0}.name{overflow-wrap:anywhere}.greeting .english{margin-top:2px;font-size:10px}
.fit-line{display:block;white-space:nowrap}.english{color:#929297;font-size:10px;line-height:1.35;text-wrap:balance;overflow-wrap:break-word}
.media-slot{grid-area:media;min-width:0;min-height:100px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.player{position:relative;height:100%;aspect-ratio:var(--poster-ratio,1080/1436);max-width:100%;border-radius:10px;overflow:hidden;background:#151515;isolation:isolate}
.player video,.closed-poster{display:block;width:100%;height:100%;object-fit:contain}
.play-overlay{position:absolute;inset:0;display:grid;place-items:center;width:100%;border:0;background:transparent;cursor:pointer;z-index:2}
.play-circle{display:grid;place-items:center;border:3px solid white;border-radius:50%;width:60px;height:60px;background:#0005}.triangle{width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:23px solid white;margin-left:5px}
.play-caption{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;padding:28px 3px 9px;background:linear-gradient(transparent,#000b);color:white;text-align:center;pointer-events:none;z-index:3;line-height:1.4}.play-caption span{font-weight:700;font-size:12px;white-space:nowrap}.play-caption small{font-size:10px;color:#ddd}
.closed-poster{filter:grayscale(1) brightness(.42)}.closed-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--closed);font-family:'Hiragino Mincho ProN','Yu Mincho',YuMincho,Georgia,serif;pointer-events:none}
.closed-ja{font-size:clamp(22px,6vw,32px);letter-spacing:.14em;white-space:nowrap}.closed-rule{width:44px;height:1px;background:var(--closed);opacity:.65;margin:7px 0}.closed-en{font-family:Georgia,serif;font-size:11px;letter-spacing:.26em}
.closed-copy{grid-area:notice;text-align:center;margin:0}.closed-copy p{margin:0}.closed-copy .closed-line{font-size:11.5px;line-height:1.5}.closed-copy .closed-line:nth-child(3){font-weight:700}.closed-copy .english{margin-top:4px;font-size:9.5px;line-height:1.35}
.expiry{grid-area:notice;text-align:center;margin:0;font-size:12px;line-height:1.4}.expiry p{margin:0;white-space:nowrap}.expiry strong{color:#efd06a}.expiry .english{margin-top:2px;font-size:10px}
.booking{grid-area:booking;background:#19191c;border:1px solid #574726;border-radius:13px;padding:10px;text-align:center}.booking h2{font-size:15px;line-height:1.3;margin:0;font-weight:750}.booking-en{margin:2px 0 6px;font-size:10px}
.booking-description{font-size:11px;color:#c8c8cc;line-height:1.45;margin:0 0 8px}.contacts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.contact{display:flex;flex-direction:column;align-items:stretch;justify-content:center;text-decoration:none;border-radius:999px;min-height:42px;line-height:1.25;padding:7px 6px;min-width:0}.contact span{font-size:13px;font-weight:750}.contact small{font-size:9.5px;margin-top:2px;white-space:nowrap}.email{background:var(--gold);color:#17130a}.line{background:var(--line);color:#fff}
footer{grid-area:footer;text-align:center;color:#929297;font-size:9.2px;line-height:1.35;margin:0}footer p{margin:0;text-wrap:balance}footer .english{font-size:9px;line-height:1.35;margin-top:3px}
.home-page .booking{margin-top:24px}.home-page footer{margin-top:18px}.home-copy{text-align:center;margin:32px 0;color:#ccc}
.error-note{position:fixed;z-index:5;bottom:5px;left:12px;right:12px;margin:0;padding:8px;background:#272727;border-radius:6px;text-align:center;color:#ddd;font-size:12px}
.removed .closed-poster{filter:brightness(.5)}[hidden]{display:none!important}button:focus-visible,a:focus-visible{outline:3px solid white;outline-offset:4px}
@media(min-width:700px){.view-page{max-width:480px;height:900px;min-height:664px;gap:12px;padding:20px}.brand img{width:140px}.greeting{font-size:14px}.greeting .english{font-size:11px}.booking{padding:14px}.booking h2{font-size:18px}.booking-description{font-size:12px}.contact span{font-size:15px}.contact{min-height:48px}footer{font-size:10px}footer .english{font-size:10px}}
