/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V3 */
.slide{gap:22px}
.w-title{display:grid;gap:10px}
.eyebrow{font-size:14px;font-weight:700;color:var(--muted)}
.lead{font-size:clamp(21px,2.5vw,33px);line-height:1.5}
.hero{display:flex;flex:1;flex-direction:column;justify-content:center;align-items:flex-start;gap:24px}
.hero h1{max-width:20ch}
.w-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:clamp(18px,3vw,36px);flex:1;align-content:center}
.w-card{min-width:0;border-top:3px solid var(--ink);padding:20px 0;display:flex;flex-direction:column;gap:12px}
.w-card-label{font-size:clamp(17px,2vw,23px);font-weight:800}
.w-card p{font-size:clamp(19px,2.1vw,27px);line-height:1.55}
.w-chip{display:inline-block;padding:0;font-size:14px;font-weight:700;color:var(--muted)}
.participation{flex:1;display:flex;align-items:center;padding:0}
.participation h3{font-size:clamp(26px,3.7vw,52px);line-height:1.4;max-width:24ch}
.participation p{font-size:18px;color:var(--muted);margin-top:22px}
.journey{display:flex;flex:1;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(10px,2vw,28px)}
.journey span{font-size:clamp(22px,3.4vw,48px);font-weight:750;border-bottom:6px solid var(--yellow);padding:10px 0}
.journey i{font-style:normal;font-size:30px;color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:stretch;flex:1}
.step{border:0;border-top:3px solid var(--ink);text-align:left;padding:18px 0;display:flex;flex-direction:column;gap:20px;min-width:0}
.step b{font-size:clamp(18px,2.3vw,31px)}
.step span{font-size:19px;line-height:1.5}
.step[aria-expanded=true]{border-color:var(--pink)}
.conversation{display:flex;flex-direction:column;gap:12px;max-width:950px}
.line{font-size:clamp(19px,2vw,28px);line-height:1.5;padding:18px 22px;border-left:3px solid var(--ink)}
.line.me{background:var(--paper);margin-left:10%}
.line.ai{background:var(--paper);margin-right:10%;border-color:var(--lime)}
.line small{font-size:12px;color:var(--muted)}
.reveal-btn{align-self:flex-start}
.footnote{font-size:15px;color:var(--muted);line-height:1.5}
.break-mark{font-size:clamp(140px,22vw,260px);line-height:1;font-weight:800}
.break-mark span{font-size:40px}
.project-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:30px;flex:1;align-items:center}
.project-board h3{margin-top:16px;font-size:clamp(26px,3vw,42px)}
.project-list{display:grid;gap:9px}
.project-list span{padding:14px 0;border-bottom:1px solid var(--muted);font-size:20px}
.source-link{font-size:14px;color:var(--muted);align-self:flex-start;margin-top:auto}
html,body{overflow-x:clip}
@media(max-width:800px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.participation{display:block;padding:0;margin:auto 0}.project-board{grid-template-columns:1fr}.journey{justify-content:start}.slide{height:auto}.line.me,.line.ai{margin:0}}
.poll-area{width:100%}.poll-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.poll-controls button{font-size:15px;padding:9px 14px}.poll-status,.poll-join,.poll-msg{font-size:16px;color:var(--muted);margin:12px 0}.poll-results{max-height:220px;overflow:auto;margin-top:12px}.poll-results p{padding:6px 0;border-bottom:1px solid var(--muted);font-size:17px;overflow-wrap:anywhere}
.poll-response{min-height:110px;font-size:clamp(23px,3vw,38px);line-height:1.45;overflow-wrap:anywhere;padding:20px 0}.poll-join a{overflow-wrap:anywhere}.poll-area h3{font-size:clamp(22px,2.5vw,34px)}
.practice-coach-link{color:var(--ink);text-decoration:none;font-weight:700}.is-editing .practice-coach-link{display:none}

.poll-response{white-space:pre-line}
/* 발표용 설문: QR 참여와 캐릭터 대기 줄 */
#readiness .participation{min-height:0;flex:1;align-items:stretch}
#readiness .survey-stage{display:grid;grid-template-columns:clamp(160px,14vw,240px) minmax(0,1fr);gap:clamp(24px,3vw,48px);width:100%;min-height:0}
#readiness .survey-join{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px;padding-right:24px;border-right:1px solid #ddd;min-width:0}
#readiness .survey-join p{font-size:clamp(20px,1.6vw,26px);margin:0;color:var(--ink);line-height:1.4;word-break:keep-all}
#readiness .survey-qr{width:100%;background:white}#readiness .survey-qr svg{display:block;width:100%;height:auto}
#readiness .survey-join a{font-size:20px;overflow-wrap:anywhere}#readiness .survey-join strong{font-size:clamp(30px,2.5vw,40px);color:var(--ink);margin:8px 0 0;white-space:nowrap}
#readiness .survey-join .poll-msg{font-size:16px;color:var(--muted)}#readiness .poll-msg:empty{display:none}
#readiness .survey-board{display:flex;flex-direction:column;min-height:0}
#readiness .survey-board h3{font-size:clamp(28px,2.3vw,38px);max-width:none;line-height:1.3;border-bottom:1px solid #ddd;padding:0 0 14px}
#readiness .poll-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(6,minmax(56px,1fr));gap:0 28px;flex:1;min-height:0;overflow:auto;margin-top:8px}
#readiness .poll-choice{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(56px,1fr) auto;gap:10px;align-items:center;border-bottom:1px solid #e6e6e3;min-width:0;padding:0}
#readiness .poll-choice:last-child{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(56px,1fr) auto}
#readiness .poll-choice-name{font-size:clamp(24px,1.65vw,32px);font-weight:650;word-break:keep-all;line-height:1.25}
#readiness .poll-choice-count{font-size:clamp(26px,1.8vw,34px);font-weight:750;color:var(--ink);white-space:nowrap}
#readiness .poll-track{position:relative;display:block;height:56px;overflow:hidden}
#readiness .queue-person{position:absolute;left:0;bottom:0;transition:left .5s ease}
#readiness .survey-mascot{display:block;width:56px;height:56px;background:url('/assets/mascots/workshop-run.png') 0 0/448px 112px no-repeat;image-rendering:pixelated}
#readiness .survey-mascot.is-bandi{background-position-y:-56px;scale:-1 1}
#readiness .queue-person.is-arriving{animation:survey-enter 1.4s cubic-bezier(.22,.7,.3,1) both}
#readiness .is-arriving .survey-mascot{animation:survey-run .65s steps(8) infinite}
@keyframes survey-enter{from{transform:translateX(160px);opacity:0}12%{opacity:1}to{transform:translateX(0);opacity:1}}
@keyframes survey-run{to{background-position-x:-448px}}
@media(max-width:1000px){#readiness .poll-choice-grid{grid-template-columns:1fr;grid-template-rows:none}#readiness .poll-choice{min-height:68px}#readiness .poll-choice:last-child{grid-column:auto;grid-template-columns:minmax(180px,1.4fr) minmax(56px,1fr) auto}}
@media(max-width:600px){#readiness .participation{overflow:auto}#readiness .survey-stage{display:flex;flex-direction:column;gap:20px}#readiness .survey-join{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:6px 16px;border-right:0;border-bottom:1px solid #ddd;padding:0 0 16px}#readiness .survey-qr{grid-column:1;grid-row:1/5}#readiness .survey-join strong{margin:0;font-size:28px}#readiness .survey-join p,#readiness .survey-join a{font-size:18px}#readiness .survey-board{overflow:visible}#readiness .poll-choice-grid{overflow:visible}#readiness .poll-choice,#readiness .poll-choice:last-child{grid-template-columns:minmax(0,1fr) 56px auto}#readiness .poll-choice-name{font-size:22px}}
@media(prefers-reduced-motion:reduce){#readiness .queue-person,#readiness .survey-mascot{animation:none!important;transition:none!important}}

#readiness .poll-choice-grid{grid-template-rows:repeat(6,minmax(48px,1fr))}
#readiness .poll-choice:last-child{grid-column:auto;grid-template-columns:minmax(180px,1.4fr) minmax(56px,1fr) auto}
@media(max-width:1000px){#readiness .poll-choice-grid{grid-template-rows:none}}
@media(max-width:600px){#readiness .poll-choice:last-child{grid-template-columns:minmax(0,1fr) 56px auto}}

#subscriptions .participation{min-height:0;flex:1;align-items:stretch}
#subscriptions .survey-stage{display:grid;grid-template-columns:clamp(160px,14vw,240px) minmax(0,1fr);gap:clamp(24px,3vw,48px);width:100%;min-height:0}
#subscriptions .survey-join{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px;padding-right:24px;border-right:1px solid #ddd;min-width:0}
#subscriptions .survey-join p{font-size:clamp(20px,1.6vw,26px);margin:0;color:var(--ink);line-height:1.4;word-break:keep-all}
#subscriptions .survey-qr{width:100%;background:white}#subscriptions .survey-qr svg{display:block;width:100%;height:auto}
#subscriptions .survey-join a{font-size:20px;overflow-wrap:anywhere}#subscriptions .survey-join strong{font-size:clamp(30px,2.5vw,40px);color:var(--ink);margin:8px 0 0;white-space:nowrap}
#subscriptions .survey-join .poll-msg{font-size:16px;color:var(--muted)}#subscriptions .poll-msg:empty{display:none}
#subscriptions .survey-board{display:flex;flex-direction:column;min-height:0}
#subscriptions .survey-board h3{font-size:clamp(28px,2.3vw,38px);max-width:none;line-height:1.3;border-bottom:1px solid #ddd;padding:0 0 14px}
#subscriptions .poll-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(6,minmax(56px,1fr));gap:0 28px;flex:1;min-height:0;overflow:auto;margin-top:8px}
#subscriptions .poll-choice{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(56px,1fr) auto;gap:10px;align-items:center;border-bottom:1px solid #e6e6e3;min-width:0;padding:0}
#subscriptions .poll-choice:last-child{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(56px,1fr) auto}
#subscriptions .poll-choice-name{font-size:clamp(24px,1.65vw,32px);font-weight:650;word-break:keep-all;line-height:1.25}
#subscriptions .poll-choice-count{font-size:clamp(26px,1.8vw,34px);font-weight:750;color:var(--ink);white-space:nowrap}
#subscriptions .poll-track{position:relative;display:block;height:56px;overflow:hidden}
#subscriptions .queue-person{position:absolute;left:0;bottom:0;transition:left .5s ease}
#subscriptions .survey-mascot{display:block;width:56px;height:56px;background:url('/assets/mascots/workshop-run.png') 0 0/448px 112px no-repeat;image-rendering:pixelated}
#subscriptions .survey-mascot.is-bandi{background-position-y:-56px;scale:-1 1}
#subscriptions .queue-person.is-arriving{animation:survey-enter 1.4s cubic-bezier(.22,.7,.3,1) both}
#subscriptions .is-arriving .survey-mascot{animation:survey-run .65s steps(8) infinite}
@media(max-width:1000px){#subscriptions .poll-choice-grid{grid-template-columns:1fr;grid-template-rows:none}#subscriptions .poll-choice{min-height:68px}#subscriptions .poll-choice:last-child{grid-column:auto;grid-template-columns:minmax(180px,1.4fr) minmax(56px,1fr) auto}}
@media(max-width:600px){#subscriptions .participation{overflow:auto}#subscriptions .survey-stage{display:flex;flex-direction:column;gap:20px}#subscriptions .survey-join{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:6px 16px;border-right:0;border-bottom:1px solid #ddd;padding:0 0 16px}#subscriptions .survey-qr{grid-column:1;grid-row:1/5}#subscriptions .survey-join strong{margin:0;font-size:28px}#subscriptions .survey-join p,#subscriptions .survey-join a{font-size:18px}#subscriptions .survey-board{overflow:visible}#subscriptions .poll-choice-grid{overflow:visible}#subscriptions .poll-choice,#subscriptions .poll-choice:last-child{grid-template-columns:minmax(0,1fr) 56px auto}#subscriptions .poll-choice-name{font-size:22px}}
@media(prefers-reduced-motion:reduce){#subscriptions .queue-person,#subscriptions .survey-mascot{animation:none!important;transition:none!important}}
#subscriptions .poll-choice-grid{grid-template-rows:repeat(6,minmax(48px,1fr))}
#subscriptions .poll-choice:last-child{grid-column:auto;grid-template-columns:minmax(180px,1.4fr) minmax(56px,1fr) auto}
@media(max-width:1000px){#subscriptions .poll-choice-grid{grid-template-rows:none}}
@media(max-width:600px){#subscriptions .poll-choice:last-child{grid-template-columns:minmax(0,1fr) 56px auto}}
#subscriptions .poll-choice-grid{grid-template-rows:repeat(2,minmax(100px,1fr));flex:0 1 48%;}#subscriptions .poll-choice:last-child{grid-column:auto}.subscription-other{font-size:clamp(20px,1.5vw,27px);line-height:1.5;color:var(--muted);overflow:auto;max-height:25vh;margin-top:20px;overflow-wrap:anywhere}@media(max-width:1000px){#subscriptions .poll-choice-grid{grid-template-rows:none;flex:none}}

/* 마지막 인사 */
#closing.thanks-slide.active{display:flex;align-items:center;justify-content:center;min-height:100%;padding:clamp(28px,4vw,64px)}.thanks-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,2vh,22px);width:100%}.thanks-character{position:relative;width:min(35vw,44vh,390px);aspect-ratio:400/430}.thanks-character img{position:absolute;left:25%;top:22%;width:50%;height:48%;object-fit:contain;filter:brightness(0)}.thanks-limbs{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#172a29;stroke-width:11;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.thanks-arm-right{transform-origin:295px 190px;animation:thanks-wave 1.4s ease-in-out infinite}.thanks-slide h2{font-size:clamp(48px,7vw,100px);line-height:1.2;text-align:center;margin:0;max-width:none;letter-spacing:-.06em}@keyframes thanks-wave{0%,100%{transform:rotate(0)}50%{transform:rotate(23deg)}}@media(max-width:700px){.thanks-character{width:min(66vw,38vh,300px)}.thanks-slide h2{font-size:clamp(42px,10vw,70px)}}@media(prefers-reduced-motion:reduce){.thanks-arm-right{animation:none}}

.thanks-character{border:0;background:transparent;padding:0;cursor:pointer;color:inherit}.thanks-character:focus-visible{outline:3px solid #172a29;outline-offset:6px;border-radius:20px}.thanks-arm-left{transform-origin:105px 190px;transition:transform .35s ease}.thanks-character:hover .thanks-arm-left,.thanks-character:focus-visible .thanks-arm-left{transform:rotate(90deg)}.thanks-character:hover .thanks-arm-right,.thanks-character:focus-visible .thanks-arm-right{animation:none;transform:rotate(-18deg)}.thanks-reset-bubble{position:absolute;z-index:2;left:78%;top:5%;padding:.35em .7em;border:2px solid #172a29;border-radius:1em;background:#fff;color:#172a29;font-size:clamp(17px,2vw,25px);font-weight:700;white-space:nowrap;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;pointer-events:none}.thanks-character:hover .thanks-reset-bubble,.thanks-character:focus-visible .thanks-reset-bubble{opacity:1;transform:none}.thanks-reset-status{min-height:1.3em;margin:0;color:#64716b;font-size:clamp(16px,1.5vw,22px);text-align:center}@media(prefers-reduced-motion:reduce){.thanks-arm-left,.thanks-reset-bubble{transition:none}}
