body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--purple:#7c5cbf;--purple-deep:#5b3f94;--yellow:#f4c430;--green:#6b9b6e;--ink:#2d1b4e;--bg:#faf7ff;--card:#fffefb}.App{background:var(--bg);min-height:100vh;color:var(--ink);z-index:1;background-image:radial-gradient(circle at 8% 15%,#f4c43024 0,#0000 40%),radial-gradient(circle at 92% 85%,#6b9b6e24 0,#0000 40%),radial-gradient(circle at 90% 10%,#7c5cbf1f 0,#0000 35%);padding:48px 20px 80px;font-family:Plus Jakarta Sans,sans-serif;position:relative}.page-header{text-align:center;margin-bottom:44px}.page-header h1{margin:0 0 8px;font-family:Fraunces,serif;font-size:clamp(30px,6vw,48px);font-weight:600}.page-header h1 em{color:var(--purple);font-style:italic;font-weight:500}.page-header p{color:#5b4a78;font-size:16px}.board{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:22px 18px;max-width:920px;margin:0 auto;display:grid}.card{background:var(--card);cursor:pointer;min-height:128px;transform:rotate(var(--r,0deg));border:1px solid #2d1b4e0f;border-radius:10px;flex-direction:column;justify-content:flex-end;padding:18px 16px 20px;transition:transform .18s,box-shadow .18s;display:flex;position:relative;box-shadow:0 6px 16px #2d1b4e2e}.card:nth-child(3n+1){--r:-2deg}.card:nth-child(3n+2){--r:1.5deg}.card:nth-child(3n+3){--r:-1deg}.card:hover{z-index:2;transform:rotate(0)translateY(-5px)scale(1.02);box-shadow:0 14px 24px #2d1b4e33}.card.selected{outline:2.5px solid var(--purple);outline-offset:2px;z-index:3;transform:rotate(0)translateY(-5px)scale(1.03)}.card:before{content:"";background:#f4c4308c;border:1px solid #f4c430b3;width:44px;height:16px;position:absolute;top:-9px;left:50%;transform:translate(-50%)rotate(-3deg)}.card:nth-child(2n):before{background:#6b9b6e73;border-color:#6b9b6ea6;transform:translate(-50%)rotate(2.5deg)}.card:nth-child(3n):before{background:#7c5cbf66;border-color:#7c5cbf99;transform:translate(-50%)rotate(-2deg)}.card .icon{margin-bottom:10px;font-size:26px;display:block}.card .label{font-family:Fraunces,serif;font-size:16.5px;font-weight:500;line-height:1.25}.back-link{cursor:pointer;color:var(--purple-deep);background:0 0;border:none;margin-bottom:22px;padding:0;font-size:14px;font-weight:600;display:block}.chosen-banner{background:var(--card);border-left:5px solid var(--yellow);border-radius:14px;align-items:center;gap:14px;max-width:480px;margin-bottom:26px;padding:18px 20px;display:flex;box-shadow:0 6px 16px #2d1b4e2e}.chosen-banner .icon{font-size:28px}.chosen-banner .cb-label{font-family:Fraunces,serif;font-size:18px;font-weight:600}.chosen-banner .cb-sub{color:#7a6b96;font-size:13px}.schedule-wrap{max-width:480px;margin:0 auto}.field{margin-bottom:20px}.field label{text-transform:uppercase;color:var(--purple-deep);margin-bottom:8px;font-size:12.5px;font-weight:700;display:block}.field input,.field textarea{border:1.5px solid #7c5cbf40;border-radius:10px;width:100%;padding:13px 14px;font-family:Plus Jakarta Sans,sans-serif;font-size:15px}.time-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.time-chip{text-align:center;cursor:pointer;border:1.5px solid #7c5cbf40;border-radius:9px;padding:10px 8px;font-weight:600}.time-chip.selected{background:var(--purple);border-color:var(--purple);color:#fff}.submit-btn{background:linear-gradient(135deg, var(--purple), var(--purple-deep));color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:16px;font-family:Fraunces,serif;font-size:17px;font-weight:600;box-shadow:0 8px 18px #7c5cbf59}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.error-msg{color:#a63b3b;margin-top:10px;font-size:13px}.add-card{box-shadow:none;text-align:center;border:2px dashed #7c5cbf59;justify-content:center;align-items:center}.add-card:before{display:none}.add-form{background:var(--card);border:1.5px dashed #7c5cbf59;border-radius:12px;grid-column:1/-1;gap:10px;padding:18px;display:flex}.add-form input{border:1.5px solid #7c5cbf40;border-radius:9px;flex:1;padding:12px 14px}.add-form button{background:var(--purple);color:#fff;cursor:pointer;border:none;border-radius:9px;padding:12px 18px;font-weight:700}.confirmation{text-align:center;max-width:460px;margin:60px auto 0}.confirmation .icon{font-size:52px}.confirmation h2{margin:4px 0 10px;font-family:Fraunces,serif;font-size:30px}.confirmation p{color:#5b4a78}.dragon-mascot{width:90px;height:auto;margin:0 auto 18px;display:block}.doodles{pointer-events:none;z-index:0;pointer-events:none;z-index:0;inset:0;position:fixed;inset:0;overflow:hidden}.doodle{opacity:.5;position:absolute}.d1{width:65px;top:4%;left:4%;transform:rotate(-12deg)}.d2{width:50px;top:8%;left:42%;transform:rotate(10deg)}.d3{width:60px;top:3%;right:6%;transform:rotate(-6deg)}.d4{width:50px;top:28%;left:12%;transform:rotate(14deg)}.d5{width:55px;top:32%;right:15%;transform:rotate(-15deg)}.d6{width:55px;top:50%;left:3%;transform:rotate(6deg)}.d7{width:60px;top:55%;right:4%;transform:rotate(-8deg)}.d8{width:50px;top:68%;left:30%;transform:rotate(12deg)}.d9{width:55px;bottom:22%;right:30%;transform:rotate(-10deg)}.d10{width:60px;bottom:6%;left:8%;transform:rotate(8deg)}.d11{width:50px;bottom:4%;left:45%;transform:rotate(-14deg)}.d12{width:55px;bottom:5%;right:7%;transform:rotate(10deg)}.secret-note{color:#2d1b4e40;z-index:5;pointer-events:none;margin:0;font-family:Fraunces,serif;font-size:11px;font-style:italic;position:fixed;bottom:10px;right:14px}.lucky-btn{border:2px dashed var(--purple);color:var(--purple-deep);cursor:pointer;background:#7c5cbf14;border-radius:100px;margin:0 auto 24px;padding:12px 22px;font-size:14.5px;font-weight:700;transition:transform .15s,background .15s;display:block}.lucky-btn:hover{background:#7c5cbf26;transform:scale(1.03)}@media (width<=480px){.App{padding:32px 16px 60px}.page-header h1{font-size:28px}.page-header p{font-size:14px}.board{grid-template-columns:1fr 1fr;gap:14px}.card{min-height:110px;padding:14px 12px 16px}.card .label{font-size:14.5px}.time-grid{grid-template-columns:1fr;gap:8px}.chosen-banner{padding:14px 16px}.schedule-wrap{max-width:100%}.lucky-btn{width:100%;font-size:13.5px}.doodle{opacity:.3}}.redo-section{text-align:center;max-width:700px;margin:40px auto 0}.redo-section h3{color:var(--purple-deep);margin-bottom:14px;font-family:Fraunces,serif;font-size:16px;font-weight:500}.redo-list{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.redo-chip{background:var(--card);border-radius:100px;align-items:center;gap:10px;padding:8px 14px;font-size:13.5px;display:flex;box-shadow:0 3px 10px #2d1b4e1f}.redo-chip button{color:var(--purple-deep);cursor:pointer;background:#7c5cbf1f;border:none;border-radius:100px;padding:5px 10px;font-size:12px;font-weight:700}.reveal-wrap{background:var(--bg);text-align:center;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.wheel{font-size:90px;animation:.6s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.reveal-card{background:var(--card);border-radius:20px;max-width:420px;padding:40px 30px;box-shadow:0 12px 30px #2d1b4e33}.reveal-icon{margin-bottom:12px;font-size:48px}.reveal-card h2{margin-bottom:8px;font-family:Fraunces,serif;font-size:24px}.reveal-note{color:#7a6b96;margin-top:10px;font-style:italic}.confirmation-recap{background:var(--card);border-radius:14px;max-width:340px;margin:24px auto;padding:20px;box-shadow:0 6px 16px #2d1b4e26}.recap-icon{margin-bottom:6px;font-size:32px}.recap-label{margin-bottom:6px;font-family:Fraunces,serif;font-size:18px;font-weight:600}.recap-details{color:#5b4a78;font-size:14px}.recap-note{color:#7a6b96;margin-top:8px;font-size:13px;font-style:italic}.confirmation .back-link{margin:20px auto 0;display:inline-block}
