/* Cadence section adaptations; gallery styles deliberately remain untouched. */
.hero-line{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.hero-line-inner{display:block;will-change:transform}
html.motion-enhanced .hero-media.cr-media{transition-delay:.35s}
.service-body{padding-left:0}
.service-image{isolation:isolate}
.service-image>img{transition:none!important}
.service-swipe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;pointer-events:none;will-change:transform,clip-path}
.service-image figcaption{z-index:2}
.service-list summary:focus-visible{outline:2px solid var(--copper);outline-offset:5px}
.al-comp{--ratio:1.6842105263;--col:.57;--h:min(540px,calc((100vw - 2 * var(--pad)) / (var(--ratio) + var(--gap) + var(--col))))}
.al-photo img{object-fit:cover}
.al-eyebrow{font-size:clamp(10px,1vw,13px);line-height:1.2}
.al-text{font-size:clamp(14px,1.55vw,22px);letter-spacing:-.025em}
.annotation-note{font-size:10px;line-height:1.6}
.scene-progress button{position:relative;min-height:44px;border-top:1px solid #ffffff70}
.scene-progress button::before{content:"";position:absolute;left:0;right:0;top:-2px;height:2px;background:#fff;transform:scaleX(var(--scene-fill,0));transform-origin:left}
.scene-progress button.active{border-top:1px solid #ffffff70}
.scene-progress button span{font-size:clamp(10px,1vw,13px)}
.sw-card{background:rgb(12 20 15 / .72);backdrop-filter:blur(12px)}
.sw-photo{will-change:transform}
.contact .contact-title{overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.contact-title .wp-line{display:flex;flex-direction:column;align-items:flex-start;font-size:inherit;line-height:1.13;white-space:normal;color:inherit;gap:.02em}
.contact-title .wp-mask{height:1.22em;clip-path:inset(0 -0.1em 0 -0.1em);overflow:hidden}
.contact-title .wp-lead{transform:none}
.contact-title .wp-slot{margin:0;color:#fff7ec;width:100%;min-width:0}
.contact-title .contact-static-word{display:block}
.contact-title .wp-word{white-space:nowrap;transition:transform 600ms cubic-bezier(.22,1,.36,1)}
.contact .contact-title>span{color:inherit}
.contact-bottom{will-change:transform}
.contact-links{display:flex;flex-wrap:wrap;gap:20px 36px;margin-bottom:36px}
.contact-links a{font-size:clamp(17px,2vw,26px);text-decoration:underline;text-underline-offset:6px;min-height:44px;display:inline-flex;align-items:center;overflow-wrap:anywhere}
[hidden]{display:none!important}
#brief-email{display:inline-flex;text-align:center;align-items:center;justify-content:center}
#email-hint{font-size:13px;line-height:1.6;margin-top:18px}
.footer-brand{clip-path:inset(-.15em -.1em -.15em -.1em)}
.motion-wall{padding-bottom:35px}
/* Large, legible scenes; static layouts stay complete without animation. */
.hero-media{margin-inline:auto}
html.section-motion-ready .hero-media,html.section-motion-ready .service-image{transition:none!important}
.about{display:block}
.about-stage{width:100%}
.about .section-label{margin-bottom:30px}
.about-statement{font-size:clamp(45px,7.4vw,124px);line-height:1.06;letter-spacing:-.065em}
.about-word-mask{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.about-word-mask>span{display:block;transform-origin:left center}
.about-word-mask:nth-child(2){color:var(--copper);text-align:right}
.about-word-mask:nth-child(3){padding-left:18%}
.about-description{max-width:650px;margin-top:28px;margin-left:auto;font-size:clamp(14px,1.3vw,19px)}
.about-bottom{margin-top:24px}
html.section-motion-ready .about{min-height:185svh;padding-top:70px;padding-bottom:70px}
html.section-motion-ready .about-stage{position:sticky;top:105px}
.service-list{overflow:hidden}
.construction-detail{margin-inline:calc(-1 * var(--pad));padding:75px var(--pad);background:var(--dark);color:var(--paper)}
.construction-detail .muted,.construction-detail .al-eyebrow{color:#d9a583}
.construction-detail .annotation-note{color:#bac2b6}
.construction-detail .al-lines--page line{stroke:#d9a583}
.construction-detail .al-label{border-color:#ffffff40}
.st-stage{height:clamp(410px,48vw,730px);transform-origin:center}
.contact{position:relative;isolation:isolate;background:var(--dark);overflow:hidden}
.contact-wipe{position:absolute;inset:0;z-index:-1;background:var(--copper);transform-origin:center bottom}
.contact>.wrap{position:relative}
.contact-title{perspective:900px}
footer{background:#1b241f;color:var(--paper);padding-top:90px}
.footer-brand{perspective:1000px}
.footer-glyphs{display:block;font-weight:inherit;white-space:nowrap}
.footer-glyph{display:inline-block;transform-origin:center bottom}
.footer-brand>span{color:#d9a583}
.footer-row{color:#b9c2b5;border-color:#ffffff35}
@media(max-width:760px){
 .about-statement{font-size:clamp(31px,8.5vw,65px)}
 .about .section-label{margin-bottom:22px}
 .about-description{margin-top:22px;font-size:13px}
 .about-bottom{margin-top:20px}
 html.section-motion-ready .about{min-height:160svh;padding-top:55px;padding-bottom:55px}
 html.section-motion-ready .about-stage{top:92px}
 .construction-detail{padding-top:50px;padding-bottom:40px}
 .st-stage{height:440px}
 footer{padding-top:60px}
 .service-body{padding-left:0}
 .service-tags{font-size:10px;line-height:1.6}
 .service-list summary h3{font-size:clamp(20px,5.5vw,24px)}
 .contact .contact-title{font-size:clamp(37px,9.2vw,64px)}
 .scene-progress{gap:10px}
 .scene-progress button span{font-size:10px;letter-spacing:.02em}
 .al-comp{width:100%;height:auto;display:grid;gap:22px}
 .al-photo{position:relative;width:100%;height:auto;aspect-ratio:1600/950}
 .al-labels{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .al-label{position:static;width:auto;transform:none!important;border-top:1px solid var(--line);padding-top:12px}
 .al-eyebrow{font-size:10px;letter-spacing:.01em;margin-bottom:9px}
 .al-text{font-size:13px;line-height:1.5;letter-spacing:-.02em;text-wrap:wrap}
 .al-lines--page,.al-lines--photo line{display:none}
 .annotation-note{font-size:9px;margin-top:16px}
 .contact-links{gap:12px}
 .motion-wall{padding-bottom:10px}
}
@media(prefers-reduced-motion:reduce){
 .about-stage{position:static!important}
 .contact-wipe,.footer-glyph,.about-word-mask>span{transform:none!important;opacity:1!important}
 .hero-line-inner,.service-swipe,.contact-bottom,.footer-brand,.sw-photo{transform:none!important;clip-path:none!important;opacity:1!important;will-change:auto}
 .contact-title .wp-word{transition:none}
}
@media(max-height:650px) and (min-width:761px){
 html.section-motion-ready .about{min-height:150svh}
 html.section-motion-ready .about-stage{position:relative;top:auto}
 .about-statement{font-size:clamp(45px,6vw,85px)}
}

/* Shared photo corners, including animated wrappers and dynamically created media. */
:root{--media-radius:24px}
.hero-media,.service-image,.al-photo,.sw-stage,.sw-scene,.connected-grid .cg-img,
.project-open,.pc-card,.pc-card-inner,.hp-preview,.video-dialog{
 border-radius:var(--media-radius);overflow:hidden;isolation:isolate;
}
.hero-media video,.service-image img,.al-photo img,.project-open img,
.pc-card img,.hp-image,.video-dialog video{border-radius:var(--media-radius)}
/* The ticker frame scales, so compensate to keep its visible corners consistent. */
.st-item{border-radius:calc(var(--media-radius) / var(--ticker-scale,1))}
.lightbox-image{display:flex;align-items:center;justify-content:center}
.lightbox-image img{width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--media-radius)}
@media(max-width:760px){:root{--media-radius:16px}}

.construction-detail .section-head>p{color:#c4c9bd}

/* Fixed landscape iPad: artwork and screen keep identical bounds for every photo. */
.lightbox{
 --device-ratio:1.3033509700;
 width:1100px;max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);
 padding:52px 16px 16px;background:transparent;color:#f3f0e9;box-shadow:none;overflow:auto;
}
.lightbox::backdrop{background:#0b110feb;backdrop-filter:blur(16px)}
.lightbox>.dialog-close{top:0;right:16px;width:44px;height:44px;background:#ffffff15;color:#fff;border:1px solid #ffffff38;font-size:27px}
.lightbox-device{
 position:relative;width:min(100%,calc((100svh - 224px) * var(--device-ratio)));
 aspect-ratio:2956 / 2268;margin:0 auto;
 filter:drop-shadow(0 24px 32px #0008);
}
.lightbox-device>.device-frame{
 position:absolute;left:50%;top:50%;width:76.7253044655%;height:130.3350970018%;
 max-width:none;transform:translate(-50%,-50%) rotate(90deg);
 pointer-events:none;user-select:none;z-index:2;
}
.lightbox .lightbox-image{
 position:absolute;left:3.450608930%;top:4.497354497%;width:93.098782139%;height:91.005291005%;padding:0;
 overflow:hidden;isolation:isolate;border-radius:2.252906977% / 3.003875969%;background:#070b09;
}
.lightbox .lightbox-image img{position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;border-radius:0}
.lightbox .lightbox-bottom{
 display:grid;grid-template-columns:44px minmax(0,1fr) auto 44px;align-items:center;gap:16px;
 width:min(100%,calc((100svh - 224px) * var(--device-ratio)));
 height:84px;margin:20px auto 0;padding:0;
}
.lightbox-bottom>div{min-width:0}
.lightbox .lightbox-bottom h3{
 font-size:clamp(15px,1.8vw,21px);line-height:1.3;overflow-wrap:break-word;
 display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
}
.lightbox .lightbox-bottom .eyebrow{color:#b3beb5;line-height:1.5;margin-bottom:4px}
.lightbox .lightbox-bottom button{width:44px;height:44px;border:1px solid #ffffff30;border-radius:50%;background:#ffffff0c;font-size:20px}
.lightbox .lightbox-bottom button:hover{background:#ffffff20}
.lightbox .lightbox-bottom>#lightbox-count{font-size:10px;margin:0;white-space:nowrap;color:#b3beb5}
@media(max-width:760px){
 .lightbox{padding-inline:8px;max-width:calc(100vw - 16px)}
 .lightbox>.dialog-close{right:8px}
 .lightbox .lightbox-bottom{gap:0 10px;grid-template-columns:44px minmax(0,1fr) 44px;grid-template-rows:64px 20px;margin-top:16px}
 .lightbox .lightbox-bottom>#lightbox-count{grid-column:2;grid-row:2;font-size:10px;align-self:start}
 #gallery-next{grid-column:3;grid-row:1}
 .lightbox .lightbox-bottom .eyebrow{font-size:7px}
}

/* iOS-inspired paging lives inside the stationary hardware frame. */
.lightbox .lightbox-image{touch-action:pan-y pinch-zoom;cursor:grab}
.lightbox .lightbox-image.is-dragging{cursor:grabbing}
.gallery-page{position:absolute;inset:0;background:#070b09;will-change:transform;user-select:none}
.gallery-page img{pointer-events:none;-webkit-user-drag:none;user-select:none}
#lightbox-status{z-index:3;pointer-events:none}
@media(prefers-reduced-motion:reduce){.gallery-page{will-change:auto}}

/* Project brief: rounded split panel with tactile service choices. */
.brief-dialog{width:960px;max-width:calc(100vw - 40px);max-height:calc(100svh - 40px);padding:0;border:1px solid #ffffff70;border-radius:28px;background:#faf9f5;overflow:hidden;box-shadow:0 32px 100px #06100c55}
.brief-dialog::backdrop{background:#101b16a6;backdrop-filter:blur(14px)}
.brief-dialog>.dialog-close{top:16px;right:16px;width:40px;height:40px;display:grid;place-items:center;border:1px solid #24292512;background:#fffdf9e8;transition:background .2s,transform .2s}
.brief-dialog>.dialog-close:hover{background:#eee9df;transform:rotate(90deg)}
.brief-dialog>.dialog-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.brief-layout{display:grid;grid-template-columns:300px minmax(0,1fr);max-height:calc(100svh - 42px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.brief-intro{display:flex;flex-direction:column;align-items:flex-start;padding:48px 30px 32px;background:#25362e;color:#f5f1e7}
.brief-intro>.eyebrow{font-size:8px;letter-spacing:.09em;line-height:1.6;display:flex;gap:9px;align-items:center;color:#c6cebd}
.brief-intro>.eyebrow i{width:6px;height:6px;border-radius:50%;background:#d7a784;flex-shrink:0}
.brief-dialog .brief-intro h2{font-size:43px;line-height:1.08;letter-spacing:-.055em;margin:38px 0 22px}
.brief-intro h2 em{color:#dfb493;font-style:normal}
.brief-dialog .dialog-lead{font-size:13px;line-height:1.75;color:#c4ccbe;margin:0;max-width:245px}
.brief-note{display:flex;gap:12px;align-items:flex-start;margin-top:auto;padding-top:64px}
.brief-note>span{font-size:25px;color:#dfb493;line-height:1}
.brief-note p{font-size:12px;line-height:1.6;color:#f0eee5}
.brief-note small{display:block;color:#aebbac;font-size:11px;line-height:1.7;margin-top:5px}
.brief-main{min-width:0;padding:38px 34px 26px}
.brief-form-title{font-size:22px;letter-spacing:-.04em;margin:0 42px 26px 0}
.brief-dialog fieldset{margin:0 0 22px}
.brief-dialog legend{width:100%;font-size:12px;font-weight:600;margin-bottom:12px}
.brief-dialog legend small{float:right;color:#798176;font-weight:400;font-size:10px}
.brief-dialog .choice-grid{gap:10px}
.brief-dialog .choice-grid label{border-radius:15px}
.brief-dialog .choice-grid input{z-index:1;border-radius:15px}
.brief-dialog .choice-grid .service-tile{position:relative;display:flex;flex-direction:column;min-height:110px;padding:15px 16px;border:1px solid #dde1d6;border-radius:15px;background:#f3f4ed;color:#303a30;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}
.service-tile svg{width:23px;height:23px;margin-bottom:12px;color:#687c68}
.service-tile b{font-size:12px;font-weight:600;line-height:1.3}
.service-tile small{font-size:10px;line-height:1.4;color:#788171;margin-top:5px}
.service-tile::after{content:'';position:absolute;right:14px;top:15px;width:17px;height:17px;border-radius:50%;border:1px solid #c9d1c3;display:grid;place-items:center;font-size:11px}
.brief-dialog .choice-grid label:hover .service-tile{border-color:#9cac96;transform:translateY(-2px)}
.brief-dialog .choice-grid input:checked+.service-tile{background:#e8eddf;border-color:#738765;color:#263821;box-shadow:inset 0 0 0 1px #738765}
.brief-dialog .choice-grid input:checked+.service-tile::after{content:'✓';background:#536c44;border-color:#536c44;color:white}
.brief-dialog .choice-grid input:focus-visible+.service-tile{outline:2px solid var(--copper);outline-offset:3px}
.brief-dialog .form-row{gap:14px}
.brief-dialog form>label,.brief-dialog .form-row>label{font-size:12px;font-weight:500;margin-bottom:18px}
.brief-dialog label>small{float:right;font-size:9px;font-weight:400;color:#7c8276;margin-top:2px}
.brief-dialog input:not([type=checkbox]),.brief-dialog select,.brief-dialog textarea{box-sizing:border-box;width:100%;border:1px solid #dce0d5;border-radius:12px;background:#fffefb;padding:13px 14px;margin-top:8px;font-size:12px;line-height:1.5;transition:border-color .2s,box-shadow .2s;outline:none}
.brief-dialog input:not([type=checkbox]):focus,.brief-dialog select:focus,.brief-dialog textarea:focus{border-color:#9a775a;box-shadow:0 0 0 3px #a5562d12}
.brief-dialog input::placeholder,.brief-dialog textarea::placeholder{color:#969b8e}
.brief-dialog textarea{min-height:95px;resize:vertical}
.brief-input-unit{position:relative;display:block}
.brief-input-unit>span{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:12px;color:#8a917f;pointer-events:none}
.brief-dialog .brief-input-unit input{padding-right:44px}
.brief-dialog .form-submit{min-height:54px;border-radius:14px;padding:10px 12px 10px 18px;background:#a5562d;color:#fffaf2;font-size:12px;font-weight:500;transition:background .2s,transform .2s}
.brief-dialog .form-submit:hover{background:#874321;transform:translateY(-1px)}
.brief-dialog .form-submit>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#ffffff18;font-size:20px;font-weight:400}
.brief-privacy{font-size:10px;line-height:1.6;color:#818778;margin-top:12px;max-width:400px}
.brief-dialog [hidden]{display:none!important}
.brief-dialog .result-mark{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:#e8eddf;color:#536c44;font-size:25px;margin-bottom:24px}
.brief-dialog #brief-result h3{font-size:30px;letter-spacing:-.045em;line-height:1.1;margin:0 30px 15px 0}
.brief-dialog #brief-result>p{line-height:1.7}
.brief-dialog #brief-summary{border:1px solid #dde1d6;border-radius:15px;background:#f0f2e9;padding:20px;font-size:11px;line-height:1.8}
.brief-dialog .result-actions{flex-wrap:wrap;gap:10px}
.brief-dialog .result-actions .outline-button{border-radius:14px;border-color:#d7ddce;font-size:11px}
.brief-dialog #brief-edit{font-size:11px;color:#67705d}
@media(prefers-reduced-motion:no-preference){.brief-dialog[open]{animation:brief-arrive .38s cubic-bezier(.22,.8,.25,1) both}@keyframes brief-arrive{from{opacity:0;transform:translateY(22px) scale(.98)}to{opacity:1;transform:none}}}
@media(max-width:800px){
 .brief-dialog{max-width:calc(100vw - 20px);max-height:calc(100svh - 20px);border-radius:24px}
 .brief-layout{grid-template-columns:1fr;max-height:calc(100svh - 22px)}
 .brief-intro{padding:30px 26px 26px}
 .brief-intro>.eyebrow{font-size:7px;max-width:calc(100% - 36px)}
 .brief-dialog .brief-intro h2{font-size:36px;margin:22px 0 14px}
 .brief-intro h2 br{display:none}
 .brief-dialog .dialog-lead{max-width:440px;font-size:12px}
 .brief-note{display:none}
 .brief-main{padding:26px}
 .brief-form-title{font-size:20px;margin-bottom:22px}
 .brief-dialog>.dialog-close{top:13px;right:13px}
}
@media(max-width:420px){
 .brief-intro,.brief-main{padding-left:20px;padding-right:20px}
 .brief-dialog .brief-intro h2{font-size:32px}
 .brief-dialog .form-row{grid-template-columns:1fr;gap:0}
 .brief-dialog .choice-grid{gap:8px}
 .brief-dialog .choice-grid .service-tile{padding:13px 12px;min-height:114px}
 .service-tile b{font-size:11px}.service-tile small{font-size:9px}
 .brief-dialog legend small{font-size:9px}
}
