.project-stage { --stage-ink:#191a18; --stage-muted:#62645d; --stage-line:#dedfd9; position:relative; isolation:isolate; overflow:hidden; background:#fff; color:var(--stage-ink); padding:150px max(6vw,24px) 110px; scroll-margin-top:0; transition:background 1.8s,color 1.8s; }
.is-night .project-stage { --stage-ink:#f2f0e9; --stage-muted:#b4b4aa; --stage-line:#33342e; background:#10110f; }
.project-intro { position:relative; z-index:1; text-align:center; max-width:1000px; margin:auto; }
.project-stage h2,.project-statement { white-space:pre-line; }
.project-eyebrow { font:italic 29px/1.2 'Instrument Serif',serif; margin:0 0 22px; }
.project-stage h2 { font:400 clamp(42px,5.2vw,76px)/1.13 'Anton',sans-serif; letter-spacing:0; margin:0; }
.project-lead { font-size:18px; line-height:1.6; max-width:530px; margin:24px auto 0; color:var(--stage-muted); }
.project-workbench { max-width:1080px; margin:65px auto 0; display:grid; grid-template-columns:1fr 1.35fr; gap:70px; position:relative; z-index:1; }
.project-choices { display:flex; flex-direction:column; align-self:start; }
.project-choices button { text-align:left; font:400 clamp(25px,3vw,38px)/1.2 'Anton',sans-serif; padding:22px 0; border:0; border-bottom:1px solid var(--stage-line); background:transparent; color:var(--stage-muted); cursor:pointer; display:flex; align-items:center; gap:20px; transition:color .3s; }
.project-choices button::before { content:''; width:8px; height:8px; border-radius:50%; background:currentColor; opacity:.25; transition:box-shadow .5s,opacity .5s; }
.project-choices button[aria-selected=true] { color:var(--stage-ink); }
.project-choices button[aria-selected=true]::before { opacity:1; }
.is-night .project-choices button[aria-selected=true]::before { background:#eddfb9; box-shadow:0 0 16px #f4de9eaa; }
.project-choices button:hover { color:var(--stage-ink); }
.project-stage :focus-visible { outline:2px solid currentColor; outline-offset:6px; }
.project-detail { padding:24px 0 0; min-height:330px; }
.project-type { font-size:11px; text-transform:uppercase; letter-spacing:.16em; color:var(--stage-muted); margin:0 0 20px; }
.project-statement { font-size:clamp(27px,3vw,39px); font-weight:600; letter-spacing:-.035em; line-height:1.2; margin:0 0 22px; }
.project-description { color:var(--stage-muted); max-width:510px; font-size:16px; line-height:1.7; margin:0; }
.project-signoff { display:flex; align-items:center; gap:9px; margin-top:30px; font-size:11px; letter-spacing:.02em; color:var(--stage-muted); }
.project-status-dot { width:5px; height:5px; background:currentColor; border-radius:50%; }
.stage-light { position:absolute; width:62px; height:92px; top:320px; left:-18px; border:5px solid #4c504c; border-radius:7px; background:#242824; transform:rotate(-23deg); z-index:0; box-shadow:3px 5px 0 #171b17; }
.stage-light span { position:absolute; inset:6px; background:radial-gradient(ellipse,#a4aba2 0 30%,#464d43 37% 50%,transparent 58%) 0 0 / 15px 18px; transition:filter 1.8s,background 1.8s; }
.stage-light::before { content:''; position:absolute; width:8px; height:230px; top:90px; left:20px; background:linear-gradient(90deg,#525850,#868c83,#444a42); }
.stage-light::after { content:''; position:absolute; width:950px; height:760px; left:-240px; top:-335px; transform:rotate(23deg); background:radial-gradient(ellipse at 30% 50%,#f8e9bb20,transparent 66%); opacity:0; transition:opacity 1.8s; pointer-events:none; }
.is-night .stage-light span { background:radial-gradient(ellipse,#fffdf0 0 30%,#f0e3b2 37% 50%,transparent 58%) 0 0 / 15px 18px; filter:drop-shadow(0 0 7px #ffe6a9); }
.is-night .stage-light::after { opacity:1; }
body.over-project:not(.is-night) .site-header .brand { color:#191a18; }
body.over-project:not(.is-night) .brand__eye--light { opacity:0; }
body.over-project:not(.is-night) .brand__eye--dark { opacity:1; }
@media(max-width:700px) { .project-stage { padding:160px 24px 90px; } .stage-light { top:132px; } .project-workbench { grid-template-columns:1fr; gap:25px; margin-top:40px; } .project-choices { flex-direction:row; gap:16px; } .project-choices button { flex:1; font-size:20px; gap:6px; align-items:flex-start; } .project-choices button::before { flex:0 0 5px; width:5px; height:5px; margin-top:9px; } .project-detail { min-height:320px; } .project-stage h2 { font-size:44px; } }
@media(prefers-reduced-motion:reduce) { .project-stage,.stage-light,.stage-light::after,.project-choices button::before { transition:none; } }
@media(max-width:700px) { .stage-light { top:430px; left:-38px; } }
.stage-photo { position:absolute; inset:0; z-index:0; pointer-events:none; background-repeat:no-repeat; background-position:left center; background-size:cover; }
.stage-photo--day { background-image:url('./assets/section-floodlight-day.lossless.webp'); }
.stage-photo--night { background-image:url('./assets/section-floodlight-night.lossless.webp'); opacity:0; transition:opacity 1.8s; }
.is-night .stage-photo--night { opacity:1; }
@media(max-width:700px) { .stage-photo { background-size:auto 65%; background-position:-100px center; mask-image:linear-gradient(to right,#000,transparent 50%); } }
@media(prefers-reduced-motion:reduce) { .stage-photo--night { transition:none; } }
.operation-stage { background:#fff; color:#191a18; padding:120px max(6vw,24px); transition:background 1.8s,color 1.8s; }
.is-night .operation-stage { background:#10110f; color:#f2f0e9; }
.operation-heading { max-width:1000px; margin:0 auto 60px; text-align:center; }
.operation-heading h2,.operation-heading>p:last-child { white-space:pre-line; }
.operation-heading h2 { font:400 clamp(44px,5.5vw,78px)/1.13 'Anton',sans-serif; letter-spacing:0; margin:0; }
.operation-heading>p:last-child { font-size:18px; line-height:1.6; opacity:.68; margin:24px auto; }
.operation-steps { max-width:1080px; margin:auto; }
.operation-steps details { border-top:1px solid #8884; }
.operation-steps details:last-child { border-bottom:1px solid #8884; }
.operation-steps summary { display:grid; grid-template-columns:1fr 1.3fr 32px; align-items:center; padding:26px 0; gap:25px; list-style:none; cursor:pointer; }
.operation-steps summary::-webkit-details-marker { display:none; }
.operation-steps summary>span:first-child { font:400 clamp(32px,3.5vw,48px)/1.2 'Anton',sans-serif; }
.operation-summary { font-size:16px; opacity:.6; }
.operation-expand { font-size:30px; font-weight:400; transition:transform .3s; }
.operation-steps details[open] .operation-expand { transform:rotate(45deg); }
.operation-steps summary:hover .operation-summary { opacity:1; }
.operation-steps summary:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.operation-answer { display:grid; grid-template-columns:1.3fr 1fr; gap:55px; padding:0 0 32px; margin-left:43%; }
.operation-answer p { font-size:16px; line-height:1.7; margin:0; opacity:.75; }
.operation-answer strong { font-family:'Instrument Serif',serif; font-style:italic; font-weight:400; font-size:26px; line-height:1.25; align-self:end; }
@media(max-width:700px) { .operation-stage { padding:100px 24px; } .operation-steps summary { grid-template-columns:1fr 28px; gap:10px; } .operation-summary { grid-column:1; grid-row:2; font-size:14px; } .operation-expand { grid-column:2; grid-row:1 / 3; } .operation-answer { margin-left:0; grid-template-columns:1fr; gap:20px; } }
@media(prefers-reduced-motion:reduce) { .operation-stage,.operation-expand { transition:none; } }
.launch-stage { background:#fff; color:#191a18; padding:110px max(6vw,24px) 140px; transition:background 1.8s,color 1.8s; }
.is-night .launch-stage { background:#10110f; color:#f2f0e9; }
.launch-heading { text-align:center; max-width:850px; margin:0 auto 65px; }
.launch-heading h2 { font:400 clamp(48px,6vw,84px)/1.12 'Anton',sans-serif; letter-spacing:0; white-space:pre-line; }
.launch-heading>p:last-child { max-width:510px; margin:24px auto 0; font-size:18px; line-height:1.6; opacity:.68; }
.launch-layout { max-width:1080px; margin:auto; display:grid; grid-template-columns:1.3fr 1fr; gap:100px; align-items:center; }
.launch-conditions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px 38px; min-width:0; }
.launch-conditions article { border-top:2px solid currentColor; padding-top:20px; min-width:0; }
.launch-conditions h3 { font:400 30px/1.2 'Anton',sans-serif; margin:0 0 14px; }
.launch-conditions p { font-size:15px; line-height:1.7; opacity:.7; margin:0; }
.launch-principle { text-align:left; }
.launch-principle>p:first-child { font-size:12px; letter-spacing:.12em; opacity:.8; margin:0 0 24px; }
.launch-principle strong { font:400 clamp(46px,5vw,68px)/1.13 'Anton',sans-serif; white-space:pre-line; }
.launch-principle>p:last-child { font:italic 26px/1.35 'Instrument Serif',serif; white-space:pre-line; margin:24px 0 0; }
.launch-marks { display:flex; gap:8px; margin-top:28px; }
.launch-marks span { width:42px; height:6px; background:currentColor; }
@media(max-width:700px) { .launch-stage { padding:100px 24px; } .launch-layout { grid-template-columns:1fr; gap:55px; } .launch-conditions { gap:32px 25px; } .launch-principle { text-align:center; } .launch-marks { justify-content:center; } }
@media(prefers-reduced-motion:reduce) { .launch-stage { transition:none; } }
.launch-sequence .launch-conditions article{position:relative;border-top-color:#191a1828;transition:border-color .5s}
.launch-sequence .launch-conditions h3{padding-right:36px;overflow-wrap:anywhere}
@media(max-width:380px){.launch-conditions{grid-template-columns:1fr}.launch-layout{grid-template-columns:minmax(0,1fr)}}
.launch-check{position:absolute;top:19px;right:0;width:26px;height:26px;border:1px solid #191a1830;border-radius:50%;display:grid;place-items:center;transition:background .45s,border-color .45s}
.launch-check svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.launch-check path{stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .55s ease}
.launch-sequence .condition-checked{border-top-color:#8a7750!important}
.condition-checked .launch-check{background:#eee4cd;border-color:#b6a57c;color:#24261f}
.condition-checked .launch-check path{stroke-dashoffset:0}
.launch-sequence .launch-marks span{position:relative;background:#191a1820;overflow:hidden}
.launch-sequence .launch-marks span:after{content:'';position:absolute;inset:0;background:#b7a271;transform:scaleX(0);transform-origin:left;transition:transform .6s ease}
.launch-sequence .launch-marks .mark-checked:after{transform:scaleX(1)}
.launch-sequence .launch-principle strong{display:inline-block;opacity:.5;transition:opacity .7s,transform .7s;transform:translateY(4px)}
.launch-complete .launch-principle strong{opacity:1;transform:translateY(0)}
.is-night .launch-sequence .launch-conditions article{border-top-color:#ffffff30}
.is-night .launch-check{border-color:#ffffff40}
.is-night .launch-sequence .launch-marks span{background:#ffffff25}
@media(prefers-reduced-motion:reduce){.launch-sequence *,.launch-sequence *:after{transition:none!important}}
.academy-stage { background:#fff; color:#191a18; padding:110px max(6vw,24px) 130px; transition:background 1.8s,color 1.8s; }
.is-night .academy-stage { background:#10110f; color:#f2f0e9; }
.academy-heading { text-align:center; margin:0 auto 60px; }
.academy-heading h2 { font:400 clamp(48px,8vw,112px)/1.15 'Anton',sans-serif; letter-spacing:0; margin:0; }
.academy-heading>p:last-child { font-size:18px; opacity:.65; margin:20px 0 0; }
.academy-editorial { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:65px; max-width:1200px; margin:auto; }
.academy-photos { display:grid; grid-template-columns:1.2fr 1fr; align-items:start; gap:14px; }
.academy-photos img { display:block; width:100%; height:auto; border-radius:3px; }
.academy-photos img:last-child { margin-top:85px; }
.academy-development { font-size:10px; letter-spacing:.14em; opacity:.6; margin:0 0 20px; }
.academy-story h3 { font:400 clamp(30px,3vw,42px)/1.2 'Anton',sans-serif; margin:0 0 22px; white-space:pre-line; }
.academy-description { font-size:16px; line-height:1.7; opacity:.7; }
.academy-story dl { margin:28px 0; font-size:13px; }
.academy-story dl>div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid #8883; }
.academy-story dt { opacity:.7; }.academy-story dd { margin:0; text-align:right; }
.academy-cta { display:inline-flex; gap:30px; align-items:center; background:#191a18; color:#fff; padding:15px 23px; border-radius:999px; font-size:14px; font-weight:600; transition:transform .2s; }
.is-night .academy-cta { background:#eee5ce; color:#191a18; }
.academy-cta:hover { transform:translateY(-2px); }.academy-cta:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
@media(max-width:700px) { .academy-stage { padding:100px 24px; } .academy-editorial { grid-template-columns:1fr; gap:40px; } .academy-photos img:last-child { margin-top:45px; } .academy-heading h2 { font-size:clamp(40px,9vw,64px); } }
@media(prefers-reduced-motion:reduce) { .academy-stage,.academy-cta { transition:none; } }
.enquiry-stage { text-align:center; color:#191a18; background:#fff; padding:130px 24px 150px; transition:background 1.8s,color 1.8s; }
.is-night .enquiry-stage { background:#10110f; color:#f2f0e9; }
.enquiry-stage h2 { font:400 clamp(54px,8vw,114px)/1.13 'Anton',sans-serif; letter-spacing:0; white-space:pre-line; max-width:1100px; margin:0 auto; }
.enquiry-intro { max-width:530px; margin:30px auto; font-size:18px; line-height:1.65; opacity:.7; }
.enquiry-action { display:inline-flex; align-items:center; gap:36px; background:#191a18; color:#fff; padding:18px 26px; border-radius:999px; font-size:16px; font-weight:600; transition:transform .2s; }
.is-night .enquiry-action { background:#efe5ca; color:#191a18; }
.enquiry-action>span:last-child { font-size:24px; transition:transform .2s; }
.enquiry-action:hover { transform:translateY(-3px); }.enquiry-action:hover>span:last-child { transform:translate(2px,-2px); }
.enquiry-action:focus-visible { outline:2px solid currentColor; outline-offset:6px; }
.enquiry-brief { display:flex; gap:20px; flex-wrap:wrap; justify-content:center; margin:65px auto 18px; font:italic 24px/1.35 'Instrument Serif',serif; }
.enquiry-brief>span[aria-hidden] { opacity:.25; }
.enquiry-note { max-width:540px; font-size:12px; line-height:1.7; opacity:.7; margin:0 auto; }
@media(max-width:600px) { .enquiry-stage { padding:100px 24px 120px; } .enquiry-stage h2 { font-size:clamp(42px,9vw,60px); } .enquiry-brief { gap:10px; font-size:20px; margin-top:45px; } }
@media(prefers-reduced-motion:reduce) { .enquiry-stage,.enquiry-action,.enquiry-action>span:last-child { transition:none; } }
