*{box-sizing:border-box}
:root{
  --bg:#fff8ea;
  --paper:#fffdf8;
  --accent:#d94b37;
  --accent-dark:#b73627;
  --gold:#c89b3c;
  --text:#3c322c;
  --muted:#7f7167;
  --line:#eadbc8;
  --header-h:74px;
  --footer-h:76px;
  --shadow:0 8px 24px rgba(87,58,34,.10);
}
html,body{height:100%;margin:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  background:#ece7df;
  color:var(--text);
  display:flex;
  justify-content:center;
  overflow:hidden;
}
button{font:inherit}
.app-shell{
  width:min(100vw,460px);
  height:100dvh;
  background:linear-gradient(180deg,#fff9ee 0%,#fff6e3 100%);
  position:relative;
  overflow:hidden;
  box-shadow:0 0 40px rgba(0,0,0,.08);
}
.app-header{
  position:absolute;top:0;left:0;right:0;height:var(--header-h);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:rgba(255,253,248,.96);
  border-bottom:1px solid var(--line);
  z-index:10;
}
.header-title{font-size:22px;font-weight:800;letter-spacing:.04em}
.header-subtitle{font-size:12px;color:var(--muted);margin-top:2px}
.app-main{
  position:absolute;
  top:var(--header-h);
  bottom:var(--footer-h);
  left:0;right:0;
  overflow-y:auto;
  padding:22px 18px 28px;
  -webkit-overflow-scrolling:touch;
}
.app-footer{
  position:absolute;bottom:0;left:0;right:0;height:var(--footer-h);
  background:rgba(255,253,248,.97);
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-size:11px;line-height:1.55;color:#796d64;text-align:center;z-index:10;
}
.screen{text-align:center;min-height:100%}
.hidden{display:none!important}
.date-badge{
  display:inline-block;padding:7px 14px;border-radius:999px;
  background:#fff;border:1px solid var(--line);font-weight:700;font-size:13px;
}
.lead{margin:18px 0 12px;font-size:16px;line-height:1.7}
.hero-rabbit{margin:10px auto 20px;position:relative;width:150px;height:150px}
.rabbit-emoji{font-size:92px;line-height:1}
.fortune-bag{
  position:absolute;right:0;bottom:18px;background:var(--accent);color:#fff;
  border-radius:10px;padding:8px 10px;font-weight:800;font-size:12px;
  transform:rotate(-6deg);box-shadow:var(--shadow)
}
.primary-btn,.share-btn{
  border:0;border-radius:14px;cursor:pointer;transition:.2s transform,.2s opacity;
}
.primary-btn{
  width:100%;max-width:360px;padding:16px 18px;
  background:linear-gradient(180deg,#e85d48,#cf3f2d);
  color:#fff;font-weight:800;font-size:18px;box-shadow:0 8px 16px rgba(204,65,43,.22)
}
.primary-btn:active,.share-btn:active{transform:scale(.98)}
.primary-btn:disabled{opacity:.55;cursor:default}
.ad-slot{
  width:100%;min-height:90px;margin:24px 0 0;border:1px dashed #d7c8b6;
  border-radius:12px;background:rgba(255,255,255,.6);
  display:flex;align-items:center;justify-content:center;
  color:#a08f7d;font-size:12px
}
.screen-loading{display:flex;flex-direction:column;justify-content:center}
.loading-message{font-weight:800;font-size:17px;margin-bottom:26px}
.rabbit-runway{height:140px;position:relative;overflow:hidden}
.rabbit-runner{
  position:absolute;left:-120px;bottom:22px;display:flex;align-items:end;gap:2px;
  animation:rabbitCarry 1.45s cubic-bezier(.2,.85,.25,1) forwards;
}
.runner-rabbit{font-size:78px;display:block;transform:scaleX(-1)}
.runner-bag{
  background:var(--accent);color:#fff;padding:7px 8px;border-radius:9px;
  font-weight:800;font-size:11px;margin-left:-12px;margin-bottom:10px
}
@keyframes rabbitCarry{
  0%{left:-120px;transform:translateY(4px)}
  45%{transform:translateY(-3px)}
  100%{left:calc(50% - 60px);transform:translateY(0)}
}
.result-rank{
  font-size:40px;font-weight:900;letter-spacing:.08em;
  color:var(--accent-dark);margin:4px 0 16px;
  text-shadow:0 2px 0 #fff
}
.message-card{
  background:#fff;border:1px solid #ead2be;border-left:6px solid var(--accent);
  border-radius:16px;padding:16px 16px 17px;box-shadow:var(--shadow);text-align:left
}
.message-title{font-size:13px;font-weight:800;color:var(--accent-dark);margin-bottom:8px}
.message-body{font-size:16px;line-height:1.8;font-weight:700}
.lucky-grid{
  display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px
}
.lucky-card{
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 14px;
  display:flex;justify-content:space-between;align-items:center;gap:10px
}
.lucky-label{font-size:13px;color:var(--muted);font-weight:700}
.lucky-value{font-size:16px;font-weight:900}
.fortune-list{margin-top:14px;display:grid;gap:10px}
.fortune-card{
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-align:left
}
.fortune-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.fortune-name{font-weight:900}
.stars{font-size:16px;letter-spacing:.03em;color:#c48b18}
.fortune-text{font-size:13px;line-height:1.7;color:#64584f;margin-top:6px}
.result-rabbit{margin:18px auto 4px;display:flex;justify-content:center;align-items:end;gap:6px}
.mini-rabbit{font-size:54px}
.mini-note{font-size:12px;color:var(--muted);margin-bottom:7px}
.ad-slot-result{
  opacity:0;transform:translateY(38px);transition:opacity .5s ease,transform .55s ease;
}
.ad-slot-result.show{opacity:1;transform:translateY(0)}
.share-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.share-btn{
  padding:13px 10px;background:#fff;border:1px solid #dbcab8;color:var(--text);
  font-weight:800;box-shadow:0 4px 12px rgba(87,58,34,.07)
}
.revisit-note{font-size:11px;color:#8b7e74;line-height:1.6;margin:14px 8px 0}
@media (max-width:360px){
  .app-main{padding-left:12px;padding-right:12px}
  .result-rank{font-size:34px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
