@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#21312b;--muted:#58665f;--paper:#f7f3ed;--cream:#fffdf9;--line:#d8dcd3;--coral:#ef7657;--blue:#80b7d6;--yellow:#efc85d;--green:#78aa85;--radius:14px}
*{box-sizing:border-box}html{scrollbar-color:var(--muted) var(--paper)}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;line-height:1.5}::selection{background:var(--yellow);color:var(--ink)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}[hidden]{display:none!important}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:4px}input,textarea{caret-color:var(--ink)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.shell{width:min(1040px,calc(100% - 48px));margin:0 auto;padding:24px 0 64px}.topbar{min-height:48px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:40px}.brand{display:flex;align-items:center;gap:10px;min-height:44px;padding:0;border:0;background:none;color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:23px;font-weight:600;text-align:left;line-height:1}.brand small{display:block;margin-top:4px;font-family:Manrope,Arial,sans-serif;font-size:10px;font-weight:700;letter-spacing:.02em}.brand-mark{display:grid;place-items:center;width:32px;height:36px;border-radius:14px;color:var(--ink);background:#f9dfd5;font-size:24px}.nav-actions{display:flex;align-items:center;gap:12px}.nav-note{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:500;letter-spacing:-.03em;line-height:1.08;text-wrap:balance;overflow-wrap:anywhere}h1{font-size:clamp(44px,6.5vw,76px);max-width:760px;margin-bottom:20px}h2{font-size:clamp(30px,4vw,44px);margin-bottom:14px}h3{font-size:25px;margin-bottom:12px}.lead{max-width:65ch;font-size:17px;color:var(--muted);line-height:1.6}.lead:empty{display:none}.hero{padding:36px 0 16px}.hero-copy{max-width:780px;margin:0 auto;text-align:center}.hero .lead{margin:0 auto}.hero .actions{justify-content:center;margin-top:28px}.hero .helper{margin-top:16px}.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px}
.button{min-height:46px;padding:12px 22px;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);font-size:14px;font-weight:800;transition:background .18s,color .18s}.button:hover:not(:disabled){background:var(--line)}.button.primary{background:var(--ink);color:var(--cream)}.button.primary:hover:not(:disabled){background:#3b5145}.button.coral{background:var(--coral);border-color:var(--coral)}.button.coral:hover:not(:disabled){background:#f38e73;border-color:#f38e73}.button.quiet{border-color:var(--line)}.button.small,.button.reset-button{padding:10px 16px;font-size:12px}
.category-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:52px}.love{--type:var(--coral);--tint:#f9dfd5}.strength{--type:var(--blue);--tint:#deedf5}.opportunity{--type:var(--yellow);--tint:#f8edc5}.need{--type:var(--green);--tint:#e2eee0}.category-strip>div{display:flex;align-items:center;min-height:108px;padding:22px;border-radius:var(--radius);background:var(--tint)}.category-strip b{font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:500;line-height:1.15;letter-spacing:-.025em}
.screen-head{max-width:720px;margin:32px auto;text-align:center}.screen-head .lead{margin:0 auto;font-size:16px}.panel{max-width:860px;margin:0 auto;padding:clamp(20px,3.5vw,36px);border-radius:var(--radius);background:var(--cream)}.entry-panel{max-width:520px}.field-label{display:block;margin:22px 0 8px;color:var(--ink);font-size:13px;font-weight:700}.field-label:first-child{margin-top:0}input[type=text],input[type=number],textarea,select{width:100%;min-height:46px;padding:12px 14px;border:1px solid #a9b4aa;border-radius:10px;background:var(--cream);color:var(--ink)}textarea{min-height:150px;resize:vertical;line-height:1.6}.helper{margin:10px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.advanced{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}summary{cursor:pointer;color:var(--muted);font-size:14px;font-weight:700;min-height:32px}.advanced[open] summary{margin-bottom:16px}.form-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px}.entry-panel .form-foot .button{width:100%}.form-foot .helper{margin:0;max-width:380px}.config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.config-grid label{font-size:13px;font-weight:700}.config-grid input{display:block;margin-top:8px}.config-recap{color:var(--muted);font-size:13px;margin:20px 0}
.room-code{width:max-content;margin:0 auto 18px;font-size:25px;font-weight:800;letter-spacing:.08em;font-variant-numeric:tabular-nums}.pass-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.pass-card>span{min-width:0}.pass-card b{font-size:16px}.pass-card small{color:var(--muted);font-size:12px}#room-link{display:block;max-width:65ch;font-size:13px;font-weight:600;overflow-wrap:anywhere}.pill{color:var(--muted);font-size:12px;font-weight:700}.stack-list{display:grid;gap:12px}
.activity-step-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.activity-step-nav strong{font-family:Fraunces,Georgia,serif;font-size:25px;font-weight:500}.activity-step-nav>span:last-child{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}.activity-browser>.helper{margin:10px 0 20px}.card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.activity-card{position:relative;display:flex;align-items:flex-start;min-width:0;min-height:146px;padding:20px 16px;text-align:left;border:1px solid #b7c1b8;border-radius:var(--radius);background:var(--tint);color:var(--ink);transition:background .2s cubic-bezier(.16,1,.3,1),outline-color .2s,box-shadow .2s}.activity-card .card-dot{display:none}.activity-card .title{font-family:Fraunces,Georgia,serif;font-size:19px;font-weight:500;line-height:1.25;letter-spacing:-.02em;overflow-wrap:anywhere;hyphens:auto}.activity-card:hover:not(:disabled){box-shadow:0 5px 15px #21312b14}.activity-card.selected{outline:3px solid var(--ink);outline-offset:1px;background:var(--cream)}.activity-card.selected::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--ink);position:absolute;bottom:12px;right:12px}.selection-bar{position:sticky;bottom:12px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;padding:16px;border-radius:var(--radius);background:var(--ink);color:var(--cream)}.selection-bar p{margin:0;font-size:13px}.selection-bar .button{background:var(--cream);color:var(--ink);border-color:var(--cream)}.compact-actions{margin:0;flex-wrap:nowrap}.activity-inputs+.activity-inputs{margin-top:32px}
.prompt-cards{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}.prompt-card{padding:12px 16px;border-radius:12px;background:var(--tint);font-size:14px;font-weight:700}.prompt-card i{display:none}.turn-progress{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:12px}.idea-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.vote-card{display:block;width:100%;min-width:0;min-height:160px;padding:24px;text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--cream);color:var(--ink)}.vote-card:hover{background:#f9dfd5}.vote-card.selected{outline:3px solid var(--ink);outline-offset:2px;background:#f9dfd5}.vote-card p{margin:12px 0 0;font-size:16px;line-height:1.6;overflow-wrap:anywhere}.kind-label{font-size:12px;color:var(--muted)}.reflection{display:grid;grid-template-columns:1.3fr 1fr;gap:32px}.reflection-side p{font-size:14px;color:var(--muted)}.reflect-item{display:flex;align-items:flex-start;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.reflect-item input{flex-shrink:0;width:20px;height:20px;margin:2px 0;accent-color:var(--ink)}.reflect-item label{font-size:15px;line-height:1.6;overflow-wrap:anywhere}.score{display:block;font-size:12px;color:var(--muted);margin-top:4px}.score:empty{display:none}
.ending-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.player-stack{min-width:0;padding:24px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.player-stack h3{margin-bottom:24px}.eyebrow{font-size:13px;font-weight:700;color:var(--muted)}.stack-item{padding:16px;border-radius:12px;background:var(--cream);font-size:14px;line-height:1.6;overflow-wrap:anywhere}.empty{color:var(--muted);font-size:14px}.handoff-cover{max-width:560px;margin:64px auto;text-align:center}.handoff-cover .actions{justify-content:center}.toast{position:fixed;left:50%;bottom:24px;z-index:30;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);padding:14px 20px;border-radius:var(--radius);background:var(--ink);color:var(--cream);font-size:14px;text-align:center;overflow-wrap:anywhere;box-shadow:0 8px 24px #21312b26}
@media(max-width:760px){.shell{width:calc(100% - 32px);padding-top:18px}.topbar{margin-bottom:30px;gap:12px}.nav-actions{gap:8px}.hero{padding-top:22px}.hero-copy{text-align:left}.hero h1{max-width:540px}.hero .actions{justify-content:flex-start}.category-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:36px}.category-strip>div{min-height:96px;padding:18px}.category-strip b{font-size:22px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-card{min-height:136px;padding:16px 12px}.activity-card .title{font-size:17px}.screen-head{margin:24px auto}.panel{padding:20px 16px}.reflection,.ending-grid,.idea-grid{grid-template-columns:1fr}.form-foot{flex-direction:column;align-items:stretch}.form-foot .button{width:100%}.selection-bar{flex-direction:column;align-items:stretch;gap:12px;padding:14px}.compact-actions .button{flex:1}.reflection-side{padding-top:20px;border-top:1px solid var(--line)}.activity-step-nav .pill{flex-basis:100%}.nav-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.selection-bar .button:hover:not(:disabled){background:var(--paper);color:var(--ink)}
