:root{--ink:#0b0b0c;--muted:#6b6e76;--paper:#fff;--mist:#f2f3f5;--line:#e4e6ea;--accent:#176856;color:var(--ink);background:var(--paper);font-family:"Noto Sans JP","PingFang SC","Hiragino Sans","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.75}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.shell{max-width:640px;margin:auto;padding:0 28px;min-height:100svh;display:flex;flex-direction:column}.masthead{padding:25px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.wordmark{font-family:"Bricolage Grotesque","Arial",sans-serif;font-size:22px;letter-spacing:-1px;font-weight:700;text-decoration:none}.wordmark span{font-weight:400;font-size:17px;letter-spacing:-.5px}.demo-tag{font-size:11px;color:var(--muted);padding:3px 10px;border:1px solid var(--line);border-radius:999px;white-space:nowrap}main{flex:1}.gate{text-align:center;padding:44px 0 24px}.invitation{position:relative;width:174px;height:140px;margin:0 auto 24px}.envelope{position:absolute;inset:35px 0 0;background:var(--mist);clip-path:polygon(0 0,50% 52%,100% 0,100% 100%,0 100%)}.stamp{position:absolute;left:22px;top:0;width:126px;height:116px;border:1px solid var(--line);background:white;transform:rotate(-8deg);padding:17px;font-size:17px;line-height:1.5;color:var(--accent)}.invitation-mark{position:absolute;bottom:14px;right:15px;color:var(--accent);font-size:25px;line-height:1}.format{font-size:12px;color:var(--muted);margin:0 0 12px}h1{font-size:clamp(30px,7.8vw,44px);line-height:1.24;letter-spacing:-.035em;font-weight:600;margin:0 0 20px}.intro{font-size:15px;color:var(--muted);line-height:1.85;margin:0 0 18px}.account{font-size:12px;margin:22px 0 16px}.actions{display:flex;flex-direction:column;align-items:center;gap:8px}.button{border:0;border-radius:999px;color:white;background:var(--ink);min-height:52px;padding:13px 24px;width:100%;max-width:360px;font-size:15px;font-weight:600;text-decoration:none;text-align:center;display:inline-block}.button:hover:enabled{background:var(--accent)}.text-button{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;padding:10px 8px;min-height:44px;font-size:13px;color:var(--muted)}.status{font-size:12px;color:var(--muted);max-width:360px;margin:16px auto 0;min-height:22px;overflow-wrap:anywhere}.content{padding:32px 0 20px}.content-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.content-top .format{margin:0}.friend-badge{font-size:12px;color:var(--accent)}.content h1{font-size:clamp(26px,6.4vw,38px)}.content figure{margin:28px 0 0;background:var(--mist);border-radius:4px;overflow:hidden}.content img,.content video{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain}.caption{display:flex;justify-content:space-between;gap:16px;font-size:11px;color:var(--muted);margin-top:12px}.caption span:last-child{font-family:Georgia,serif;font-style:italic}.closing{font-size:14px;line-height:1.9;padding-top:20px}footer{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding:20px 0 calc(20px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.qr-shell{max-width:1000px}.qr-intro{padding:48px 0 16px}.qr-intro h1{max-width:600px}.qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding-bottom:40px}.qr-card{background:var(--mist);padding:28px;text-align:center;border-radius:4px}.qr-card h2{font-size:23px;margin:0 0 4px}.qr-card p{font-size:14px;color:var(--muted);margin:0}.qr-card img{display:block;width:100%;max-width:280px;height:auto;margin:24px auto}.qr-links{display:flex;flex-direction:column;align-items:center}.note{font-size:13px;color:var(--muted);padding-bottom:24px}.steps{font-size:14px;color:var(--muted)}@media(max-width:600px){.shell{padding:0 22px}.gate{padding-top:30px}.invitation{transform:scale(.9);margin-bottom:12px}.qr-grid{grid-template-columns:1fr;gap:20px}.qr-card{padding:24px}.qr-intro{padding-top:32px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@media print{.qr-grid{grid-template-columns:1fr 1fr}.qr-links,.note{display:none}.qr-card{break-inside:avoid}.qr-shell{max-width:none}.qr-card img{max-width:240px}}
