/* Atelier 18: light, architectural surfaces; movement follows intentional input. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-flow:cubic-bezier(.65,0,.25,1);--ink:#252725;--paper:#faf9f6;--orange:#df572f}
body{background:var(--paper)}
.site-header{background:#faf9f6ed;backdrop-filter:blur(16px)}
.site-header .nav>a:not(.btn){position:relative;padding:12px 0}
.site-header .nav>a:not(.btn):after{content:'';position:absolute;left:0;bottom:7px;right:0;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out)}
.site-header .nav>a:hover:after,.site-header .nav>a:focus-visible:after,.site-header .nav>a[aria-current=page]:after{transform:scaleX(1)}
.btn{position:relative;isolation:isolate;overflow:hidden;border-radius:3px;transition:background .24s,box-shadow .35s var(--ease-out),transform .35s var(--ease-out)}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px #77321c14}
.btn:active{transform:translateY(1px) scale(.985);box-shadow:0 1px 3px #77321c0c}
.text-link{transition:color .25s,border-color .25s,gap .4s var(--ease-out)}
.text-link:hover{color:#b74322;border-color:#b74322;gap:35px}
.press-wave{position:absolute;width:var(--wave-size);height:var(--wave-size);left:var(--wave-x);top:var(--wave-y);border-radius:50%;background:#ffffff45;pointer-events:none;z-index:-1;animation:ink-wave .55s var(--ease-out) forwards}
@keyframes ink-wave{from{opacity:.8;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}
.form-grid input,.form-grid select,.form-grid textarea{transition:border-color .2s,box-shadow .2s,background .2s}
.form-grid :is(input,select,textarea):focus{background:#fff;box-shadow:0 0 0 3px #df572f0c}
.answers details[open]>p{animation:detail-open .4s var(--ease-out)}
@keyframes detail-open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.chapter-nav a{position:relative;transition:color .2s,border-color .35s}
.scope-rows article{transition:background .3s}
.scope-rows article:hover{background:#fff8}
.service-tile .tile-arrow{border-radius:50%;transition:background .4s,color .4s,transform .4s var(--ease-out)}
.service-tile:hover .tile-arrow{background:#fff;color:#252725;transform:rotate(45deg)}
.service-tile img{transition:transform 1.2s var(--ease-out)}
.service-tile:hover img{transform:scale(1.025)}
.editorial-image img{transition:transform 1.7s var(--ease-out)}
.contact-band{background:#292d2c}
body[data-theme=water] .contact-band{background:#193f51}
.contact-band .contact-data>a{transition:color .25s,transform .4s var(--ease-out)}
.contact-band .contact-data>a:hover{color:#ffb094;transform:translateX(5px)}
.footer{background:#eeede8}
.footer-top p,.footer-top a,.footer-bottom{color:#5e625e}
.assistant-launch{border-radius:6px;transition:box-shadow .3s,transform .4s var(--ease-out),opacity .3s}
.assistant-launch:hover{transform:translateY(-3px);box-shadow:0 12px 30px #25272525}

/* The film settles into a useful, personal first view. */
.film-hero{min-height:690px;height:min(850px,85svh)}
.film-copy{padding-bottom:100px;max-width:950px}
.film-copy h1{font-size:clamp(65px,7.7vw,119px);line-height:1.02;letter-spacing:-.06em;margin:27px 0 24px}
.film-copy p{max-width:40ch;font-size:15px;line-height:1.9;color:#4b514b}
.film-copy .eyebrow{font-size:10px;letter-spacing:2.5px;color:#454e45}
.film-hero:before{background:linear-gradient(90deg,#faf9f6fa 0%,#faf9f6eb 30%,#faf9f691 53%,#faf9f600 82%)}
.hero-discover{position:absolute;left:var(--gutter);bottom:25px;display:flex;gap:25px;align-items:center;color:#40483e;font-size:10px;letter-spacing:.5px;min-height:44px}
.hero-discover b{border:1px solid #6b746255;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;font-size:16px;font-weight:400;transition:transform .4s var(--ease-out),background .3s}
.hero-discover:hover b{transform:translateY(3px);background:#fff9}
.film-playing .hero-discover{visibility:hidden}
.film-layer{opacity:1;transition:opacity .65s var(--ease-out)}
.film-layer.film-exiting{opacity:0;pointer-events:none}
.film-copy{transition:opacity .65s var(--ease-out),transform .85s var(--ease-out)}
.film-toolbar a,.film-toolbar button{border-radius:3px;box-shadow:0 2px 20px #00000007}
.film-door{border-radius:4px;box-shadow:0 12px 40px #0002}
.film-door-ready .film-door{transition:opacity .65s var(--ease-out),transform .65s var(--ease-out),background .3s}
.ticker{padding-top:24px;padding-bottom:24px;background:#f2f0ea;border-color:#393e3420}
.welcome-paths .section-head{align-items:center}
.welcome-paths .section-head h2{font-size:clamp(48px,6.3vw,92px);line-height:1.03}
.welcome-paths .service-tile{min-height:470px;border-radius:3px;padding:34px}
.welcome-paths .service-tile h3{font-size:clamp(33px,3.7vw,55px);line-height:1.08;max-width:90%}
.welcome-paths .service-tile p{max-width:80%;line-height:1.8}
.welcome-paths .service-tile .tile-no>span{font-size:8px;letter-spacing:1.1px}

/* One object, given room to breathe. No timed slide changes. */
.project-stage{background:#efeee9}
.project-stage .section-head h2{font-size:clamp(42px,5vw,76px)}
.project-theatre{border-top:1px solid #30372f29;padding-top:30px}
.project-scenes{display:grid;gap:30px;min-width:0}
.project-scene{min-width:0;background:#252b2b}
.project-scene-link{display:block;height:100%;position:relative;overflow:hidden}
.project-scene figure{margin:0;position:relative;height:560px;background:#e0e5e5}
.project-scene img{width:100%;height:100%;object-fit:cover}
.project-scene.project-portrait img{object-fit:contain;background:linear-gradient(135deg,#d9dfde,#c8d4d7)}
.project-scene figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#122129e6);padding:80px 30px 28px;color:white;display:grid;grid-template-columns:1fr auto;gap:9px}
.project-scene figcaption>span:first-child{font-size:9px;letter-spacing:1px;grid-column:1/-1}
.project-scene figcaption>strong{font-size:30px;line-height:1.2;letter-spacing:-1px;font-weight:500;align-self:end;max-width:20ch}
.scene-open{display:flex;align-items:center;gap:15px;font-size:11px;align-self:end;white-space:nowrap}
.scene-open b{display:grid;place-items:center;width:40px;height:40px;border:1px solid #fff6;border-radius:50%;font-size:19px;font-weight:400;transition:background .3s,color .3s,transform .4s var(--ease-out)}
.project-scene-link:hover .scene-open b{background:white;color:#252b2b;transform:rotate(45deg)}
.project-stage.is-interactive .project-theatre{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(275px,1fr);gap:5%}
.project-stage.is-interactive .project-scenes{display:grid;gap:0;isolation:isolate}
.project-stage.is-interactive .project-scene{grid-area:1/1;position:relative}
.project-stage.is-interactive .project-scene[aria-hidden=true]{pointer-events:none}
.project-selector{display:flex;flex-direction:column;min-width:0}
.project-selector-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;padding:8px 0 26px;border-bottom:1px solid #30372f29}
.project-position{color:#b54120;font-variant-numeric:tabular-nums}
.project-tabs{display:flex;flex-direction:column}
.project-tabs button{position:relative;isolation:isolate;display:grid;grid-template-columns:27px 1fr 22px;gap:12px;text-align:left;align-items:center;background:none;border:0;border-bottom:1px solid #30372f29;padding:26px 4px 26px 0;min-height:108px}
.project-tabs button:before{content:'';position:absolute;bottom:-1px;height:2px;background:#df572f;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .65s var(--ease-out)}
.project-tabs button[aria-selected=true]:before{transform:scaleX(1)}
.project-tabs button[aria-selected=true]{color:#ad4223}
.project-order{font-size:10px;font-variant-numeric:tabular-nums;color:#7a7d72}
.project-tabs button small{font-size:9px;line-height:1.5;display:block;color:#697069;margin-bottom:9px;font-weight:400}
.project-tabs button strong{font-size:23px;line-height:1.2;letter-spacing:-.7px;display:block;font-weight:500}
.project-tabs button>b{font-size:18px;font-weight:400;transition:transform .4s var(--ease-out)}
.project-tabs button:hover>b{transform:translate(3px,-3px)}
.project-stage-note{font-size:10px;color:#6d7168;line-height:1.9;padding-top:24px;margin-bottom:25px;max-width:43ch}
.project-arrows{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:8px}
.project-arrows button{height:44px;width:44px;border-radius:50%;border:1px solid #68706155;background:transparent;font-size:18px;transition:background .25s,transform .3s}
.project-arrows button:hover{background:#fff;transform:translateX(2px)}
.project-arrows button:first-child:hover{transform:translateX(-2px)}
.project-arrows span{font-size:10px;color:#75796f;margin-left:10px}

/* A material notebook, connected to points in the room. */
.room-discovery{background:#faf9f6}
.room-discovery>.section-head h2{font-size:clamp(44px,5.3vw,80px);line-height:1.05}
.room-composition{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(330px,1fr);gap:0;align-items:stretch;border:1px solid #3c433226}
.room-visual{position:relative;margin:0;min-height:640px;overflow:hidden;background:#e6e0d1;isolation:isolate}
.room-visual>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center}
.room-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 75%,#19231a7a);pointer-events:none}
.room-visual figcaption{position:absolute;bottom:19px;left:23px;color:#fff;z-index:2;letter-spacing:1px;font-size:8px}
.room-traces{display:none;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.room-discovery.is-interactive .room-traces{display:block}
.room-traces path{fill:#f7772c0b;stroke:#ffbd87;stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:0;stroke-dasharray:1;stroke-dashoffset:1;transition:opacity .5s,stroke-dashoffset .9s var(--ease-out)}
.room-traces path.is-active{opacity:.9;stroke-dashoffset:0}
.room-pins{position:absolute;inset:0;z-index:3}
.room-pin{display:flex;align-items:center;position:absolute;border:0;border-radius:3px;padding:0;background:#fffef3eb;backdrop-filter:blur(8px);color:#292f29;box-shadow:0 5px 20px #20282018;transform:translate(-50%,-50%);min-height:44px;transition:background .25s,box-shadow .3s}
.room-pin>span{display:grid;place-items:center;width:44px;height:44px;border-right:1px solid #36442a20;font-size:23px;font-weight:400;transition:transform .4s var(--ease-out)}
.room-pin>b{font-size:11px;padding:0 14px;letter-spacing:.1px;font-weight:600}
.room-pin[aria-pressed=true]{background:#df572f;color:#fff;box-shadow:0 0 0 5px #ffffff30,0 8px 24px #b14b2330}
.room-pin[aria-pressed=true]>span{transform:rotate(45deg);border-color:transparent}
.pin-ceiling{left:51%;top:22%}.pin-wall{left:69%;top:49%}.pin-floor{left:38%;top:79%}
.room-prompt{position:absolute;top:20px;left:23px;z-index:2;display:flex;align-items:center;gap:18px;background:#fff9;padding:8px 12px;font-size:9px;color:#3e4439;border-radius:2px}
.room-notebook{background:#f1f0e9;padding:32px clamp(24px,3vw,48px);display:flex;flex-direction:column;min-width:0}
.room-notebook-top{display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:1px;color:#646959;padding-bottom:28px;border-bottom:1px solid #47503e30}
.room-notebook-top>span:last-child{color:#b34925;font-variant-numeric:tabular-nums}
.room-tabs{display:flex;gap:22px;border-bottom:1px solid #47503e30}
.room-tabs button{padding:18px 0;border:0;border-bottom:2px solid transparent;background:none;font-size:10px;min-height:50px;white-space:nowrap;transition:color .25s,border-color .3s}
.room-tabs button[aria-selected=true]{color:#ab3e1f;border-bottom-color:#df572f}
.room-detail{padding-top:28px}
.material-sample{display:block;width:61px;height:44px;margin-bottom:25px;border:1px solid #252b2b15;box-shadow:4px 4px 0 #999d8f2b}
.sample-ceiling{background:repeating-linear-gradient(0deg,transparent 0 5px,#6f796b12 5px 6px),linear-gradient(120deg,#fffdf5,#dddccf)}
.sample-wall{background:linear-gradient(125deg,#e2e2d6 0 5%,#f5f3e8 5% 80%,#d5d4c8 80% 85%,#faf8ed 85%);box-shadow:4px 4px 0 #d5d3c8,7px 7px 0 #b4b6aa}
.sample-floor{background:repeating-linear-gradient(94deg,#a37b4e 0 1px,#d3ac7a 1px 8px,#dcb989 8px 12px,#b88e5b 12px 13px,#dfb989 13px 24px);transform:skewY(-4deg)}
.room-detail h3{font-size:clamp(31px,3.3vw,47px);line-height:1.1;margin-bottom:23px;letter-spacing:-.055em}
.room-detail>p{font-size:13px;line-height:1.85;color:#63685d}
.room-question{padding:20px 0 0;margin:24px 0 15px;border-top:1px solid #47503e30}
.room-question small{font-size:8px;letter-spacing:1px;color:#ac4424}
.room-question p{font-size:12px;line-height:1.75;margin:10px 0 0;color:#555e50}
.room-detail .text-link{font-size:11px;line-height:1.6;padding:12px 0}
.room-footer{margin-top:auto;padding-top:35px;display:flex;flex-direction:column;gap:5px;font-size:10px;color:#6d7266}
.room-footer a{font-size:11px;color:#37412f;text-decoration:underline;text-underline-offset:4px}

@view-transition{navigation:auto}
::view-transition-old(root){animation:page-out .18s ease-out both}
::view-transition-new(root){animation:page-in .42s var(--ease-out) both}
@keyframes page-out{to{opacity:0;transform:translateY(-5px)}}
@keyframes page-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(min-width:761px){.room-discovery.is-interactive .room-detail{min-height:420px}.film-copy .actions{max-width:670px}}
@media(max-width:1100px){.project-scene figure{height:520px}.project-scene figcaption{padding:65px 24px 24px;grid-template-columns:1fr}.project-scene figcaption>strong{font-size:28px}.scene-open{font-size:10px}.scene-open b{width:32px;height:32px}.room-composition{grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr)}.room-notebook{padding:28px 25px}.room-detail h3{font-size:34px}.room-visual{min-height:660px}.room-tabs{gap:22px}.welcome-paths .service-tile{padding:27px;min-height:440px}.welcome-paths .service-tile .tile-no>span{display:none}}
@media(max-width:760px){
 .film-hero{min-height:740px;height:740px}.film-copy{padding:45px 22px 100px;align-self:center}.film-copy h1{font-size:clamp(48px,13.7vw,83px);margin:23px 0;line-height:1.03}.film-copy p{font-size:14px;line-height:1.85;max-width:32ch}.film-copy .eyebrow{font-size:8px;letter-spacing:1.6px}.film-copy .actions{display:grid;gap:10px}.film-copy .btn{min-height:50px;font-size:12px}.film-hero:before{background:linear-gradient(90deg,#faf9f6f5,#faf9f6d6 55%,#faf9f65c)}.hero-discover{bottom:45px;font-size:9px;gap:17px}.film-poster figcaption{bottom:12px}.film-replay{font-size:11px;margin-top:14px}
 .ticker{padding-top:20px;padding-bottom:20px;gap:16px;display:grid;grid-template-columns:1fr 1fr;font-size:8px;letter-spacing:.3px}.ticker span:before{margin-right:7px}
 .welcome-paths .section-head{gap:27px}.welcome-paths .section-head h2{font-size:55px}.welcome-paths .service-tile{min-height:420px;padding:27px}.welcome-paths .service-tile h3{font-size:38px}.welcome-paths .service-tile p{font-size:12px;max-width:83%}.welcome-paths .service-tile .tile-no>span{display:inline;font-size:7px}.welcome-paths .service-tile .tile-arrow{right:24px;bottom:31px;width:39px;height:39px}
 .project-stage .section-head h2,.room-discovery>.section-head h2{font-size:43px}.project-stage.is-interactive .project-theatre{grid-template-columns:1fr;gap:20px;padding-top:22px}.project-scene figure{height:430px}.project-scene figcaption{padding:70px 21px 22px;gap:10px}.project-scene figcaption>strong{font-size:29px}.scene-open{font-size:10px}.project-selector-top{padding:4px 0 16px}.project-tabs button{padding:20px 2px;min-height:85px;grid-template-columns:25px 1fr 22px}.project-tabs button strong{font-size:22px}.project-tabs button small{font-size:8px;margin-bottom:7px}.project-stage-note{font-size:9px;margin-bottom:12px;padding-top:18px}.project-arrows{padding-top:10px}
 .room-composition{grid-template-columns:1fr}.room-visual{min-height:350px;height:350px}.room-visual>img{object-position:center}.room-notebook{padding:26px 23px}.room-notebook-top{font-size:8px;padding-bottom:20px}.room-tabs{gap:28px}.room-tabs button{font-size:10px}.room-detail{padding-top:25px}.room-detail h3{font-size:38px}.room-detail>p{font-size:13px}.room-discovery.is-interactive .room-detail{min-height:410px}.room-pin>b{padding:0 10px;font-size:10px}.room-pin>span{width:40px}.room-visual figcaption{font-size:7px;left:15px;bottom:15px}.room-prompt{font-size:8px;left:15px;top:14px}.room-footer{padding-top:25px}.pin-ceiling{left:48%;top:24%}.pin-wall{left:69%;top:51%}.pin-floor{left:36%;top:78%}
 .nav.open{animation:menu-arrive .35s var(--ease-out)}@keyframes menu-arrive{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
 .contact-band h2{font-size:43px}.contact-band .contact-data>a:not(:first-child){font-size:12px}
}
@media(max-width:360px){.room-tabs{gap:20px}.room-notebook{padding:24px 18px}.room-detail h3{font-size:34px}.welcome-paths .service-tile .tile-no>span{display:none}.project-scene figcaption>strong{font-size:27px}}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 ::view-transition-old(root),::view-transition-new(root){animation:none!important}
 html{scroll-behavior:auto!important}
 .btn,.text-link,.service-tile img,.tile-arrow,.editorial-image img,.film-layer,.film-copy,.hero-discover b,.room-traces path,.room-pin,.room-pin>span,.scene-open b,.project-tabs button:before,.project-tabs button>b,.project-arrows button,.contact-band a,.site-header .nav>a:after{transition:none!important;transform:none}
 .room-pin{transform:translate(-50%,-50%)}.room-pin[aria-pressed=true]>span{transform:rotate(45deg)}
 .nav.open,.answers details[open]>p,.press-wave{animation:none}.press-wave{display:none}
}
