.birthday-page{
  min-width:0;
  min-height:100%;
  margin:0;
  padding:6px;
  color:#554b66;
  background:#fff9fd url("assets/legacy/decor/background-tile.webp") repeat;
  background-size:260px 260px;
  font-family:"MS PGothic","ＭＳ Ｐゴシック","Yu Gothic",sans-serif;
  font-size:14px;
  line-height:1.65;
}
.birthday-page *{box-sizing:border-box}
.birthday-page button,.birthday-page a{touch-action:manipulation}
.birthday-site{width:min(760px,100%);overflow:hidden}
.birthday-header{padding:3px 8px 7px;text-align:center}
.birthday-mini-logo{display:block;width:min(420px,84%);margin:0 auto -2px;image-rendering:pixelated}
.birthday-header-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px 12px;color:#be4f86;font-size:12px}
.birthday-header-row p{margin:0}
.birthday-bgm-button{min-height:34px;padding:4px 10px;border:2px outset #eca4c8;background:#fff3fa;color:#655078;font:12px/1.2 inherit;cursor:pointer}
.birthday-bgm-button[aria-pressed="false"]{color:#8e8590;background:#f6f3f5}
.birthday-marquee{margin:0 7px 10px;border:1px solid #9483c4;background:#fff;overflow:hidden;white-space:nowrap}
.birthday-marquee span{display:inline-block;min-width:100%;padding:3px 0;color:#a34f85;text-align:center;animation:birthday-marquee 28s linear infinite}
@keyframes birthday-marquee{from{transform:translateX(100%)}to{transform:translateX(-100%)}}
.birthday-view{padding:0 9px 14px}
.birthday-window,.birthday-invite-view{margin:0 0 13px;border:1px solid #ea83b7;background:#fff}
.birthday-window-title{margin:0;padding:5px 7px;border-bottom:1px solid #ea83b7;background:#fff8fc;color:#d64a94;text-align:center;font-size:15px;font-weight:normal;letter-spacing:.09em;line-height:1.5}
.birthday-window-body{padding:11px 12px}
.birthday-center{text-align:center}
.birthday-invite-body{text-align:center;background:linear-gradient(#fff,#fffafd)}
.birthday-invitation-photo{width:min(510px,100%);margin:2px auto 10px;padding:5px;border:4px ridge #e9b3cd;background:#fff}
.birthday-invitation-photo img{display:block;width:100%;height:auto}
.birthday-invite-copy{margin:10px auto 13px;color:#6b5d72;font-size:13px;line-height:1.8}
.birthday-big-button,.birthday-choice-button,.birthday-link-button,.birthday-small-button{font-family:inherit;cursor:pointer}
.birthday-big-button{display:inline-flex;align-items:center;justify-content:center;width:min(360px,100%);min-height:48px;padding:9px 14px;border:3px outset #ee8fbc;background:#fff1f8;color:#604684;font-weight:bold;text-decoration:none;font-size:15px;line-height:1.35}
.birthday-big-button:active{border-style:inset}
.birthday-party-photo{width:min(500px,100%);margin:1px auto 10px;padding:4px;border:4px ridge #e9b3cd;background:#fff}
.birthday-party-photo img{display:block;width:100%;height:auto}
.birthday-party-scene{position:relative;width:min(560px,100%);margin:2px auto;overflow:hidden;border:5px ridge #8d80b4;background:#171d35}
.birthday-party-scene img,.birthday-party-scene video{display:block;width:100%;height:auto}
.birthday-candle-glow,.birthday-crt-flicker{position:absolute;pointer-events:none;mix-blend-mode:screen}
.birthday-candle-glow{left:22%;top:43%;width:54%;height:30%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(255,203,92,.23) 0%,rgba(255,160,55,.10) 38%,rgba(255,120,30,0) 72%);animation:birthday-candle 2.7s ease-in-out infinite}
.birthday-crt-flicker{left:67.1%;top:48.4%;width:23.6%;height:17.2%;background:rgba(195,225,255,.08);box-shadow:inset 0 0 18px rgba(180,220,255,.11);animation:birthday-crt 1.13s steps(2,end) infinite}
@keyframes birthday-candle{0%,100%{opacity:.66;transform:scale(1)}22%{opacity:.88;transform:scale(1.015)}45%{opacity:.57;transform:scale(.99)}72%{opacity:.82;transform:scale(1.01)}}
@keyframes birthday-crt{0%,100%{opacity:.45}34%{opacity:.7}36%{opacity:.25}62%{opacity:.58}64%{opacity:.35}}
.birthday-photo-note{margin:6px 0 0;color:#b44f84;font-size:12px}
.birthday-friend-window .birthday-window-body{padding-block:17px}
.birthday-lonely-line{margin:4px 0 20px;font-size:15px}
.birthday-lonely-second{margin:0;font-size:15px}
.birthday-tears{margin:7px 0 13px;color:#8b7aa4;font-family:"MS PGothic",sans-serif;font-size:13px}
.birthday-question-lead{margin:10px 0 7px;font-size:16px;color:#75528f}
.birthday-choice-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(380px,100%);margin:9px auto}
.birthday-choice-button{min-height:46px;border:3px outset #e795bd;background:#fff3f9;color:#5c4a72;font-size:15px;font-weight:bold}
.birthday-choice-button:active{border-style:inset}
.birthday-friend-reply{width:min(480px,100%);margin:13px auto 0;padding:11px;border:1px dashed #c896bd;background:#fffafd;line-height:1.8}
.birthday-friend-reply p{margin:.25em 0}
.birthday-page-links{display:grid;gap:9px;width:min(500px,100%);margin:10px auto 2px}
.birthday-link-button{display:flex;align-items:center;justify-content:center;min-height:46px;padding:8px 10px;border:2px outset #eaa4c7;background:#fff6fb;color:#3c59a8;text-decoration:underline;font-size:14px}
.birthday-poll-window{scroll-margin-top:6px}
.birthday-poll-question{margin:12px 0;padding:8px 9px 5px;border:1px dotted #cc8db3;background:#fffafd}
.birthday-poll-question legend{max-width:100%;padding:0 5px;color:#9d4e80;font-size:14px;font-weight:bold;line-height:1.55}
.birthday-poll-question label{display:flex;align-items:flex-start;gap:8px;min-height:44px;padding:8px 6px;border-bottom:1px dashed #ecd6e2;cursor:pointer}
.birthday-poll-question label:last-child{border-bottom:0}
.birthday-poll-question input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:#d75c9d}
.birthday-poll-question span{min-width:0;overflow-wrap:anywhere}
.birthday-poll-strange{border-color:#a896ca;background:#fffaff}
.birthday-form-message{min-height:22px;margin:8px 0;text-align:center;color:#c23678;font-weight:bold}
.birthday-submit-button{display:flex;margin:8px auto 2px}
.birthday-results{margin:16px 0 3px;padding:10px;border:2px dashed #cc94b6;background:#fffdf5}
.birthday-results h3{margin:0 0 8px;color:#a64a7f;text-align:center;font-size:16px;font-weight:normal;letter-spacing:.08em}
.birthday-results-loading{text-align:center}
.birthday-result-question{margin:13px 0 16px;padding-bottom:11px;border-bottom:1px dotted #c9b6cc}
.birthday-result-question:last-child{border-bottom:0}
.birthday-result-question h4{margin:0 0 7px;color:#725a90;font-size:13px}
.birthday-result-row{margin:6px 0}
.birthday-result-label{display:flex;justify-content:space-between;gap:8px;font-size:12px;line-height:1.45}
.birthday-result-label span:first-child{min-width:0;overflow-wrap:anywhere}
.birthday-result-bar{height:10px;margin-top:3px;border:1px solid #dbb6ca;background:#fff;overflow:hidden}
.birthday-result-bar i{display:block;height:100%;background:repeating-linear-gradient(90deg,#f18dbc 0 8px,#ffd1e5 8px 12px)}
.birthday-total{margin:12px 0 2px;color:#b2497f;text-align:center;font-weight:bold}
.birthday-small-button{display:block;min-height:40px;margin:9px auto 0;padding:6px 12px;border:2px outset #d8b2ca;background:#fff;color:#68547a}
.birthday-thanks{margin:17px 0 4px;padding:14px 8px;border-top:1px dotted #d2a0bb;text-align:center}
.birthday-thanks p{margin:.45em 0}
.birthday-next-line{margin-top:20px!important;color:#6d557f}
.birthday-last-message{padding:30px 12px 36px;text-align:center;line-height:1.9}
.birthday-star-divider{margin-bottom:23px;color:#df6aa4;letter-spacing:.18em}
.birthday-last-message p{margin:0 0 25px;font-size:15px}
.birthday-cake-counter{color:#d44d92}
.birthday-cake-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px auto 18px}
.birthday-cake-item{margin:0;content-visibility:auto;contain-intrinsic-size:220px 220px}
.birthday-cake-item img{display:block;width:100%;height:auto;aspect-ratio:1;border:3px solid #fff;outline:1px solid #dca4c1;background:#eee;object-fit:cover}
.birthday-cake-item figcaption{padding-top:2px;color:#817489;font:10px/1.3 "Courier New",monospace}
.birthday-footer{padding:8px 12px 11px;text-align:center;color:#6f6180;font-size:11px}
.birthday-footer p{margin:.3em 0}
.birthday-party-entry{display:block;width:min(600px,100%);margin:14px auto 10px;text-decoration:none}
.birthday-party-entry img{display:block;width:100%;height:auto}
.birthday-party-entry:hover{filter:brightness(1.04)}

@media(max-width:620px){
  .birthday-page{padding:0;background-size:220px 220px;font-size:14px}
  .birthday-site{border-width:1px}
  .birthday-view{padding-inline:6px}
  .birthday-header{padding-inline:5px}
  .birthday-mini-logo{width:92%}
  .birthday-window-title{font-size:14px;letter-spacing:.05em}
  .birthday-window-body{padding:10px 8px}
  .birthday-invitation-photo{padding:3px;border-width:3px}
  .birthday-invite-copy{font-size:13px}
  .birthday-party-scene{border-width:4px}
  .birthday-choice-row{gap:8px}
  .birthday-page-links{gap:8px}
  .birthday-cake-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .birthday-cake-item{contain-intrinsic-size:180px 180px}
}

@media(max-width:340px){
  .birthday-window-title{font-size:13px}
  .birthday-poll-question{padding-inline:6px}
  .birthday-poll-question legend{font-size:13px}
  .birthday-poll-question label{font-size:13px}
}

@media(prefers-reduced-motion:reduce){
  .birthday-marquee span,.birthday-candle-glow,.birthday-crt-flicker{animation:none}
}
