/* 2026 축제 네 페이지 전용 — 기존 v3/v4/fest 레이아웃 위에 필요한 구성만 추가 */
.fest-tabs{margin-top:28px}
.fest-tabs .sibchip[aria-current="page"]{background:var(--ink);color:var(--cream)}
.fest-kicker{margin:0 0 14px;font-family:'IBM Plex Mono','Pretendard',monospace;font-size:.76rem;font-weight:700;letter-spacing:.08em;color:var(--deep)}
.fest-hero-cta{margin-top:28px;display:flex;gap:10px;flex-wrap:wrap}
.fest-hero-cta .btn2{min-height:48px}

.journey-panel{margin-top:22px;padding:34px 34px 30px;border:1.5px solid var(--ink);background:var(--paper)}
.learnflow{display:grid;grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none}
.learnstep{position:relative;display:grid;grid-template-columns:44px 1fr;gap:13px;min-width:0;padding:0 24px 32px 0}
.learnstep::after{position:absolute;top:21px;right:0;left:44px;height:1.5px;background:var(--ink);content:""}
.learnstep:last-child{padding-right:0}.learnstep:last-child::after{display:none}
.learnstep b{position:relative;z-index:1;display:grid;width:44px;height:44px;place-items:center;border:1.5px solid var(--ink);border-radius:50%;background:var(--paper);font-family:'IBM Plex Mono','Pretendard',monospace;font-size:.78rem}
.learnstep:nth-child(2) b{background:#d7ebef}.learnstep:nth-child(3) b{background:#f9e49a}.learnstep:nth-child(4) b{background:var(--orange);color:#fff}
.learnstep div{position:relative;z-index:1;padding:2px 10px 0 0;background:var(--paper)}
.learnstep strong{display:block;margin:0 0 6px;font-size:clamp(1.15rem,2.2vw,1.55rem);line-height:1.15;letter-spacing:-.03em}
.learnstep span{display:block;max-width:17ch;font-size:.9rem;font-weight:600;line-height:1.55;color:var(--muted)}
.journey-result{padding-top:28px;border-top:1.5px solid var(--ink)}
.journey-result>.tagline{margin:0 0 7px}.journey-result>h3{margin:0;font-size:clamp(1.45rem,3vw,2rem);line-height:1.2;letter-spacing:-.035em}
.needs3{display:grid;grid-template-columns:repeat(3,1fr);margin-top:22px;border-top:1px solid rgba(22,16,11,.28)}
.need3{position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:12px;min-width:0;padding:19px 24px 2px 0;background:transparent}
.need3+.need3{padding-left:24px;border-left:1px solid rgba(22,16,11,.28)}
.need3>span{grid-row:1/3;display:grid;width:32px;height:32px;place-items:center;border-radius:50%;background:var(--case);font-family:'IBM Plex Mono','Pretendard',monospace;font-size:.68rem;font-weight:700;color:var(--deep)}
.need3:nth-child(2)>span{background:#f9e49a}.need3:nth-child(3)>span{background:#d7ebef}
.need3 h4{margin:1px 0 0;font-size:1.1rem;line-height:1.25;letter-spacing:-.02em}
.need3 p{grid-column:2;margin:7px 0 0;font-size:.9rem;font-weight:600;line-height:1.6;color:var(--muted)}

.eduplans{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.eduplan{padding:24px;border:1.5px solid var(--ink);background:var(--paper)}
.eduplan:first-child{background:var(--orange);color:#fff}
.eduplan .kind{font-family:'IBM Plex Mono','Pretendard',monospace;font-size:.72rem;font-weight:700}
.eduplan h3{margin:8px 0 0;font-size:clamp(1.45rem,3vw,2.1rem);line-height:1.12}
.eduplan .price{margin:22px 0 0;font-size:clamp(2.3rem,5vw,3.8rem);font-weight:900;line-height:1;letter-spacing:-.05em}
.eduplan ul{margin:20px 0 26px;padding-left:1.1em;font-size:.84rem;font-weight:600}
.eduplan .btn2{width:100%;justify-content:center}
.eduplan:first-child .btn2{background:#fff;color:var(--ink)}
.eduplan-teacher h3{font-size:clamp(1.2rem,2.2vw,1.55rem)}
.eduprice-pairs{display:grid;grid-template-columns:1fr 1fr;margin:20px 0 0;border:1.5px solid var(--ink)}
.eduprice-pairs div{display:flex;flex-direction:column;gap:5px;padding:15px 14px;background:#fff}
.eduprice-pairs div+div{border-left:1.5px solid var(--ink)}
.eduprice-pairs span{font-size:.78rem;font-weight:800;color:var(--muted)}
.eduprice-pairs strong{font-size:clamp(1.35rem,2.8vw,1.9rem);line-height:1;letter-spacing:-.04em}
.edu-extra{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;margin-top:12px;padding:14px;border:1.5px solid var(--ink);background:var(--yellow,#f9dd74);font-size:.82rem;line-height:1.45}
.edu-extra strong{grid-row:1/3;align-self:center}
.eduprice-note{margin:10px 0 20px!important;font-size:.76rem!important;line-height:1.5;color:var(--muted)}
.edu-form-price{display:grid;gap:3px;margin:14px 0;padding:14px;border:1.5px solid var(--ink);background:var(--yellow,#f9dd74);font-size:.86rem;line-height:1.5}
.edu-form-price strong{font-size:.92rem}.edu-form-price small{font-size:.78rem;font-weight:700}

.booksets{margin-top:20px;border-top:1.5px solid var(--ink)}
.bookset{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid rgba(22,16,11,.34)}
.bookset h3,.bookset p{margin:0}
.bookset h3{font-size:.82rem;color:var(--deep)}
.bookset p{font-size:.9rem;font-weight:700;line-height:1.7}
.bookset ol{margin:0;padding-left:1.3em}.bookset li{margin:0 0 9px}.bookset li span{display:block;color:var(--muted);font-size:.76rem;font-weight:600}
.applybar{position:sticky;bottom:12px;z-index:20;max-width:1044px;margin:0 auto 24px;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--paper);border:1.5px solid var(--ink);pointer-events:none}
.applybar div{display:grid;gap:2px}.applybar span{font-size:.76rem;color:var(--muted);font-weight:600}
.applybar .btn2{pointer-events:auto;box-shadow:0 0 0 5px var(--paper)}

.candidate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.candidate-card{position:relative;width:100%;overflow:hidden;padding:0;border:1.5px solid var(--ink);border-radius:0;background:var(--paper);color:inherit;font:inherit;text-align:left;cursor:pointer;transform:translateY(0);transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .38s ease}
.candidate-card::after{position:absolute;right:0;bottom:0;left:0;height:6px;background:var(--orange);transform:translateX(-102%);transition:transform .38s cubic-bezier(.2,.8,.2,1);content:""}
.candidate-card:hover,.candidate-card:focus,.candidate-card:focus-within{z-index:2;outline:0;transform:translateY(-10px);box-shadow:8px 10px 0 var(--ink)}
.candidate-card:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
.candidate-card:hover::after,.candidate-card:focus::after,.candidate-card:focus-within::after{transform:translateX(0)}
.candidate-ph{display:grid;place-items:center;aspect-ratio:4/5;overflow:hidden;background:#fff;border-bottom:1.5px solid var(--ink);color:var(--muted);font-size:.74rem;font-weight:700;transform:scale(1);transition:transform .65s cubic-bezier(.2,.8,.2,1),background-color .38s ease}
.candidate-card:hover .candidate-ph,.candidate-card:focus .candidate-ph,.candidate-card:focus-within .candidate-ph{transform:scale(1.055) translateY(-3px);background:#f0bf58}
.candidate-ph img{width:100%;height:100%;object-fit:contain;transition:transform .65s cubic-bezier(.2,.8,.2,1)}
.candidate-card:hover .candidate-ph img,.candidate-card:focus .candidate-ph img,.candidate-card:focus-within .candidate-ph img{transform:scale(1.08)}
.candidate-body{position:relative;padding:16px;background:var(--paper)}
.candidate-body h3{margin:0;font-size:1.05rem;line-height:1.35}
.candidate-body h4{margin:0;font-size:1.05rem;line-height:1.35}
.candidate-body p{margin:5px 0 0;color:var(--muted);font-size:.76rem;font-weight:600}
.candidate-body span{display:inline-block;margin-top:14px;font-size:.76rem;font-weight:800;color:var(--deep)}
.childonly{margin:20px 0 0;padding:16px 18px;background:var(--case);border:1.5px solid var(--ink);font-weight:700}
.groupvote-callout{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:12px;padding:18px;border:1.5px solid var(--ink);background:var(--paper)}
.groupvote-callout strong{font-size:1.05rem}.groupvote-callout p{margin:5px 0 0;font-size:.82rem;font-weight:650;line-height:1.55;color:var(--muted)}
.groupvote-callout .btn2{flex:0 0 auto}

.group-ballot-set{margin-top:20px;padding:18px;border:1.5px solid var(--ink);background:var(--paper)}
.group-ballot-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.group-ballot-head .tagline{margin:0 0 4px}.group-ballot-head h3{margin:0;font-size:1.25rem}
.group-total{display:flex;align-items:baseline;gap:9px;white-space:nowrap}.group-total span{font-size:.72rem;color:var(--muted)}.group-total b{font-size:1.35rem}
.group-count-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.group-count-grid label{position:relative;display:grid;grid-template-rows:minmax(44px,auto) 48px;gap:8px;padding:12px;border:1.5px solid var(--ink);background:#fff;font-weight:800}
.group-count-grid label>span{font-size:.8rem;line-height:1.35}
.group-count-grid input{width:100%;min-width:0;height:48px;padding:0 38px 0 12px;border:1.5px solid var(--ink);border-radius:0;background:#fff;font:inherit;font-size:1.1rem;font-weight:900}
.group-count-grid small{position:absolute;right:24px;bottom:26px;font-size:.72rem;color:var(--muted)}
.group-grand-total{display:flex;align-items:center;justify-content:space-between;margin:14px 0;padding:16px 18px;border:2px solid var(--ink);background:var(--orange);color:#fff;font-weight:850}
.group-grand-total strong{font-size:1.35rem}.group-submit{width:100%;justify-content:center;margin-top:12px}

.vote-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:0 0 20px}
.vote-progress .vote-step{padding:7px 5px;border-bottom:6px solid rgba(22,16,11,.18);font-size:.66rem;font-weight:700;text-align:center}
.vote-progress .vote-step.is-on{border-color:var(--orange)}
.ballot[hidden]{display:none}
.ballot{display:grid;gap:9px}
.ballot>.chkrow{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:center;padding:14px;border:1.5px solid var(--ink);background:#fff;cursor:pointer}
.ballot>.chkrow:has(input:checked){background:var(--case);border-width:2px}
.ballot .mini{display:grid;place-items:center;aspect-ratio:1;background:#DED7CA;font-size:.62rem;font-weight:700}
.ballot h4{margin:0;font-size:.94rem;line-height:1.3}
.ballot p{margin:3px 0 0;font-size:.7rem;color:var(--muted);font-weight:600}
.ballot>.chkrow input[type="radio"],.ballot>.chkrow input[type="checkbox"]{width:22px;height:22px;margin:0}
.ballot .f2 input,.ballot .f2 select{width:100%;min-width:0;height:52px;padding:0 14px;font:inherit;background:#fff;border:1.5px solid var(--ink);border-radius:0}
.ballot>.ballot-book{grid-template-columns:24px 92px 1fr;min-height:132px}
.ballot-cover{width:92px;height:112px;object-fit:contain;background:#f3efe6;border:1px solid rgba(22,16,11,.25)}
.ballot-book strong{display:block;font-size:1rem;line-height:1.35}.ballot-book small{display:block;margin-top:5px;color:var(--muted);font-size:.78rem;font-weight:600}
.thanksbox{padding:24px;background:var(--case);border:1.5px solid var(--ink)}
.thanksbox h3{font-size:clamp(1.5rem,3.5vw,2.35rem);line-height:1.15;margin:0}
.thanksbox p{font-weight:650}

.bookdialog{display:grid;grid-template-columns:minmax(190px,300px) 1fr;gap:34px;align-items:start}
.bookdialog-cover{display:grid;place-items:center;min-height:400px;padding:18px;background:#fff;border:1.5px solid var(--ink)}
.bookdialog-cover img{display:block;width:100%;max-height:440px;object-fit:contain}
.bookdialog-copy h2{margin:4px 0 0;font-size:clamp(2rem,5vw,3.8rem);line-height:1.05;letter-spacing:-.05em}
.bookdialog-author{margin:12px 0 30px;font-size:1rem;font-weight:800;color:var(--deep)}
.bookdialog-copy section{padding:20px 0;border-top:1.5px solid var(--ink)}
.bookdialog-copy section h3{margin:0 0 8px;font-size:1rem}
.bookdialog-copy section p{margin:0;font-size:1rem;font-weight:600;line-height:1.75}

.judge-list2{margin-top:22px;border-top:1.5px solid var(--ink)}
.judge-row2{display:grid;grid-template-columns:130px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid rgba(22,16,11,.34)}
.judge-row2>img{width:130px;height:160px;object-fit:cover;border:1.5px solid var(--ink)}
.judge-row2 h3{margin:2px 0 8px;font-size:1.35rem}.judge-row2 div>p:last-child{margin:0;max-width:58ch;font-weight:600;line-height:1.65}
.judge-role2{font-family:'IBM Plex Mono','Pretendard',monospace;font-size:.72rem;font-weight:700;color:var(--deep)}
.judge-people2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.judge-person2{display:grid;grid-template-columns:116px 1fr;gap:14px;align-items:start}
.judge-person2 img{width:116px;height:148px;object-fit:cover;border:1.5px solid var(--ink)}
.judge-person2 h3{margin:0;font-size:1.08rem}
.judge-person2 p{margin:5px 0 0;font-size:.76rem;color:var(--muted);font-weight:600;line-height:1.55}
.kidjudges{padding:20px;background:var(--case);border:1.5px solid var(--ink)}
.kidjudges strong{font-size:clamp(1.4rem,3vw,2rem)}
.kidjudges p{margin:6px 0 0;font-size:.82rem;font-weight:600}
.kidjudges{display:grid;grid-template-columns:1fr 1fr;gap:1px;padding:0;background:var(--ink)}.kidjudges article{padding:22px;background:var(--case)}.kidjudges span{font-family:'IBM Plex Mono','Pretendard',monospace;font-size:.68rem;font-weight:700}.kidjudges h3{margin:20px 0 0;font-size:clamp(1.4rem,3vw,2rem)}

.festival-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}
.festival-quick article{padding:18px;border:1.5px solid var(--ink);background:var(--paper)}.festival-quick article:first-child{background:var(--case)}.festival-quick article:last-child{background:var(--orange);color:#fff}.festival-quick article span{font-family:'IBM Plex Mono','Pretendard',monospace;font-size:.68rem;font-weight:700}.festival-quick article h3{margin:36px 0 8px;font-size:1.3rem}.festival-quick article p{margin:0;font-size:.8rem;font-weight:600;line-height:1.6}
.fq{padding:18px;border-top:1.5px solid var(--ink)}
.fq b{display:block;font-size:1.05rem}
.fq span{font-size:.8rem;color:var(--muted);font-weight:600}

.outcome2{padding:64px 28px;background:#1B140D;color:#fff}
.outcome2 .ow{max-width:1100px;margin:0 auto}
.outcome2 h2{margin:0;font-size:clamp(1.8rem,4.6vw,3.2rem);font-weight:900;line-height:1.12;letter-spacing:-.04em}
.outcome2 p{max-width:58ch;margin:14px 0 24px;color:rgba(255,255,255,.82);font-weight:600;line-height:1.65}
.outcome2 .tagline{margin:0 0 12px;color:#fff}
.outcome2 .btn2{background:#fff;color:var(--ink)}

html[data-mode="clear"] .learnstep,html[data-mode="clear"] .need3,html[data-mode="clear"] .eduplan,html[data-mode="clear"] .childonly,html[data-mode="clear"] .thanksbox,html[data-mode="clear"] .groupvote-callout,html[data-mode="clear"] .group-ballot-set{background:#fff;color:#000}

html[data-motion="off"] .candidate-card,html[data-motion="off"] .candidate-card::after,html[data-motion="off"] .candidate-ph,html[data-motion="off"] .candidate-ph img{transition:none!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.candidate-card,.candidate-card::after,.candidate-ph,.candidate-ph img{transition:none!important;transform:none!important}}

@media(max-width:760px){
  .candidate-grid,.festival-quick{grid-template-columns:1fr}
  .journey-panel{padding:26px 20px}
  .learnflow{grid-template-columns:1fr}
  .learnstep{grid-template-columns:42px 1fr;padding:0 0 24px}
  .learnstep::after{top:41px;bottom:0;left:20px;width:1.5px;height:auto}
  .learnstep:last-child{padding-bottom:28px}.learnstep:last-child::after{display:block}
  .learnstep b{width:42px;height:42px}.learnstep div{padding:1px 0 0 2px}.learnstep span{max-width:none}
  .needs3{grid-template-columns:1fr}
  .need3{padding:18px 0}.need3+.need3{padding-left:0;border-top:1px solid rgba(22,16,11,.22);border-left:0}
  .eduplans{grid-template-columns:1fr}
  .eduprice-pairs{grid-template-columns:1fr}.eduprice-pairs div+div{border-top:1.5px solid var(--ink);border-left:0}
  .edu-extra{grid-template-columns:1fr}.edu-extra strong{grid-row:auto}
  .bookset,.judge-row2{grid-template-columns:1fr;gap:8px}
  .bookdialog{grid-template-columns:1fr;gap:22px}.bookdialog-cover{min-height:320px}.bookdialog-cover img{max-height:360px}
  .kidjudges{grid-template-columns:1fr}
  .judge-people2{grid-template-columns:1fr}
  .judge-person2{grid-template-columns:88px 1fr}
  .judge-person2 img{width:88px;height:116px}
  .applybar{bottom:8px;margin-left:20px;margin-right:20px;padding:9px;background:var(--paper)}.applybar div{display:none}.applybar .btn2{width:100%;min-height:48px;justify-content:center;box-shadow:none}
  .ballot>.ballot-book{grid-template-columns:22px 72px 1fr;min-height:108px}.ballot-cover{width:72px;height:88px}
  .groupvote-callout{align-items:stretch;flex-direction:column;gap:14px}.groupvote-callout .btn2{width:100%;justify-content:center}
  .group-count-grid{grid-template-columns:1fr}.group-count-grid label{grid-template-rows:auto 48px}.group-ballot-head{align-items:flex-end}.group-total{flex-direction:column;align-items:flex-end;gap:2px}
}
.vote-recommendation{display:flex;flex-direction:column;gap:10px;margin:24px 0}
.vote-recommendation textarea{display:block;width:100%;min-height:120px;box-sizing:border-box;resize:vertical;font:inherit;line-height:1.7;padding:14px;border:1px solid var(--ink);border-radius:0;background:var(--cream,#fffaf1);color:var(--ink)}
.vote-recommendation small{font-size:.8rem;color:var(--muted)}
.formerror{
  margin:0 0 16px;
  padding:12px 14px;
  border:2px solid #8A2E4D;
  background:#fff4f6;
  color:#741f3f;
  font-weight:800;
  line-height:1.55;
}

@media(max-width:767px){
  .tlhead .h-display br{display:block}
}
