:root{
  --cream:#f7f1e8; --paper:#fffdf9; --terracotta:#b9684f; --terracotta-dark:#914d3b;
  --sage:#71816b; --brown:#5d5047; --muted:#8f857c; --line:#e7ddd1;
  --shadow:0 22px 55px rgba(87,65,50,.12); --radius:26px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--brown);font-family:"DM Sans",sans-serif}
.page-shell{min-height:100vh;display:grid;grid-template-columns:42% 58%}
.welcome-panel{position:relative;overflow:hidden;padding:42px 8%;background:linear-gradient(145deg,#eee3d5 0%,#f5eee4 58%,#e6d7c6 100%);display:flex;flex-direction:column}
.welcome-panel:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-170px;top:15%;background:rgba(185,104,79,.08)}
.brand{display:flex;align-items:center;gap:12px;position:relative;z-index:2}
.brand-mark{width:44px;height:44px;border-radius:14px;background:var(--terracotta);color:white;display:grid;place-items:center;font-family:"Playfair Display";font-size:25px;box-shadow:0 8px 18px rgba(145,77,59,.18)}
.brand strong{font-size:20px;display:block;color:#4e433c}.brand span{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
.welcome-copy{margin:auto 0;max-width:520px;position:relative;z-index:2}
.eyebrow,.step-label{font-size:11px;font-weight:700;letter-spacing:2.2px;color:var(--terracotta)}
h1{font-family:"Playfair Display";font-size:clamp(38px,4vw,62px);line-height:1.05;color:#4f443c;margin:15px 0}
h1 em{font-style:normal;color:var(--terracotta)}
.welcome-copy>p{max-width:440px;font-size:16px;line-height:1.75;color:#766b62}
.panel-note{font-size:12px;line-height:1.6;max-width:300px;color:#887b70;position:relative;z-index:2}
.cozy-scene{height:190px;position:relative;margin-top:35px;border-bottom:5px solid rgba(113,129,107,.3)}
.sun{width:85px;height:85px;background:#d89b70;border-radius:50%;position:absolute;right:17%;top:15px;opacity:.72}
.book-stack{position:absolute;bottom:4px;left:22%;width:155px;display:flex;flex-direction:column;gap:4px}.book-stack i{height:15px;border-radius:4px 7px 7px 4px;display:block}.book-stack i:nth-child(1){width:140px;background:#9c6c5a}.book-stack i:nth-child(2){width:155px;background:#75806b}.book-stack i:nth-child(3){width:120px;background:#c58a65}
.lamp{position:absolute;right:30%;bottom:7px;width:55px;height:120px}.lamp b{position:absolute;top:0;width:55px;height:42px;background:#d49a6f;border-radius:50% 50% 12px 12px}.lamp span{position:absolute;top:35px;left:25px;height:78px;width:5px;background:#786b60}.cup{position:absolute;left:10%;bottom:7px;width:38px;height:30px;border:5px solid #8e6555;border-top:0;border-radius:0 0 12px 12px}
.plant{position:absolute;bottom:5px;left:53%;width:7px;height:65px;background:#71816b;transform:rotate(5deg)}.plant:before,.plant:after{content:"";position:absolute;width:25px;height:11px;background:#71816b;border-radius:100% 0;left:-18px;top:22px;transform:rotate(-25deg)}.plant:after{left:3px;top:40px;transform:rotate(35deg)}
.form-area{padding:40px 6%;display:flex;flex-direction:column;justify-content:center;min-width:0}
.form-card{background:var(--paper);border:1px solid rgba(231,221,209,.9);border-radius:var(--radius);box-shadow:var(--shadow);padding:38px;max-width:850px;width:100%;margin:auto}
.form-head h2{font-family:"Playfair Display";font-size:34px;margin:8px 0;color:#4d433c}.form-head p{color:var(--muted);font-size:14px;margin:0 0 25px}
.progress{height:5px;background:#eee4da;border-radius:20px;overflow:hidden}.progress span{height:100%;display:block;width:0;background:var(--terracotta);transition:.3s}
.step-dots{display:flex;align-items:center;margin:22px 0 34px}.dot{display:flex;flex-direction:column;gap:5px;align-items:center;color:#aaa;font-size:10px}.dot b{width:30px;height:30px;border-radius:50%;border:1px solid #ddd3c8;display:grid;place-items:center;background:white;font-size:11px}.dot.active{color:var(--terracotta)}.dot.active b{background:var(--terracotta);border-color:var(--terracotta);color:white}.dot.done b{background:var(--sage);border-color:var(--sage);color:white}.line{height:1px;background:#e2d8cd;flex:1;margin:0 9px;margin-bottom:16px}
.step{display:none}.step.active{display:block;animation:fade .25s ease}@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.section-title{display:flex;gap:14px;margin-bottom:22px}.section-title>span{font-family:"Playfair Display";font-size:18px;color:var(--terracotta)}.section-title h3{margin:0 0 4px;font-size:19px;color:#51463e}.section-title p{margin:0;color:#9a9087;font-size:12px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;color:#665b53}.field.full{grid-column:1/-1}.field b{color:var(--terracotta)}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:#fffaf5;padding:12px 14px;font:inherit;font-size:13px;color:#51463e;outline:none;transition:.2s}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#c28a76;box-shadow:0 0 0 4px rgba(185,104,79,.09);background:white}.password{position:relative}.password input{padding-right:70px}.password button{position:absolute;right:8px;top:7px;border:0;background:#efe4d9;color:var(--terracotta-dark);border-radius:8px;padding:7px 9px;font-size:10px;cursor:pointer}
.upload-field input{padding:10px}.upload-field small{font-weight:400;color:#9c9188}.info-box{margin-top:18px;padding:13px 15px;background:#f4eee5;border-radius:12px;color:#796d63;font-size:11px;line-height:1.6}
.consent{margin-top:22px;padding:18px;background:#f5f0e9;border-radius:14px;display:grid;gap:12px}.consent label{font-size:12px;line-height:1.55;color:#6d625a;display:flex;gap:9px;align-items:flex-start}.consent input{width:auto;margin-top:3px;accent-color:var(--terracotta)}.consent a{color:var(--terracotta-dark)}
.actions{display:flex;justify-content:space-between;gap:12px;margin-top:30px}.btn{border:0;border-radius:12px;padding:12px 20px;font-weight:700;font-family:inherit;cursor:pointer}.btn.primary{background:var(--terracotta);color:white;box-shadow:0 8px 18px rgba(145,77,59,.16)}.btn.primary:hover{background:var(--terracotta-dark)}.btn.secondary{background:#eee7de;color:#6f635a}.btn:disabled{opacity:.45;cursor:not-allowed}.hidden{display:none!important}
.success-step{text-align:center;padding:18px 0 5px}.success-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#e5ece2;color:var(--sage);font-size:28px;font-weight:700}.success-step h3{font-family:"Playfair Display";font-size:28px;margin:0 0 8px}.success-step p{font-size:13px;line-height:1.7;color:#8c8177;max-width:520px;margin:0 auto 22px}.summary{display:grid;grid-template-columns:1fr 1fr;text-align:left;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}.summary div{padding:12px;background:#fffaf5}.summary span{display:block;color:#a0958c;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.summary strong{font-size:12px;color:#5b5048}
.footer-note{text-align:center;font-size:11px;color:#9a9087;margin:18px 0}.mobile-brand{display:none}
.message-card{max-width:600px;margin:10vh auto;padding:42px;background:var(--paper);border-radius:26px;box-shadow:var(--shadow);text-align:center}.message-card h2{font-family:"Playfair Display";font-size:32px}.message-card p,.message-card li{color:#81766d;line-height:1.7}.message-card ul{text-align:left;margin-bottom:25px}.message-card .btn{display:inline-block;text-decoration:none}
@media(max-width:900px){.page-shell{grid-template-columns:1fr}.welcome-panel{display:none}.mobile-brand{display:flex;align-items:center;gap:10px;margin:0 auto 20px;color:#51463e}.mobile-brand .brand-mark{width:38px;height:38px;font-size:21px}.form-area{padding:24px 16px}.form-card{padding:25px 20px;border-radius:20px}}
@media(max-width:600px){.field-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.step-dots{margin-bottom:25px}.dot span{display:none}.form-head h2{font-size:29px}.form-card{padding:22px 16px}.actions{margin-top:24px}.summary{grid-template-columns:1fr}.btn{padding:11px 15px}}
