@import"https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;700&family=Permanent+Marker&family=Caveat:wght@400;500;600;700&family=Patrick+Hand:wght@400&display=swap";@import"https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;700&family=Caveat:wght@400;500;600;700&family=Patrick+Hand&family=Permanent+Marker&display=swap";@import"https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&family=Patrick+Hand&display=swap";.home{min-height:100vh;background:#e8e4df url(/background.png) repeat;padding:20px;display:flex;align-items:center;justify-content:center}.whiteboard{position:relative;width:100%;max-width:1000px;margin:0 auto}.whiteboard-frame{position:absolute;inset:-12px;background:radial-gradient(ellipse 40px 40px at 0% 0%,#888 70%,transparent 71%),radial-gradient(ellipse 40px 40px at 100% 0%,#888 70%,transparent 71%),radial-gradient(ellipse 40px 40px at 0% 100%,#888 70%,transparent 71%),radial-gradient(ellipse 40px 40px at 100% 100%,#888 70%,transparent 71%),linear-gradient(180deg,#d8d8d8,#c8c8c8 15%,#b8b8b8,#c8c8c8 85%,#d0d0d0);border-radius:8px;border:1px solid #888;box-shadow:0 8px 32px #0000004d,0 2px 4px #00000026,inset 0 1px #ffffff80;z-index:0}.whiteboard-surface{position:relative;background-color:#f3f3f3;border-radius:4px;padding:40px 30px 50px;min-height:700px;overflow:hidden;box-shadow:inset 0 0 6px 2px #00000040,inset 0 0 0 1px #0000001a;z-index:1}.whiteboard-surface:before{content:"";position:absolute;inset:0;background:url(/whiteboard-background.png) no-repeat center center;background-size:cover;opacity:.7;z-index:-1}.doodle{position:absolute;pointer-events:none;z-index:2;opacity:0;animation:doodleFadeIn .8s ease-out both}@keyframes doodleFadeIn{0%{opacity:0}to{opacity:.6}}.doodle-pos-1{width:160px;height:160px}.doodle-pos-2{width:140px;height:140px}.doodle-pos-3{width:170px;height:170px}.doodle-pos-4{width:130px;height:130px}.doodle-pos-5{width:150px;height:150px}.home-content{position:relative;z-index:5;display:flex;flex-direction:column;align-items:center;gap:32px}.logo-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center;margin-bottom:8px}.logo-background{position:absolute;width:100%;max-width:400px;height:auto;opacity:0;animation:fadeIn .6s ease-out .3s forwards;pointer-events:none;z-index:0}.logo-foreground{position:relative;width:100%;max-width:400px;height:auto;opacity:0;animation:popIn .5s cubic-bezier(.175,.885,.32,1.275) .1s forwards;z-index:2}.logo-banner-wrapper{position:absolute;bottom:-21px;opacity:0;animation:bannerSlideIn .5s ease-out .4s forwards}@keyframes bannerSlideIn{0%{opacity:0;transform:translateY(20px) rotate(-2deg)}to{opacity:1;transform:translateY(0) rotate(-2deg)}}.logo-banner{position:relative;padding:.34em 1em;margin:0;color:#fff;font-size:20px;text-align:center;letter-spacing:-.05em;text-shadow:0px -1px 0px rgba(0,0,0,.3);box-shadow:inset 0 1px #ffffff4d,inset 0 0 20px #0000001a,0 1px 1px #0006;background:linear-gradient(180deg,#1eb2df,#17a7d2);display:inline-block;border:1px solid #2b4a9b;min-width:175px}.logo-banner:before,.logo-banner:after{content:"";width:.2em;bottom:-.5em;position:absolute;display:block;border:.9em solid #1eb2df;box-shadow:0 1px #0006;z-index:-2}.logo-banner:before{left:-1.35em;border-right-width:.75em;border-left-color:transparent}.logo-banner:after{right:-1.35em;border-left-width:.75em;border-right-color:transparent}.banner-text:before,.banner-text:after{content:"";bottom:-.5em;position:absolute;display:block;border-style:solid;border-color:#0675b3 transparent transparent transparent;z-index:-1}.banner-text:before{left:0;border-width:.5em 0 0 .5em}.banner-text:after{right:0;border-width:.5em .5em 0 0}.banner-text{font-family:"Baloo 2",cursive;font-weight:600;white-space:nowrap;animation:bannerFadeIn .4s ease-out}@keyframes bannerFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.home-tagline{font-family:Patrick Hand,cursive;font-size:clamp(1.25rem,3vw,1.75rem);color:#4b5563;text-align:center;margin:0;opacity:0;animation:fadeSlideIn .5s ease-out .5s forwards}.photo-stack{display:flex;justify-content:center;gap:20px;margin:16px 0;opacity:0;animation:fadeSlideIn .6s ease-out .7s forwards}.photo-placeholder{position:relative;width:90px;height:110px;background:#fff;padding:6px;box-shadow:2px 3px 8px #00000026,0 0 0 1px #0000000d;transition:transform .3s ease,box-shadow .3s ease}.photo-placeholder:hover{transform:translateY(-8px) rotate(0)!important;box-shadow:4px 8px 20px #0003;z-index:10}.photo-1{transform:rotate(-8deg)}.photo-2{transform:rotate(3deg);z-index:2}.photo-3{transform:rotate(-4deg)}.photo-tape{position:absolute;top:-10px;left:50%;transform:translate(-50%) rotate(-2deg);width:50px;height:18px;background:linear-gradient(180deg,#fffadce6,#f0e6bed9);border:1px solid rgba(200,180,140,.4);box-shadow:0 1px 2px #0000001a}.photo-inner{background:linear-gradient(135deg,#e5e7eb,#d1d5db);display:flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.08)}.photo-icon{width:40px;height:40px}.photo-icon circle,.photo-icon ellipse{fill:none;stroke:#9ca3af;stroke-width:2}.photo-label{display:block;text-align:center;font-family:Caveat,cursive;font-size:1rem;font-weight:600;color:#6b7280;margin-top:4px}.home-actions{display:flex;text-align:center;margin:8px 0}.action-btn .btn-text{background:#fff;display:block;padding:12px 24px;border-radius:5px;border:2px solid #000}.action-btn:active{top:4px;padding-bottom:0;box-shadow:0 1px #000}.action-btn{position:relative;display:inline-block;font: 22px/25px Patrick Hand,sans-serif;text-transform:uppercase;color:#000;text-decoration:none;padding-bottom:3px;margin:0 10px;border-radius:5px;box-shadow:0 2px #000;transition:padding .1s,box-shadow .1s,top .1s;background-image:url(data:image/gif;base64,R0lGODlhBAAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjEgNjQuMTQwOTQ5LCAyMDEwLzEyLzA3LTEwOjU3OjAxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgV2luZG93cyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5NUY1OENCRDdDMDYxMUUyOTEzMEE1MEM5QzM0NDVBMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5NUY1OENCRTdDMDYxMUUyOTEzMEE1MEM5QzM0NDVBMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk1RjU4Q0JCN0MwNjExRTI5MTMwQTUwQzlDMzQ0NUEzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk1RjU4Q0JDN0MwNjExRTI5MTMwQTUwQzlDMzQ0NUEzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAAQABAAAAgYEEpdoeQUAOw==);opacity:0;animation:popIn .5s cubic-bezier(.175,.885,.32,1.275) forwards}.action-btn:nth-child(1){animation-delay:.6s}.action-btn:nth-child(2){animation-delay:.75s}.action-btn-primary .btn-text{background:#3b82f6;color:#fff;border-color:#1e40af}.action-btn-primary{box-shadow:0 2px #1e40af}.action-btn-primary:active{box-shadow:0 1px #1e40af}.action-btn-secondary .btn-text{background:#fff;color:#000}.how-it-works{width:100%;max-width:800px;margin-top:16px}.section-title{font-family:Permanent Marker,cursive;font-size:1.75rem;color:#1f2937;text-align:center;margin-bottom:24px;position:relative;display:inline-block;width:100%;opacity:0;animation:fadeSlideIn .5s ease-out .85s forwards}.section-underline{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:140px;height:12px}.section-underline path{stroke:#2563eb;stroke-width:3;stroke-linecap:round;fill:none;stroke-dasharray:200;stroke-dashoffset:200;animation:drawLine .6s ease-out 1s forwards}.steps{display:grid;grid-template-columns:repeat(4,minmax(140px,180px));justify-content:center;gap:20px}.step{position:relative;opacity:0;animation:stickyDrop .5s cubic-bezier(.175,.885,.32,1.275) forwards;filter:drop-shadow(2px 3px 4px rgba(0,0,0,.15))}.step:nth-child(1){animation-delay:.95s}.step:nth-child(2){animation-delay:1.05s}.step:nth-child(3){animation-delay:1.15s}.step:nth-child(4){animation-delay:1.25s}.sticky-note{position:relative;padding:20px 14px;text-align:center;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transition:clip-path .15s}.sticky-note:not(:hover){transition:clip-path 0s}.sticky-note:before{content:"";display:block;position:absolute;top:0;left:0;width:0;height:0;border-style:solid;border-width:0 0 30px 30px;border-color:transparent transparent var(--fold-color, #d4a600) transparent;z-index:2;opacity:0;transform:scale(0) rotate(-90deg);transform-origin:top left;transition:none}.sticky-note:hover:before{transition:opacity .15s,transform .15s}.sticky-note:hover{clip-path:polygon(30px 0,100% 0,100% 100%,0 100%,0 30px)}.sticky-note:hover:before{opacity:1;transform:scale(1) rotate(0)}.sticky-yellow{background:linear-gradient(135deg,#fef9c3,#fef08a);transform:rotate(-2deg);--fold-color: #d4a600}.sticky-pink{background:linear-gradient(135deg,#fce7f3,#fbcfe8);transform:rotate(1.5deg);--fold-color: #d4849e}.sticky-blue{background:linear-gradient(135deg,#dbeafe,#bfdbfe);transform:rotate(-1deg);--fold-color: #7ba3d4}.sticky-green{background:linear-gradient(135deg,#dcfce7,#bbf7d0);transform:rotate(2deg);--fold-color: #6ab07a}.step-number{position:absolute;top:-8px;left:50%;transform:translate(-50%);width:36px;height:36px;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:1.1rem;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:0 2px 4px #0000004d,inset 0 2px 4px #ffffff4d,inset 0 -2px 4px #0003;z-index:10}.step:nth-child(1) .step-number{background:linear-gradient(180deg,#ef4444,#dc2626)}.step:nth-child(2) .step-number{background:linear-gradient(180deg,#3b82f6,#2563eb)}.step:nth-child(3) .step-number{background:linear-gradient(180deg,#22c55e,#16a34a)}.step:nth-child(4) .step-number{background:linear-gradient(180deg,#a855f7,#9333ea)}.sticky-note p{font-family:Patrick Hand,cursive;font-size:1.35rem;color:#374151;line-height:1.4;margin:0}.sticky-note strong{color:#1f2937}.step-doodle{position:absolute;bottom:-5px;right:-5px;width:64px;height:64px;opacity:.4}@keyframes bounceIn{0%{opacity:0;transform:scale(.3) rotate(-10deg)}50%{transform:scale(1.1) rotate(5deg)}70%{transform:scale(.95) rotate(-2deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{to{opacity:1}}@keyframes drawLine{to{stroke-dashoffset:0}}@keyframes stickyDrop{0%{opacity:0;transform:translateY(-30px) rotate(0)}60%{transform:translateY(5px)}to{opacity:1}}@media(max-width:768px){.home{padding:12px}.whiteboard-surface{padding:30px 20px 40px;min-height:auto}.whiteboard-frame{inset:-8px}.marker-tray,.doodle{display:none}.home-content{gap:24px}.logo-foreground,.logo-background{max-width:280px}.logo-banner{font-size:16px;min-width:125px}.photo-stack{gap:12px}.photo-placeholder{width:70px;height:90px}.home-actions{flex-direction:column;gap:1rem;width:100%;max-width:280px}.action-btn .btn-text{text-align:center}.steps{grid-template-columns:repeat(2,minmax(120px,160px));gap:16px}.sticky-note{padding:16px 10px}.sticky-note p{font-size:1.25rem}.step-doodle{display:none}}@media(max-width:400px){.steps{grid-template-columns:repeat(2,1fr)}.photo-stack{gap:8px}.photo-placeholder{width:60px;height:80px}}.btn-sm{font-size:1rem;padding:var(--space-xs) var(--space-sm)}.btn-lg{font-size:1.5rem;padding:var(--space-md) var(--space-xl)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.input-wrapper{display:flex;flex-direction:column;gap:var(--space-xs)}.input-label{font-size:1.25rem;color:var(--text-primary)}.input-error{border-color:var(--marker-red)}.input-error-text{font-size:.875rem;color:var(--marker-red)}.photo-card{position:relative;background:#fff;padding:8px;box-shadow:var(--shadow-photo);display:inline-block}.photo-card-sm{max-width:150px}.photo-card-md{max-width:300px;width:100%}.photo-card-md img{height:100%;object-fit:cover}.photo-card-lg{max-width:500px}.photo-tape{position:absolute;top:-14px;left:50%;transform:translate(-50%) rotate(2deg);width:70px;height:26px;border:1px solid rgba(0,0,0,.1);z-index:1}.photo-tape-beige{background:var(--tape-beige)}.photo-tape-green{background:var(--tape-green)}.photo-inner{overflow:hidden;border:1px solid #e5e5e5}.photo-card img{display:block;width:100%;height:auto;object-fit:cover}.photo-card-lg .photo-inner{aspect-ratio:1}.photo-card-lg img{height:100%;object-fit:cover}.player-chip{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);box-shadow:var(--shadow-sticky);transition:transform .15s,box-shadow .15s;position:relative;min-width:100px;justify-content:center}.player-chip-yellow{background:var(--sticky-yellow)}.player-chip-pink{background:var(--sticky-pink)}.player-chip-blue{background:var(--sticky-blue)}.player-chip-green{background:var(--sticky-green)}.player-chip-name{font-size:1.25rem;font-weight:600}.player-chip-status{font-size:1rem}.player-chip-clickable{cursor:pointer}.player-chip-clickable:hover{transform:rotate(0) scale(1.05);box-shadow:4px 4px 8px #00000026}.player-chip-disabled{opacity:.5;cursor:not-allowed}.player-chip-offline{opacity:.4}.player-chip-selected{outline:4px solid var(--marker-blue);outline-offset:2px}.player-chip-correct{outline:4px solid var(--marker-green);outline-offset:2px}.player-chip-wrong{outline:4px solid var(--marker-red);outline-offset:2px;text-decoration:line-through;text-decoration-color:var(--marker-red);text-decoration-thickness:3px}.player-chip-result{position:absolute;top:-8px;right:-8px;font-size:1.5rem;font-weight:700}.player-chip-correct .player-chip-result{color:var(--marker-green)}.player-chip-wrong .player-chip-result{color:var(--marker-red)}.tally-score{display:flex;align-items:center;gap:var(--space-sm)}.tally-marks{display:flex;gap:var(--space-xs);font-size:1.5rem;color:var(--marker-blue)}.tally-group{display:inline-flex;position:relative}.tally-mark{display:inline-block}.tally-cross{position:absolute;left:0;right:0;text-align:center;transform:scaleX(1.5)}.tally-empty{color:var(--text-muted)}.tally-number{font-size:.875rem;color:var(--text-muted)}.join{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-xl)}.join-content{text-align:center;max-width:400px;width:100%}.join-title{font-size:3rem;margin-bottom:var(--space-xl)}.join-form{background:#fff;padding:var(--space-xl);border:3px solid var(--marker-black);border-radius:8px;display:flex;flex-direction:column;gap:var(--space-lg)}.join-field{text-align:left}.join-code-input{font-size:1.75rem;text-align:center;letter-spacing:6px;text-transform:uppercase}.join-error{font-size:1rem;margin:0}.join-connecting{font-size:.875rem;color:var(--text-muted);margin:0}.join-back{margin-top:var(--space-xl);background:none;border:none;font-family:var(--font-hand);font-size:1.1rem;color:var(--text-muted);cursor:pointer}.join-back:hover{color:var(--marker-blue);text-decoration:underline}.join-room-badge{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--sticky-yellow);border-radius:4px;font-size:1rem}.join-room-badge .marker-text{font-size:1.25rem;font-weight:700}.join-change-room{background:none;border:none;font-family:var(--font-hand);font-size:.875rem;color:var(--marker-blue);cursor:pointer;text-decoration:underline;padding:0}.join-identity{text-align:left}.join-label{display:block;font-family:var(--font-hand);font-size:1.25rem;margin-bottom:var(--space-md);color:var(--text-main)}.join-player-list{display:flex;flex-direction:column;gap:var(--space-sm)}.join-player-btn{padding:var(--space-md) var(--space-lg);background:#fff;border:2px solid var(--marker-black);border-radius:8px;font-family:var(--font-hand);font-size:1.25rem;cursor:pointer;text-align:left;transition:all .15s ease}.join-player-btn:hover{background:var(--sticky-blue);border-color:var(--marker-blue)}.join-player-btn.selected{background:var(--marker-blue);color:#fff;border-color:var(--marker-blue)}.join-manual-link{display:block;margin-top:var(--space-md);background:none;border:none;font-family:var(--font-hand);font-size:1rem;color:var(--text-muted);cursor:pointer;text-decoration:underline;padding:0}.join-manual-link:hover{color:var(--marker-blue)}.join-manual{text-align:left}.join-back-to-list{display:block;margin-bottom:var(--space-md);background:none;border:none;font-family:var(--font-hand);font-size:1rem;color:var(--marker-blue);cursor:pointer;padding:0}.join-back-to-list:hover{text-decoration:underline}.join-intent{text-align:left}.join-intent-options{display:flex;flex-direction:column;gap:var(--space-md)}.join-intent-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-lg);background:#fff;border:3px solid var(--marker-black);border-radius:12px;cursor:pointer;transition:all .15s ease}.join-intent-btn:hover{transform:translateY(-2px);box-shadow:4px 4px #00000026}.join-intent-btn:first-child:hover{background:var(--sticky-blue);border-color:var(--marker-blue)}.join-intent-btn:last-child:hover{background:var(--sticky-green);border-color:var(--marker-green)}.join-intent-btn:active{transform:translateY(0);box-shadow:none}.join-intent-icon{width:100px;height:100px;margin-bottom:-1.4rem}.join-intent-title{font-family:var(--font-hand);font-size:1.5rem;font-weight:700;color:var(--text-main)}.join-intent-desc{font-family:var(--font-hand);font-size:1rem;color:var(--text-muted)}.host{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-xl)}.host-content{text-align:center;max-width:450px;width:100%}.host-title{font-size:3rem;margin-bottom:var(--space-xl)}.host-form{background:#fff;padding:var(--space-xl);border:3px solid var(--marker-black);border-radius:8px;display:flex;flex-direction:column;gap:var(--space-lg)}.host-field{text-align:left}.category-input-wrapper{display:flex;align-items:center;border:2px solid var(--marker-black);border-radius:6px;background:#fff;padding:0 var(--space-md);gap:var(--space-xs)}.category-input-wrapper:focus-within{border-color:var(--marker-blue);box-shadow:0 0 0 3px #4285f426}.category-prefix{font-family:var(--font-hand);font-size:1.1rem;color:var(--text-muted);white-space:nowrap;-webkit-user-select:none;user-select:none}.category-input{flex:1;border:none;outline:none;font-family:var(--font-hand);font-size:1.1rem;padding:var(--space-sm) 0;background:transparent}.category-input::placeholder{color:var(--text-muted);opacity:.6}.host-hint{font-size:.875rem;color:var(--text-muted);margin-top:var(--space-xs)}.host-error{font-size:1rem;margin:0}.host-connecting{font-size:.875rem;color:var(--text-muted);margin:0}.host-back{margin-top:var(--space-xl);background:none;border:none;font-family:var(--font-hand);font-size:1.1rem;color:var(--text-muted);cursor:pointer}.host-back:hover{color:var(--marker-blue);text-decoration:underline}.upload{min-height:100vh;padding:var(--space-xl)}.upload-content{max-width:1000px;margin:0 auto}.upload-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl);flex-wrap:wrap;gap:var(--space-md)}.upload-title{font-size:2.5rem}.upload-room-code{font-size:1.25rem;background:#fff;padding:var(--space-sm) var(--space-md);border:2px solid var(--marker-black);border-radius:6px}.upload-room-code span{font-size:1.5rem;letter-spacing:4px}.upload-main{display:grid;grid-template-columns:1fr 300px;gap:var(--space-xl);align-items:start}.upload-area-wrapper{display:flex;flex-direction:column;gap:var(--space-lg);align-items:center}.upload-dropzone{width:100%;max-width:500px;aspect-ratio:1;border:4px dashed var(--marker-blue);border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s,background .2s;background:#fff}.upload-dropzone:hover{border-color:var(--marker-green);background:#16a34a0d}.upload-dropzone.has-preview{border-style:solid;padding:8px}.upload-prompt{text-align:center;padding:var(--space-xl)}.upload-icon{width:100px;height:100px;display:block;margin:0 auto var(--space-md);opacity:.4}.upload-prompt .marker-text{font-size:1.5rem;color:var(--marker-blue)}.upload-hint{color:var(--text-muted);margin-top:var(--space-sm)}.upload-preview{width:100%;height:100%;position:relative}.upload-preview img{width:100%;height:100%;object-fit:cover;border-radius:4px}.upload-change{position:absolute;bottom:var(--space-md);left:50%;transform:translate(-50%);background:#000000b3;color:#fff;border:none;padding:var(--space-sm) var(--space-md);border-radius:4px;cursor:pointer;font-family:var(--font-hand);font-size:1rem}.upload-change:hover{background:#000000d9}.upload-submit{width:100%;max-width:300px}.upload-error{font-size:1rem}.upload-complete{text-align:center;padding:var(--space-xl);width:100%;max-width:400px}.upload-check{font-size:4rem;display:block;margin-bottom:var(--space-md);color:var(--marker-green)}.upload-complete h3{font-size:1.75rem;margin-bottom:var(--space-sm)}.upload-next-steps{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:2px dashed var(--marker-green)}.upload-instruction{font-family:var(--font-hand);font-size:1.25rem;margin-bottom:var(--space-sm)}.upload-name-field{width:100%;max-width:400px}.upload-info{padding:var(--space-lg)}.upload-info h3{font-size:2rem;margin-bottom:var(--space-md)}.upload-steps{font-family:var(--font-hand);font-size:1.25rem;padding-left:var(--space-lg);margin:0;text-align:left}.upload-steps li{margin-bottom:var(--space-sm)}.upload-count{display:flex;flex-direction:column;align-items:center;padding:var(--space-lg);text-align:center}.upload-count .count-number{font-size:3rem;font-weight:700;font-family:var(--font-hand);line-height:1}.upload-count .count-label{font-size:1rem;color:var(--text-muted)}.upload-sidebar{display:flex;flex-direction:column;gap:var(--space-lg)}.upload-players{padding:var(--space-lg)}.upload-players h3{font-size:1.25rem;margin-bottom:var(--space-md)}.upload-player-list{display:flex;flex-direction:column;gap:var(--space-sm)}.upload-host-controls{display:flex;flex-direction:column;gap:var(--space-md);align-items:stretch}.upload-wait-hint{font-size:.875rem;color:var(--text-muted);text-align:center}@media(max-width:768px){.upload-main{grid-template-columns:1fr}.upload-sidebar{order:-1}.upload-dropzone{max-width:100%}}.upload-loading{display:flex;align-items:center;justify-content:center;min-height:50vh;font-size:1.5rem}.upload-game-started{text-align:center;padding:var(--space-xl);max-width:400px;margin:var(--space-xl) auto}.upload-game-started-icon{font-size:3rem;display:block;margin-bottom:var(--space-md)}.upload-game-started h3{font-size:1.5rem;margin-bottom:var(--space-md)}.upload-game-started p{font-family:var(--font-hand);font-size:1.1rem;color:var(--text-main);margin-bottom:var(--space-lg)}.upload-back{display:block;margin:var(--space-xl) auto 0;background:none;border:none;font-family:var(--font-hand);font-size:1.1rem;color:var(--text-muted);cursor:pointer}.upload-back:hover{color:var(--marker-blue);text-decoration:underline}.player{min-height:100vh;min-height:100dvh;padding:var(--space-md)}.player-content{max-width:500px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-lg)}.player-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm);background:#fff;border:2px solid var(--marker-black);border-radius:8px}.player-info{display:flex;align-items:center;gap:var(--space-md)}.player-nickname{font-size:1.25rem}.player-round{font-size:1.1rem;color:var(--text-muted)}.player-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.5rem}.player-photo{display:flex;justify-content:center}.player-question{font-size:1.75rem;text-align:center}.player-answer{text-align:center;padding:var(--space-md) var(--space-lg);margin:0 auto}.player-answer .marker-text{font-size:1.5rem}.player-error{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);margin:0 auto;cursor:pointer;width:100%;max-width:400px;background:#fef2f2;border:2px solid var(--marker-red);border-radius:8px}.player-error span{font-family:var(--font-hand);font-size:1.1rem;line-height:1.4;color:var(--marker-red)}.player-error-dismiss{background:none;border:none;font-size:1.5rem;color:var(--marker-red);cursor:pointer;padding:0;line-height:1}.player-self-vote{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);margin:0 auto;cursor:pointer;width:100%;max-width:400px;background:#fefce8;border:2px solid #ca8a04;border-radius:8px}.player-self-vote span{font-family:var(--font-hand);font-size:1.1rem;line-height:1.4;color:#854d0e}.player-self-vote-dismiss{background:none;border:none;font-size:1.5rem;color:#ca8a04;cursor:pointer;padding:0;line-height:1}.player-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.player-choices .player-chip{width:100%}.player-finished{display:flex;flex-direction:column;align-items:center;gap:var(--space-xl);padding-top:var(--space-xl)}.player-finished h2{font-size:2.5rem}.player-final-scores{position:relative;background:#fff;padding:25px 30px;border-radius:8px;box-shadow:0 4px 20px #0000001a;width:100%;max-width:350px}.player-final-scores .scores-tape{position:absolute;top:-12px;left:50%;transform:translate(-50%);width:80px;height:25px;background:linear-gradient(135deg,#fef08ae6,#fde047e6)}.player-final-scores h3{font-family:Permanent Marker,cursive;font-size:1.5rem;color:#374151;text-align:center;margin:0 0 20px}.player-final-scores .scores-list{display:flex;flex-direction:column;gap:10px}.player-final-scores .final-score-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#f9fafb;border-radius:6px}.player-final-scores .final-rank{font-family:Permanent Marker,cursive;font-size:1.25rem;color:#6b7280;width:30px}.player-final-scores .final-name{flex:1;font-family:Patrick Hand,cursive;font-size:1.25rem;color:#374151}.player-final-scores .final-points{font-family:Permanent Marker,cursive;font-size:1.5rem;color:#2563eb}.player-score-me{background:#2563eb26!important}.player-choice-btn{padding:var(--space-md) var(--space-lg);border:3px solid var(--marker-black);border-radius:8px;font-family:var(--font-hand);font-size:1.25rem;cursor:pointer;transition:all .15s ease;text-align:center}.player-choice-0{background:var(--sticky-yellow)}.player-choice-1{background:var(--sticky-pink)}.player-choice-2{background:var(--sticky-blue)}.player-choice-3{background:var(--sticky-green)}.player-choice-btn:hover:not(:disabled){transform:scale(1.02);box-shadow:4px 4px #0003}.player-choice-btn:active:not(:disabled){transform:scale(.98)}.player-choice-btn.selected{border-color:var(--marker-blue);box-shadow:0 0 0 4px #2563eb4d}.player-choice-btn.correct{background:var(--marker-green);color:#fff;border-color:var(--marker-green)}.player-choice-btn.wrong{background:var(--marker-red);color:#fff;border-color:var(--marker-red);opacity:.7}.player-choice-btn:disabled{cursor:not-allowed;opacity:.6}@media(max-width:400px){.player-choices{grid-template-columns:1fr}}.player-identity{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);max-width:400px;margin:0 auto;padding:var(--space-xl);text-align:center}.player-identity h2{font-size:2rem;margin:0}.player-identity-loading{font-family:var(--font-hand);font-size:1.1rem;color:var(--text-muted)}.player-identity-list{width:100%;text-align:left}.player-identity-hint{font-family:var(--font-hand);font-size:1.1rem;margin-bottom:var(--space-md);color:var(--text-main)}.player-identity-options{display:flex;flex-direction:column;gap:var(--space-sm)}.player-identity-btn{padding:var(--space-md) var(--space-lg);background:#fff;border:2px solid var(--marker-black);border-radius:8px;font-family:var(--font-hand);font-size:1.25rem;cursor:pointer;text-align:left;transition:all .15s ease}.player-identity-btn:hover{background:var(--sticky-blue);border-color:var(--marker-blue)}.player-identity-btn.selected{background:var(--marker-blue);color:#fff;border-color:var(--marker-blue)}.player-identity-btn.online{background:var(--bg-muted, #f0f0f0);color:var(--text-muted);cursor:not-allowed;opacity:.7;display:flex;justify-content:space-between;align-items:center}.player-identity-btn.online:hover{background:var(--bg-muted, #f0f0f0);border-color:var(--marker-black)}.online-badge{font-size:.75rem;background:var(--marker-green);color:#fff;padding:2px 8px;border-radius:12px;margin-left:var(--space-sm);font-family:var(--font-sans, sans-serif);font-weight:500}.player-identity-manual-link{display:block;margin-top:var(--space-md);background:none;border:none;font-family:var(--font-hand);font-size:1rem;color:var(--text-muted);cursor:pointer;text-decoration:underline;padding:0}.player-identity-manual-link:hover{color:var(--marker-blue)}.player-identity-manual{width:100%;text-align:left}.player-identity-back{display:block;margin-bottom:var(--space-md);background:none;border:none;font-family:var(--font-hand);font-size:1rem;color:var(--marker-blue);cursor:pointer;padding:0}.player-identity-back:hover{text-decoration:underline}.player-identity-field{margin-bottom:var(--space-md)}.player-identity-error{font-size:1rem;margin:0}.player-identity-home{margin-top:var(--space-md);background:none;border:none;font-family:var(--font-hand);font-size:1.1rem;color:var(--text-muted);cursor:pointer}.player-identity-home:hover{color:var(--marker-blue);text-decoration:underline}.player-waiting{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);max-width:400px;margin:0 auto;padding:var(--space-xl);text-align:center}.player-waiting h2{font-size:2.5rem;margin:0}.player-waiting-card{padding:var(--space-xl);width:100%}.player-waiting-message{font-family:var(--font-hand);font-size:1.25rem;margin:0 0 var(--space-sm);color:var(--text-main)}.player-waiting-info{font-family:var(--font-hand);font-size:1rem;margin:0 0 var(--space-lg);color:var(--text-muted)}.player-waiting-count{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.player-waiting-number{font-family:var(--font-hand);font-size:3rem;font-weight:700;color:var(--marker-blue)}.player-waiting-label{font-family:var(--font-hand);font-size:1rem;color:var(--text-muted)}.player-waiting-name{font-family:var(--font-hand);font-size:1.1rem;color:var(--text-muted)}.player-waiting-name .marker-text{color:var(--text-main)}.bookmark-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.bookmark-modal{background:#fff;border:4px solid var(--marker-black);border-radius:12px;max-width:500px;width:100%;box-shadow:8px 8px #0003;animation:modal-pop .3s ease}@keyframes modal-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.bookmark-modal-header{padding:var(--space-xl);display:flex;align-items:center;justify-content:center;gap:var(--space-sm);border-bottom:2px dashed var(--marker-black);background:var(--sticky-yellow);border-radius:8px 8px 0 0}.bookmark-warning-icon{font-size:2.5rem;line-height:1}.bookmark-modal-header h2{font-family:var(--font-hand);font-size:1.75rem;color:var(--marker-red);margin:0}.bookmark-modal-body{padding:var(--space-xl)}.bookmark-warning-text{font-family:var(--font-hand);font-size:1.5rem;text-align:center;margin:0 0 var(--space-lg);line-height:1.5}.bookmark-emphasis{color:var(--marker-red);font-weight:700}.bookmark-instruction{font-family:var(--font-hand);font-size:1.15rem;text-align:center;margin:0;color:var(--text-muted)}.bookmark-instruction kbd{font-family:inherit}.bookmark-modal-footer{padding:var(--space-lg) var(--space-xl);border-top:2px dashed var(--marker-black);display:flex;justify-content:center}.presenter{height:100vh;background:#e8e4df url(/background.png) repeat;display:flex;align-items:center;justify-content:center;padding:20px;font-family:Patrick Hand,cursive;box-sizing:border-box}.presenter-board{position:relative;width:100%;max-width:1400px;height:100%;max-height:calc(100vh - 40px)}.board-frame{position:absolute;inset:-20px;background:radial-gradient(ellipse 50px 50px at 0% 0%,#888 70%,transparent 71%),radial-gradient(ellipse 50px 50px at 100% 0%,#888 70%,transparent 71%),radial-gradient(ellipse 50px 50px at 0% 100%,#888 70%,transparent 71%),radial-gradient(ellipse 50px 50px at 100% 100%,#888 70%,transparent 71%),linear-gradient(180deg,#d8d8d8,#c8c8c8 15%,#b8b8b8,#c8c8c8 85%,#d0d0d0);border-radius:12px;border:1px solid #888;box-shadow:0 8px 32px #0000004d,0 2px 4px #00000026,inset 0 1px #ffffff80}.frame-magnets{position:absolute;top:8px;left:50%;transform:translate(-50%);display:flex;gap:30px;z-index:5}.magnet{width:28px;height:28px;border-radius:50%;box-shadow:0 3px 8px #0006,inset 0 -2px 4px #0003,inset 0 2px 4px #ffffff4d}.board-surface{position:relative;width:100%;height:100%;background-color:#f3f3f3;border-radius:4px;overflow:hidden;padding:30px;display:flex;flex-direction:column;box-shadow:inset 0 0 6px 2px #00000040,inset 0 0 0 1px #0000001a}.board-surface:before{content:"";position:absolute;inset:0;background:url(/whiteboard-background.png) no-repeat center center;background-size:cover;opacity:.7;z-index:0;pointer-events:none}.presenter-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;flex-shrink:0;position:relative;z-index:2}.header-left{position:relative}.presenter-logo{position:relative;display:inline-flex;align-items:center;justify-content:center}.presenter-logo-bg{position:absolute;width:100%;max-width:280px;height:auto;pointer-events:none;z-index:0}.presenter-logo-fg{position:relative;width:100%;max-width:280px;height:auto;z-index:2}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.presenter-banner-wrapper{position:absolute;bottom:-15px;left:50%;transform:translate(-50%) rotate(-2deg)}.presenter-banner{position:relative;padding:.34em 1em;margin:0;color:#fff;font-size:16px;text-align:center;letter-spacing:-.05em;text-shadow:0px -1px 0px rgba(0,0,0,.3);box-shadow:inset 0 1px #ffffff4d,inset 0 0 20px #0000001a,0 1px 1px #0006;background:linear-gradient(180deg,#1eb2df,#17a7d2);display:inline-block;border:1px solid #2b4a9b;min-width:125px}.presenter-banner:before,.presenter-banner:after{content:"";width:.2em;bottom:-.5em;position:absolute;display:block;border:.9em solid #1eb2df;box-shadow:0 1px #0006;z-index:-2}.presenter-banner:before{left:-1.35em;border-right-width:.75em;border-left-color:transparent}.presenter-banner:after{right:-1.35em;border-left-width:.75em;border-right-color:transparent}.presenter-banner-text:before,.presenter-banner-text:after{content:"";bottom:-.5em;position:absolute;display:block;border-style:solid;border-color:#0675b3 transparent transparent transparent;z-index:-1}.presenter-banner-text:before{left:0;border-width:.5em 0 0 .5em}.presenter-banner-text:after{right:0;border-width:.5em .5em 0 0}.presenter-banner-text{font-family:"Baloo 2",cursive;font-weight:600;white-space:nowrap;text-transform:capitalize}.header-center{display:flex;align-items:center;gap:32px;font-family:Patrick Hand,cursive;font-size:1.25rem;color:#374151}.status-round,.status-guesses{display:flex;align-items:center;gap:4px}.status-current,.status-guess-count{font-family:Permanent Marker,cursive;font-size:1.5rem;color:#2563eb}.status-divider{color:#9ca3af;margin:0 2px}.status-separator{color:#9ca3af;margin:0 6px}.status-total,.status-guess-total{font-family:Permanent Marker,cursive;font-size:1.5rem;color:#6b7280}.status-label{margin-left:6px;color:#6b7280}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.room-badge{background:linear-gradient(135deg,#fef3c7,#fde68a);padding:8px 20px;border-radius:8px;box-shadow:0 4px 12px #00000026,inset 0 -2px 4px #0000001a;transform:rotate(2deg);display:flex;flex-direction:column;align-items:center}.room-label{font-family:Patrick Hand,cursive;font-size:.75rem;color:#92400e;text-transform:uppercase;letter-spacing:2px}.room-code{font-family:Permanent Marker,cursive;font-size:1.75rem;color:#b45309;letter-spacing:4px}.category-tag{background:linear-gradient(135deg,#dbeafe,#bfdbfe);padding:6px 16px;border-radius:20px;font-family:Caveat,cursive;font-size:1.25rem;color:#1e40af;transform:rotate(-1deg)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:20px;position:relative;z-index:2}.loading-spinner{width:60px;height:60px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{font-family:Caveat,cursive;font-size:1.5rem;color:#6b7280}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:20px;text-align:center;position:relative;z-index:2}.error-state h2{font-family:Permanent Marker,cursive;font-size:2rem;color:#ef4444}.error-state p{font-family:Caveat,cursive;font-size:1.25rem;color:#6b7280}.error-back-btn{padding:12px 24px;background:#3b82f6;color:#fff;border:3px solid #1e3a5f;border-radius:8px;font-family:Patrick Hand,cursive;font-size:1.25rem;cursor:pointer;transition:all .15s ease}.error-back-btn:hover{background:#2563eb;transform:scale(1.05)}.lobby-state{flex:1;display:flex;flex-direction:column;gap:30px;position:relative;z-index:2}.lobby-main{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.join-prompt{position:relative;background:#fff;padding:40px;border-radius:4px;box-shadow:0 4px 20px #0000001a,0 0 0 1px #0000000d;text-align:center;transform:rotate(-1deg);margin-top:2rem}.prompt-tape{position:absolute;top:-15px;left:50%;transform:translate(-50%) rotate(2deg);width:80px;height:30px;background:linear-gradient(135deg,#fef08ae6,#fde047e6);box-shadow:0 2px 4px #0000001a}.join-prompt h2{font-family:Caveat,cursive;font-size:2rem;color:#374151;margin:0 0 20px}.join-prompt .highlight{color:#2563eb;font-family:Permanent Marker,cursive}.big-room-code{font-family:Permanent Marker,cursive;font-size:5rem;color:#1e40af;letter-spacing:12px;text-shadow:3px 3px 0 rgba(30,64,175,.2);margin:20px 0;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.waiting-text{font-family:Patrick Hand,cursive;font-size:1.25rem;color:#6b7280;margin:0}.players-board{position:relative;background:linear-gradient(180deg,#fefce8,#fef9c3);padding:25px;border-radius:4px;box-shadow:0 4px 20px #0000001a,inset 0 0 0 1px #0000000d;transform:rotate(1deg);height:100%}.board-label{display:flex;align-items:center;gap:10px;margin-bottom:20px;font-family:Permanent Marker,cursive;font-size:1.25rem;color:#92400e}.pin-icon{width:24px;height:24px;fill:#dc2626}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.player-card{position:relative;padding:12px 16px;border-radius:4px;font-family:Patrick Hand,cursive;font-size:1.1rem;display:flex;justify-content:space-between;align-items:center;transform:rotate(var(--rotation, 0deg));animation:cardSlide .4s ease-out backwards;box-shadow:0 2px 8px #0000001a}@keyframes cardSlide{0%{opacity:0;transform:translateY(-20px) rotate(var(--rotation, 0deg))}}.player-card-0{--rotation: -2deg;background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.player-card-1{--rotation: 1deg;background:linear-gradient(135deg,#fce7f3,#fbcfe8);color:#9d174d}.player-card-2{--rotation: -1deg;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af}.player-card-3{--rotation: 2deg;background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534}.player-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-check{color:#16a34a;font-weight:700;font-size:1.25rem}.upload-pending{color:#9ca3af;animation:blink 1.5s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.player-card.uploaded{box-shadow:0 2px 8px #0000001a,0 0 0 2px #22c55e}.lobby-controls{display:flex;flex-direction:column;align-items:center;gap:12px}.start-btn{display:flex;align-items:center;gap:16px;padding:18px 40px;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:12px;font-family:Permanent Marker,cursive;font-size:1.5rem;color:#fff;cursor:pointer;box-shadow:0 6px 20px #22c55e66,inset 0 2px 4px #fff3;transition:all .2s ease;transform:rotate(-1deg)}.start-btn:hover:not(:disabled){transform:rotate(-1deg) scale(1.05);box-shadow:0 8px 30px #22c55e80,inset 0 2px 4px #fff3}.start-btn:disabled{background:linear-gradient(135deg,#9ca3af,#6b7280);cursor:not-allowed;box-shadow:0 4px 12px #0003}.start-btn .btn-icon{font-size:1.75rem}.start-hint{font-family:Caveat,cursive;font-size:1.25rem;color:#6b7280;margin:0;z-index:1}.game-state{flex:1;display:flex;flex-direction:column;gap:12px;position:relative;z-index:2;min-height:0}.photo-display{position:relative;flex:1 1 0;display:flex;align-items:center;justify-content:center;min-height:0}.photo-frame{position:relative;background:#fff;padding:12px;box-shadow:0 8px 30px #00000026,0 0 0 1px #0000000d;transform:rotate(-1deg)}.frame-tape{position:absolute;width:60px;height:25px;background:linear-gradient(135deg,#fef08ad9,#fde047d9);box-shadow:0 2px 4px #0000001a}.tape-left{top:-12px;left:20px;transform:rotate(-15deg);z-index:11}.tape-right{top:-12px;right:20px;transform:rotate(12deg);z-index:11}.mystery-photo{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 280px);object-fit:contain;border-radius:2px}.game-controls{display:flex;justify-content:center;flex-shrink:0;position:relative;z-index:5}.reveal-display{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;animation:revealIn .5s ease-out;z-index:10;background:#ffffffeb}@keyframes revealIn{0%{opacity:0;transform:scale(.8)}}.reveal-card{position:relative;padding:30px 60px}.reveal-circle{position:absolute;inset:0;width:100%;height:100%}.reveal-circle ellipse{fill:none;stroke:#dc2626;stroke-width:4;stroke-dasharray:500;stroke-dashoffset:500;animation:drawCircle .8s ease-out .2s forwards}@keyframes drawCircle{to{stroke-dashoffset:0}}.reveal-content{position:relative;display:flex;align-items:baseline;gap:12px;font-family:Permanent Marker,cursive}.reveal-its{font-size:2rem;color:#6b7280}.reveal-name{font-size:3rem;color:#dc2626;animation:popIn .4s ease-out .3s backwards}@keyframes popIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.reveal-exclaim{font-size:3.5rem;color:#f59e0b;animation:wobble .5s ease-in-out infinite}.winners-badge{display:flex;align-items:center;gap:10px;padding:12px 24px;background:linear-gradient(135deg,#dcfce7,#bbf7d0);border-radius:30px;font-family:Caveat,cursive;font-size:1.5rem;color:#166534;animation:slideUp .4s ease-out .6s backwards}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}}.scoreboard-bar{display:flex;align-items:center;gap:16px;padding:12px 20px;background:linear-gradient(180deg,#fefce8,#fef9c3);border-radius:12px;flex-shrink:0;box-shadow:0 4px 20px #0000001a,inset 0 0 0 1px #0000000d}.scoreboard-label{display:flex;align-items:center;gap:8px;font-family:Permanent Marker,cursive;font-size:1.1rem;color:#92400e;flex-shrink:0}.trophy-icon{width:24px;height:24px;fill:#f59e0b}.scoreboard-chips{display:flex;gap:12px;overflow-x:auto;flex:1;padding:4px 0}.scoreboard-chips::-webkit-scrollbar{height:6px}.scoreboard-chips::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.scoreboard-chips::-webkit-scrollbar-thumb{background:#92400e4d;border-radius:3px}.score-chip{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:8px 16px;margin-left:3px;border-radius:6px;font-family:Patrick Hand,cursive;box-shadow:2px 2px 4px #0000001a;transition:all .2s ease}.score-chip-0{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.score-chip-1{background:linear-gradient(135deg,#fce7f3,#fecdd3);color:#9d174d}.score-chip-2{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af}.score-chip-3{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534}.score-chip.guessed{box-shadow:2px 2px 4px #0000001a,0 0 0 2px #22c55e80}.score-chip.winner{box-shadow:2px 2px 4px #0000001a,0 0 0 2px #22c55e;animation:chipPulse .5s ease-out}@keyframes chipPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.chip-name{font-size:1.1rem;font-weight:500;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-score{font-family:Permanent Marker,cursive;font-size:1.25rem;opacity:.9}.chip-check{color:#22c55e;font-size:1rem}.control-btn{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 32px;border:none;border-radius:10px;font-family:Permanent Marker,cursive;font-size:1.25rem;color:#fff;cursor:pointer;transition:all .2s ease}.reveal-btn{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 4px 15px #8b5cf666,inset 0 2px 4px #fff3}.reveal-btn:hover{transform:scale(1.03);box-shadow:0 6px 20px #8b5cf680,inset 0 2px 4px #fff3}.next-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 15px #3b82f666,inset 0 2px 4px #fff3}.next-btn:hover{transform:scale(1.03);box-shadow:0 6px 20px #3b82f680,inset 0 2px 4px #fff3}.btn-icon{font-size:1.5rem}.control-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.control-btn.loading{pointer-events:none}.btn-spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btnSpin .8s linear infinite}@keyframes btnSpin{to{transform:rotate(360deg)}}.finished-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;position:relative;overflow:hidden;z-index:2}.confetti-container{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti{position:absolute;top:-20px;width:10px;height:20px;border-radius:2px;animation:fall 3s linear infinite}@keyframes fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.game-over-title{font-family:Permanent Marker,cursive;font-size:4rem;margin:0;display:flex;gap:20px;animation:titleBounce .8s ease-out}@keyframes titleBounce{0%{opacity:0;transform:scale(.5)}60%{transform:scale(1.1)}to{transform:scale(1)}}.game-over-title span:first-child{color:#2563eb}.game-over-title span:last-child{color:#dc2626}.podium{display:flex;align-items:flex-end;gap:20px;margin:20px 0}.podium-place{display:flex;flex-direction:column;align-items:center;animation:podiumRise .6s ease-out backwards}.place-1{order:2;animation-delay:.4s}.place-2{order:1;animation-delay:.2s}.place-3{order:3;animation-delay:.6s}@keyframes podiumRise{0%{opacity:0;transform:translateY(50px)}}.podium-medal{font-size:3rem;margin-bottom:10px;animation:medalBounce 1s ease-in-out infinite;animation-delay:inherit}@keyframes medalBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.podium-name{font-family:Permanent Marker,cursive;font-size:1.5rem;color:#374151;margin-bottom:5px;text-align:center;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podium-score{font-family:Patrick Hand,cursive;font-size:1.25rem;color:#6b7280;margin-bottom:15px}.podium-stand{width:100px;border-radius:8px 8px 0 0;box-shadow:inset 0 2px 4px #fff3}.place-1 .podium-stand{height:120px;background:linear-gradient(135deg,#fbbf24,#f59e0b)}.place-2 .podium-stand{height:90px;background:linear-gradient(135deg,#94a3b8,#64748b)}.place-3 .podium-stand{height:60px;background:linear-gradient(135deg,#d97706,#b45309)}.final-scores{position:relative;background:#fff;padding:25px 40px;border-radius:8px;box-shadow:0 4px 20px #0000001a;max-width:400px;width:100%}.scores-tape{position:absolute;top:-12px;left:50%;transform:translate(-50%);width:80px;height:25px;background:linear-gradient(135deg,#fef08ae6,#fde047e6)}.final-scores h3{font-family:Permanent Marker,cursive;font-size:1.5rem;color:#374151;text-align:center;margin:0 0 20px}.scores-list{display:flex;flex-direction:column;gap:10px;transition:opacity .5s ease}.scores-list.scores-fading{opacity:0}.scores-page-indicator{display:flex;justify-content:center;gap:8px;margin-top:16px}.scores-dot{width:8px;height:8px;border-radius:50%;background:#d1d5db;transition:background .3s ease}.scores-dot.active{background:#6b7280}.final-score-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#f9fafb;border-radius:6px}.final-rank{font-family:Permanent Marker,cursive;font-size:1.25rem;color:#6b7280;width:30px}.final-name{flex:1;font-family:Patrick Hand,cursive;font-size:1.25rem;color:#374151}.final-points{font-family:Permanent Marker,cursive;font-size:1.5rem;color:#2563eb}.play-again-btn{display:flex;align-items:center;gap:12px;padding:16px 40px;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:12px;font-family:Permanent Marker,cursive;font-size:1.5rem;color:#fff;cursor:pointer;box-shadow:0 6px 20px #22c55e66,inset 0 2px 4px #fff3;transition:all .2s ease;margin-top:10px}.play-again-btn:hover{transform:scale(1.05);box-shadow:0 8px 30px #22c55e80,inset 0 2px 4px #fff3}.board-doodles{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}.doodle{position:absolute;opacity:.6;mask-size:contain;-webkit-mask-size:contain;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center}.doodle-1{width:100px;height:100px;bottom:60px;left:30px;transform:rotate(-8deg)}.doodle-2{width:80px;height:80px;top:120px;right:30px;transform:rotate(5deg)}.doodle-3{width:90px;height:90px;bottom:100px;right:30px;transform:rotate(-5deg)}.doodle-4{width:70px;height:70px;top:50%;left:30px;transform:rotate(10deg)}@media(max-width:1200px){.board-surface{padding:20px}.game-title{font-size:2.25rem}.title-q{font-size:2.5rem}}@media(max-width:900px){.presenter{padding:10px}.board-frame{inset:-10px}.control-btn{padding:12px 24px;font-size:1rem}.lobby-main{grid-template-columns:1fr}.big-room-code{font-size:3.5rem;letter-spacing:8px}.podium{transform:scale(.85)}.header-center{gap:20px;font-size:1.1rem}.status-current,.status-guess-count,.status-total,.status-guess-total{font-size:1.25rem}.scoreboard-bar{padding:10px 16px;gap:12px}.scoreboard-chips{gap:8px}.score-chip{padding:6px 12px}.chip-name{font-size:1rem;max-width:80px}.chip-score{font-size:1.1rem}}@media(max-width:600px){.game-title{font-size:1.75rem}.title-q{font-size:2rem}.presenter-header{flex-direction:column;gap:15px}.header-right{flex-direction:row;align-items:center}.room-badge{padding:6px 12px}.room-code{font-size:1.25rem}.photo-frame{max-width:100%;padding:10px}.header-center{display:none}.scoreboard-bar{flex-direction:column;align-items:stretch;gap:10px}.scoreboard-label{justify-content:center}.scoreboard-chips{justify-content:center;flex-wrap:wrap}.game-over-title{font-size:2.5rem;flex-direction:column;gap:0}.podium{transform:scale(.7)}.final-scores{padding:20px}}:root{--bg-whiteboard: #f8f7f4;--bg-whiteboard-lines: rgba(180, 180, 180, .15);--marker-blue: #2563eb;--marker-red: #dc2626;--marker-green: #16a34a;--marker-black: #1f2937;--marker-orange: #ea580c;--marker-purple: #9333ea;--text-primary: var(--marker-black);--text-muted: #6b7280;--border-sketch: var(--marker-black);--sticky-yellow: #fef08a;--sticky-pink: #fecdd3;--sticky-blue: #bfdbfe;--sticky-green: #bbf7d0;--tape-beige: rgba(220, 200, 170, .7);--tape-green: rgba(180, 220, 180, .7);--font-marker: "Caveat", cursive;--font-hand: "Patrick Hand", cursive;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--shadow-sticky: 2px 2px 4px rgba(0, 0, 0, .1);--shadow-photo: 3px 3px 8px rgba(0, 0, 0, .2)}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font-hand);background-color:var(--bg-whiteboard);color:var(--text-primary);min-height:100vh;line-height:1.4}.whiteboard-bg{background-image:linear-gradient(var(--bg-whiteboard-lines) 1px,transparent 1px),linear-gradient(90deg,var(--bg-whiteboard-lines) 1px,transparent 1px);background-size:30px 30px;min-height:100vh}.sketch-border{border:3px solid var(--border-sketch);border-radius:3px;position:relative}.sketch-border:before{content:"";position:absolute;inset:-2px;border:2px solid var(--border-sketch);border-radius:5px;opacity:.3;transform:rotate(.5deg)}.marker-text{font-family:var(--font-marker);font-weight:600}.marker-blue{color:var(--marker-blue)}.marker-red{color:var(--marker-red)}.marker-green{color:var(--marker-green)}.marker-black{color:var(--marker-black)}.marker-orange{color:var(--marker-orange)}.marker-purple{color:var(--marker-purple)}.sticky-note{padding:var(--space-md);box-shadow:var(--shadow-sticky);transform:rotate(-1deg);position:relative}.sticky-note.yellow{background:var(--sticky-yellow);--fold-color: #d4a600}.sticky-note.pink{background:var(--sticky-pink);--fold-color: #d4849e}.sticky-note.blue{background:var(--sticky-blue);--fold-color: #7ba3d4}.sticky-note.green{background:var(--sticky-green);--fold-color: #6ab07a}.btn{font-family:var(--font-marker);font-size:1.25rem;font-weight:600;padding:var(--space-sm) var(--space-lg);border:3px solid var(--marker-black);border-radius:8px;cursor:pointer;transition:transform .1s,box-shadow .1s;position:relative;background:#fff;color:var(--text-primary)}.btn:hover{transform:translateY(-2px);box-shadow:3px 3px 0 var(--marker-black)}.btn:active{transform:translateY(0);box-shadow:none}.btn-primary{background:var(--marker-blue);color:#fff;border-color:var(--marker-blue)}.btn-primary:hover{box-shadow:3px 3px #1e40af}.btn-success{background:var(--marker-green);color:#fff;border-color:var(--marker-green)}.btn-danger{background:var(--marker-red);color:#fff;border-color:var(--marker-red)}.input{font-family:var(--font-hand);font-size:1.25rem;padding:var(--space-sm) var(--space-md);border:3px solid var(--marker-black);border-radius:6px;background:#fff;outline:none;transition:border-color .2s}.input:focus{border-color:var(--marker-blue)}.input::placeholder{color:var(--text-muted)}.photo-frame{position:relative;background:#fff;padding:8px;box-shadow:var(--shadow-photo)}.photo-frame img{display:block;width:100%;height:auto}.tally{font-family:var(--font-marker);font-size:1.5rem;letter-spacing:2px}@keyframes wobble{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}@keyframes draw-in{0%{stroke-dashoffset:1000;opacity:0}to{stroke-dashoffset:0;opacity:1}}@keyframes pop-in{0%{transform:scale(0);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-wobble{animation:wobble .5s ease-in-out}.animate-pop{animation:pop-in .3s ease-out}.animate-slide-up{animation:slide-up .3s ease-out}@media(max-width:768px){html{font-size:14px}.btn{padding:var(--space-sm) var(--space-md)}}
