:root {
    --ctv-ink:#28222e;
    --ctv-paper:#f4efe7;
    --ctv-paper-2:#fbf8f2;
    --ctv-purple:#b273e0;
    --ctv-purple-dark:#8e4fbd;
    --ctv-lime:#d7ef68;
    --ctv-line:rgba(40,34,46,.14);
    --ctv-muted:#766d79;
}

.ctv-page{
    background:var(--ctv-paper);
    color:var(--ctv-ink);
    min-height:70vh;
    padding:clamp(36px,6vw,86px) 0 150px;
    font-family:Inter,Manrope,Arial,sans-serif;
}
.ctv-shell{width:min(1180px,calc(100% - 32px));margin:0 auto}
.ctv-hero{max-width:840px;margin-bottom:clamp(34px,5vw,64px)}
.ctv-kicker{display:flex;align-items:center;gap:12px;font-size:10px;font-weight:850;letter-spacing:.18em;text-transform:uppercase;color:#8e4fbd;margin-bottom:16px}
.ctv-kicker:before{content:"";width:34px;height:2px;background:var(--ctv-purple)}
.ctv-hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(46px,7.4vw,92px);line-height:.95;letter-spacing:-.045em;margin:0 0 22px;font-weight:700}
.ctv-hero p{font-size:clamp(16px,1.8vw,20px);line-height:1.58;max-width:700px;color:#625968;margin:0}

.ctv-vote-intro{display:grid;grid-template-columns:38px auto 1fr;align-items:center;gap:12px;margin:0 0 20px;color:var(--ctv-muted)}
.ctv-vote-intro__line{height:1px;background:var(--ctv-purple)}
.ctv-vote-intro strong{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ctv-ink)}
.ctv-vote-intro>span:last-child{justify-self:end;font-size:12px;color:#8a808d}

.ctv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.ctv-card{display:block;margin:0;cursor:pointer;min-width:0;border:1px solid var(--ctv-line);border-radius:16px;background:rgba(255,255,255,.40);overflow:hidden;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease}
.ctv-radio{position:absolute;opacity:0;pointer-events:none}
.ctv-card__visual{display:block;position:relative;aspect-ratio:16/10;background:#ded6ca;overflow:hidden}
.ctv-card__visual:after{content:"";position:absolute;inset:0;border:2px solid transparent;pointer-events:none;transition:border-color .2s ease}
.ctv-card__visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease,filter .25s ease}
.ctv-card__placeholder{position:absolute;inset:0;display:grid;place-items:center;font-weight:900;letter-spacing:.12em;font-size:12px;color:#8e828f}
.ctv-card__check{position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--ctv-purple);color:#fff;font-weight:900;box-shadow:0 8px 25px rgba(66,37,83,.26);opacity:0;transform:scale(.72);transition:opacity .18s ease,transform .18s ease}
.ctv-card__title{display:block;font-size:clamp(15px,1.55vw,19px);font-weight:800;line-height:1.2;padding:14px 15px 16px;min-height:58px}
.ctv-card.is-selected{border-color:rgba(178,115,224,.9);background:#fbf5ff;box-shadow:0 14px 34px rgba(77,49,89,.12);transform:translateY(-3px)}
.ctv-card.is-selected .ctv-card__visual:after{border-color:var(--ctv-purple)}
.ctv-card.is-selected .ctv-card__check{opacity:1;transform:scale(1)}
.ctv-card.is-selected .ctv-card__title{color:var(--ctv-purple-dark)}
.ctv-radio:focus-visible + .ctv-card__visual{outline:3px solid var(--ctv-lime);outline-offset:-3px}
@media (hover:hover){
    .ctv-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(64,51,69,.10)}
    .ctv-card:hover .ctv-card__visual img{transform:scale(1.035)}
}

.ctv-submit-bar{position:fixed;z-index:10000;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));pointer-events:none;transform:translateY(16px);opacity:0;transition:opacity .2s ease,transform .2s ease}
.ctv-submit-bar.is-visible{opacity:1;transform:none}
.ctv-submit-bar__inner{pointer-events:auto;width:min(900px,100%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:12px 12px 12px 20px;border:1px solid rgba(255,255,255,.10);border-radius:20px;background:rgba(40,34,46,.97);color:#fff;box-shadow:0 18px 50px rgba(25,20,28,.28);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.ctv-selection{min-width:0;flex:1}
.ctv-selection span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.58);margin-bottom:5px}
.ctv-selection strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:15px;line-height:1.25}
.ctv-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:999px;background:var(--ctv-purple);color:#fff;font-weight:850;text-transform:uppercase;letter-spacing:.045em;padding:0 24px;min-height:54px;cursor:pointer;white-space:nowrap;box-shadow:0 8px 22px rgba(178,115,224,.25);transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.ctv-submit span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:rgba(255,255,255,.16);font-size:16px;margin:0}
.ctv-submit:hover{background:var(--ctv-purple-dark);transform:translateY(-1px);box-shadow:0 11px 26px rgba(178,115,224,.32)}
.ctv-submit:disabled{opacity:.68;cursor:wait;transform:none}

.ctv-state{max-width:720px;padding:36px;border:1px solid var(--ctv-line);border-radius:18px;background:rgba(255,255,255,.46)}
.ctv-state__icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#e4ddd2;font-size:22px;margin-bottom:18px}
.ctv-state--done .ctv-state__icon{background:var(--ctv-lime)}
.ctv-state h2{font-size:30px;margin:0 0 8px}.ctv-state p{font-size:17px;margin:0;color:#685e6c}

@media(max-width:800px){
    .ctv-page{padding-top:34px;padding-bottom:175px}
    .ctv-shell{width:min(100% - 24px,1180px)}
    .ctv-hero{margin-bottom:32px}
    .ctv-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
    .ctv-card{border-radius:12px}
    .ctv-card__title{font-size:14px;padding:11px 11px 13px;min-height:52px}
    .ctv-card__check{right:8px;top:8px;width:31px;height:31px}
    .ctv-vote-intro{grid-template-columns:28px 1fr;margin-bottom:15px;gap:9px}
    .ctv-vote-intro>span:last-child{grid-column:1 / -1;justify-self:start;padding-left:37px;font-size:11px}
    .ctv-submit-bar{padding-left:10px;padding-right:10px}
    .ctv-submit-bar__inner{display:grid;grid-template-columns:1fr;padding:13px;border-radius:18px;gap:10px}
    .ctv-selection{padding:2px 4px 0}
    .ctv-selection strong{font-size:14px}
    .ctv-submit{width:100%;min-height:55px;padding:0 18px;font-size:13px}
}
@media(max-width:390px){
    .ctv-grid{gap:10px}
    .ctv-card__title{font-size:13px}
    .ctv-submit{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.ctv-page *{transition:none!important}}
