/* Match the approved campaign poster's scale, rhythm and image-led planes. */
.officialChatGPT{text-transform:none;letter-spacing:-.03em}
.hero h1>.gptHeadline{font-size:.77em;line-height:1.3}
.hero .eyebrow .officialChatGPT{letter-spacing:.01em}
.heroSignature{display:flex;align-items:center;gap:12px;width:max-content;max-width:100%;height:32px;color:#071d20;font-family:"Albert Sans",Arial,sans-serif;letter-spacing:0}
.heroSignature .heroPlannerLogo{width:130px;height:auto}
.heroSignature>span{font-size:12px;color:#315747}
.heroSignature .gptMark{width:26px;height:26px}
.heroSignature strong{font-size:23px;letter-spacing:-.03em;font-weight:600}
.composerPlanner{width:clamp(23px,2.4vw,34px);height:auto;flex-shrink:0}
.composerText{display:flex;align-items:center;min-width:0;min-height:1.4em}
.typingCaret{display:none;width:2px;height:1.1em;background:#17271d;margin-left:3px;flex-shrink:0}
.is-typing .typingCaret{display:block;animation:caretPulse .8s step-end infinite}
.roomBuild{position:relative;width:100%;aspect-ratio:1448/1086;filter:drop-shadow(0 25px 20px #00442735)}
.buildLayer,.buildPlan{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.buildLayer{opacity:0;transition:opacity 1.8s cubic-bezier(.35,0,.2,1);transform:none;will-change:opacity}
.buildFinished{opacity:1;transform:none}
.buildPlan{color:#183c2d;opacity:0;transform:translate(19%,6%) scale(.7);transform-origin:50% 58%;transition:opacity 1.3s cubic-bezier(.35,0,.2,1),transform 1.8s cubic-bezier(.35,0,.2,1);filter:drop-shadow(0 12px 18px #00442720)}
.planTrace{stroke-dasharray:100;stroke-dashoffset:0}
[data-build="typing"] .buildFinished,[data-build="plan"] .buildFinished,[data-build="shell"] .buildFinished,[data-build="furniture"] .buildFinished,[data-build="details"] .buildFinished{opacity:0}
[data-build="plan"] .buildPlan{opacity:1;transform:translate(19%,6%) scale(.7)}
.buildRunning[data-build="plan"] .planTrace{animation:drawPlan 1.4s cubic-bezier(.35,0,.2,1) both}
.buildRunning[data-build="plan"] .planFurniture .planTrace{animation-delay:.3s}
.buildRunning[data-build="plan"] .planObject,.buildRunning[data-build="plan"] .planAnnotations{animation:planInk 1.2s ease .7s both}
[data-build="shell"] .buildPlan{opacity:0;transform:perspective(1100px) rotateX(35deg) rotateZ(-12deg) scale(.9)}
[data-build="shell"] .buildShell,[data-build="furniture"] .buildShell,[data-build="details"] .buildShell{opacity:1;transform:none}
[data-build="furniture"] .buildFurniture,[data-build="details"] .buildFurniture{opacity:1;transform:none}
[data-build="details"] .buildDetails,[data-build="done"] .buildDetails{opacity:1;transform:none;transition-duration:2s}
[data-build="done"] .buildFinished{opacity:1;transform:none}
[data-build="done"] .buildShell,[data-build="done"] .buildFurniture{opacity:0;transition-delay:1.8s}
.heroStage:not([data-build="done"]) .roomBrand{opacity:0;transition:opacity .6s}
.heroStage[data-build="done"] .roomBrand{opacity:1;transition:opacity .6s}
.heroStage:not([data-build="done"]) .handNote{opacity:0;transition:opacity .6s}
.heroStage[data-build="done"] .handNote{opacity:1;transition:opacity .6s}
.sceneComposer .sendIcon{color:#1bef7b}
@media(max-width:700px){.heroSignature{gap:9px;height:26px}.heroSignature .heroPlannerLogo{width:107px}.heroSignature .gptMark{width:22px;height:22px}.heroSignature strong{font-size:20px}}
@keyframes drawPlan{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes planInk{from{opacity:0}to{opacity:1}}
@media(max-width:700px){.buildPlan,[data-build="plan"] .buildPlan{transform:scale(.88)}}
@keyframes caretPulse{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.buildPlan,.buildShell,.buildFurniture,.buildDetails{display:none}.heroStage[data-build] .buildFinished{opacity:1;transform:none}.heroStage[data-build] .roomBrand{opacity:1}.typingCaret{display:none!important}}
:root{--campaign-green:#1bef7b}
@font-face{font-family:Anton;src:url('assets/Anton-Regular.ttf') format('truetype');font-display:swap;font-weight:400}
.hero h1,.finalInner h2{font-family:Anton,"Albert Sans",sans-serif;font-weight:400;letter-spacing:-.035em}
.hero{background:#f3f5ef;min-height:0;height:73vw;max-height:1120px}
.hero:before{display:block;background:url('assets/hero-atmosphere-v2.webp') center/cover;opacity:1;mix-blend-mode:normal;filter:grayscale(1) sepia(.12) brightness(1.1)}
.heroCopy{padding:3.8vw 4.4vw 0}
.hero .eyebrow{font-size:clamp(12px,1.35vw,20px);letter-spacing:.12em}
.hero .eyebrow .gptMark{display:none}
.hero h1{font-family:Anton,"Albert Sans",sans-serif;font-size:9vw;line-height:1;letter-spacing:-.025em;margin:1.6vw 0 2.3vw;font-weight:400}
.hero h1>span{width:max-content;max-width:100%;transform:scaleX(1.45);transform-origin:left;animation:none}
.hero h1 .lastLine{font-size:.94em;letter-spacing:-.025em;transform:scaleX(1.2) rotate(-5deg);transform-origin:0 50%;animation:none;margin-top:2vw}
.heroLead{font-size:clamp(17px,2vw,28px);line-height:1.3;max-width:34%;position:relative;z-index:4}
.heroActions{flex-direction:column;align-items:flex-start;gap:20px;margin-top:2vw}
.heroActions .button{font-size:clamp(15px,1.7vw,24px);padding:18px 40px;min-height:60px}
.heroActions .textLink{font-size:clamp(14px,1.45vw,20px)}
.heroStage{width:70%;max-width:none;right:-2%;bottom:6vw}
.heroRoom{width:100%;filter:drop-shadow(0 25px 20px #00442735);position:relative;z-index:1}
.sceneComposer{z-index:2;width:95%;padding:2.7vw 2.3vw;margin-top:-13%;border-radius:28px;transform:rotate(7deg);box-shadow:0 18px 30px #10271b24;border:1px solid #d5ddd7;background:linear-gradient(180deg,#fff,#edf0f1);gap:22px;min-height:115px}
.sceneComposer:hover{transform:rotate(9deg) translateY(-3px)}
.sceneComposer .gptMark{width:45px;height:45px}
.sceneComposer .attachIcon,.exampleComposer .attachIcon{display:grid;place-items:center;width:52px;height:52px;border:1px solid #d4d8d5;border-radius:50%;background:#f9fafb;color:#39433d;flex-shrink:0}
.composerText{font-size:clamp(17px,1.7vw,26px);font-weight:400}
.sceneComposer .sendIcon{width:66px;height:66px;font-size:44px;background:#0c1111}
.roomBrand{z-index:3;top:27%;right:15%;width:65px;height:65px;transform:rotate(10deg);border-radius:10px;box-shadow:4px 5px 3px #0426174d}
.handNote{top:-4%;right:3%;font-family:"Albert Sans",sans-serif;font-style:italic;font-size:clamp(20px,2.5vw,36px);transform:rotate(-9deg);color:#092b20}
.handNote svg{width:100px;height:85px}
.sectionInner{width:calc(100% - 9%);max-width:1440px}
.saySection{min-height:0;height:44vw;max-height:660px;align-items:flex-start}
.sayContent{padding:4vw 0}
.sayContent h2{font-size:9vw;letter-spacing:-.065em;white-space:nowrap}
.sayContent h2 span{color:var(--campaign-green)}
.sayContent>p{font-size:2.35vw;margin:1vw 0 3vw}
.saySection:after{background:linear-gradient(90deg,#00271abd 0%,#00271a40 55%,transparent 80%)}
.messageStory{max-width:70%}
.messageBubble{font-size:2.5vw;font-weight:400;padding:2vw 2.8vw;gap:2vw;border-radius:27px;box-shadow:0 10px 15px #0001;position:relative}
.messageBubble img{width:4.8vw;height:4.8vw;max-width:64px;max-height:64px}
.userBubble:after{content:"";position:absolute;bottom:-18px;left:38px;border-top:24px solid #fffef8;border-left:18px solid transparent}
.answerBubble{background:#fffef8;color:#15241d;margin:1.8vw 0 0 10vw}
.workflow{position:relative;isolation:isolate;overflow:hidden;width:100%;max-width:none;padding:3.5vw 4.4vw 4vw;background:white url('assets/workflow-atmosphere-v2.webp') center/cover;min-height:50vw}
.workflow h2{font-size:5.25vw;line-height:1.05;letter-spacing:-.06em;position:relative;z-index:1}
.workflow h2>span{color:#06ba58}
.workflowLayout{grid-template-columns:44% 56%;gap:0;margin-top:2vw}
.workflowSteps{max-width:95%}
.workflowStep{border-left:0;padding:2vw 0;gap:2.5vw}
.workflowStep.active{border-left:0}
.workflowStep svg{color:#0cbd5c;width:5.2vw;height:5.2vw;max-width:76px;max-height:76px;stroke-width:1.7}
.workflowStep strong{font-size:2.6vw;margin-bottom:.4vw;letter-spacing:-.04em}
.workflowStep span>span{font-size:1.6vw;max-width:380px;line-height:1.3}
.instructionPreview{padding:0 0 0 1vw}
.exampleComposer{transform:rotate(3deg);border-radius:24px;border:1px solid #d5ddd7;background:linear-gradient(180deg,#fff,#edf0f1);box-shadow:0 7px 0 #e2e4df,0 20px 26px #192f1a30;padding:2vw 1.8vw;gap:15px}
.exampleComposer p{font-size:1.5vw;font-weight:400;color:#6b766e}
.exampleCaption{margin-top:35px;max-width:90%;font-size:11px;opacity:.75}
.flowSection{min-height:0;height:40vw;max-height:640px}
.flowCopy{padding:3vw 0}
.flowCopy .eyebrow{display:none}
.flowCopy h2{font-size:8vw;margin:0 0 1.5vw}
.flowCopy>p:not(.eyebrow){font-size:1.8vw;line-height:1.25;max-width:37%;margin-bottom:2vw}
.flowCopy .button{font-size:1.7vw;padding:18px 35px}
.faq{padding:3.5vw 0;grid-template-columns:46% 54%;gap:0;align-items:center}
.faq h2{font-size:10.5vw}
.faqList{border-left:1px solid #e0e6e1;padding-left:25px}
.faqList summary{font-size:1.55vw;padding:20px 35px 20px 0}
.faqList details:first-child{border-top:0}
.finalSection{position:relative;isolation:isolate;background:#00291d url('assets/campaign-wall.webp') center/cover}
.finalSection:before{content:"";position:absolute;inset:0;z-index:-1;background:#002b20d9}
.finalInner{padding:3vw 0 2vw}
.finalInner>.eyebrow{display:none}
.finalInner h2{font-size:8.1vw;line-height:1;margin:0 0 2.5vw;color:var(--campaign-green);transform:scaleX(1.2)}
.finalComposer{max-width:72%;margin-bottom:2vw;padding:1.5vw 2vw;box-shadow:0 7px 0 #d6dfd8;border-radius:20px}
.finalInner>.button{font-size:1.7vw;padding:18px 38px;background:var(--campaign-green)}
.productSignature{margin-top:2.5vw;gap:15px}
.productSignature>img:first-child{background:none;padding:0;width:155px;filter:none;content:url('/assets/planner5d-logo-footer.svg')}
.productSignature strong{font-size:30px}
.siteFooter{padding-top:24px;padding-bottom:24px}
@media(min-width:1600px){.hero h1{font-size:144px}.heroCopy{padding-top:60px}.heroLead{max-width:500px}.heroStage{max-width:1260px;right:0}.handNote{font-size:36px}}
@media(max-width:700px){.hero{height:auto;max-height:none;padding-bottom:28px}.heroCopy{padding:30px 20px 0}.hero h1{font-size:12vw;margin:20px 0 30px;line-height:.87}.hero h1 .lastLine{font-size:.85em}.heroLead{font-size:17px;max-width:85%}.heroActions{gap:16px;margin-top:20px;flex-direction:row;align-items:center}.heroActions .button{font-size:14px;min-height:46px;padding:14px 24px}.heroActions .textLink{font-size:12px}.heroStage{position:relative;width:112%;margin:0 -6%;bottom:auto;right:auto}.sceneComposer{min-height:0;padding:20px 15px;gap:9px;border-radius:17px;box-shadow:0 6px 0 #e2e4df,0 15px 25px #00381f48;transform:rotate(7deg);width:91%;margin-top:-10%}.sceneComposer:hover{transform:rotate(7deg)}.sceneComposer .gptMark{width:26px;height:26px}.sceneComposer .attachIcon{width:27px;height:27px;font-size:20px}.sceneComposer .composerText{font-size:13px}.sceneComposer .sendIcon{width:34px;height:34px;font-size:26px}.roomBrand{width:31px;height:31px;top:28%;right:17%}.handNote{display:none}.saySection{height:auto;max-height:none;min-height:340px}.sayContent{padding:40px 0}.sayContent h2{font-size:11.5vw}.sayContent>p{font-size:15px;max-width:none;margin:12px 0 25px}.messageStory{max-width:100%}.messageBubble{font-size:14px;padding:16px;gap:12px;border-radius:15px}.messageBubble img{width:30px;height:30px}.answerBubble{margin:16px 0 0 24px}.userBubble:after{bottom:-12px;border-top-width:15px;border-left-width:12px}.workflow{padding:40px 20px;min-height:0;background-position:60% center}.workflow h2{font-size:31px}.workflowLayout{grid-template-columns:1fr;margin-top:20px}.workflowSteps{max-width:100%}.workflowStep{padding:20px 0;gap:18px}.workflowStep svg{width:43px;height:43px}.workflowStep strong{font-size:23px;margin-bottom:6px}.workflowStep span>span{font-size:15px;max-width:280px}.instructionPreview{padding:35px 0 20px}.exampleComposer{padding:17px;gap:10px;border-radius:15px}.exampleComposer p{font-size:13px}.exampleComposer .attachIcon{width:28px;height:28px;font-size:22px}.exampleCaption{font-size:10px;max-width:100%;margin-top:24px}.flowSection{height:auto;min-height:400px}.flowCopy{padding:45px 0}.flowCopy h2{font-size:70px;margin-bottom:18px}.flowCopy>p:not(.eyebrow){font-size:16px;max-width:80%;margin-bottom:25px}.flowCopy .button{font-size:14px;padding:14px 25px}.faq{grid-template-columns:1fr;padding:40px 0;gap:25px}.faq h2{font-size:65px}.faqList{border:0;padding-left:0}.faqList summary{font-size:16px;padding:20px 35px 20px 0}.finalInner{padding:40px 0 30px}.finalInner h2{font-size:10vw;line-height:.95;margin-bottom:25px}.finalComposer{max-width:100%;padding:16px 12px;gap:9px;margin-bottom:25px;border-radius:15px}.finalPlaceholder{font-size:12px}.finalInner>.button{font-size:14px;padding:14px 25px}.productSignature{margin-top:35px;gap:10px}.productSignature>img:first-child{width:115px}.productSignature strong{font-size:22px}}
@media(max-width:700px){.sceneComposer{box-shadow:0 12px 24px #10271b24}}
@media(prefers-reduced-motion:reduce){.hero h1 .lastLine{transform:rotate(-7deg)}}
@media(max-width:700px){.hero h1{font-size:15vw;line-height:1.05}.hero h1>span{transform:scaleX(1.3)}.hero h1 .lastLine{font-size:.78em;transform:scaleX(1.15) rotate(-4deg)}.finalInner h2{transform:none;line-height:1.05}.heroLead{background:none}.exampleCaption{background:#ffffffbd;padding:5px;border-radius:4px}}

/* Keep the poster together on wide monitors. The background stays full bleed;
   text and image use one shared scale based on BOTH viewport dimensions. */
@media(min-width:1101px){
  .hero{
    --poster:min(100vw,calc(clamp(720px,calc(100svh - 82px),1120px) * 1.37),1600px);
    height:clamp(720px,calc(100svh - 82px),1120px);
    max-height:none;
  }
  .heroCopy{width:var(--poster);margin-inline:auto;padding:calc(var(--poster) * .038) calc(var(--poster) * .044) 0}
  .hero .eyebrow{font-size:clamp(12px,calc(var(--poster) * .0135),20px)}
  .hero h1{font-size:calc(var(--poster) * .09);margin:calc(var(--poster) * .016) 0 calc(var(--poster) * .023)}
  .hero h1 .lastLine{margin-top:calc(var(--poster) * .02)}
  .heroLead{font-size:clamp(17px,calc(var(--poster) * .02),28px);width:calc(var(--poster) * .34);max-width:none}
  .heroActions{margin-top:calc(var(--poster) * .02)}
  .heroActions .button{font-size:clamp(15px,calc(var(--poster) * .017),24px)}
  .heroActions .textLink{font-size:clamp(14px,calc(var(--poster) * .0145),20px)}
  .heroStage{width:calc(var(--poster) * .70);max-width:none;right:calc((100% - var(--poster)) / 2 - var(--poster) * .02);bottom:calc(var(--poster) * .06)}
  .sceneComposer{padding:calc(var(--poster) * .027) calc(var(--poster) * .023)}
  .composerText{font-size:clamp(17px,calc(var(--poster) * .017),26px)}
  .handNote{font-size:clamp(20px,calc(var(--poster) * .025),36px)}
}
@media(min-width:1500px){
  .saySection{height:660px}
  .sayContent{padding:60px 0}
  .sayContent h2{font-size:135px}
  .sayContent>p{font-size:32px;margin:15px 0 40px}
  .messageStory{max-width:1010px}
  .messageBubble{font-size:34px;padding:28px 38px;gap:28px}
  .answerBubble{margin:26px 0 0 140px}
  .workflow{padding:55px max(66px,calc((100% - 1440px) / 2));min-height:760px}
  .workflow h2{font-size:76px}
  .workflowLayout{margin-top:30px}
  .workflowStep{padding:28px 0;gap:36px}
  .workflowStep strong{font-size:36px;margin-bottom:7px}
  .workflowStep span>span{font-size:23px}
  .instructionPreview{padding-left:15px}
  .exampleComposer{padding:28px 26px}
  .exampleComposer p{font-size:22px}
  .flowSection{height:600px}
  .flowCopy{padding:45px 0}
  .flowCopy h2{font-size:120px;margin-bottom:24px}
  .flowCopy>p:not(.eyebrow){font-size:26px;margin-bottom:30px;max-width:530px}
  .flowCopy .button{font-size:24px}
  .faq{padding:52px 0}
  .faq h2{font-size:150px}
  .faqList summary{font-size:23px}
  .finalInner{padding:45px 0 35px}
  .finalInner h2{font-size:120px;margin-bottom:38px}
  .finalComposer{padding:23px 30px;margin-bottom:30px}
  .finalInner>.button{font-size:24px}
  .productSignature{margin-top:38px}
}
