{% extends 'application/whileresume/website/cv-public/base.html.twig' %}{% block title %}{{ 'generate2.choice.page_title'|trans({}, 'whr-public') }} ยท WhileResume{% endblock %}{% block extra_css %} .choice-hero { text-align: center; margin-bottom: 56px; } .choice-hero .badge { margin-inline: auto; display: inline-flex; } .choice-hero .stitle { max-width: 680px; margin: 0 auto 14px; } .choice-hero .sdesc { max-width: 580px; margin-inline: auto; } .choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 40px; } .choice-card { position: relative; display: flex; flex-direction: column; padding: 32px 28px 28px; border-radius: var(--r-xl); background: var(--white); border: 2px solid var(--ink-10); text-decoration: none; color: inherit; cursor: pointer; transition: all 0.35s var(--ease); overflow: hidden; } .choice-card:hover { transform: translateY(-4px); border-color: var(--violet); box-shadow: 0 20px 48px rgba(139,111,192,0.18); } .choice-card.primary { background: linear-gradient(135deg, var(--violet-ultra), var(--white)); border-color: var(--violet); box-shadow: 0 12px 40px var(--violet-glow); } .choice-card.primary::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--violet), var(--violet-deep), var(--violet)); } .choice-card.primary:hover { transform: translateY(-6px); box-shadow: 0 24px 60px rgba(139,111,192,0.28); } .choice-badge-recommended { position: absolute; top: 16px; right: 16px; background: var(--violet-deep); color: white; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 5px 11px; border-radius: var(--r-full); } .choice-ico { width: 64px; height: 64px; border-radius: 18px; background: var(--violet-soft); color: var(--violet-deep); display: flex; align-items: center; justify-content: center; margin-bottom: 24px; transition: transform 0.3s var(--ease-spring); } .choice-card:hover .choice-ico { transform: scale(1.08) rotate(-4deg); } .choice-card.primary .choice-ico { background: linear-gradient(135deg, var(--violet), var(--violet-deep)); color: white; } .choice-card.secondary .choice-ico { background: var(--ocean-soft); color: var(--ocean); } .choice-title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; letter-spacing: -0.02em; margin-bottom: 10px; } .choice-title em { font-style: italic; color: var(--violet-dark); } .choice-desc { font-size: 0.94rem; color: var(--ink-60); line-height: 1.6; margin-bottom: 20px; min-height: 56px; } .choice-features { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-direction: column; gap: 8px; } .choice-features li { display: flex; align-items: center; gap: 10px; font-size: 0.85rem; color: var(--ink-80); } .choice-features li svg { color: var(--emerald); flex-shrink: 0; } .choice-cta { display: inline-flex; align-items: center; gap: 8px; padding: 13px 22px; border-radius: var(--r-full); font-size: 0.9rem; font-weight: 600; margin-top: auto; transition: all 0.25s var(--ease); } .choice-card.primary .choice-cta { background: var(--violet-deep); color: white; } .choice-card.primary:hover .choice-cta { background: var(--violet-dark); } .choice-card.secondary .choice-cta { background: var(--white); color: var(--ink-80); border: 1.5px solid var(--ink-10); } .choice-card.secondary:hover .choice-cta { border-color: var(--ink-20); } .choice-help { text-align: center; color: var(--ink-40); font-size: 0.85rem; } .choice-help a { color: var(--violet-dark); text-decoration: underline; text-underline-offset: 3px; } @media (max-width: 760px) { .choice-grid { grid-template-columns: 1fr; } }{% endblock %}{% block body %} <div class="choice-hero fade-up"> <div class="badge"><span class="badge-num">1</span> {{ 'generate2.choice.badge'|trans({}, 'whr-public') }}</div> <h1 class="stitle">{{ 'generate2.choice.title_part1'|trans({}, 'whr-public') }}<br>{{ 'generate2.choice.title_part2'|trans({}, 'whr-public') }} <em>{{ 'generate2.common.cv'|trans({}, 'whr-public') }}</em> ?</h1> <p class="sdesc">{{ 'generate2.choice.subtitle'|trans({}, 'whr-public') }}</p> </div> <a href="{% if app.request.locale == "en" %}{{ path('cv_public_theme', { slug: public_slug }) }}?mode=scratch{% else %}{{ path('locale_cv_public_theme', { slug: public_slug,'_locale':app.request.locale }) }}?mode=scratch{% endif %}" class="choice-card primary fade-up d1"> <span class="choice-badge-recommended">{{ 'generate2.choice.recommended'|trans({}, 'whr-public') }}</span> <div class="choice-ico"> <svg width="30" height="30" fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"> <path d="M12 20h9"/> <path d="M16.5 3.5a2.12 2.12 0 013 3L7 19l-4 1 1-4L16.5 3.5z"/> </svg> </div> <h2 class="choice-title">{{ 'generate2.choice.scratch.title_part1'|trans({}, 'whr-public') }} <em>{{ 'generate2.choice.scratch.title_part2'|trans({}, 'whr-public') }}</em></h2> <p class="choice-desc">{{ 'generate2.choice.scratch.desc'|trans({}, 'whr-public') }}</p> <ul class="choice-features"> <li> <svg width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><path d="M20 6L9 17l-5-5"/></svg> {{ 'generate2.choice.scratch.feat_1'|trans({}, 'whr-public') }} </li> <li> <svg width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><path d="M20 6L9 17l-5-5"/></svg> {{ 'generate2.choice.scratch.feat_2'|trans({}, 'whr-public') }} </li> <li> <svg width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><path d="M20 6L9 17l-5-5"/></svg> {{ 'generate2.choice.scratch.feat_3'|trans({}, 'whr-public') }} </li> </ul> <span class="choice-cta"> {{ 'generate2.choice.scratch.cta'|trans({}, 'whr-public') }} <svg width="14" height="14" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"> <path d="M5 12h14M12 5l7 7-7 7"/> </svg> </span> </a>{% endblock %}{% block body_js %} <script> window.cvLoader.hide(); </script>{% endblock %}