body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}*{box-sizing:border-box}.session-page{padding:40px 20px;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.container{max-width:600px;margin:0 auto}.session-page h1{font-size:48px;margin-bottom:10px;text-align:center;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.subtitle{font-size:18px;text-align:center;margin-bottom:40px;opacity:.9}.session-form{background:#fff;color:#333;padding:30px;border-radius:8px;box-shadow:0 10px 25px #0003}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600}.form-group input{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-size:16px}.error-message{color:#dc3545;padding:10px;background:#f8d7da;border-radius:4px;margin-bottom:20px}.btn-primary.btn-lg{width:100%;padding:14px 20px;font-size:18px;background-color:#667eea;color:#fff}.session-created{background:#fff;color:#333;padding:40px;border-radius:8px;box-shadow:0 10px 25px #0003;text-align:center}.success-icon{font-size:60px;margin-bottom:20px;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.session-created h2{margin-bottom:30px;font-size:28px}.session-details{text-align:left;margin-bottom:40px;padding:20px;background:#f8f9fa;border-radius:4px}.detail-item{margin-bottom:20px}.detail-item label{font-weight:600;color:#667eea;display:block;margin-bottom:8px}.session-code{display:block;background:#fff;padding:10px;border-radius:4px;border:1px solid #ddd;font-size:18px;font-weight:700;letter-spacing:1px}.share-link-container{display:flex;gap:10px}.share-link{flex:1;padding:10px;background:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px}.btn-copy{padding:10px 20px;background-color:#667eea;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;white-space:nowrap}.btn-copy:hover{background-color:#5568d3}.next-steps{text-align:left;padding:20px;background:#e7f3ff;border-left:4px solid #667eea;border-radius:4px}.next-steps h3{margin-bottom:10px;color:#667eea}.next-steps ol{margin:0;padding-left:20px}.next-steps li{margin-bottom:8px}.submission-page{padding:40px 20px;min-height:100vh;background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.submission-page .container{max-width:900px;margin:0 auto}.submission-page h1{font-size:42px;margin-bottom:20px;text-align:center;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.session-info{background:#ffffff26;padding:15px;border-radius:8px;margin-bottom:30px;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.submission-content{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:40px}.form-section{background:#fff;color:#333;padding:30px;border-radius:8px;box-shadow:0 10px 25px #0003;height:fit-content}.form-section h2{margin-bottom:20px;color:#f5576c;font-size:24px}.trophies-list{background:#fff;color:#333;padding:30px;border-radius:8px;box-shadow:0 10px 25px #0003}.trophies-header{margin-bottom:20px;padding-bottom:20px;border-bottom:2px solid #e8e8e8}.trophies-header h2{margin:0 0 15px;color:#f5576c;font-size:24px}.polling-controls{display:flex;flex-direction:column;gap:12px;margin:15px 0}.polling-controls .refresh-btn,.polling-controls .polling-indicator{width:100%}.error-message{background-color:#fff3cd;border:1px solid #ffc107;color:#856404;padding:12px 16px;border-radius:4px;margin:12px 0;font-size:.95rem}.btn-present-trophies{width:100%;padding:16px 24px;font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,#ff006e,#8338ec,#3a86ff);color:#fff;border:none;border-radius:50px;cursor:pointer;box-shadow:0 10px 30px #8338ec80;transition:all .3s ease;animation:buttonPulse 2s ease-in-out infinite,slideIn .5s ease-out;margin-top:16px;text-shadow:0 2px 4px rgba(0,0,0,.2);letter-spacing:1px}.trophy-items{display:flex;flex-direction:column;gap:15px;max-height:400px;overflow-y:auto}.trophy-item{display:flex;gap:15px;padding:15px;background:#f8f9fa;border-radius:6px;border-left:4px solid #f5576c;animation:slideInItem .3s ease-out}.trophy-item.new-trophy{animation:fadeInHighlight 3s ease forwards,slideInItem .3s ease-out}@keyframes fadeInHighlight{0%{opacity:0;transform:scale(.95);background-color:#ffd70066;border-left-color:gold}20%{opacity:1;transform:scale(1.02);background-color:#ffd70066;border-left-color:gold}to{opacity:1;transform:scale(1);background-color:#f8f9fa;border-left-color:#f5576c}}@keyframes slideInItem{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.trophy-number{min-width:40px;height:40px;background:#f5576c;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.trophy-content h3{margin:0 0 8px;color:#333;font-size:16px}.trophy-content p{margin:0;color:#666;font-size:14px;line-height:1.4}.trophy-content .submitter{color:#999;font-size:12px;font-style:italic;margin-top:8px}.error-container{background:#fff;color:#333;padding:40px;border-radius:8px;text-align:center;max-width:500px;margin:60px auto}.loading{background:#ffffff26;padding:40px;border-radius:8px;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:18px}@media (max-width: 768px){.submission-content{grid-template-columns:1fr;gap:20px}.trophy-items{max-height:none}.submission-page h1{font-size:32px}}.trophy-placeholder-text{font-size:16px;color:#666;font-weight:500;margin:0 0 4px}.trophy-author{font-size:14px;color:#888;font-style:italic;margin:0}.trophy-form{width:100%}.trophy-form h2{margin-bottom:24px;font-size:22px;color:#333;border-bottom:2px solid #f5576c;padding-bottom:12px}.form-group{margin-bottom:20px;position:relative}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333;font-size:14px}.form-group .required{color:#dc3545}.form-group input,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .3s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#f5576c;box-shadow:0 0 0 3px #f5576c1a}.form-group input:disabled,.form-group textarea:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-group textarea{resize:vertical;min-height:100px}.char-count{font-size:12px;color:#999;margin-top:4px;text-align:right}.field-error{display:block;color:#dc3545;font-size:12px;margin-top:4px}.btn-submit{width:100%;padding:12px 20px;background-color:#f5576c;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.btn-submit:hover:not(:disabled){background-color:#e63a52}.btn-submit:disabled{background-color:#ccc;cursor:not-allowed}.success-message{padding:12px 16px;background-color:#d4edda;color:#155724;border-radius:4px;margin-bottom:20px;animation:slideIn .3s ease-out}.error-message{padding:12px 16px;background-color:#f8d7da;color:#721c24;border-radius:4px;margin-bottom:20px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.refresh-btn{padding:10px 20px;font-size:1rem;font-weight:600;border:2px solid #007bff;background-color:#007bff;color:#fff;border-radius:8px;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #007bff4d}.refresh-btn:hover:not(:disabled){background-color:#0056b3;border-color:#0056b3;box-shadow:0 4px 12px #0056b366;transform:translateY(-2px)}.refresh-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 6px #0056b34d}.refresh-btn:disabled{background-color:#ccc;border-color:#999;color:#666;cursor:not-allowed;opacity:.7;box-shadow:none}.refresh-btn.refreshing{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.refresh-btn{padding:8px 16px;font-size:.9rem}}.polling-indicator{position:relative;margin:12px 0;min-height:40px;display:flex;align-items:center;justify-content:center}.badge{padding:8px 16px;border-radius:20px;font-weight:700;font-size:.95rem;letter-spacing:1px;text-transform:uppercase}.live-badge{background:linear-gradient(45deg,#f0f,#0ff,#ff0,#f0f);background-size:300% 300%;color:#fff;text-shadow:0 0 10px rgba(255,0,255,.8);box-shadow:0 0 20px #f0f9,0 0 40px #0ff6;animation:pulse-scale 1.5s ease-in-out infinite,color-cycle 4s linear infinite,glow 2s ease-in-out infinite}.paused-badge{background-color:#333;color:#999;text-shadow:none;box-shadow:0 0 10px #6464644d;animation:gentle-fade 3s ease-in-out infinite}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes color-cycle{0%,to{filter:hue-rotate(0deg)}25%{filter:hue-rotate(90deg)}50%{filter:hue-rotate(180deg)}75%{filter:hue-rotate(270deg)}}@keyframes glow{0%,to{box-shadow:0 0 20px #f0f9,0 0 40px #0ff6}50%{box-shadow:0 0 30px #f0fc,0 0 60px #0ff9}}@keyframes gentle-fade{0%,to{opacity:.6}50%{opacity:.9}}@media (max-width: 768px){.badge{padding:6px 12px;font-size:.85rem}}.last-updated{margin-top:8px;text-align:center;padding:6px 0}.last-updated small{color:#666;font-size:.85rem;display:inline-block;padding:4px 8px;border-radius:4px;background-color:#f5f5f5;letter-spacing:.5px}.last-updated small:hover{background-color:#e8e8e8;transition:background-color .2s ease}@media (max-width: 768px){.last-updated small{font-size:.8rem;padding:3px 6px}}.btn-present-trophies{background:linear-gradient(135deg,#ff006e,#8338ec,#3a86ff);color:#fff;font-size:1.1rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;text-shadow:0 2px 4px rgba(0,0,0,.2);padding:16px 24px;margin:16px 0;border:none;border-radius:8px;cursor:pointer;width:100%;box-shadow:0 10px 30px #8338ec80;transition:all .3s cubic-bezier(.34,1.56,.64,1);animation:buttonPulse 2s ease-in-out infinite,slideIn .5s ease-out;display:block;white-space:nowrap;z-index:10}.btn-present-trophies:hover{transform:scale(1.05) rotate(2deg);box-shadow:0 15px 40px #8338eccc}.btn-present-trophies:active{transform:scale(.98)}.btn-present-trophies:focus{outline:3px solid #ff006e;outline-offset:2px}.btn-present-trophies:disabled{opacity:.6;cursor:not-allowed;transform:none}@keyframes buttonPulse{0%,to{box-shadow:0 10px 30px #8338ec80}50%{box-shadow:0 10px 50px #8338ece6}}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.btn-present-trophies{padding:14px 20px;font-size:1rem;letter-spacing:1px}}@media (prefers-color-scheme: dark){.btn-present-trophies{box-shadow:0 10px 35px #8338ec99}.btn-present-trophies:hover{box-shadow:0 15px 45px #8338ece6}}.presentation-page{padding:40px 20px;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center}.presentation-page .container{width:100%;max-width:1200px}.presentation-content{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:40px;border-radius:12px;box-shadow:0 20px 60px #0000004d;text-align:center}.navigation{margin-top:40px}.btn-next{padding:14px 30px;background-color:#fff3;color:#fff;border:2px solid white;border-radius:6px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-next:hover{background-color:#ffffff4d;transform:scale(1.05)}.btn-next:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-next:disabled:hover{background-color:#fff3;transform:none}.loading-indicator{display:inline-block;margin-left:12px;font-size:14px;opacity:.8;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.trophy-counter{margin-top:30px;font-size:16px;opacity:.9}.finished-screen{text-align:center;padding:60px 40px}.finished-animation{font-size:120px;margin-bottom:30px;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-30px)}}.finished-screen h1{font-size:64px;margin-bottom:20px;text-shadow:3px 3px 6px rgba(0,0,0,.3)}.finished-message{font-size:20px;margin-bottom:40px;opacity:.9}.loading{font-size:20px;padding:40px;text-align:center}.error-container{background:#fff;color:#333;padding:40px;border-radius:8px;text-align:center}.error-container h2{margin-bottom:20px;color:#dc3545}@media (max-width: 768px){.presentation-page,.presentation-content{padding:20px}.finished-animation{font-size:80px}.finished-screen h1{font-size:42px}}.trophy-presentation{position:relative;width:100%;max-width:900px;margin:0 auto 20px;animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.trophy-visual{position:relative;width:100%;min-height:45vh;display:flex;align-items:center;justify-content:center;background:#ffffff26;border-radius:12px;overflow:hidden}.trophy-3d-placeholder{text-align:center;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:2px dashed rgba(255,255,255,.3)}.trophy-icon{font-size:160px;animation:spin-trophy 8s linear infinite;text-shadow:0 0 30px rgba(255,255,255,.3)}@keyframes spin-trophy{0%{transform:rotateY(0)}to{transform:rotateY(360deg)}}@media (prefers-reduced-motion: reduce){.trophy-icon{animation:none}}.placeholder-text{color:#ffffff80;font-size:16px;margin-top:20px}.trophy-text-section{background:#fff;padding:24px;border-radius:12px;box-shadow:0 4px 12px #00000026;margin-top:16px;text-align:center}.recipient-name{font-size:42px;margin:0 0 12px;font-weight:700;background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1,#f7b731,#5f27cd,#ff6b6b);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2;max-width:100%;word-wrap:break-word;overflow-wrap:break-word;font-family:Comic Sans MS,Chalkboard SE,Comic Neue,cursive,sans-serif;animation:rainbow-shift 3s ease infinite,bounce-text .6s ease infinite;text-shadow:3px 3px 0px rgba(255,107,107,.3);transform-origin:center}.achievement-text{font-size:24px;line-height:1.5;margin:0 0 16px;color:#ff6b6b;max-width:100%;word-wrap:break-word;overflow-wrap:break-word;font-family:Comic Sans MS,Chalkboard SE,Comic Neue,cursive,sans-serif;animation:wiggle 2s ease-in-out infinite;font-style:italic;font-weight:600}.giver-info{font-size:18px;margin:0;font-style:italic;color:#5f27cd;font-family:Comic Sans MS,Chalkboard SE,Comic Neue,cursive,sans-serif;font-weight:600;animation:gentle-sway 4s ease-in-out infinite}.submitter-info{font-size:14px;margin:0;opacity:.8;font-style:italic}@keyframes rainbow-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes bounce-text{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.05)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(2deg)}75%{transform:rotate(-2deg)}}@keyframes gentle-sway{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@media (max-width: 768px){.trophy-visual{max-width:400px;margin:0 auto}.trophy-icon{font-size:80px}.trophy-overlay{padding:20px}.recipient-name{font-size:24px}.achievement-text{font-size:14px}}:root{--primary-color: #007bff;--secondary-color: #6c757d;--success-color: #28a745;--danger-color: #dc3545;--warning-color: #ffc107;--light-bg: #f8f9fa;--dark-text: #212529;--border-radius: 8px;--box-shadow: 0 2px 4px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--light-bg);color:var(--dark-text)}#root{min-height:100vh}button{padding:10px 20px;border:none;border-radius:var(--border-radius);cursor:pointer;font-size:16px;transition:all .3s ease}button:hover{transform:translateY(-2px);box-shadow:var(--box-shadow)}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:#0056b3}input,textarea{padding:12px;border:1px solid #ccc;border-radius:var(--border-radius);font-size:16px;font-family:inherit}input:focus,textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #007bff40}.card{background:#fff;border-radius:var(--border-radius);box-shadow:var(--box-shadow);padding:20px;margin:10px 0}@media (max-width: 768px){:root{font-size:14px}button{padding:8px 16px}}
