/* Approved UI palette. Editorial = PP Editorial New; Montreal = Neue Montreal. */
:root{--bg:#050403;--panel:#100D09;--text:#F2EEE5;--text-muted:#A99F91;--gold-light:#F6DE9B;--gold:#D7A43A;--gold-deep:#9E681B;--border:#51432D;--border-active:#D7A43A;--glint:#FFF4D6}
html{scroll-behavior:smooth;scroll-padding-top:28px}
.pill,header nav{font-weight:600}
/* Matching process and contact cards, with quiet decorative numerals. */
.process-steps{gap:16px;align-items:stretch;overflow:visible}
.process-step{position:relative;isolation:isolate;min-height:400px;border-radius:18px;background:var(--panel);box-shadow:none;flex:1 1 0;transition:flex .45s var(--ease-premium),border-color .25s}
.process-step.active{flex:2.7 1 0;background:var(--panel);border-color:var(--gold)}
.step-number,.contact-number{position:absolute;pointer-events:none;user-select:none;font-family:Editorial,Georgia,serif;font-style:italic;font-weight:400;line-height:.85;letter-spacing:-.065em;color:var(--gold-light);opacity:.18;mask-image:linear-gradient(#000 20%,transparent 100%);z-index:-1}
.step-number{font-size:clamp(110px,12vw,200px);bottom:0;left:50%;transform:translateX(-50%)}
.step-toggle{display:flex;align-items:flex-start;justify-content:center;position:static;padding:66px 15px 26px;min-height:185px;color:var(--gold-light);cursor:pointer}
.step-toggle:after{content:"";position:absolute;inset:0;border-radius:18px;z-index:2}
.step-toggle:focus-visible{outline:none}.process-step:has(.step-toggle:focus-visible){outline:2px solid var(--gold-light);outline-offset:5px}
.step-title{font-family:Editorial,Georgia,serif;font-style:italic;font-weight:400;font-size:clamp(24px,2.25vw,36px);line-height:1.15;text-align:center;padding:0;letter-spacing:-.025em;text-wrap:balance}
.step-sign{top:20px;right:20px;bottom:auto;font-size:27px;line-height:1;color:var(--gold-light)}
.process-step.active .step-toggle{justify-content:flex-start;padding:45px 30px 22px;min-height:0}
.process-step.active .step-title{text-align:left;font-size:clamp(31px,3vw,44px);padding-right:15px}
.process-step.active .step-number{left:auto;right:14px;transform:none;opacity:.10}
.step-body{position:relative;z-index:1;pointer-events:none}
.step-body p{margin:0 30px 100px;font-size:16px;line-height:1.7;color:var(--text-muted)}
.process-artifact{display:none}
/* Contact actions: links, rather than expandable controls. */
.contact-hub{text-align:center;padding-top:110px;padding-bottom:110px}
.contact-hub h2{font-size:clamp(54px,7.2vw,100px);line-height:1.04;margin:24px 0 48px}
.contact-hub h2 em{color:var(--gold-light)}
.contact-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;max-width:1250px;margin:0 auto}
.contact-option{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;flex-direction:column;min-height:460px;padding:80px 25px 220px;border:1px solid var(--border);border-radius:18px;background:var(--panel);color:var(--text);text-align:center;box-shadow:none;transition:border-color .25s,transform .25s}
.contact-option-primary{background:var(--panel);border-color:var(--border)}
.contact-option h3{display:flex;align-items:center;justify-content:center;min-height:100px;margin:0 0 20px;font-size:clamp(30px,3.1vw,46px);font-style:italic;line-height:1.12;letter-spacing:-.025em}
.contact-option p{margin:0;font-size:17px;line-height:1.5;color:var(--text-muted)}
.contact-arrow{position:absolute;right:26px;top:24px;color:var(--gold-light);font-size:29px;transition:translate .25s}
/* 200px design baseline × 1.30. Keep all three numbers equally large. */
.contact-number{font-size:260px;bottom:-8px;left:50%;transform:translateX(-50%);opacity:.16}
.contact-option:hover{background:var(--panel);border-color:var(--gold-light);transform:translateY(-3px)}
.contact-option:hover .contact-arrow{translate:3px -3px}
.contact-option:focus-visible{outline:2px solid var(--gold-light);outline-offset:5px}
.contact-hub .contact-profile-note{margin-top:30px;text-align:center;color:var(--text-muted)}
.contact-profile-note a,.contact-email-link{color:var(--gold-light)}
.contact-shortcut{border-color:var(--border)}.contact-shortcut p{color:var(--text-muted)}
/* Editorial service previews, using existing project stills. */
.service-formats{gap:24px;margin-top:60px}
.service-formats>.service-format{padding:0;overflow:hidden;border:1px solid var(--border);border-radius:18px;background:var(--panel)}
.service-format>img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.service-format-copy{position:relative;padding:30px 26px 32px}
.format-number{display:block;font:12px Montreal,Arial,sans-serif;letter-spacing:.16em;color:var(--gold-light);margin-bottom:18px}
.service-formats h3{font-size:clamp(27px,2.6vw,38px);line-height:1.12;margin-bottom:16px;letter-spacing:-.025em}
.service-formats p{font-size:16px;margin:0;line-height:1.65}
.faq{padding-top:90px;padding-bottom:100px}.faq .section-title{text-align:center}.faq .section-title h2{font-size:clamp(48px,6vw,82px)}
.faq summary{padding-right:6px;align-items:center}.faq summary:after{flex-shrink:0;color:var(--gold-light)}
.faq summary:focus-visible{outline:2px solid var(--gold-light);outline-offset:7px}
/* Smooth original artwork replaces the coarse clipped silhouette only on completion. */
.archer-light{position:absolute;inset:0;opacity:0;pointer-events:none;z-index:3;transition:opacity .7s ease}
.puzzle.complete .archer-light{opacity:1}.puzzle.complete .puzzle-piece{opacity:0;filter:none}.puzzle.complete{animation:none}
.archer-assembled{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2}
.archer-halo{position:absolute;z-index:0;background:radial-gradient(ellipse,#D7A43A55 0%,#D7A43A25 32%,#D7A43A0A 52%,transparent 72%);filter:blur(10px)}
.wings-halo{left:-14%;top:16%;width:88%;height:64%;transform:rotate(-18deg)}
.bow-halo{left:40%;top:0;width:68%;height:68%;opacity:.85}
.archer-rays{position:absolute;z-index:1;width:95%;height:95%;background:repeating-conic-gradient(from 8deg,transparent 0deg 20deg,#F6DE9B45 20.3deg,transparent 21deg 46deg);mask-image:radial-gradient(ellipse,#0000 6%,#0009 14%,#0004 34%,transparent 65%);opacity:.65}
.wing-rays{left:-29%;top:-1%;transform:rotate(-12deg)}.bow-rays{left:31%;top:-18%;width:80%;height:80%;opacity:.5}
.archer-glint{position:absolute;width:11%;height:11%;z-index:4;background:linear-gradient(90deg,transparent 46%,#FFF4D6 50%,transparent 54%),linear-gradient(0deg,transparent 46%,#FFF4D6 50%,transparent 54%);mask-image:radial-gradient(#000,transparent 65%);opacity:.8}
.wing-glint{left:15%;top:41%;transform:rotate(20deg)}.bow-glint{left:80%;top:17%;transform:rotate(12deg)}
@media(min-width:901px) and (max-width:1150px){.process-steps{gap:10px}.step-toggle{padding-inline:10px}.step-title{font-size:24px}.step-body p{margin-inline:22px;font-size:15px}.process-step.active .step-toggle{padding-inline:22px}.contact-number{font-size:230px}.contact-option{padding-inline:16px}}
@media(max-width:900px){
 .process-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding:0;scroll-snap-type:none}
 .process-step,.process-step.active{width:auto;min-width:0;min-height:310px;flex:none;scroll-snap-align:none}.process-step.active{grid-column:1/-1;min-height:310px}
 .step-title{font-size:34px}.step-number{font-size:185px}.step-body p{max-width:600px;margin-bottom:75px}.step-toggle{min-height:150px;padding-top:50px}
 .contact-options{gap:14px}.contact-option{min-height:390px;padding:65px 12px 190px}.contact-option h3{font-size:30px;min-height:90px}.contact-option p{font-size:14px}.contact-number{font-size:208px}.contact-arrow{right:18px;top:18px;font-size:25px}
 .service-formats{gap:16px}.service-format-copy{padding:22px 18px}.service-formats h3{font-size:26px}
}
@media(max-width:600px){
 .process-steps{grid-template-columns:1fr;gap:16px}.process-step,.process-step.active{min-height:330px;grid-column:auto}.step-title{font-size:36px}.step-toggle{padding-top:52px}.step-number{font-size:205px}.process-step.active .step-title{font-size:36px}.step-body p{font-size:16px;margin-bottom:70px}
 .contact-hub{padding-block:75px}.contact-hub h2{margin-bottom:35px}.contact-options{grid-template-columns:1fr;gap:20px}.contact-option{min-height:420px;padding:65px 25px 205px}.contact-option h3{font-size:39px;min-height:90px;margin-bottom:12px}.contact-option p{font-size:16px}.contact-number{font-size:260px}.contact-arrow{right:25px;top:23px}
 .service-formats{grid-template-columns:1fr;gap:25px}.service-format-copy{padding:26px}.service-formats h3{font-size:34px}.faq{padding-block:70px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.process-step,.archer-light,.contact-option,.contact-arrow{transition:none}}
/* Leave room for Editorial's tall italic figures inside their fade masks. */
.step-number,.contact-number{line-height:1.15}
.step-number{bottom:-34px}.contact-number{bottom:-55px}
@media(min-width:901px){.step-title{font-size:clamp(22px,2vw,30px)}.process-step.active{flex:2.4 1 0}}
/* The supplied complete archer has a black matte; screen preserves its gold
   while allowing the broad wing and bow lighting to remain visible. */
.archer-assembled{mix-blend-mode:screen}
.archer-light{mix-blend-mode:screen}
.puzzle.complete{mix-blend-mode:screen}
