@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700;900&family=Instrument+Serif:ital@0;1&display=swap');
:root{--purple:#21194f;--pink:#ff4f87;--acid:#d9ff57;--paper:#fcf4df;--white:#fffdf8;--ink:#201c35;--line:#d7cbed;--muted:#706987;--shadow:0 18px 50px rgba(33,25,79,.16)}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:linear-gradient(145deg,#f5eaff,#fff7df 54%,#e9ffd2);min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}header{height:72px;border-bottom:2px solid var(--purple);display:flex;justify-content:space-between;align-items:center;padding:0 max(22px,calc((100vw - 1280px)/2));background:rgba(252,244,223,.86);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.brand{font-weight:900;font-size:1.35rem}.brand span{background:var(--purple);color:white;padding:7px 10px;border-radius:8px;transform:rotate(-2deg);display:inline-block}header nav{display:flex;align-items:center;gap:20px;font-weight:800;font-size:.88rem}header nav button{border:0;background:none;font-weight:800}main{width:min(1280px,calc(100% - 32px));margin:auto}.welcome{min-height:calc(100vh - 72px);display:grid;grid-template-columns:1.2fr .72fr;gap:72px;align-items:center;padding:58px 0}.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:900;margin:0}.hero h1{font-size:clamp(3.6rem,7vw,7.1rem);line-height:.88;letter-spacing:-.065em;margin:18px 0 28px}.hero h1 i{font-family:'Instrument Serif',serif;color:var(--pink);font-weight:400}.hero>p:not(.eyebrow){font-size:1.2rem;max-width:570px}.mock-photo{width:min(520px,85%);background:white;padding:15px 15px 22px;box-shadow:var(--shadow);transform:rotate(-2deg);margin:38px 0 0 30px;position:relative;border:2px solid var(--purple)}.tape{position:absolute;width:110px;height:28px;background:rgba(217,255,87,.75);top:-16px;left:calc(50% - 55px);transform:rotate(3deg)}.mock-scene{height:145px;background:linear-gradient(#acdfff 65%,#edd1a1 65%);position:relative;display:flex;align-items:end;justify-content:center;font-size:4rem}.mock-scene span{position:absolute;top:14px;left:28px}.mock-scene em{font-style:normal}.mock-photo blockquote{font-family:'Instrument Serif',serif;font-size:1.35rem;margin:16px 4px 8px}.mock-photo small{color:var(--muted)}.panel{background:var(--white);border:2px solid var(--purple);border-radius:20px;box-shadow:9px 9px 0 var(--purple)}.entry{padding:36px}.entry h2{font-size:2.2rem;line-height:1.05}.tabs{display:grid;grid-template-columns:1fr 1fr;margin:20px 0;border-bottom:1px solid var(--line)}.tabs button{border:0;background:none;border-bottom:4px solid transparent;padding:12px;font-weight:900}.tabs button.active{border-color:var(--pink)}label{font-weight:800;font-size:.85rem;display:block;margin:13px 0 7px}input,textarea,select{width:100%;border:2px solid var(--purple);border-radius:9px;padding:12px;background:white;color:var(--ink)}textarea{resize:vertical}.primary,.secondary{border:2px solid var(--purple);padding:12px 16px;border-radius:9px;font-weight:900}.primary{background:var(--pink);color:white;box-shadow:4px 4px 0 var(--purple)}.secondary{background:white}.entry .primary{width:100%;margin-top:19px}.link{border:0;background:none;width:100%;margin-top:15px;text-decoration:underline;font-weight:800}.error{color:#b42318;min-height:22px}.room-top{display:flex;justify-content:space-between;align-items:center;padding:26px 0}.room-code{border:0;background:none;font-size:2rem;font-weight:900;letter-spacing:.19em;padding:0}.live{display:flex;gap:8px;align-items:center;font-weight:800}.live i{width:9px;height:9px;background:#21a179;border-radius:50%;box-shadow:0 0 0 5px rgba(33,161,121,.15)}.notice:not(:empty){padding:12px 16px;background:var(--acid);border:2px solid var(--purple);border-radius:9px;margin-bottom:18px;font-weight:800}.room-grid{display:grid;grid-template-columns:280px 1fr;gap:28px;padding-bottom:60px}.sidebar{padding:22px;align-self:start;position:sticky;top:94px}.round{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:14px}.round span{font-size:.72rem;letter-spacing:.16em;font-weight:900}.round strong{font-size:2.3rem}.sidebar h3{margin-bottom:8px}.person{display:grid;grid-template-columns:1fr auto;gap:2px;padding:9px 0;border-bottom:1px solid #eee8f7}.person b{font-size:.92rem}.person small{color:var(--muted)}#host-setup{border-top:1px solid var(--line);margin-top:18px;padding-top:6px}#host-setup button,.sidebar>button{width:100%;margin-top:12px}.stage{min-width:0}.empty-stage{border:2px dashed var(--purple);border-radius:24px;min-height:520px;display:grid;place-items:center;align-content:center;text-align:center;padding:40px}.empty-stage span{font-size:4rem;color:var(--pink)}.empty-stage h2{font-family:'Instrument Serif',serif;font-size:2.7rem;max-width:600px;margin:10px}.empty-stage p{color:var(--muted)}.stage-panel{padding:36px;max-width:700px;margin:50px auto}.stage-panel h2,.prompt-card h2,.section-head h2{font-size:2.2rem;margin:8px 0 20px}.drop{border:2px dashed var(--purple);border-radius:14px;min-height:180px;display:grid;place-items:center;align-content:center;background:#f8f2ff}.drop input{position:absolute;opacity:0;width:1px}.drop span{font-size:1.25rem;font-weight:900}.drop small{color:var(--muted);margin-top:5px}.stage-panel>.primary{width:100%;margin-top:18px}.photo-frame{margin:0;background:white;border:2px solid var(--purple);padding:14px;box-shadow:8px 8px 0 var(--purple);position:relative}.photo-frame img{width:100%;max-height:520px;object-fit:contain;display:block;background:#ebe6f5}.photo-count{position:absolute;right:25px;bottom:24px;background:var(--acid);border:2px solid var(--purple);border-radius:999px;padding:7px 11px;font-weight:900}.prompt-card{padding:26px;margin:28px auto;max-width:760px}.form-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;color:var(--muted);font-size:.86rem}.wide{width:100%;margin-top:18px}.section-head{display:flex;justify-content:space-between;align-items:end;margin:36px 0 18px}.section-head h2{margin-bottom:0}.caption-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.caption-choice,.result-card{border:2px solid var(--purple);background:white;border-radius:14px;padding:22px;text-align:left;min-height:140px}.caption-choice{font-family:'Instrument Serif',serif;font-size:1.5rem}.caption-choice:hover:not(:disabled),.caption-choice.selected{background:var(--acid);transform:translateY(-2px)}.caption-choice:disabled{color:#8c879a}.reveal{display:block;margin:24px auto}.results{display:grid;gap:14px}.result-card{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.result-card.winner{background:var(--acid);box-shadow:6px 6px 0 var(--purple)}.result-card blockquote{font-family:'Instrument Serif',serif;font-size:1.5rem;margin:0}.result-card p{margin:6px 0 0;color:var(--muted)}.result-card strong{font-size:2rem}.final{min-height:520px;border:2px solid var(--purple);border-radius:24px;background:var(--purple);color:white;display:grid;place-items:center;align-content:center;text-align:center;padding:40px}.final h2{font-family:'Instrument Serif',serif;color:var(--acid);font-size:4rem;margin:12px}.final p:last-child{color:#d6cdeb}dialog{max-width:620px;border:2px solid var(--purple);border-radius:20px;background:var(--paper);padding:34px;box-shadow:10px 10px 0 var(--purple)}dialog::backdrop{background:rgba(33,25,79,.75)}dialog .close{position:absolute;right:16px;top:10px;border:0;background:none;font-size:2rem}dialog li{margin:11px 0}#toast{position:fixed;right:22px;bottom:22px;background:var(--purple);color:white;padding:12px 18px;border-radius:8px;opacity:0;transform:translateY(12px);transition:.2s;z-index:30}#toast.show{opacity:1;transform:none}[hidden]{display:none!important}@media(max-width:850px){.welcome{grid-template-columns:1fr;padding:40px 0}.hero h1{font-size:4.1rem}.room-grid{grid-template-columns:1fr}.sidebar{position:static}.room-grid{display:flex;flex-direction:column}.sidebar{order:2}.caption-grid{grid-template-columns:1fr}.form-foot,.section-head{align-items:flex-start;flex-direction:column}.mock-photo{width:90%}}@media(max-width:480px){main{width:calc(100% - 20px)}header nav button{display:none}.hero h1{font-size:3.25rem}.entry,.stage-panel{padding:23px}.mock-photo{margin-left:10px}.photo-frame{padding:7px}.room-code{font-size:1.6rem}.final h2{font-size:2.8rem}}
