/* ==========================================================
HA EXPERIENCE
STYLE 1
RESET + ROOT + BASE + LAYOUT
========================================================== */

:root{

--bg:#F8F5F1;
--surface:#FFFFFF;

--primary:#B79CCB;
--primary-dark:#9D83B5;

--text:#262626;
--text-light:#737373;

--border:#ECE6DF;

--shadow-soft:0 18px 40px rgba(0,0,0,.06);

--radius-sm:12px;
--radius-md:20px;
--radius-lg:36px;

--container:1220px;

--transition:.35s cubic-bezier(.4,0,.2,1);

}


/* ==========================================================
RESET
========================================================== */

*,
*::before,
*::after{

box-sizing:border-box;

margin:0;

padding:0;

}


html{

scroll-behavior:smooth;

}


body{

background:var(--bg);

color:var(--text);

font-family:"Inter",sans-serif;

font-size:16px;

line-height:1.6;

overflow-x:hidden;

-webkit-font-smoothing:antialiased;

text-rendering:optimizeLegibility;

}


img{

display:block;

max-width:100%;

}


button{

font:inherit;

border:none;

background:none;

cursor:pointer;

}


a{

text-decoration:none;

color:inherit;

}


/* ==========================================================
TYPOGRAPHY
========================================================== */

h1{

font-family:"Cormorant Garamond",serif;

font-weight:500;

line-height:.95;

letter-spacing:-1px;

}


h2{

font-family:"Cormorant Garamond",serif;

font-weight:500;

line-height:1.1;

}


p{

color:var(--text-light);

line-height:1.8;

}


/* ==========================================================
CONTAINER
========================================================== */

.container{

width:min(var(--container),92%);

margin-inline:auto;

}


/* ==========================================================
SECTION
========================================================== */

.section{

min-height:100vh;

display:flex;

align-items:center;

}


/* ==========================================================
GRID
========================================================== */

.grid{

display:grid;

grid-template-columns:1fr 1fr;

align-items:center;

gap:96px;

}


/* ==========================================================
PROGRESS
========================================================== */

.progress{

position:fixed;

left:0;

top:0;

width:100%;

height:3px;

background:#ECE6DF;

z-index:9999;

}


.progress-fill{

height:100%;

width:0;

background:var(--primary);

transition:.5s ease;

}


/* ==========================================================
UTILITIES
========================================================== */

.hidden{

display:none;

}


.fade{

opacity:0;

transform:translateY(25px);

transition:.7s ease;

}


.fade.show{

opacity:1;

transform:none;

}


/* ==========================================================
SPACING
========================================================== */

.mt-24{

margin-top:24px;

}

.mt-32{

margin-top:32px;

}

.mt-48{

margin-top:48px;

}

.mt-64{

margin-top:64px;

}


/* ==========================================================
RESPONSIVE BASE
========================================================== */

@media(max-width:960px){

.grid{

grid-template-columns:1fr;

gap:48px;

}

.section{

padding:56px 0;

}

.container{

width:90%;

}

}

/* ==========================================================
HA EXPERIENCE
STYLE 2
HERO + WELCOME
========================================================== */

.hero{

min-height:100vh;

display:flex;

align-items:center;

position:relative;

overflow:hidden;

background:var(--bg);

}

.hero-grid{

display:grid;

grid-template-columns:560px 1fr;

gap:90px;

align-items:center;

min-height:100vh;

}

/* ==========================================================
LEFT SIDE
========================================================== */

.hero-content{

position:relative;

z-index:10;

animation:heroFade .9s ease;

}

.hero-logo{

width:42px;

height:auto;

margin-bottom:34px;

}

.hero-label{

display:inline-block;

font-size:.70rem;

letter-spacing:5px;

text-transform:uppercase;

color:var(--text-light);

margin-bottom:22px;

}

.hero-title{

font-size:72px;

line-height:.93;

margin-bottom:34px;

max-width:560px;

}

.hero-title span{

display:block;

}

.hero-description{

font-size:20px;

line-height:1.9;

max-width:500px;

margin-bottom:52px;

color:var(--text-light);

}

/* ==========================================================
BUTTON
========================================================== */

.btn-primary{

display:inline-flex;

align-items:center;

gap:14px;

padding:18px 34px;

border-radius:999px;

background:white;

border:1px solid var(--border);

box-shadow:var(--shadow-soft);

transition:var(--transition);

font-weight:500;

color:var(--text);

}

.btn-primary span{

transition:.3s;

}

.btn-primary:hover{

transform:translateY(-3px);

background:var(--primary);

color:white;

}

.btn-primary:hover span{

transform:translateX(6px);

}

/* ==========================================================
RIGHT IMAGE
========================================================== */

.hero-image{

position:relative;

height:100vh;

display:flex;

justify-content:flex-end;

align-items:flex-end;

overflow:hidden;

}

.hero-image::before{

content:"";

position:absolute;

width:520px;

height:520px;

right:-120px;

top:50%;

transform:translateY(-50%);

background:rgba(183,156,203,.15);

border-radius:50%;

filter:blur(80px);

z-index:0;

}

.hero-image img{

position:relative;

z-index:2;

width:108%;

height:94vh;

object-fit:cover;

object-position:center top;

transition:1s ease;

}

.hero-image:hover img{

transform:scale(1.02);

}

/* ==========================================================
WELCOME ANIMATION
========================================================== */

.hero-logo{

animation:fadeDown .7s ease;

}

.hero-label{

animation:fadeDown .9s ease;

}

.hero-title{

animation:fadeUp 1s ease;

}

.hero-description{

animation:fadeUp 1.2s ease;

}

.btn-primary{

animation:fadeUp 1.4s ease;

}

.hero-image{

animation:fadeImage 1.5s ease;

}

/* ==========================================================
KEYFRAMES
========================================================== */

@keyframes fadeDown{

from{

opacity:0;

transform:translateY(-20px);

}

to{

opacity:1;

transform:none;

}

}

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(30px);

}

to{

opacity:1;

transform:none;

}

}

@keyframes fadeImage{

from{

opacity:0;

transform:translateX(40px);

}

to{

opacity:1;

transform:none;

}

}

@keyframes heroFade{

from{

opacity:0;

}

to{

opacity:1;

}

}

/* ==========================================================
MOBILE
========================================================== */

@media(max-width:960px){

.hero{

padding:48px 0;

}

.hero-grid{

grid-template-columns:1fr;

gap:48px;

min-height:auto;

}

.hero-content{

order:1;

}

.hero-image{

order:2;

height:auto;

justify-content:center;

}

.hero-image::before{

width:320px;

height:320px;

right:auto;

left:50%;

transform:translateX(-50%);

}

.hero-image img{

width:100%;

max-width:420px;

height:auto;

}

.hero-title{

font-size:54px;

}

.hero-description{

font-size:17px;

}

.btn-primary{

width:100%;

justify-content:center;

}

}
/* ==========================================================
HA EXPERIENCE
STYLE 3
QUESTION ENGINE
========================================================== */

.question-screen{

display:flex;

align-items:center;

justify-content:center;

min-height:100vh;

padding:80px 0;

background:var(--bg);

}

.question-wrapper{

width:min(760px,92%);

margin:auto;

}

.question-step{

font-size:.78rem;

letter-spacing:4px;

text-transform:uppercase;

color:var(--primary);

margin-bottom:18px;

}

.question-title{

font-family:"Cormorant Garamond",serif;

font-size:56px;

font-weight:500;

line-height:1.1;

margin-bottom:18px;

color:var(--text);

}

.question-subtitle{

font-size:18px;

line-height:1.8;

color:var(--text-light);

margin-bottom:48px;

}

.answer-list{

display:flex;

flex-direction:column;

gap:18px;

}

/* ==========================================================
ANSWER CARD
========================================================== */

.answer{

position:relative;

display:flex;

align-items:center;

padding:22px 26px;

background:#fff;

border:1px solid var(--border);

border-radius:22px;

transition:var(--transition);

cursor:pointer;

}

.answer:hover{

border-color:var(--primary);

transform:translateY(-2px);

box-shadow:0 14px 30px rgba(0,0,0,.05);

}

.answer input{

display:none;

}

.answer-circle{

width:24px;

height:24px;

border-radius:50%;

border:2px solid #D8D8D8;

margin-right:18px;

transition:.3s;

flex-shrink:0;

}

.answer-text{

font-size:17px;

font-weight:400;

color:var(--text);

}

.answer input:checked + .answer-circle{

background:var(--primary);

border-color:var(--primary);

box-shadow:0 0 0 6px rgba(183,156,203,.18);

}

/* ==========================================================
TEXTAREA
========================================================== */

.answer-textarea{

width:100%;

min-height:170px;

padding:24px;

border-radius:22px;

border:1px solid var(--border);

font:inherit;

font-size:17px;

background:white;

resize:vertical;

transition:var(--transition);

}

.answer-textarea:focus{

outline:none;

border-color:var(--primary);

box-shadow:0 0 0 5px rgba(183,156,203,.15);

}

/* ==========================================================
NAVIGATION
========================================================== */

.question-nav{

display:flex;

justify-content:space-between;

margin-top:60px;

gap:20px;

}

.btn-secondary{

padding:16px 30px;

border-radius:999px;

border:1px solid var(--border);

background:white;

transition:var(--transition);

}

.btn-secondary:hover{

background:#f3f3f3;

}

.btn-next{

padding:18px 34px;

border-radius:999px;

background:var(--primary);

color:white;

transition:var(--transition);

}

.btn-next:hover{

background:var(--primary-dark);

transform:translateY(-2px);

}

/* ==========================================================
MOBILE
========================================================== */

@media(max-width:960px){

.question-title{

font-size:42px;

}

.question-subtitle{

font-size:16px;

}

.answer{

padding:18px;

}

.answer-text{

font-size:16px;

}

.question-nav{

flex-direction:column;

}

.btn-secondary,

.btn-next{

width:100%;

}

}
/* ==========================================================
HA EXPERIENCE
STYLE 4
ANIMATIONS + SCENES + MICRO INTERACTIONS
========================================================== */

/* ---------- Scene ---------- */

.scene{

position:relative;

width:100%;

min-height:100vh;

opacity:1;

transform:translateY(0);

transition:
opacity .65s ease,
transform .65s ease;

}

.scene.hide{

opacity:0;

transform:translateY(35px);

pointer-events:none;

}

.scene.show{

opacity:1;

transform:none;

}

/* ---------- Loading ---------- */

.loading{

position:fixed;

inset:0;

background:var(--bg);

display:flex;

align-items:center;

justify-content:center;

z-index:99999;

transition:.7s ease;

}

.loading.hide{

opacity:0;

visibility:hidden;

}

.loading-logo{

width:64px;

animation:pulseLogo 1.8s infinite;

}

/* ---------- Fade ---------- */

.fade-up{

opacity:0;

transform:translateY(40px);

}

.fade-up.show{

opacity:1;

transform:none;

transition:
opacity .8s ease,
transform .8s ease;

}

.fade-left{

opacity:0;

transform:translateX(-40px);

}

.fade-left.show{

opacity:1;

transform:none;

transition:.8s ease;

}

.fade-right{

opacity:0;

transform:translateX(40px);

}

.fade-right.show{

opacity:1;

transform:none;

transition:.8s ease;

}

/* ---------- Button ---------- */

.btn-primary{

overflow:hidden;

position:relative;

}

.btn-primary::after{

content:"";

position:absolute;

left:-120%;

top:0;

width:120%;

height:100%;

background:linear-gradient(
90deg,
transparent,
rgba(255,255,255,.35),
transparent
);

transition:.7s;

}

.btn-primary:hover::after{

left:120%;

}

/* ---------- Progress ---------- */

.progress{

overflow:hidden;

}

.progress-fill{

transition:width .7s cubic-bezier(.4,0,.2,1);

}

/* ---------- Cards ---------- */

.answer{

opacity:0;

transform:translateY(20px);

animation:cardIn .5s forwards;

}

.answer:nth-child(2){

animation-delay:.08s;

}

.answer:nth-child(3){

animation-delay:.16s;

}

.answer:nth-child(4){

animation-delay:.24s;

}

.answer:nth-child(5){

animation-delay:.32s;

}

/* ---------- Floating Image ---------- */

.hero-image img{

animation:floatImage 7s ease-in-out infinite;

}

/* ---------- Background ---------- */

.hero::before{

content:"";

position:absolute;

right:-180px;

top:50%;

width:700px;

height:700px;

transform:translateY(-50%);

background:radial-gradient(

circle,

rgba(183,156,203,.12),

transparent 70%

);

filter:blur(90px);

z-index:0;

}

/* ---------- Focus ---------- */

input:focus,

textarea:focus,

button:focus{

outline:none;

}

/* ---------- Keyframes ---------- */

@keyframes pulseLogo{

0%{

transform:scale(1);

}

50%{

transform:scale(1.06);

}

100%{

transform:scale(1);

}

}

@keyframes cardIn{

to{

opacity:1;

transform:none;

}

}

@keyframes floatImage{

0%{

transform:translateY(0);

}

50%{

transform:translateY(-10px);

}

100%{

transform:translateY(0);

}

}

@keyframes rotateSlow{

from{

transform:rotate(0deg);

}

to{

transform:rotate(360deg);

}

}

@keyframes fadeScreen{

from{

opacity:0;

}

to{

opacity:1;

}

}
/* ==========================================================
HA EXPERIENCE
STYLE 5
RESPONSIVE + FINISHING
========================================================== */

/* ---------- Large Desktop ---------- */

@media (min-width:1600px){

:root{

--container:1400px;

}

.hero-title{

font-size:84px;

}

.hero-description{

font-size:22px;

max-width:560px;

}

.hero-image img{

height:92vh;

}

}


/* ---------- Laptop ---------- */

@media (max-width:1280px){

.hero-grid{

gap:70px;

}

.hero-title{

font-size:64px;

}

}


/* ---------- Tablet ---------- */

@media (max-width:1024px){

.hero{

padding:60px 0;

}

.hero-grid{

grid-template-columns:1fr;

gap:48px;

min-height:auto;

}

.hero-content{

order:1;

text-align:left;

max-width:100%;

}

.hero-image{

order:2;

height:auto;

justify-content:center;

}

.hero-image img{

width:100%;

max-width:520px;

height:auto;

}

.question-wrapper{

width:min(720px,92%);

}

}


/* ---------- Mobile ---------- */

@media (max-width:768px){

.container{

width:90%;

}

.hero-title{

font-size:50px;

line-height:.95;

}

.hero-description{

font-size:17px;

line-height:1.7;

}

.hero-label{

letter-spacing:3px;

}

.hero-logo{

width:34px;

}

.btn-primary,

.btn-next,

.btn-secondary{

width:100%;

justify-content:center;

}

.question-title{

font-size:40px;

}

.question-subtitle{

font-size:16px;

}

.answer{

padding:18px;

}

.answer-text{

font-size:16px;

}

.question-nav{

flex-direction:column;

}

}


/* ---------- Small Phones ---------- */

@media (max-width:430px){

.hero{

padding-top:40px;

}

.hero-title{

font-size:42px;

}

.hero-description{

font-size:16px;

}

.hero-image img{

max-width:100%;

}

.question-title{

font-size:34px;

}

.answer{

padding:16px;

}

}


/* ---------- iPhone SE ---------- */

@media (max-width:375px){

.hero-title{

font-size:38px;

}

.hero-description{

font-size:15px;

}

.hero-label{

font-size:.62rem;

}

.btn-primary{

padding:16px 22px;

}

}


/* ---------- Landscape ---------- */

@media (max-height:600px){

.hero{

padding:40px 0;

}

.hero-grid{

min-height:auto;

}

.hero-image img{

max-height:420px;

width:auto;

}

}


/* ---------- Safe Area ---------- */

body{

padding-left:env(safe-area-inset-left);

padding-right:env(safe-area-inset-right);

padding-bottom:env(safe-area-inset-bottom);

}


/* ---------- Reduced Motion ---------- */

@media (prefers-reduced-motion:reduce){

*{

animation:none !important;

transition:none !important;

scroll-behavior:auto !important;

}

}


/* ---------- Selection ---------- */

::selection{

background:rgba(183,156,203,.28);

}


/* ---------- Scrollbar ---------- */

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#F2EFEB;

}

::-webkit-scrollbar-thumb{

background:#D5C7E0;

border-radius:999px;

}

::-webkit-scrollbar-thumb:hover{

background:#B79CCB;

}

/* ==========================================================
HA EXPERIENCE
STYLE 6
NEW EXPERIENCE SCREENS
PLAN B
========================================================== */


/* ==========================================================
QUESTION AREA
========================================================== */

#app{
    min-height:100vh;
    padding:90px 0 0px;
}

#question-content{
    width:min(760px,100%);
    margin:0 auto;
}


/* ==========================================================
SECTION SCREEN
========================================================== */

.section-screen{
    min-height:calc(100vh - 170px);

    display:flex;
    align-items:center;
    justify-content:center;

    text-align:center;

    animation:haScreenIn .65s ease;
}

.section-screen__inner{
    width:min(700px,92%);
    margin:auto;
}

.section-screen__eyebrow{

    display:block;

    margin-bottom:28px;

    font-size:.88rem;

    letter-spacing:5px;

    text-transform:uppercase;

    color:var(--primary);

}

.section-screen__title{

    font-family:"Cormorant Garamond",serif;

    font-size:72px;

    font-weight:500;

    line-height:1;

    letter-spacing:-1px;

    margin-bottom:28px;

    color:var(--text);

}

.section-screen__description{

    max-width:600px;

    margin:0 auto;

    font-size:18px;

    line-height:1.9;

    color:var(--text-light);

}


/* ==========================================================
QUESTION HEADER
========================================================== */

.question-section-label{

    margin-bottom:12px;

    font-size:.68rem;

    letter-spacing:4px;

    text-transform:uppercase;

    color:rgba(115,115,115,.65);

}

.question-counter{

    margin-bottom:22px;

    font-size:.72rem;

    letter-spacing:2px;

    color:var(--primary);

}

.question-title{

    margin-bottom:30px;

}


/* ==========================================================
TEXT INPUT
========================================================== */

.field-wrapper{

    width:100%;

}

.ha-input{

    width:100%;

    min-height:64px;

    padding:18px 22px;

    border:1px solid var(--border);

    border-radius:18px;

    background:var(--surface);

    color:var(--text);

    font-family:"Inter",sans-serif;

    font-size:17px;

    transition:var(--transition);

}

.ha-input::placeholder{

    color:#B1AAA4;

}

.ha-input:hover{

    border-color:#D8CEC4;

}

.ha-input:focus{

    outline:none;

    border-color:var(--primary);

    box-shadow:
        0 0 0 5px rgba(183,156,203,.13);

}


/* ==========================================================
TEXTAREA
========================================================== */

.ha-textarea{

    width:100%;

    min-height:190px;

    padding:20px 22px;

    border:1px solid var(--border);

    border-radius:20px;

    background:var(--surface);

    color:var(--text);

    font-family:"Inter",sans-serif;

    font-size:17px;

    line-height:1.7;

    resize:vertical;

    transition:var(--transition);

}

.ha-textarea::placeholder{

    color:#B1AAA4;

}

.ha-textarea:focus{

    outline:none;

    border-color:var(--primary);

    box-shadow:
        0 0 0 5px rgba(183,156,203,.13);

}


/* ==========================================================
OPTIONS
========================================================== */

.ha-options{

    display:flex;

    flex-direction:column;

    gap:12px;

}

.ha-option{

    position:relative;

    display:flex;

    align-items:center;

    width:100%;

    min-height:62px;

    padding:17px 22px;

    border:1px solid var(--border);

    border-radius:18px;

    background:var(--surface);

    cursor:pointer;

    transition:var(--transition);

}

.ha-option:hover{

    border-color:var(--primary);

    transform:translateY(-1px);

    box-shadow:
        0 10px 25px rgba(0,0,0,.04);

}

.ha-option input{

    position:absolute;

    opacity:0;

    pointer-events:none;

}

.ha-option span{

    position:relative;

    padding-left:38px;

    font-size:16px;

    color:var(--text);

}

.ha-option span::before{

    content:"";

    position:absolute;

    left:0;

    top:50%;

    width:21px;

    height:21px;

    border:1.5px solid #D4CDC6;

    border-radius:50%;

    transform:translateY(-50%);

    transition:var(--transition);

}

.ha-option input:checked + span::before{

    border-color:var(--primary);

    background:var(--primary);

    box-shadow:
        0 0 0 5px rgba(183,156,203,.14);

}


/* ==========================================================
CHECKBOX DIFFERENTIATION
========================================================== */

.ha-option input[type="checkbox"] + span::before{

    border-radius:6px;

}

.ha-option input[type="checkbox"]:checked + span::before{

    content:"✓";

    display:flex;

    align-items:center;

    justify-content:center;

    color:white;

    font-size:13px;

    font-weight:600;

}


/* ==========================================================
NAVIGATION
========================================================== */

.question-nav{

    margin-top:52px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:18px;

}

.btn-secondary{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-height:52px;

    padding:14px 28px;

    border:1px solid var(--border);

    border-radius:999px;

    background:white;

    color:var(--text);

    transition:var(--transition);

}

.btn-secondary:hover{

    border-color:var(--primary);

    transform:translateY(-2px);

}

.btn-next{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-height:56px;

    padding:16px 32px;

    border-radius:999px;

    background:var(--primary);

    color:white;

    font-weight:500;

    transition:var(--transition);

    box-shadow:
        0 10px 25px rgba(183,156,203,.22);

}

.btn-next:hover{

    background:var(--primary-dark);

    transform:translateY(-2px);

}


/* ==========================================================
REQUIRED MESSAGE
========================================================== */

.required-message{

    margin-top:10px;

    font-size:13px;

    line-height:1.5;

    color:#A56F82;

}


/* ==========================================================
PHOTO UPLOAD
========================================================== */

.photo-upload-list{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.photo-upload-item{

    padding:20px;

    border:1px solid var(--border);

    border-radius:22px;

    background:white;

}

.photo-upload-label{

    margin-bottom:14px;

    font-size:15px;

    font-weight:500;

    color:var(--text);

}

.photo-upload-box{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    min-height:72px;

    border:1px dashed #D8CEC4;

    border-radius:16px;

    background:#FCFAF8;

    color:var(--text-light);

    cursor:pointer;

    transition:var(--transition);

}

.photo-upload-box:hover{

    border-color:var(--primary);

    background:#FBF8FC;

    color:var(--primary);

}

.photo-upload-plus{

    font-size:25px;

    font-weight:300;

    line-height:1;

}

.photo-preview{

    margin-top:14px;

}

.photo-preview-card{

    display:flex;

    align-items:center;

    gap:14px;

    padding:10px;

    border-radius:14px;

    background:#F8F5F1;

}

.photo-preview-card img{

    width:76px;

    height:76px;

    object-fit:cover;

    border-radius:10px;

}

.photo-preview-card span{

    font-size:13px;

    color:#6F806F;

}


/* ==========================================================
MEASUREMENTS
========================================================== */

.measurements{

    display:flex;

    flex-direction:column;

    gap:16px;

}

.measurement-field{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:20px;

}

.measurement-field label{

    min-width:90px;

    font-size:15px;

    color:var(--text);

}

.measurement-input-wrap{

    position:relative;

    width:100%;

    max-width:420px;

}

.measurement-input-wrap .ha-input{

    padding-right:58px;

}

.measurement-input-wrap > span{

    position:absolute;

    right:20px;

    top:50%;

    transform:translateY(-50%);

    font-size:13px;

    color:var(--text-light);

    pointer-events:none;

}


/* ==========================================================
FINISH
========================================================== */

.finish-screen{

    min-height:calc(100vh - 170px);

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    text-align:center;

    animation:haScreenIn .7s ease;

}

.finish-screen__eyebrow{

    margin-bottom:30px;

    font-size:.68rem;

    letter-spacing:5px;

    text-transform:uppercase;

    color:var(--primary);

}

.finish-screen__icon{

    display:flex;

    align-items:center;

    justify-content:center;

    width:68px;

    height:68px;

    margin-bottom:30px;

    border-radius:50%;

    background:rgba(183,156,203,.12);

    color:var(--primary);

    font-size:25px;

}

.finish-screen__title{

    font-family:"Cormorant Garamond",serif;

    font-size:64px;

    line-height:1;

    margin-bottom:25px;

}

.finish-screen__description{

    max-width:600px;

    margin-bottom:40px;

    font-size:17px;

    line-height:1.9;

}

.loading-orb{

    display:flex;

    align-items:center;

    justify-content:center;

    width:68px;

    height:68px;

    margin-bottom:30px;

    border:1px solid rgba(183,156,203,.4);

    border-radius:50%;

    color:var(--primary);

    animation:haPulse 1.6s ease-in-out infinite;

}


/* ==========================================================
SCREEN ANIMATION
========================================================== */

@keyframes haScreenIn{

    from{

        opacity:0;

        transform:translateY(18px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

@keyframes haPulse{

    0%,
    100%{

        transform:scale(1);

        opacity:.65;

    }

    50%{

        transform:scale(1.08);

        opacity:1;

    }

}


/* ==========================================================
MOBILE
========================================================== */

@media(max-width:768px){

    #app{

        padding:70px 0 50px;

    }

    .section-screen{

        min-height:calc(100vh - 120px);

    }

    .section-screen__title{

        font-size:54px;

    }

    .section-screen__description{

        font-size:16px;

    }

    .question-title{

        font-size:42px;

    }

    .question-nav{

        flex-direction:column-reverse;

        align-items:stretch;

    }

    .btn-secondary,
    .btn-next{

        width:100%;

    }

    .measurement-field{

        align-items:flex-start;

        flex-direction:column;

        gap:8px;

    }

    .measurement-input-wrap{

        max-width:none;

    }

    .finish-screen__title{

        font-size:50px;

    }

}


/* ==========================================================
SMALL MOBILE
========================================================== */

@media(max-width:430px){

    .section-screen__title{

        font-size:46px;

    }

    .question-title{

        font-size:36px;

    }

    .ha-input,
    .ha-textarea{

        font-size:16px;

    }

    .photo-upload-item{

        padding:16px;

    }

}

/* ==========================================================
MOBILE NAVIGATION
========================================================== */

@media(max-width:768px){

    .question-nav{

        flex-direction:row;

        justify-content:space-between;

        align-items:center;

    }

    .btn-secondary,
    .btn-next{

        width:auto;

    }

}

/* ==========================================================
   HA EXPERIENCE
   QUESTION NAVIGATION — RESPONSIVE FIX
========================================================== */

#question-content .question-nav {

    margin-top: 32px;

}


#question-content .btn-secondary,
#question-content .btn-next {

    flex-shrink: 0;

}


@media (max-width: 960px) {

    #question-content .question-nav {

        margin-top: 28px;

        gap: 12px;

    }

}


@media (max-width: 600px) {

    #question-content .question-nav {

        margin-top: 24px;

        gap: 10px;

    }

}


/* ==========================================================
   HA EXPERIENCE
   APP HEIGHT — RESPONSIVE FIX
========================================================== */

#app {

    min-height: calc(100vh - 90px);

}


/* ==========================================================
   HA EXPERIENCE
   SECTION SCREEN + NAVIGATION LAYOUT FIX
========================================================== */

#question-content:has(.section-screen) {

    min-height: calc(100vh - 90px);

    display: flex;

    flex-direction: column;

}


#question-content:has(.section-screen) .section-screen {

    min-height: 0;

    flex: 1;

}


#question-content:has(.section-screen) .question-nav {

    flex-shrink: 0;

}


@media (max-width: 960px) {

    #question-content:has(.section-screen) {

        min-height: calc(100vh - 90px);

    }

}


@media (max-width: 600px) {

    #question-content:has(.section-screen) {

        min-height: calc(100vh - 90px);

    }

}


/* ==========================================================
   HA EXPERIENCE
   NAVIGATION — FINAL ALIGNMENT
========================================================== */

#question-content .question-nav {

    width: 100% !important;

    display: grid !important;

    grid-template-columns: 1fr 1fr;

    align-items: center;

    gap: 20px;

    margin-top: 24px !important;

    padding: 0 0 32px 0 !important;

    box-sizing: border-box;

}


/* Geri her zaman sol kolonda */

#question-content .question-nav .btn-secondary {

    grid-column: 1;

    justify-self: start;

    margin: 0 !important;

}


/* Devam her zaman sağ kolonda */

#question-content .question-nav .btn-next {

    grid-column: 2;

    justify-self: end;

    margin: 0 !important;

}


/* Geri yoksa Devam yine sağda */

#question-content .question-nav .btn-next:only-child {

    grid-column: 2;

    justify-self: end;

}


@media (max-width: 600px) {

    #question-content .question-nav {

        padding-bottom: 24px !important;

        gap: 12px;

    }

}

/* ==========================================================
   FINISH — EMAIL
========================================================== */

.finish-email {

    width: min(420px, 100%);

    margin:
        0 auto 28px;

    text-align: left;

}


.finish-email__label {

    display: block;

    margin-bottom: 10px;

    font-size: 13px;

    line-height: 1.5;

    color: var(--text);

}


.finish-email__input {

    display: block;

    width: 100%;

    min-height: 56px;

    padding:
        16px 18px;

    box-sizing: border-box;

    border:
        1px solid
        var(--border);

    border-radius: 4px;

    background: white;

    color: var(--text);

    font-family: inherit;

    font-size: 16px;

    outline: none;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;

}


.finish-email__input::placeholder {

    color: #aaa;

}


.finish-email__input:focus {

    border-color:
        var(--primary);

    box-shadow:
        0 0 0 4px
        rgba(183,156,203,.12);

}


.finish-email__input.is-error {

    border-color: #A56F82;

}


.finish-email__error {

    min-height: 20px;

    margin-top: 7px;

    font-size: 12px;

    line-height: 1.5;

    color: #A56F82;

}


@media (max-width: 600px) {

    .finish-email {

        width: 100%;

        margin-bottom: 24px;

    }

    .finish-email__input {

        min-height: 54px;

    }

}

