*{box-sizing:border-box;margin:0;padding:0;}
html,body{width:100%;min-height:100vh;}
body{
  background:linear-gradient(135deg,#667eea 0%,#764ba2 50%,#f093fb 100%);
  font-family:'Hiragino Maru Gothic ProN','Comic Sans MS',cursive;
  overflow-x:hidden;
}

body::before,body::after{
  content:'';position:fixed;border-radius:50%;pointer-events:none;z-index:0;
}
body::before{width:200px;height:200px;background:rgba(255,107,107,0.15);top:5%;left:-50px;animation:float 5s ease-in-out infinite alternate;}
body::after {width:160px;height:160px;background:rgba(84,160,255,0.15);top:30%;right:-40px;animation:float 7s ease-in-out infinite alternate;}

#app{
  position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:center;
  width:100%;
  padding-top:max(16px, env(safe-area-inset-top));
  padding-left:16px;padding-right:16px;padding-bottom:40px;
}

input,button,textarea{
  -webkit-appearance:none;appearance:none;
  font-family:inherit;box-sizing:border-box;
}
textarea{resize:none;}
.slot-input:focus{outline:none;}
.slot-input::placeholder{color:#ccc;}

.card{
  background:rgba(255,255,255,0.95);
  border-radius:24px;
  box-shadow:0 16px 48px rgba(0,0,0,0.2);
  width:100%;
}

.slot-row{display:flex;align-items:center;gap:6px;min-width:0;}
.slot-row input,.slot-row textarea{min-width:0;flex:1;}

.word-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;width:100%;}
@media(max-width:679px){.word-grid{grid-template-columns:repeat(5,1fr);}}

.sent-wrap{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;}

.hist-wrap{display:flex;flex-direction:column;gap:10px;}
@media(min-width:680px){.hist-wrap{display:grid;grid-template-columns:1fr 1fr;gap:12px;}}

@keyframes float{from{transform:translateY(0)}to{transform:translateY(-20px)}}
@keyframes starPop{0%{opacity:1;transform:scale(0)}100%{opacity:0;transform:scale(2) translateY(-40px)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,0.4)}50%{box-shadow:0 0 0 12px rgba(255,255,255,0)}}
@keyframes glow{0%,100%{border-color:#a78bfa}50%{border-color:#f093fb}}
@keyframes popIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}
