/* Lightweight foundation; art direction is specific to each demo. No dependencies. */
:root{color-scheme:light;--line:color-mix(in srgb,var(--ink) 18%,transparent);--muted:color-mix(in srgb,var(--ink) 76%,var(--bg));--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}button,input,textarea,select{font:inherit}button,a,input,textarea,summary{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button,a{ -webkit-tap-highlight-color:transparent }button{color:inherit}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.12;font-weight:500}h1 em{font-style:italic;color:var(--accent)}h2{font-size:clamp(32px,3.5vw,52px);letter-spacing:-1.8px;max-width:720px}h3{font-size:24px;letter-spacing:-.5px}p{color:var(--muted)}[hidden]{display:none!important}.skip-link{position:absolute;top:-80px;background:var(--ink);color:var(--bg);padding:12px 20px;z-index:100}.skip-link:focus{top:10px}.demo-bar{background:#071627;color:white;min-height:56px;padding:8px 5%;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;position:relative;z-index:10}.demo-bar p{color:#e1eaf4;font-size:11px;letter-spacing:1px}.demo-bar>div{display:flex;align-items:center;gap:20px}.demo-bar a{display:inline-flex;min-height:44px;align-items:center}.demo-bar .choose-template{background:#ff6b2b;color:#071627;font-weight:bold;border-radius:5px;padding:6px 14px}.site-header{padding:28px 6%;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{font-family:var(--serif);font-size:30px;line-height:1;letter-spacing:-1px;flex-shrink:0}.brand small{font:9px/1.5 var(--sans);letter-spacing:2px;display:block;margin-top:10px}.site-header nav{display:flex;align-items:center;gap:28px;font-size:13px}.site-header nav a{min-height:44px;display:inline-flex;align-items:center}.header-contact{border-bottom:1px solid var(--ink);display:inline-flex;align-items:center;min-height:44px;font-size:13px}.menu-toggle{display:none;border:1px solid var(--line);background:transparent;min-height:44px;padding:8px 14px;border-radius:4px}.hero{position:relative;margin:0 6%;padding:70px 0;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.hero-copy{position:relative;z-index:2;min-width:0}.kicker{font-size:11px;letter-spacing:2.1px;line-height:1.7;text-transform:uppercase;color:var(--muted);margin-bottom:20px;font-weight:bold}h1{font-size:clamp(45px,5.3vw,80px);letter-spacing:-3px;font-family:var(--serif)}.intro{font-size:17px;line-height:1.85;max-width:470px;margin-top:26px}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:32px}.button,.outline-button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:14px 22px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:bold;font-size:13px;line-height:1.5;transition:transform .2s,background .2s;border-radius:2px}.button:hover,.outline-button:hover{transform:translateY(-2px)}.outline-button{background:transparent;color:var(--ink)}.text-link{display:inline-flex;align-items:center;min-height:44px;font-size:13px;border-bottom:1px solid var(--line)}.visual{position:relative;isolation:isolate;aspect-ratio:4/5;overflow:hidden;min-width:0;background:var(--ink)}.slide{position:absolute;inset:0;opacity:0;transform:scale(1.04);transition:opacity 1s ease,transform 5s ease;pointer-events:none}.slide.active{opacity:1;transform:scale(1)}.slide img{width:100%;height:100%;object-fit:cover}.visual:after{position:absolute;inset:60% 0 0;content:'';background:linear-gradient(transparent,#0009);z-index:1;pointer-events:none}.visual-note{position:absolute;top:18px;left:20px;padding:4px 8px;background:#071627d9;color:#fff;font-size:9px;letter-spacing:1px;z-index:2}.carousel-controls{position:absolute;bottom:22px;right:18px;z-index:3;display:flex;align-items:center;gap:6px}.carousel-controls button,.lightbox-bottom button{min-width:44px;min-height:44px;border:1px solid #ffffff65;background:#071627d9;color:white;font-size:18px;border-radius:50%}.carousel-controls .dots{display:flex;gap:0}.carousel-controls .dot{border:0;border-radius:0;background:transparent;position:relative;min-width:28px;min-height:44px;padding:0}.dot:after{content:'';width:6px;height:6px;border-radius:50%;display:block;margin:auto;background:#fff9}.dot.active:after{background:#fff;box-shadow:0 0 0 3px #fff5}.carousel-caption{position:absolute;bottom:76px;left:20px;z-index:2;font-size:11px;letter-spacing:1px;color:white}.hero-foot{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;padding-top:28px;border-top:1px solid var(--line);font-size:10px;letter-spacing:2px;color:var(--muted)}.hero-stamp{position:absolute;z-index:3;display:flex;align-items:center;justify-content:center;text-align:center;font-size:11px;line-height:1.8;letter-spacing:1px;font-weight:bold}.section{padding:90px 6%;scroll-margin-top:10px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:42px}.section-head>p{max-width:330px;font-size:14px;line-height:1.8}.gallery-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.gallery-filters button{min-height:44px;border:1px solid var(--line);padding:8px 15px;background:transparent;color:var(--ink);font-size:12px;border-radius:2px}.gallery-filters button.active{background:var(--ink);color:var(--bg)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.gallery-item{border:0;padding:0;background:transparent;position:relative;text-align:left;min-width:0}.gallery-item img{width:100%;aspect-ratio:4/5;transition:filter .3s,transform .4s}.gallery-item:hover img{filter:brightness(.92)}.gallery-item>span{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink)}.fine-print{font-size:12px;line-height:1.75;margin-top:20px;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.service{border-top:1px solid var(--line);padding:30px 0;min-width:0}.service-index{font-size:12px;display:block;margin-bottom:40px}.service h3{margin-bottom:18px}.service p{font-size:14px;line-height:1.8;max-width:340px}.service a{margin-top:28px;display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:8px}.interactive{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:9%;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.interactive-intro>p:not(.kicker){font-size:14px;max-width:430px;margin-top:25px}.choices{display:flex;flex-direction:column;gap:8px;margin-top:32px}.choice{background:transparent;color:var(--ink);border:1px solid var(--line);min-height:58px;padding:16px 20px;display:flex;align-items:center;gap:16px;text-align:left;font-size:14px}.choice span:first-child{font-size:11px;opacity:.65}.choice span:last-child{margin-left:auto}.choice.active{background:var(--ink);color:var(--bg)}.choice-panel{padding:28px 0 0;min-height:160px}.choice-panel h3{font-size:22px;margin-bottom:14px}.choice-panel p{font-size:14px;max-width:410px}.brief-card{border:1px solid var(--line);padding:38px;background:color-mix(in srgb,var(--bg) 93%,var(--ink));border-radius:4px}.brief-card label{display:block;font-size:12px;font-weight:bold;margin-bottom:20px}.brief-card input:not([type=hidden]),.brief-card textarea{display:block;width:100%;background:var(--bg);color:var(--ink);border:1px solid var(--line);min-height:48px;padding:12px 14px;border-radius:3px;font-size:14px;margin-top:8px;resize:vertical;min-width:0;color-scheme:light}.brief-card input::placeholder,.brief-card textarea::placeholder{color:var(--muted);opacity:.8}.brief-card .button{width:100%}.brief-card .form-status{font-size:13px;margin-bottom:16px}.brief-card .form-status:empty{display:none}.brief-result h3{margin-bottom:24px}.result-actions{display:flex;gap:10px;margin-top:18px}.result-actions .button{width:auto;flex:1}.brief-result .text-link{margin-top:16px}.brief-result [role=status]{font-size:12px;margin-top:16px}.about{display:grid;grid-template-columns:1fr 1fr;gap:9%}.about-head>p:not(.kicker){margin-top:24px;font-size:15px;max-width:440px}.process article{border-top:1px solid var(--line);padding:24px 0;display:grid;grid-template-columns:44px 1fr;gap:10px}.process article>span{font-size:11px;padding-top:5px}.process article h3{font-size:22px}.process article p{grid-column:2;font-size:14px}.faq{display:grid;grid-template-columns:1fr 1fr;gap:9%;border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{display:flex;list-style:none;cursor:pointer;min-height:64px;align-items:center;justify-content:space-between;gap:18px;font-size:14px;padding:18px 0}summary::-webkit-details-marker{display:none}summary span{font-size:22px}details[open] summary span{transform:rotate(45deg)}details>p{font-size:14px;padding:0 30px 24px 0;line-height:1.8}.purchase-scope{background:#071627;color:#f3f7fc;padding:70px 6%;display:flex;align-items:center;justify-content:space-between;gap:50px}.purchase-scope>div{max-width:750px}.purchase-scope .kicker{color:#ffb28f}.purchase-scope h2{font-size:36px;color:white;letter-spacing:-1px;line-height:1.3}.purchase-scope h2 span{color:#ffb28f;font-size:25px}.purchase-scope p{color:#c4d1e0;font-size:14px;margin-top:22px}.purchase-scope .fine-print{font-size:12px}.purchase-scope .button{background:#ff6b2b;color:#071627;border-color:#ff6b2b;white-space:nowrap;border-radius:6px;flex-shrink:0}footer{padding:50px 6%;display:grid;grid-template-columns:1fr 1fr;gap:32px;border-top:1px solid var(--line)}footer p{font-size:11px;line-height:1.8;max-width:400px;margin-left:auto}footer>div{grid-column:1/-1;display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:25px;font-size:12px}footer a,footer button{min-height:44px;display:inline-flex;align-items:center}footer button{background:transparent;color:var(--ink);border:0;font-size:12px;padding:0}.lightbox{border:0;padding:22px;background:#071627;color:#fff;width:min(1100px,94vw);max-height:94vh;border-radius:8px}.lightbox::backdrop{background:#071627e8}.lightbox-head,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px}.lightbox-head{margin-bottom:18px}.lightbox-head h2{font-size:18px;letter-spacing:0}.lightbox-head button{color:white;border:1px solid #fff5;background:transparent;min-height:44px;padding:8px 16px;font-size:13px}.lightbox>img{width:100%;height:min(65vh,650px);object-fit:contain}.lightbox-bottom{margin-top:18px}.lightbox-bottom p{color:#e2eaf3;font-size:13px;text-align:center}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1050px){.site-header{gap:20px;padding:24px 5%}.site-header nav{gap:16px}.brand{font-size:25px}.hero{gap:30px;margin:0 5%;padding:55px 0}h1{font-size:58px;letter-spacing:-2px}.carousel-controls{gap:3px;right:12px}.carousel-controls .dot{min-width:24px}.section{padding:70px 5%}.interactive,.about,.faq{gap:6%}.brief-card{padding:28px}.purchase-scope{padding:60px 5%;gap:35px}.purchase-scope h2{font-size:30px}}
@media(max-width:760px){.demo-bar{padding:8px 4%;font-size:11px;gap:8px}.demo-bar p{font-size:10px;letter-spacing:.5px}.demo-bar p span{display:none}.demo-bar>div{gap:12px}.demo-bar .choose-template{padding:6px 10px;font-size:11px}.site-header{padding:22px 6%;gap:16px;flex-wrap:wrap}.brand{font-size:25px}.brand small{font-size:8px;letter-spacing:1.5px}.menu-toggle{display:block;margin-left:auto}.header-contact{display:none}.site-header nav{display:none;order:4;width:100%;flex-direction:column;align-items:stretch;gap:0;padding-top:12px}.site-header nav.open{display:flex}.site-header nav a{min-height:48px;border-bottom:1px solid var(--line)}.hero{grid-template-columns:1fr;margin:0 6%;padding:42px 0;gap:32px}.kicker{font-size:10px;letter-spacing:1.7px;margin-bottom:17px}h1{font-size:clamp(42px,10.8vw,66px);letter-spacing:-1.9px}h2{font-size:34px;letter-spacing:-1px}h3{font-size:23px}.intro{font-size:15px;line-height:1.8;margin-top:23px}.hero-actions{margin-top:25px;gap:18px}.button,.outline-button{min-height:48px;padding:12px 18px;font-size:12px}.visual{aspect-ratio:4/3}.hero-foot{font-size:9px;letter-spacing:1px;padding-top:20px;flex-wrap:wrap}.section{padding:58px 6%}.section-head{display:block;margin-bottom:30px}.section-head>p{margin-top:22px;max-width:100%;font-size:13px}.gallery-filters{gap:6px}.gallery-filters button{font-size:11px;padding:8px 12px}.gallery-grid{grid-template-columns:1fr 1fr;gap:18px}.gallery-item img{aspect-ratio:3/4}.gallery-item:last-child{grid-column:1/-1}.gallery-item:last-child img{aspect-ratio:16/9}.gallery-item>span{font-size:12px;padding:14px 0}.service-grid{grid-template-columns:1fr;gap:0}.service{padding:25px 0}.service-index{margin-bottom:22px}.service p{max-width:100%;font-size:14px}.service a{margin-top:15px}.interactive,.about,.faq{grid-template-columns:1fr;gap:35px}.brief-card{padding:25px 20px}.interactive-intro>p:not(.kicker){margin-top:22px}.choice-panel{min-height:140px}.process article:last-child{padding-bottom:0}.faq h2{max-width:250px}.purchase-scope{padding:48px 6%;display:block}.purchase-scope h2{font-size:27px}.purchase-scope h2 span{font-size:21px}.purchase-scope .button{margin-top:28px;width:100%;white-space:normal}footer{padding:40px 6%;grid-template-columns:1fr;gap:25px}footer p{margin:0}footer>div{flex-wrap:wrap;gap:12px}.lightbox{padding:16px}.lightbox-head h2{font-size:15px}.lightbox>img{height:55vh}.carousel-controls .dot{min-width:44px}.carousel-controls{right:12px;gap:0}.carousel-controls button{min-width:44px}.visual-note{font-size:8px;left:14px;top:14px}.carousel-caption{left:14px;bottom:78px}.lightbox-bottom p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.slide{transform:none!important}}

.carousel-controls .dot{min-width:44px}
.hero-foot a{display:inline-flex;align-items:center;min-height:44px}
/* Keep small tab indices fully legible in both active and inactive states. */
.choice span:first-child{opacity:1}
.site-header .brand{min-height:44px;display:inline-flex;flex-direction:column;justify-content:center}

/* Recomposition: image controls have their own safe area, outside the image crop. */
.visual{padding-bottom:76px;overflow:hidden;border-radius:0;aspect-ratio:auto;height:600px;background:var(--bg);border:1px solid var(--line)}.slide{bottom:76px}.visual:after{inset:auto 0 76px;height:100px;background:linear-gradient(transparent,#0007)}.visual-note{top:16px;left:16px;z-index:3;background:#071627;color:#fff}.carousel-controls{left:auto;right:16px;bottom:16px;gap:0}.carousel-controls button{border-color:var(--ink);background:var(--ink);color:var(--bg)}.carousel-controls .dot{background:transparent}.dot:after{background:var(--muted)}.dot.active:after{background:var(--ink);box-shadow:0 0 0 3px var(--line)}.carousel-caption{bottom:90px;left:16px;font-size:10px}.carousel-controls .dot{min-width:44px}.visual[aria-busy=true] .carousel-controls{opacity:.75}.visual:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.gallery-item{overflow:hidden}.gallery-item img{object-fit:cover}.gallery-grid.filtered{display:block}.gallery-grid.filtered .gallery-item{width:min(760px,100%);padding:0!important;margin:0!important;display:block}.gallery-grid.filtered img{max-height:560px;aspect-ratio:auto!important;object-fit:contain;width:100%;height:auto}.gallery-grid.filtered .gallery-item .project-caption{margin-top:0}.project-description{display:block!important;color:var(--muted);font:13px/1.8 var(--sans);padding:16px 0 0!important;border:0!important}.service-directory{display:block}.service-disclosure{border-top:1px solid var(--line);border-bottom:0}.service-disclosure:last-child{border-bottom:1px solid var(--line)}.service-disclosure summary{display:flex;gap:30px;min-height:95px;padding:22px 0}.service-disclosure summary h3{margin:0;flex:1;font-size:30px}.service-disclosure summary .service-index{margin:0;color:var(--muted);font-size:11px}.service-disclosure summary>span:last-child{font-size:25px}.service-disclosure>p{padding:0 40px 20px 60px;max-width:670px}.service-disclosure>a{display:inline-flex;min-height:44px;align-items:center;margin:0 0 25px 60px;font-size:13px;text-decoration:underline;text-underline-offset:5px}.about-head>p:not(.kicker){font-size:16px;line-height:1.85}.brief-card{box-shadow:none}.site-header .brand{min-height:44px}.gallery-filters button{border-radius:0}.choice-panel{min-height:150px}.choice span:first-child{opacity:1}.hero-stamp,.hero-foot{display:none}.hero h1 em{color:var(--accent)}
@media(max-width:760px){.visual{height:410px;aspect-ratio:auto}.slide{bottom:76px}.carousel-controls{right:12px;bottom:16px}.carousel-caption{bottom:90px;left:14px}.visual-note{font-size:8px}.service-disclosure summary{gap:18px;min-height:80px}.service-disclosure summary h3{font-size:24px}.service-disclosure>p{padding-left:38px;padding-right:0}.service-disclosure>a{margin-left:38px}.gallery-grid.filtered .gallery-item{width:100%}.choice-panel{min-height:130px}.project-description{font-size:12px}.brand{font-size:24px}.brand small{font-size:7px;letter-spacing:1.1px}.hero h1{max-width:100%}}
.section-head>div{min-width:0}.hero-copy>p{min-width:0}.project-caption{min-width:0}@media(min-width:761px) and (max-width:1050px){.section-head{display:block}.section-head>p{max-width:100%;margin-top:24px}.photography .gallery .section-head h2{font-size:48px}}
